Show HN: Moongate – Ultima Online server emulator in .NET 10 with Lua scripting
I've been building a modern Ultima Online server emulator from scratch. It's not feature-complete (no combat, no skills yet), but the foundation is solid and I wanted to share it early. What it does today: - Full packet layer for the classic UO client (login, movement, items, mobiles) - Lua scripting for item behaviors (double-click a potion, open a door — all defined in Lua, no C# recompile) - Spatial world partitioned into sectors with delta sync (only sends packets for new sectors when crossing boundaries) - Snapshot-based persistence with MessagePack - Source generators for automatic DI wiring, packet handler registration, and Lua module exposure - NativeAOT support — the server compiles to a single native binary - Embedded HTTP admin API + React management UI - Auto-generated doors from map statics (same algorithm as ModernUO/RunUO) Tech stack: .NET 10, NativeAOT, NLua, MessagePack, DryIoc, Kestrel What's missing: Combat, skills, weather integration, NPC AI. This is still early —
Continue reading on Hacker News
Opens in a new tab




