libquicknet
ไลบรารีเครือข่าย UDP ที่เรียบง่ายและขนาดเล็กที่เชื่อถือได้สำหรับเกม
❗ libquicknet อยู่ระหว่างการพัฒนา และไม่เหมาะกับโค้ดที่ใช้งานจริง ❗
เป้าหมายหลักสำหรับไลบรารีนี้คือเกมต้นแบบหรือเกมติดขัดที่ต้องใช้ระบบย่อยเครือข่ายที่รวดเร็วแบบพลักแอนด์เพลย์
ง่ายมากในการเริ่มต้นใช้งาน!
คุณสมบัติ:
- โปรโตคอล UDP เชิงการเชื่อมต่อพร้อมการจับมือ 3 ขั้นตอน
- ไคลเอนต์<->เซิร์ฟเวอร์และการสนับสนุนแบบ Peer-to-Peer
- การใช้แบนด์วิธต่ำ
- การสนับสนุนที่ต่อเนื่อง/ไม่ต่อเนื่อง เชื่อถือได้/ไม่น่าเชื่อถือ
- ระบบการตอบรับซ้ำซ้อนที่รวดเร็วสำหรับข้อความที่เชื่อถือได้
- การค้นพบเซิร์ฟเวอร์ (LAN เท่านั้น)
- ระบบเช็คซัมแบบเต็มเพื่อหลีกเลี่ยงความเสียหายของข้อความ
- ตัวเลือกการรวมข้อความเมื่อส่ง
- แก้ไขอัตราการส่งที่เลือกได้
- การตรวจจับข้อความที่ซ้ำกัน
- รองรับเวลาแฝงปลอมและการสูญเสียแพ็กเก็ต
- การประมาณค่า Ping และ Round-Trip-Time
- ข้ามแพลตฟอร์ม (Windows/Linux)
คุณสมบัติในอนาคต:
- การซิงโครไนซ์เวลา
- การซิงโครไนซ์ RNG สำหรับระบบที่กำหนด
- Bitpacking และการบีบอัด
- การเข้ารหัสแบบสมมาตรพร้อมการแลกเปลี่ยนคีย์ในการจับมือกัน
- การแวะผ่าน NAT และการเจาะทะลุ
- การรับรู้ถึงความเอนเดียนเนส
- ปรับปรุงระบบการรับทราบ
การติดตั้ง
วางไฟล์ต้นฉบับทั้งหมดในโปรเจ็กต์ของคุณแล้วคอมไพล์!
การใช้งาน
- รวม Quicknet_peer.h
- สร้างลูกหลานของ Quicknet::Peer
- แทนที่วิธี OnConnection, OnDisconnection และ OnGameMessage
- กำหนดข้อความเกมที่คุณกำหนดเองตามคำแนะนำใน Quicknet_messagetypes.h
- รวมรหัสข้อความของคุณใน Quicknet_messagelookup.h
- พร้อม!
สำหรับตัวอย่างง่ายๆ โปรดตรวจสอบ test.cpp
พื้นหลัง
ห้องสมุดนี้เขียนขึ้นภายในหนึ่งสัปดาห์ และถึงแม้ว่ามันจะใช้งานได้เต็มรูปแบบ แต่ก็ยังต้องใช้งานอีกมากเพื่อทำให้ดียิ่งขึ้นไปอีก!
ยังมีสิ่งที่ฮาร์ดโค้ดจำนวนมากที่ต้องได้รับการดูแล แต่ฉันจะพยายามเปลี่ยนสิ่งนี้ให้เป็นไลบรารีที่ปรับแต่งได้ง่าย