Making multi-player game dev simpler since 2017. Single-header cross-platform world replication in pure C99. librg is a lightweight library that serves as a middleware between data-transferring libraries (networking, file-streaming, etc.) and core application/game logic. The library was born to solve the complexities of setting up and managing the flow of multi-player games and dedicated game servers. It came a long way in stripping out things that were non-essential, slowly sculpting into its current form, which you are able to see and use today. Usually, the networked game world consists of a set of networked players and a bunch of networked entities. The typical variant of setting up the synchronization relations between entities and players is to set up Everything-to-Everyone connections.
Features
- Entity tracking (tracks which entity belongs to what world and what states they have)
- Owner tracking (tracks which participant owns what entity)
- Area of interest management (controls what can and cannot be seen by a participant)
- World replication (re-creates a limited representation in a destination world of what is considered visible to a participant in the source world)
- Documentation available
- Examples included
- Support for 2d/3d worlds of various sizes
- Events for entity-to-entity status changes
- Networked LOD support (based on variable radius)
- Cross-platform, lightweight, single-header