RepositoryC
ZP

zpl-c/librg

🚀 Making multi-player gamedev simpler since 2017

1.5kstars
44forks
0issues
1views

Thành tựu nổi bật

Những danh hiệu mới nhất của dự án

1
TINIX TRENDING·Chủ đề: low-level

#1 Repository Của Tuần

1
TINIX TRENDING·Chủ đề: enet

#1 Repository Của Tuần

3
TINIX TRENDING·Chủ đề: zpl

#3 Repository Của Tuần

🎮 librg: Đồng bộ thế giới game đa người chơi nhẹ nhàng bằng C99

Một thư viện middleware nhẹ giữa lớp truyền dữ liệu mạng và logic game, giúp quản lý thực thể, chủ nhân và tái tạo thế giới một cách hiệu quả.

librg là một thư viện nhẹ viết bằng ngôn ngữ C99 theo phong cách single-header, hỗ trợ đa nền tảng. Dự án ra đời năm 2017 với mục tiêu giải quyết độ phức tạp khi thiết lập và quản lý luồng dữ liệu trong game đa người chơi và server dedicated. Thay vì đồng bộ mọi thực thể với mọi người chơi như cách truyền thống, librg chỉ đồng bộ những thực thể mà người chơi có thể nhìn thấy.

✨ Điểm nổi bật

  • Theo dõu thực thể: theo dõi thực thể thuộc thế giới nào và trạng thái hiện tại của chúng.
  • Theo dõi chủ nhân: xác định người chơi nào sở hữu thực thể nào.
  • Quản lý quan tâm khu vực (AoI): kiểm soát những gì người chơi có thể nhìn thấy.
  • Tái tạo thế giới: tái tạo một bản sao giới hạn của thế giới dựa trên góc nhìn của từng người chơi.
  • Hỗ trợ thế giới 2D/3D: tương thích với nhiều kích thước thế giới khác nhau.
  • LOD mạng: hỗ trợ cấp độ chi tiết dựa trên bán kính nhìn thấy.
  • Đa nền tảng & nhẹ: single-header, dễ tích hợp vào dự án.

💡 Vì sao đáng chú ý

Trong các trò chơi mạng truyền thống, mỗi thực thể thường được đồng bộ với tất cả người chơi, dẫn đến lãng phí băng thông khi số lượng thực thể tăng. librg giải quyết vấn đề này bằng cách chỉ đồng bộ thực thể với những người chơi nằm trong tầm nhìn thấy của chúng, giảm đáng kể lượ lượng dữ liệu truyền tải.

Thư viện thiết kế giao diện chung để tích hợp với hầu hết các thư viện truyền tin mạng như ENet, GameNetworkingSockets, yojimbo, KCP, WebSocket, WebRTC… Chỉ cần thư viện hỗ trợ gửi/nhận buffer char * và xác định người gửi/nhận bằng ID nguyên số là có thể dùng được với librg.


#GameDev #C #Networking #Multiplayer #OpenSource #TiniX

Similar Projects

Discover other similar projects and AI models.

RepositoryC
0xFA11/MultiplayerNetworkingResources

A curated list of Multiplayer Game Network Programming Resources

8.8k
Aug 27, 2026
RepositoryC
zpl-c/zpl

📐 Pushing the boundaries of simplicity

1.1k
Apr 26, 2025
RepositoryC++
wolfpld/tracy

Frame profiler

17.0k
Oct 23, 2026
RepositoryC++
skypjack/entt

Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more

13.2k
Oct 26, 2026
RepositoryRust
Pumpkin-MC/Pumpkin

Empowering everyone to host fast and efficient Minecraft servers

12.7k
Oct 27, 2026
RepositoryTypeScript
colyseus/colyseus

⚔ Multiplayer Framework for Node.js

7.5k
Oct 26, 2026
RepositoryC++
p-ranav/indicators

Activity Indicators for Modern C++

3.4k
May 9, 2025
RepositoryJavaScript
react/react

The library for web and native user interfaces.

251.9k
Oct 27, 2026
RepositoryC++
godotengine/godot

Godot Engine – Multi-platform 2D and 3D game engine

119.3k
Oct 29, 2026