Show HN: Moongate – Ultima Online server emulator in .NET 10 with Lua scripting
Project & Tech Stack
- Built as a modern Ultima Online server in .NET (current versions) with Lua scripting via MoonSharp.
- Uses NativeAOT to produce a single native binary for fast startup, predictable performance, and simple deployment (e.g., Docker).
- React-based admin UI was largely generated with AI assistance; developer dislikes front-end work.
Networking, Sectors & Performance
- World is partitioned into sectors with delta-based synchronization.
- When entering a sector, only newly visible sectors are synced; nearby sectors may be fully refreshed due to client view limitations.
- Outgoing packets are queued so the main loop isn’t blocked, but packet bursts in busy areas are still an open tuning problem; ideas like prioritization and spreading sync over multiple ticks are on the roadmap.
- Other developers compare/contrast with their own frustum or partition-based approaches.
AI Tools in Development
- AI (e.g., “Codex” / ChatGPT-like tools) used heavily for tests, boilerplate, and React UI.
- Some skepticism about using AI even for community interaction; project owner clarifies direction and design are human-led, with AI as a coding assistant.
Nostalgia & MMO Design Discussion
- Strong nostalgia for UO-era private shards and tools (Sphere, UOX3, RunUO, ModernUO, etc.); many credit UO emulator tinkering with sparking their programming careers.
- Long discussion of UO’s unique qualities: open PvP, true loss, bugs treated as features, housing in the shared world, rich emergent stories, and “commoner” roles like bakers, miners, decorators, and tamers.
- Comparisons drawn to EVE Online, Star Wars Galaxies, Tibia, Haven and Hearth, and UO Outlands; sentiment that most modern MMOs are safer, more “theme park,” and more homogenized.
Griefing, Risk & Player Culture
- Debate over whether UO-style freedom and griefing produced magic or simply drove away most players.
- Some argue high-risk shared worlds are culturally and commercially untenable now; others believe the loss of friction killed the genre’s depth.
Recreating UO Today
- Many doubt the original experience can truly be recreated due to modern player expectations, ubiquitous guides, and market pressures.
- Nonetheless, there is clear enthusiasm for hosting family shards, niche servers, or experimental worlds.
Terminology & Legal Concerns
- Extended debate over “server emulator” vs. “server” or “protocol reimplementation”; some see “emulator” as technically misused but culturally entrenched in MMO circles.
- IP risk is raised but others note UO emulators have existed since the late 1990s without aggressive takedowns, and may even help keep interest in the original game alive.
Future Ideas
- Interest in plugging LLM-driven NPCs into Lua, giving merchants and quest-givers dynamic dialogue, memory, and world-altering interactions.
- Suggestions for tutorials and “family-friendly” presets (e.g., faster skill gain, low-grief settings) for casual/private servers.