How su-lee53/last_coast_source works
Last Coast is a Windows, four-player cooperative zombie-survival shooter with a DirectX 12 client and an IOCP/TCP server. The player-facing flow runs from login and room selection through a ready/loading transition into staged survival, defense, and escape gameplay. The server owns multiplayer sessions and authoritative gameplay; zombie behavior uses the shared AI runtime. Client rendering, asset/world conversion, and database-backed login are important supporting branches. Relationships not shown in sampled source are included only where the README documents them.
Main entry points: AIManagerImpl.cpp AI manager and agents · NetworkManager.cpp Client networking · LogInScene.cpp Login and rooms · LobbyScene.cpp Lobby and ready
Components 26
Game flow
- Login and rooms
Game/Client/Client/LogInScene.cpp - Lobby and ready
Game/Client/Client/LobbyScene.cpp - Survival stages
Game/Server/Server/EscapeSequence.cpp - Combat and checkpoints
Game/Server/Server/CombatSystem.cpp
Client runtime
- Client networking
Game/Client/Client/NetworkManager.cpp - Client scenes and actors
Game/Client/Client/GameScene.cpp - Render graph
Game/Client/Client/RenderManager.cpp - Render passes
Game/Client/Client/RenderPass.h - Resource loading
Game/Client/Client/ResourceManager.cpp
Server runtime
- IOCP networking
Game/Server/Server/Network.cpp - Sessions and rooms
Game/Server/Server/Session.cpp - Packet handling
Game/Server/Server/PacketHandlers.cpp - Game loop
Game/Server/Server/GameLoop.cpp - Authoritative world
Game/Server/Server/GameWorld.cpp - Zombie simulation
Game/Server/Server/ZombieManager.cpp - SQL login store
Game/Server/Server/DBManager.cpp
Zombie AI
- AI manager and agents
Game/Client/AI/AIManagerImpl.cpp - NavMesh graph
Game/Client/AI/NavMeshImpl.cpp - Time-sliced pathfinding
Game/Client/AI/PathManager.cpp - Goals and perception
Game/Client/AI/GoalZombieThink.cpp
Content pipeline
- Model converter
Tools/AssimpConverter/AssimpConverter/AssimpConverter.cpp - World exporter
Tools/UnrealMapExporter/Source/ObjectSaveSystem/JsonSaveManager.cpp - Game data files
Other components
- Player
- Unreal editor
- DCC tools
Connections 27
- Player → Login and rooms: starts session
- Login and rooms → Client networking: sends requests
- Login and rooms → Lobby and ready: enters room
- Lobby and ready → Client networking: readies players
- Lobby and ready → Survival stages: starts match
- Client networking → IOCP networking: exchanges TCP packets
- IOCP networking → Sessions and rooms: manages connections
- Sessions and rooms → Packet handling: dispatches packets
- Packet handling → Game loop: submits gameplay
- Game loop → Authoritative world: updates world
- Game loop → Zombie simulation: updates zombies
- Zombie simulation → AI manager and agents: creates agents
Game/Server/Server/ZombieManager.cpp - AI manager and agents → NavMesh graph: loads navigation
- AI manager and agents → Time-sliced pathfinding: manages searches
- AI manager and agents → Goals and perception: updates behavior
- Combat and checkpoints → Survival stages: drives checkpoints
- IOCP networking → SQL login store: authenticates login
- Client networking → Client scenes and actors: delivers game events
- Client scenes and actors → Render graph: renders scene
Game/Client/Client/RenderManager.cpp - Render graph → Render passes: executes passes
- Client scenes and actors → Resource loading: loads resources
- DCC tools → Model converter: provides assets
- Model converter → Game data files: converts models
- Unreal editor → World exporter: exports world
- World exporter → Game data files: writes world data
- Game data files → Resource loading: feeds resources
- Game data files → NavMesh graph: provides NavMesh