132 comments

  • haolez 11 hours ago

    UO was the only game that I've ever played where you had "commoner" players. A lot of players failed to scale up, or to obtain top notch equipment. But the game was fun even for underpowered players, so they kept playing. The really powerful players were famous, like celebrities.

    It's very different from modern games, where each player looks like the fantasy version of a Marvel super hero.

    • squidleon 11 hours ago

      This is such a good observation. UO had a real economy and social hierarchy because power wasn't handed to you. You could spend months as a fisherman or tailor and still have a meaningful experience. The gap between a grandmaster swordsman in full plate and a guy selling fish at the Britain bank was enormous, and both of them were having fun.

      Modern MMOs are theme parks where everyone gets the same ride (with pay per win). UO was a living world where your role emerged from what you chose to do, not from a quest marker telling you where to go next.

      • codezero 10 hours ago

        My friends mocked me for spending months as a llama herder, until I could tame dragons and grief people by pulling them through portals.

      • eclipticplane 9 hours ago

        Core memories of carefully setting my fisherman on a boat with `ezmacro` before I got ready for school. I'd come home to either a boat full of fish (to later cook into fish steaks), or be dead from a player killer who found my boat and killed my macroing guy to try and steal the boat.

        • SenHeng 8 hours ago

          I always forgot where I parked my boats. Or that I even had one.

          • faidit 6 hours ago

            I always checked the harbor for unlocked boats and took them on joyrides.

      • jghn 3 hours ago

        > UO had a real economy

        Sort of. They disabled big parts of the "real economy" in beta. Turned out that players didn't like it that NPC shopkeepers kept standard working hours and didn't want to buy their 5000 skullcaps from their skill grinding.

        Likewise they even more quickly got rid of the real ecology feature, both because it was computationally intensive but also because players would strip mine the ecology.

        • chongli an hour ago

          They disabled NPC participation in the real economy. This gave way to the real player economy which took place in player-run shops built inside player-owned and customized housing.

          Players didn't buy those 5000 junk skullcaps either. They wanted stuff that was actually valuable, which meant those practice items were recycled or thrown in the trash.

          I remember when the UO team added trash barrels and created the "Clean up Brittania" event. The game's servers were struggling to deal with large numbers of these junk objects that people littered on the ground so the devs decided to enlist the players' help cleaning it up, just like a real-life public park cleanup project! Players got rewarded special items based on the amount of junk they cleaned up.

          • jghn an hour ago

            Right. On my server I actually had one of those larger 2-room houses right at the crossroads as a vendor shop, so am familiar with what was there.

            But that's what I meant by "sort of", as it wasn't the pure simulation that was originally promised. Another example was that all the early dupe bugs created a real need for serious gold sinks that weren't planned into the original design.

            Even WoW had a player economy via the auction house, and that's about as dumbed down as an MMO gets. Though I agree that the evolution of the player run markets, plus the eventual vendor support added by DD & crew were cool.

      • mbonnet 2 hours ago

        This is why I enjoyed EVE Online. You had to earn it, and if you lost it, that was that.

      • haolez 11 hours ago

        If starting from scratch, what would an MMO need to replicate that?

        I've experienced it first hand, but I can't grasp why it worked well like it did.

        • codezero 9 hours ago

          I say this unironically, but a lot of bugs. The bugs are what made UO fun, and the team often treated the bugs as features because the community demanded it. The most famous example (I think) is the "true black" dye. Another bug I ran into was when a certain shade of brown hair got turned "true white," I was able to petition a game master to let me keep my true white hair after the bug was fixed because I made it part of my "persona" at the time.

          Also there was a whole niche industry of collecting non-droppable items which spawned in the game world but were not fixed on the map (we think they were added post map creation), so they could be "pick pocketed" off the surfaces they were on and taken back to your home every wipe. There was a huge rush after servers came back on after a wipe for folks to go find the most rare items to stock up their towers and keeps.

          • eclipticplane 9 hours ago

            UO came out when I was in high school. I would time my morning routines around the server reboot to grab those special items, some of which didn't respawn during routine reboots.

            The bugs were part of the game culture. The first time that you learned that items in the bottom right corner of your first house -- because they could be stolen through a bug even if your house was locked -- was something everyone jointly went through.

            UO also had maybe the closest thing to a true player economy than any game. There was a legitimate path to making money (and having fun) to just mining ore and selling ingots. You would sell your iron bars in an unattended vendor to other players at your own price. Those bars would get bought by a blacksmith player to produce armor that they sold to other players... who would buy it to go adventuring in the dungeons.

            • mwigdahl 8 hours ago

              How does the economy compare with the structures in EVE Online?

              • eclipticplane 7 hours ago

                It was smaller scale and simpler, easy to understand without spreadsheets. Even a middle school student could understand their slice of the economy.

        • shiftpgdn 7 hours ago

          I still think 90% of what made UO unique is the fact there was no Google or central repository of expert knowledge. Yes, UOStratics existed, but it wasn't perfect. A lot of the fun was in the fact basically nobody knew the BEST way to play, and therefore everyone was just doing whatever they thought was fun.

          • jghn 3 hours ago

            I remember spending so much time every patch day with other people on my server where we just tried out different combinations of spells, weapons, armor, tactics to see what worked this week.

          • NoOn3 7 hours ago

            If someone create a new MMORPG in which rules changes a little every day or several days in unpredictable manner then no one will be knowing the BEST way to play or at least harder to find the BEST way. But maybe there will be no balance.

        • vunderba 10 hours ago

          You’d need to start with the premise that combat shouldn’t necessarily be the focus of the game. Work on making other aspects (farming, hunting, taming animals, etc) to be equally compelling mechanics.

          • mapt 10 hours ago

            They're by no means equally compelling. But they are viable ways to generate currency, you progress in them over time as a specialist, they feed back into the player economy performing tasks that other people want performed, and they are, importantly, in the same world, on the same shard. I know not to go near Orc Camp because there's a group of player killers down there, despite the fact that there's a rich Agapite vein running through the mountains near the entrance that I would love to mine and make armor out of. Back to the relative safety of Minoc for me, however crowded. In some timeline two weeks in the future, I band together with a bunch of other players (most of whom just want to farm orcs) to kick them out. Territorial control, even without any formal mechanics of territorial control, is closely correlated with narrative and socialization; I wouldn't have met any of those players if we were all on our own separate instance.

            Eve Online accomplished something a little more combat-focused, but similarly diverse in playstyle, mostly by dint of having a single large persistent world-shard with minimal functional instancing.

            • haolez 5 hours ago

              > having a single large persistent world-shard with minimal functional instancing

              What do you mean by this?

              • throwway120385 5 hours ago

                Eve has every player on the same global system, and "shards" only by running the code for a particular system on a particular server. As a result, if you're in Eve Online every other player has some influence on you however minute.

          • thewebguyd 10 hours ago

            > to be equally compelling mechanics.

            I'd go a step further, not just equally compelling, but it'd be interesting to see some games, particularly RPGs, where combat is effectively optional. One of many ways to level up your character and complete the objectives of the game.

            There aren't many out there where you could have a complete pacifist playthrough, for example, and if there is, you usually still have to resort to theft, or use of paralyze & calm spells.

            In most RPGs your professions (farming, herbalism, mining, etc.) are just secondary skills to help you progress in combat, and all the good stuff comes from killing enemies.

        • nzeid 8 hours ago

          UO didn't have a global concept of a level. You had a maximum number of points per character, which you allocated to skills by doing the corresponding activity. This is how you can skill cap your character without killing monsters or players.

        • jghn 3 hours ago

          The big problem that UO ran into was that it turned out the people who liked what UO was is a pretty niche audience. In a lot of ways Everquest was a direct rejection of the features that folks like me think of as the golden years.

          But to answer your question, there are three different clusters but contradictory sets of answers. And this was the problem.

          1) It was a sandbox game developed with a focus on recreate a living world. A real ecology, real economy, skill based character system instead of classes where your skills tracked what you actually did, a focus on all sorts of roles - part of the original pitch was players could be the town blacksmith or whatever. I knew someone who spent several months playing an interior decorator for instance. Some people, such as myself, were attracted to this.

          2) The same freedoms from #1 attracted PvP style gamers, especially from the then nascent FPS style games. Griefing, rampant slaughter, that sort of thing.

          3) It also attracted PvE players who weren't at all interested in a realistic world and demanded the sort of conveniences we see in modern MMOs: mobs pinned to locations, predictable drops, predictable quest lines, instancing, optional PVP, etc.

          You'll note that most of the people you see reminiscing online are from groups #1 and #2. Group #3 by and large hated the game and left as soon as they could. And your typical group #1 player eventually got annoyed at group #2 and just left altogether.

          It's a hard problem to recreate UO because of this tension. Without allowing group #2 to exist you don't have the same environment. But by allowing group #2 to exist, they'll eventually take over and chase away everyone else.

          At the end of the day, UO was a game that was simply a moment in time that can never be recreated. Too much of what made it great was due to the fact that it was a new thing.

        • havblue 9 hours ago

          Is scarcity part of it? Making sure there are some jobs people have to do that don't involve combat but still drive the in-game economy?

          • haolez 5 hours ago

            I think a component of it is a zero sum model. Like, not everybody can be incredibly successful. Not sure how to implement this, though.

        • NDizzle 11 hours ago

          Well, it was kind of the only game in town. Sure, you had Dark Sun Online and Meridian 59, but in 96/97 you were playing UO if you liked the idea of online worlds.

          I think the barrier to entry is the equivalent of several complete, fun, balanced single player games operating together in balanced harmony. Not impossible, but highly improbable.

          • haolez 5 hours ago

            Btw, I've never met a player of Meridian 59, but seeing YouTube videos about it, it might have been popular in my community if we had access to it at the time. Looks super interesting, although it didn't age well, of course.

            • NDizzle an hour ago

              Really. I wonder if there are any historical videos about it. I have stories, but they are mostly exploit stories…

        • deadbabe 10 hours ago

          It’s largely impossible now, it’s not a technical problem, it’s cultural.

          UO forced many different types of players to coexist in the same world that simply do not mix anymore. You had peaceful dungeon crawlers and craftsmen coexisting alongside killers, rapists, thieves (wild that stealing items from other players inventory was actually a thing, probably unheard of in today’s MMOs).

          The friction between these different types of players is where the magic happened, it’s what created real conflict and higher stakes in the world. When you stepped out of your house, there was always a risk that killers could be lurking ready to murder you and loot your house dry. And if you forget to lock the door, someone passing by will clean your house out for anything valuable.

          In a way, old school UO was a true Middle Ages type MMO, everything since then has only grown more civilized, more enshittified. People don’t want to pay for a world that doesn’t give a shit if they have a bad experience. The truth is though there was no “bad experience”, it was all just an experience.

          • codezero 9 hours ago

            Oh boy, you reminded me of the tag teamers where a pick pocket would steal your bag of runes (that you use to teleport to safety), then attack you while you try to fumble a teleport back home, only to find you can't locate your bag of runes.

            The defense to this was to carry dozens upon dozens of nested bags, because each bag opening could trip the pick pocket detection.

            Also the defense to your home was to literally circle it in tents/buildings creating an empty courtyard that you could only teleport into with a rune you kept safely in your bank box. There were some warping bugs that would allow you into a courtyard though, or even through the front door (circle of visibility bug, as well as floor tile warping).

            • knicholes 8 hours ago

              Stealing black pearl was great because it prevented recall AND energy bolt!

          • haolez 9 hours ago

            These are the words and thoughts that I couldn't organize myself. Thank you for that. Fully agree.

          • tagami 8 hours ago

            "bank guards vendor buy"

          • stackghost 10 hours ago

            >The truth is though there was no “bad experience”, it was all just an experience.

            I mean there absolutely were bad experiences. Griefing drove lots of players away, which is why they implemented Trammel.

            • mapt 10 hours ago

              You approach that from a game design perspective to reduce the reward and set bounds on how much fun a player is allowed to destroy maliciously and what kind of counterplay is available, but if you completely eliminate it the world loses a lot of its drama. Conflict drives narrative.

              • jghn 3 hours ago

                I know Raph Koster has spent a lot of time since he designed UO thinking about this problem. I haven't looked at his current project but am curious to what extent he's licked this issue.

            • deadbabe 10 hours ago

              Grief is a natural consequence of player freedom, but it’s not worth giving up that freedom for some safety.

              • Barrin92 5 hours ago

                turns out it is for a lot of players which is why the kind of game is extinct. Just like in the real world, there's a fine line between risk and adventure and walking into something that looks like Liu Cixin's the Dark Forest.

                You want enough friction to generate interesting interactions, you don't want so much freedom that the worst exploiters start to crowd out every honest player, because then, just like in a rundown lawless neighborhood, you're getting a lesson in the broken window theory and you're only left with the scammers.

    • reactordev 11 hours ago

      Being a legendary blacksmith was the whole point. Where crafting was the end game state for crafters. The gear produced was max durability, max dmg, max armor rating. The furniture for your castle had to come from someone, somewhere.

      The whole point of the game was to live in this fantasy world, not beat it. There were no quests. No antagonist. Just good and evil and everyone in between. For once I wish a studio would take this to heart and build something like that again. Minecraft exploded due to this sandbox nature. However, you still got to give players a shovel and a bucket.

      • tarellel 11 hours ago

        UO Outlands has been pretty popular for a few years. They’ve implemented a lot of custom aspects (specialties), craft, new dungeons, land, as well as weekly quests and events. My brother and I play it a few hours a week. It’s incredibly popular for the nostalgia and its player base seems to be pretty consistent. It reminds me of early UO where your exploring, learning, and dying a lot. And there tends to be players everywhere you go.

        • reactordev 9 hours ago

          A decade or more ago I ran a custom shard with a custom map and world. There was no “map”. No guide. No quests. Tons of dungeons and bad guy areas. Shops. Towns. Etc. I also contributed to RunUO. I’m a fan of UO:Renaissance. I still have the CD and the old statics files.

    • _doctor_love 10 hours ago

      UO was the best online game for me. All others stand in its shadow. It was the most "free" in terms of what you could do and the appeal was the non-gamification.

      I loved Everquest and World of Warcraft but those didn't feel "raw" enough for me.

      The Realm is my dark horse submission for best MMO. (Yea, yea, yeah Meridian 59 and Underlight too)

      • knicholes 8 hours ago

        Right!? Skill loss for dying while red ruined everything for me. Ganking and being ganked is what gave that adrenaline rush.

      • throwway120385 5 hours ago

        I still remember those dumb combat clouds.

    • general_reveal 7 hours ago

      Sounds like Vanilla WoW before Blizzard killed 40 man hardcore raiding. Only a few guilds on the whole server had the top gear.

    • HanClinto 4 hours ago

      I never played it, but from what I've heard, it sounds like the original Star Wars: Galaxies MMO (before they added all the NGE stuff?) had fairly mundane / commoner roles as well.

      It sounds like a fan-driven reboot of this game has a fairly decent following, in a very similar way to what UO experiences? It feels like there is still player desire to have mundane sorts of immersive RPG experiences in this way.

    • knicholes 8 hours ago

      I'll forever chase the dragon that is the joy of playing UO. I want to quit my job and play it 24/7.

      • reactordev 5 hours ago

        Which ones? The wyrms or the big baddies? Dragons one-shot. I remember you needed protection, resistance to fire, and a healer/mage who could heal you consistently between volleys to stand a chance at taming, let alone killing one.

        I think this changed during the Mondrian era but in my favorite era, SA/Renaissance, those were the baddies that made you run.

        Lich King as well.

        • knicholes 4 hours ago

          Oh, lol, not a literal dragon. "Chasing the dragon" refers to inhaling vaporized drugs (like heroin or fentanyl) from heated aluminum foil, creating a moving, "dragon-like" trail of smoke. It is also an idiom for the elusive, futile pursuit of a high that matches the initial, intense experience, which becomes impossible due to tolerance.

          • reactordev 3 hours ago

            Damn, I need to go outside…

    • SenHeng 8 hours ago

      Was it actually that hard?

      I played on the JP/KR asian servers in a PK/APK/PVP guild so maybe it was just my bubble but it was pretty common to see players with 7 skills maxed out. If I remember correctly

      - sparring

      - swordsman or fencing

      - magic

      - magic resistance

      I don't remember the rest. It's not quick or easy like modern games, but we would regularly power level each other's alts and it took maybe 2 weeks to max out all 7 skills? We had a bear trapped in the guild house so we could power level wrestling and other combat skills.

      • tyjen 5 hours ago

        Once you figured out a training system, it was easy to pump out 7x GMs. UOAssist was incredibly helpful to reduce the tedium and automate it.

    • tyjen 9 hours ago

      My preferred methods at the time, sneaking/breaking into houses, stealing, and ganking/PKing unsuspecting souls (emphasis on graveyards, dungeons, and miners). Stealing items, often the offensive spell reagents, out of someone's bag before a fight made for no shortage of quality interactions.

      It was a sad day when UO introduced Trammel.

    • axus 11 hours ago

      Haven and Hearth has "sprucecaps" and "hermits". The elite in these games arise when they are willing to work in groups, willing to use violence against isolated players, and willing to use automation.

      Haven't put any time in MMORPGs for 15 years, but aren't there still "exclusive" guilds that do things regular players can only aspire to?

    • theultdev 11 hours ago

      Yup. Tibia you had this too. People begging in the depot for gold and "itens plx"

      • squidleon 11 hours ago

        I've never heard of Tibia, I'll check it out!

        • theultdev 11 hours ago

          I haven't played in 10 years or so, but it's still going.

          That game was my life. It's how I learned how to code among many other skills.

    • wellthisisgreat 10 hours ago

      yes, this really nails it. UO didn't chase "endgame content" which, imo, is the bane of today's multiplayer games. Designers expect everyone to max out and reach the end of the road so everyone is the same in the end.

      • jghn 3 hours ago

        This is a big cultural issue. UO was not designed to have a goal. Most players demand they be presented with a goal.

        In an odd sort of way I suspect UO would have been better off had it come out a year or two earlier. It'd not have been remotely as popular, but wouldn't have attracted such a large crowd. And because they drew from a much larger crowd than the intended audience there were a lot of people who got disgruntled. But it makes sense because the game was literally not designed with their desires in mind.

      • doctorwho42 8 hours ago

        > to reach the end of the road...

        This is honestly the best way I have ever heard this described! It really is that 'end of the road' feeling that I get, once I have experienced a large chunk of the game loop, that has me disconnect from games and feel hollow.

        This is probably why I keep going back to huge modpacks for Minecraft with a friend. It is so open and expansive, with so much to do, that you never really feel like it's the end... You just feel like you have had your fill, until next time.

        I personally only got to watch my older brother play UO, and then he brought me into the launch of WoW which was a pivotal experience. But the end game always felt like it falls flat.

    • nonethewiser 10 hours ago

      I can relate to this part in terms of visuals:

      >It's very different from modern games, where each player looks like the fantasy version of a Marvel super hero

      But isn't this true for most games?

      >UO was the only game that I've ever played where you had "commoner" players. A lot of players failed to scale up, or to obtain top notch equipment.

      I guess the main example I'm thinking of is Path of Exile. There is such a massive difference between your average player and the top tier. Or even not the top tier but enthusiasts.

      I mean almost by definition most people wont have top notch equipment?

    • simlevesque 11 hours ago

      I think you'd like Arc Raiders.

      • sanex 8 hours ago

        It seems to scratch that same itch for me for some reason. The constant inherent danger, the different skill levels of raiders mixing together and yet people have fun and lose their stuff and it's a blast to play.

      • squidleon 11 hours ago

        Too old for arc raiders :D :D :D !

  • nebezb 11 hours ago

    Wow! This is no small feat... am I reading the contribution graph[0] correctly, you've done all this yourself?

    This endeavour sounds a whole lot like a server emulator for Infantry Online that was started by an incredibly talented developed 16 years ago ("aaerox"). I found the original svn commit on Sourceforge [1]. It's since moved to GitHub but has been active for 16 years and it has much of the same functionality you've already built, but done by more than a dozen developers over a decade-and-a-half.

    Kudos to you. You've gotta explain how you've managed to do so much all by yourself.

    [0] https://github.com/moongate-community/moongatev2/graphs/cont... [1] https://sourceforge.net/p/infserver/code/1/

    • squidleon 11 hours ago

      So: I took most of the infrastructure from the my first attempt at moongate (https://github.com/moongate-community/moongate, which failed miserably along with https://github.com/tgiachi/Prima). From there, I had a good starting point to quickly build the foundations. I had already done the Lua scripting part in another project (https://github.com/tgiachi/Lilly.Engine). Codex helped me with all the testing, implementing functionality and creating tests, so at least I have a good sparring pattern. For the data import part (which I called FileLoaders), I took the logic from ModernUO. For the items part, I created a script (scripts/dfn_*.sh) to import items from POL! Thanks for the compliments! The way I am, if I fixate on something, it becomes an obsession!

      • doctorpangloss 8 hours ago

        while i understand the motivation to have codex like, do this problem for you, that's fine. what is the ethos of corresponding with people on Hacker News through the chatbot too? like i get that this particular comment i am replying to, you authored, but ChatGPT authored your post, and your documentation, and some of your other comments.

        the big picture question is, if you can mess around with the bot to do anything, why spend it on this game? why not make your own original game instead?

        • squidleon 6 hours ago

          the Hacker News post itself was written by me.

          I do use ChatGPT sometimes as a tool while working on the project (similar to using documentation, Stack Overflow, or an IDE assistant), but the post and the project direction are my own. So what?

    • squidleon 11 hours ago

      I forgot to mention, the entire web part in React was done by Codex. I hate developing frontends!

      • freedomben 9 hours ago

        Did you have to massage/guide the UI quite a bit? I've had terrible luck with codex, claude, and gemini at doing frontend. It's always so close but so far at the same time

        • squidleon 9 hours ago

          I build first Web API then create a plan with codex. But I choose Web Api endopoins!

        • gopher_space 8 hours ago

          I just have them stub out something I can open in a more specialized tool. Sometimes I can use the results as an example.

  • jdwithit 8 hours ago

    Very cool work! This is giving me a big nostalgia hit, as a LONG time ago (when UO was a current game ;) I maintained a C++ UO emulator called UOX3. To be clear I absolutely did not initially develop it or even write any particularly large or difficult features. I just took over maintaining the codebase, taking patches and cutting releases, managing the community, that sort of thing. The original author decided to step away and I had apparently been enough of a busybody in the tool's community that he tapped me to lead it for a while. I also helped some Canadian guy with money, hardware, and bandwidth to burn run a private server based on UOX. Both were delightful experiences and I learned a ton.

    In hindsight I am very glad Origin was not overly litigious and didn't send the FBI to my house for "hacking" their game.

    • squidleon 8 hours ago

      That’s awesome to hear! Actually UOX3 is one of the inspirations behind Moongate. The way it approached the server architecture and scripting was really interesting and it influenced some of the ideas I’m exploring in the project.

      Projects like UOX3 are a big part of the history of the Ultima Online emulator scene, so it’s great to hear from someone who helped maintain it.

  • godrae369 7 hours ago

    Hey man, read your breakdown on the Moongate architecture. Using Source Generators for DI and Lua for behavior decoupling so you never have to recompile C# is a beautiful setup. Strict domain separation is the way to go. I saw your 'What's missing' list includes NPC AI. I build AI agent workflows. Instead of building traditional, boring finite-state machines for NPCs, what if we plugged an LLM microservice into your Lua scripts? We could give key NPCs actual contextual memory and dynamic dialogue. Players could physically type to a merchant, negotiate prices, or ask for rumors, and the NPC would generate a response strictly within the lore of Ultima, triggering the correct Lua events (like handing over an item or opening a door). Since you have the packet layer and Lua environment solid, the integration would be incredibly clean. I'd love to contribute and map out the AI logic for this if you're open to exploring it.

    • mungoman2 7 hours ago

      This is a very fun idea. Would also be very interesting to see if one could have a system where talking to an NPC could alter the world.

      One maybe obvious way would be that asking for rumors will actually creates the scenario that the NPC describes.

    • squidleon 7 hours ago

      I am interested please write me on GitHub!

  • swaminarayan 10 hours ago

    Very cool project. MMO server codebases tend to accumulate a lot of architectural complexity over time, so starting fresh with a cleaner separation between networking and game logic makes a lot of sense.

    Curious about the sector-based delta sync — how do you avoid packet bursts when a player enters a busy area with lots of items and mobiles?

    Also interesting to see NativeAOT used here. Was that mainly for deployment simplicity or performance?

    • squidleon 10 hours ago

      Thanks! Yeah, one of the main motivations was exactly that — after years working with legacy UO codebases where networking, persistence, and game logic were deeply intertwined, I wanted to see what a clean-slate approach would look like with modern .NET.

      On sector sync bursts — this is something I'm actively tuning. Right now when a player enters a new sector, we sync all ground items and mobiles in the surrounding sectors (configurable radius). For busy areas that can mean a lot of packets at once. The current approach is:

        - 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.).
    • serf 10 hours ago

      >Curious about the sector-based delta sync — how do you avoid packet bursts when a player enters a busy area with lots of items and mobiles?

      doesn't look like there is much going on to protect packet bursts there aside from smart-ish proximity sector loading. the work is done at boundry.

      dove into it because i have been recently working on frustrum spawning to reduce net burst in a similar project, was kind of curious if something similar was used as a method to pre-warm the upcoming sector but I didn't catch anything.

      fun and easy to read. thanks op and parent for getting me to look through it.

  • MisterTea 9 hours ago

    This must be an omen given how I just this week watched a bunch of the Majuular videos on youtube (Highly recommend them) about the Ultima series of games, particularly Ultima Underworld The Stygian Abyss, and Ultima VII and VIII. That lead to me buying Underworld and VII last night on GOG as feel like I missed out on something wonderful in the 90's (Also need to grab System Shock and Crusader no remorse.)

    My brother and I bought IX when it was released but it was a buggy nightmare so we gave up and never experienced Ultima proper. However, my brother and his friend got into UO and played a ton. His friend was a greifer at the time going by the name SirDarkSpell and supposedly made a bit of a name for himself. This was around 2000 or so? I bet the two of them would love to hear about this project as both of them have fond memories of UO.

    Anyway. Might just throw my weekend into the Stygian Abyss...

    • mkehrt 9 hours ago

      Ultima Underworld is a fantastic game.

  • onlyrealcuzzo 12 hours ago

    I love your logo.

    Do you have a YouTube that shows off the progress of what's complete?

    • squidleon 12 hours ago

      Thanks! The logo was a happy accident. I wanted something simple that felt like the moongates (so and so :) from the original game. I'm not really a video person. But here's what's working today: login flow, character creation, world movement with delta sector sync, auto-generated doors from map statics (that actually open), Lua scripting for item behaviors, snapshot persistence, and a React admin UI for server management.

      I'll probably add a short demo gif or video to the README at some point, but for now the best way to see it is to clone it and run it

  • zorm 6 hours ago

    Very cool to see! I was active in the UO emulator communities back in the day but mostly with SphereServer. It is interesting to see here in the comments how many people were inspired to programming because of UO!

    All the recent LLM advances would make for very interesting and very fun NPC interactions in a MMORPG today too. Even small player community servers could be viable long term because of the ability to seed complex interactions with NPCs into on-going story lines.

    • eclipticplane 6 hours ago

      > SphereServer

      Throwback!

      Pretty sure I still have the source to SphereServer sitting somewhere on my NAS. It was my first exposure -- in early high school -- to coding in a group and operating a Linux server.

  • elevaet 8 hours ago

    Cool, nice work!

    I've been building a MORPG version of a kind of Ultima 3.5 on the side in spurts for the last 5 years using Go, postgres, and React on the frontend. Top view tile graphics, old school keyboard control/commands. It's pretty janky still, but I hope to do a Show HN at some point.

    I think I need to take some inspiration from you and partition the world into sectors, I have a n^2 scaling problem right now as there are more PC and NPC in the world.

  • p0w3n3d 12 hours ago

    I remember PvPGN. I believe it's still out there https://github.com/D2GSE/pvpgn-server

  • kethinov 12 hours ago

    I'm a fan of UO and I love seeing more projects like this. Nice work!

    Obligatory nitpicky aside, a time-honored tradition of HN:

    I've long been irritated by the use of the term "server emulator" in gaming contexts. Technically these projects are just reimplementations of a proprietary networking protocol. Nobody calls Samba a "server emulator" because it reimplements the Windows file sharing protocol, because Samba isn't "emulating" anything from the perspective of the traditional definition of "emulator" in computer science.

    But for some reason, I guess because "emulator" has colloquially been redefined by non-CS nerd gamer normies as a term for software that lets you play proprietary games on platforms they were not designed for, we have ended up in this new status quo where the term's definition has expanded in this game of telephone way that annoys mainly me and not many other people.

    And what's kinda funny is I say that it is a "new" status quo, but it's not even that new. I recall, what, like 20 years ago now I was in an edit war on Wikipedia fighting with people over the "server emulator" article, insisting that the term was technically inaccurate and should not be used. Unsurprisingly in retrospect, I lost that edit war.

    Nowadays the whole thing feels like my first "old man yells at cloud" moment, of which I'm sure I'll experience more as I age. I certainly do find new slang introduced by gen Z like "he got the riz!" to be quite cringey, so it looks like I'm well on my way to getting crotchety and terrible about the natural evolution of language! ;)

    • squidleon 12 hours ago

      Ha, you're absolutely right from a CS perspective! it's a protocol reimplementation, not emulation in the traditional sense. I've thought about this too. "Server emulator" stuck in the UO/MMO (other example Mangos is "Wow emualtor") community because RunUO and similar projects used the term 20 years ago and it just became the standard label. At this point fighting it feels like your Wikipedia edit war, technically correct but practically hopeless. !

        That said, I'll take the nitpick as a compliment :) means you actually read the project description. Thanks for the kind words!
      • orphea 11 hours ago

          > other example Mangos is "Wow emualtor"
        
        Do they call themselves an emulator? I'm seeing "a server" or "a reference implementation".
        • squidleon 11 hours ago

          You're right, I just checked , MaNGOS calls itself "a server" now. They probably had the same realization at some point. Maybe I should update my README too and just call it "a modern Ultima Online server" instead!. Less baggage.

        • squidleon 11 hours ago

          Just update repo and README from server emulator -> server !

          • orphea 10 hours ago

            While I have your attention - let me wish you good luck with your project! While I'm not an UO gamer (my MMORPG has been WoW - that's where I know Mangos from :P), I'm happy to see a .NET project - I think it's an underappreciated platform; for once, Microsoft made something very cool

            • squidleon 10 hours ago

              Thank you! And yeah, as a fellow .NET developer I totally agree modern .NET is genuinely impressive. The jump from the old .NET Framework to what we have now with .NET 8/9/10 is massive. NativeAOT, source generators, the performance work the runtime team does every release — it's a great platform that doesn't always get the credit it deserves.

                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! :*!
    • nebezb 11 hours ago

      > I've long been irritated by the use of the term "server emulator" in gaming contexts. Technically these projects are just reimplementations of a proprietary networking protocol. Nobody calls Samba a "server emulator" because it reimplements the Windows file sharing protocol, because Samba isn't "emulating" anything from the perspective of the traditional definition of "emulator" in computer science.

      I think the distinction is a lot greyer than the black/white you propose.

      The very first popular online games used servers mostly to redistribute (and maybe time sync) packets from clients. There is no standard way to to do that. Player-created servers did their best to emulate the official servers logic but it was indeed impossible to replicate it perfectly.

      e.g. when breaking up large maps into sectors, the official server might broadcast your location and projectiles X units away and emulators would broadcast it X + 500 units away, which could have an impact on gameplay.

      Emulator feels fitting when there is no official server spec to reimplement.

      edit: emulator also feels appropriate where servers are responsible for NPC activity or quest-like mechanics. This goes beyond implementing a network protocol. The gameplay is massively impacted.

      • kethinov 10 hours ago

        Your reply did exactly what I complained about: expanding the definition of emulator to cover reimplementing a network protocol.

        You're not wrong that "server emulator" is a generically correct use of the term emulation, in the same sense that it is a correct use of the word for someone to say they emulate a fashion sense of a celebrity they like in their own wardrobe.

        But in computer science, strictly speaking, the original definition of emulator was more strict. It was about things like emulating processor architecture A so as to execute programs written for it on processor architecture B.

        And part of why expanding the definition to include "server emulators" annoys me is why has this definition expansion occurred only in gaming contexts? If a free UO server is a "server emulator" then why is Samba not also a server emulator? The lack of consistency is irritating to me, and it only happened because gamers like the term emulator, not due to any kind of rigorous computer sciencey reason.

    • daeken 12 hours ago

      > I certainly do find new slang introduced by gen Z like "he got the riz!" to be quite cringey

      This is interesting to me, if only because it's such a natural bit of slang. Given that it's a shortened form of "charisma", this one just Makes Sense to me! I figure it'd be incredibly cringe for me to use at my age, but it's a good term IMO.

      • kethinov 10 hours ago

        You're right, it absolutely does make sense. And yet it annoys me anyway.

        There's been research by linguists (John McWhorter comes to mind) analyzing this phenomenon and it basically just comes down to the fact that as we age, we get more set in our ways, so the linguistic innovations that younger people do just have a tendency to annoy us, even when they logically follow or are objectively useful.

        I try not to let it bother me, because it's irrational to feel that way, but it just does lol

  • devin 12 hours ago

    Congratulations! I don't know how busy player-run shards are these days, but I look forward to exploring this once you've gotten it a bit further.

    • tarellel 11 hours ago

      UO Outlands has been pretty popular for a few years. They’ve implemented a lot of custom aspects (specialties), craft, new dungeons, land, as well as weekly quests and events. My brother and I play it a few hours a week. It’s incredibly popular for the nostalgia and its player base seems to be pretty consistent. It reminds me of early UO where your exploring, learning, and dying a lot. And there tends to be players everywhere you go.

    • squidleon 12 hours ago

      Thanks! There are still a few active shards out there, mostly us "old guys" in our 40s chasing the nostalgia of our teenage years. UO has a way of never really dying. Combat and skills are still a ways off, but the foundation is solid enough that I'm adding features every week (in spare times,) I'll keep pushing updates!

      • D13Fd 12 hours ago

        UO was such a big part of my life back then, it’s great to hear that it’s still going. Maybe I’ll set up a server to play with my kids - although they’ll never be able to get the full experience with player killers, trolls, scammers, people hawking their stuff at the bank, dragon trainers, etc.

        • HanClinto 9 hours ago

          I've been tinkering with the same thing -- wanting to set up a little server so that we can all play together as a family. We've enjoyed Diablo 2, Minecraft, and Terraria as a family, but I feel like it would be fun to set up a little UO server. I'd really like to find a good tutorial for how to set up a chill / casual-friendly server (I like there to be some grind, but I don't want it to feel like "stock" UO) -- so something with accelerated skill gains and whatnot.

          I don't know if there are "family-friendly" presets for such things, but so far Copilot has been reasonably helpful at helping me along -- I just don't have it all working yet. If you have any resources you come across, I would be interested in comparing notes. :)

        • squidleon 11 hours ago

          That's a great idea, UO is honestly perfect for playing with kids. The crafting, housing, exploring dungeons together. And who knows, maybe you become the dragon trainer this time around!

        • Fokamul 12 hours ago

          There are several PvE UO servers, which are heavily against griefing. So I would say, pretty safe environment to play there with your kids and still with other people.

    • Fokamul 12 hours ago

      Most active is UO Outlands. Several thousands players?

      They've reworked a lot of systems and it's basically 100x better than original UO.

      There are several systems in place, which original devs wouldn't even dream of and saying that, official Ultima Online is still running. :D

      It's PvP server, but with balanced PvP which really works for everyone. Not like original devs, they just dropped PvP because cookie-cutter players cried.

      • squidleon 11 hours ago

        Outlands is impressive from a technical standpoint, they've put an insane amount of work into it and the player count speaks for itself. I played there for a while.

        Personally though, I feel they've overengineered it a bit. So many custom systems layered on top that it starts to feel more like WoW with UO graphics than actual UO. The original charm was in the simplicity you, a sword, and a world that didn't care about your feelings. But that's just my taste, and clearly thousands of players disagree with me, so what do I know. And yes, the fact that official UO is still running in 2026 is both beautiful and insane

        • devin 9 hours ago

          This was the bummer to me when I tried it. I liked the bug-ridden classic experience before the notoriety patch.

          I recently tried https://www.classicuo.eu/ ClassicUO, and the nostalgia was incredible. Granted it is not playable, but there is something about that experience that all of the assistants, hotkeys, etc. fail to capture.

        • nzeid 8 hours ago

          > and a world that didn't care about your feelings

          Dead on.

  • GardenLetter27 5 hours ago

    I love the Ultima renaissance now with Ultima VII: Revisited and the Ultima Online servers.

  • thetoon 9 hours ago

    Great news. Haven't played UO in forever. What kind of client are people using on modern systems, these days? Is there a client working well on linux?

    • ongedierte 4 hours ago

      UO outlands (most popular shard) has pretty alright support and guides for linux

  • zdware 12 hours ago

    Ahhh this takes me back to playing on various private UO and DAoC servers. Part of that experience is why I am a developer today. Cool name for a project like this along with the art!

    • squidleon 12 hours ago

      Same here! tinkering with private servers is what got me into programmig in the first place. There's something about reverse-engineering a game protocol at 15 that hooks you for life. Thanks for the kind words on the name and art!

      • eclipticplane an hour ago

        Most of my sick days in high school were after big Ultima Online patches dropped, I believe, usually on Tuesdays. A neighbor had much faster internet - I think his dad did work from home? - so I'd download the patch onto a ZIP drive and sprint back home. Then spent the day debugging changes (client changes and network/protocol changes) with others on IRC to get SphereServer to connect again. Learned so much.

  • carverauto 9 hours ago

    the original moongate (moongate.net 4000) was a MUD written by Vassago and still exists today as Materia Magica

  • yangosoft 9 hours ago

    Impressive!

    I spent many many hours in UO when I was young.

    It was so great playing in some shards with hundreds of real persons.

  • nottorp 9 hours ago

    The sad thing is i see this and think:

    "Who owns the UO IP now and how litigious are they?"

    • eclipticplane an hour ago

      Ultima Online emulators have existed almost since the launch of Ultima Online, and are arguably a reason the core game is still running today.

      Ultima Online launched in September 1997. The first "offline emulator" launched in October. Emulators became playable by mid 1998. https://www.uox3.org/history/timeline.txt

  • picklepete 12 hours ago

    This is so cool! I used to love playing around with RunUO back ~2003, it's great to see the community stay alive.

    • squidleon 12 hours ago

      Thank you! RunUO in 2003 was the golden era. I started little bit early (1999 with 56k). The community is small but still alive, and projects like ModernUO have kept things moving forward. Moongate is my take on rethinking the architecture from scratch while keeping the same spirit. Glad to see people still care about this stuff! :*

  • gverrilla 10 hours ago

    had great fun for years on Neverlands shard. best mmorpg ever, by a largeeeee margin.

  • tamat 8 hours ago

    Is the UO protocol documented?

    Are there UO clients besides the official one?

  • DeathArrow 11 hours ago

    I like seeing how more projects use .NET, which is a great platform.

    • squidleon 11 hours ago

      Thanks! I've been developing in .NET for 20 years and it's come a long way , from the Windows-only Framework days to what it is now. NativeAOT, cross-platform, incredible performance. And if you've never tried it on Apple Silicon the M4 chips are absolutely insane. The server compiles to a single native binary and runs like a dream on ARM.

  • jajuuka 10 hours ago

    This is super cool. Never played UO myself, but had friends who did. I'll be keeping an eye on this as someone interested in the private MMO server community. Hope others can contribute and build this up even more.

  • 7bit 7 hours ago

    Cool Project. How did you know how to talk to clients?

  • stackghost 10 hours ago

    Impressive work! Does it support the smooth boat movement packets from the newer clients?

  • kpw228 9 hours ago

    panda king