And funny you mention Mangos — the WoW emulation scene was a huge inspiration for UO server development back in the day. Different game, same passion for reverse-engineering and rebuilding these worlds. The
community-driven server scene is one of the best things about MMO gaming in general.
Thanks for the kind words and good luck with your WoW adventures! :*! - Sector enter sync only sends the delta sectors the player wasn't already seeing, so a simple move into an adjacent sector doesn't resync everything
- Sectors close to the player (within 1 of center) are always resynced because the UO client silently drops items beyond its visual range (~18 tiles), so you need to re-send them when the player comes back
- The outgoing packet queue handles the actual send, so the game loop isn't blocked waiting for network I/O
That said, there's definitely room for prioritization (mobiles first, then nearby items, then distant items) and spreading the sync across multiple ticks instead of one burst. It's on the roadmap.
On NativeAOT — honestly, both. The single-binary deployment is great for Docker (small image, instant startup), but the real win is predictable performance. No JIT warmup, no tiered compilation surprises
mid-session. For a game server where you care about consistent tick timing, eliminating that variable is worth it. The tradeoff is you lose some runtime flexibility, but source generators fill most of that gap
(packet registration, serialization, etc.). That said, I'll take the nitpick as a compliment :) means you actually read the project description. Thanks for the kind words!