Authoritative C++ game server for the SKKU game. It owns the simulation loop, WebSocket game protocol, and Redis-backed coordination with the web server.
From game_engine/, configure and build the server with CMake:
cmake -S game_server -B game_server/build -DGS_PCH=OFF
cmake --build game_server/build --parallelThe server expects Redis to be available and reads runtime values from environment variables such as REDIS_URL, PORT, and TICK_RATE.
The test suite lives under game_engine/game_server/tests/ and runs through CTest.
Local test flow:
cmake -S game_server -B game_server/build-test -DBUILD_TESTING=ON -DGS_PCH=OFF
cmake --build game_server/build-test --parallel
REDIS_URL=tcp://127.0.0.1:6379 ctest --test-dir game_server/build-test --output-on-failureWhat the test suite verifies:
- world and ECS behavior such as stale input rejection, movement clamping, greeting transitions, and removed-session collection
- protocol framing for snapshot, delta, pong, and event messages
- Redis integration for one-time token consumption, avatar lookup, and player-count updates
The Redis integration slice expects a Redis instance on 127.0.0.1:6379 unless REDIS_URL is overridden.
GitHub Actions runs the same build and test path in game_engine/.github/workflows/ci.yml.
The workflow provisions a Redis service, builds the test target, and runs:
ctest --test-dir game_server/build --output-on-failure