Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/permutationlock/simple_game_server
A minimal effecient multiplayer game server written in C with no dynamic memory allocation.
https://github.com/permutationlock/simple_game_server
Last synced: 2 days ago
JSON representation
A minimal effecient multiplayer game server written in C with no dynamic memory allocation.
- Host: GitHub
- URL: https://github.com/permutationlock/simple_game_server
- Owner: permutationlock
- Created: 2023-04-23T00:35:39.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-22T09:41:13.000Z (about 1 year ago)
- Last Synced: 2023-09-23T10:32:01.168Z (about 1 year ago)
- Language: C
- Size: 70.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Simple Game Server
A learning project making a game server in C from scratch.
The server was not completed, and won't currently build. I was working
very fast and loose, and the build system is simply shell scripts.The data structures are the most complete and interesting part of this repo. All
the corresponding benchmarks and "tests" (not really tests, but printf checks)
should all build and run.- The `fbaa.*` files define a simple fixed capacity item pool allocator
(or "fixed-block array allocator" as I refered to it at the time).
It uses a ring array (aka a deque), defined in `ring_buffer.*`, to track
available space.- The `ring_fbaa.*` files define a fixed capacity item pool allocator that
also keeps an internal doubly-linked list, defined in `linked_list.*`, to
track the order that items were allocated. This allows old items to be
checked and deallocated in a system where this makes sense.- The `rbt.*` files define an allocater independent red-black tree implementation.
The `array_rbt.*` files use `fbaa` and `rbt` to define a red-black tree backed
by a fixed capacity item pool to allocate nodes.This project moved to [Zig][1] and became the Zig game server [thierd][2].
[1]: https://ziglang.org
[2]: https://github.com/permutationlock/thierd