Lakona
Build realtime C# game servers
share code with Unity and Godot clients
A C# full-stack game server framework for shared client/server contracts, typed RPC, actor-owned state, reliable push, live logic updates, and runtime diagnostics.
Why Lakona
Built for live multiplayer games
No protocol drift
Server and Unity/Godot clients compile the same C# RPC contracts, DTOs, and stable state types.
Hot-update live logic
Reload C# gameplay behavior while long-lived player, room, and match state stays alive.
Actor-owned state
Rooms, players, lobbies, and matches process messages sequentially instead of fighting shared locks.
Inspect live servers
Use readiness checks, framework logs, and loopback diagnostics to inspect process, hotfix, actor, session, and recent event state.
Scale deliberately
Run everything in one process during development, then split nodes and route actors explicitly in production.
Flexible transports
Choose TCP, WebSocket, KCP, loopback, JSON, or MemoryPack without binding gameplay code to one wire format.
Show, Don't Tell
Reload rules. Keep state alive.
[HotfixBehaviorOf(typeof(RoomActor))]
public static partial class RoomBehavior
{
public static ValueTask<JoinRoomReply> JoinAsync(this RoomActor room, JoinRoomRequest request)
{
room.Players.Add(request.PlayerId);
return new(new JoinRoomReply(true, room.Players.Count));
}
}
Documentation
Start building in minutes
Create and run a project
Install the CLI, generate a Unity or Godot starter, validate it, and start the server.
Read the guide →Debug with observability
Use logs, readiness checks, and local diagnostics to inspect a running game server.
Read the guide →Read the architecture
Understand sessions, reliable push, hotfix, actors, cluster routing, and runtime guardrails.
Read the guide →