Lakona

Build realtime C# game servers

Build with shared C# contracts, stateful actors, and live logic updates. Choose the database that fits your game and your team — no MongoDB requirement, no database lock-in.

The freedom to build your game

🖥️

Start with a complete workspace

Hub or Tool creates the shared contracts, server host, hotfix project, and Unity or Godot client together.

🧩

Share C# contracts

Client and server compile the same RPC interfaces, DTOs, callbacks, and protocol types.

🔥

Reload behavior, keep state

Rebuild replaceable C# game behavior while long-lived player, room, and match state stays alive.

🗄️

Your game, your database

Integrate PostgreSQL, MySQL, MongoDB, or another database with your own .NET clients and data access layer. Keep your schema, queries, and familiar tools. Lakona imposes no database or ORM.

🚀

Start small and grow deliberately

Run a complete game server locally, then add sessions, reliable push, routing, and cluster deployment as your game grows.

Reload rules. Keep state alive.

RoomActor.cs
// Server.App: durable state stays here
public sealed class RoomActor : Actor<RoomId>
{
    internal RoomState State = new();
}
RoomBehavior.cs
// Server.Hotfix: replace behavior while state stays alive
[HotfixBehaviorOf(typeof(RoomActor))]
public sealed partial class RoomBehavior
{
    public async ValueTask<RoomSettlementResult> CreateAsync(
        RoomActor self,
        RoomCreateRequest request,
        CancellationToken cancellationToken = default)
    {
        self.State = new RoomState { RoomId = request.RoomId };
        ...
    }
}