Moongate: Modern Ultima Online Server Emulator in .NET 10 with NativeAOT and Lua Scripting

Moongate is a new open-source Ultima Online server emulator built from scratch in .NET 10 with NativeAOT support, Lua scripting for item behaviors, and a full packet layer for the classic UO client — released as a Show HN on March 6, 2026 with 66 points and 40 comments. Unlike existing projects such as ModernUO and RunUO, Moongate takes a strict network/domain separation approach, using an event-driven game loop, Kestrel-based HTTP admin API, a React management UI, source generators for automatic DI wiring, and MessagePack-based snapshot persistence. The project demonstrates an architectural pattern that is directly applicable to real-time server infrastructure work beyond gaming, particularly for developers interested in NativeAOT deployment, Lua/C# scripting integration, and spatial sector-based delta synchronization.

Key Takeaways

  • Stack: .NET 10, NativeAOT (single binary output), NLua Lua scripting, MessagePack persistence, DryIoc DI, Kestrel HTTP admin API + React UI — full login/movement/items/mobiles packet layer for classic UO client
  • Spatial world partitioned into sectors with delta sync (packets only sent when crossing sector boundaries); source generators handle automatic DI wiring, packet handler registration, and Lua module exposure
  • Show HN: 66 points and 40 comments on March 6, 2026; GitHub at github.com/moongate-community/moongatev2; combat, skills, weather, NPC AI not yet implemented

Original source: Hacker News / GitHub