Show HN: Moongate – Ultima Online server emulator in .NET 10 with Lua scripting
Posted by squidleon 4 days ago
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 — the focus so far has been on getting the architecture right so adding those systems doesn't require rewiring everything.
Why not just use ModernUO/RunUO? Those are mature and battle-tested. I started this because I wanted to rethink the architecture from scratch: strict network/domain separation, event-driven game loop, no inheritance-heavy item hierarchies, and Lua for rapid iteration on game logic without recompiling.
Comments
Comment by haolez 3 days ago
It's very different from modern games, where each player looks like the fantasy version of a Marvel super hero.
Comment by squidleon 3 days ago
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.
Comment by codezero 3 days ago
Comment by DonHopkins 3 days ago
One Halloween I logged into UO, and my character had been transformed into a deer, as some kind of a sick joke! All my inventory was gone, and all I could do was deer stuff.
Then some bastard came along and TAMED ME. That totally sucked! I had to follow him around obediently all day. I guess I'm lucky he didn't skin me and make me into leather armor.
Comment by eclipticplane 3 days ago
Comment by SenHeng 3 days ago
Comment by faidit 3 days ago
Comment by andrepd 3 days ago
We could do it in 1999. Why has no one done it again? Why isn't there a BotW-engine MMO?
Comment by prox 3 days ago
Comment by jghn 3 days ago
These kinds of games *do* exist, they're just, well, small & niche as they've learned to either build in protections against griefers and/or stay small enough to not attract notice. If you find yourself in the first cluster and not the second, you may want to check out the latest project from Raph Koster, aka Designer Dragon from UO. [1]
Comment by jghn 3 days ago
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.
Comment by chongli 3 days ago
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.
Comment by jghn 3 days ago
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.
Comment by haolez 3 days ago
I've experienced it first hand, but I can't grasp why it worked well like it did.
Comment by codezero 3 days ago
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.
Comment by eclipticplane 3 days ago
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.
Comment by mwigdahl 3 days ago
Comment by eclipticplane 3 days ago
Comment by shiftpgdn 3 days ago
Comment by NoOn3 3 days ago
Comment by JoshTriplett 2 days ago
Comment by jghn 3 days ago
Comment by ajxs 3 days ago
By complete coincidence, yesterday I was just looking at the website for a guild I was in 25 years ago on Oceania [2], which is somehow still online! I had a great time playing UO back then, but I don't think the experience can be recreated today. The people have changed.
1: https://news.ycombinator.com/item?id=33189823 2: http://tdr.iwarp.com/main_nfl.html
Comment by vunderba 3 days ago
Comment by mapt 3 days ago
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.
Comment by haolez 3 days ago
What do you mean by this?
Comment by mapt 2 days ago
When UO came out, it had to deal with a large game world that nevertheless would be too small to reasonably hold a number of players that represented financial success. So the game world was duplicated on multiple servers running the same map. A player on Atlantic server could have no interaction with a player on Chesapeake server. If you wanted to play together you needed to make characters on the same server. In-game this was reflected in cosmological lore about the world being some kind of crystal that was shattered into shards. This jargon spread, to some extent, to be a generic terminology in MMORPGs.
I believe UO launched with only three shards, and added a couple dozen at the height of its popularity.
Eve is notoriously a single-shard game, with the player count being accommodated in other ways as the map grows larger and more organized play is added patch to patch, and the actual play changing notably from the era of 5,000 simultaneous online to the era of 50,000 simultaneous online.
Even without deep skill-stat specialization, when your alliance has 500 people it lends itself strongly to role specialization, because an alliance of 500 people is an organization of 500 people, who find different things fun in different contexts, and whose operations have every category of need you would find in a small nation state, from diplomacy to collective resource allocation to logistics to surveying to espionage to military service, recruiting, communications, practice and command.
Comment by throwway120385 3 days ago
Comment by thewebguyd 3 days ago
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.
Comment by nzeid 3 days ago
Comment by deadbabe 3 days ago
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.
Comment by codezero 3 days ago
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).
Comment by knicholes 3 days ago
Comment by jghn 3 days ago
Comment by knicholes 2 days ago
Comment by jghn 2 days ago
Its time to shine was short lived, I want to say it didn't even last the entirety of October '94. At the time it was out of reach of most toons anyways, but each individual meteor was close to instakill, plus it was AoE. The downside of course was it was AoE and friendly fire would make you red.
I remember one time in that time range getting called in because an argument was brewing between some guild mates and another guild in some dungeon. I arrived, decided to end the argument with a meteor swarm, promptly killed literally everyone from both guilds due to the AoE, and was a dread lord for a while. Needless to say, not how I drew it up on the board!
Comment by jghn 2 days ago
Comment by stackghost 3 days ago
I mean there absolutely were bad experiences. Griefing drove lots of players away, which is why they implemented Trammel.
Comment by mapt 3 days ago
Comment by jghn 3 days ago
Comment by deadbabe 3 days ago
Comment by Barrin92 3 days ago
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.
Comment by jghn 3 days ago
So from a philosophical perspective sure you're right. But from a dollars and cents perspective it's just good business to find ways to legislate griefing out of games. And that's why the market moved the direction it did.
Comment by JoshTriplett 2 days ago
Comment by pjc50 3 days ago
Comment by haolez 3 days ago
Comment by tagami 3 days ago
Comment by NDizzle 3 days ago
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.
Comment by haolez 3 days ago
Comment by jghn 3 days ago
Comment by NDizzle 3 days ago
Comment by jghn 3 days ago
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.
Comment by havblue 3 days ago
Comment by haolez 3 days ago
Comment by andrepd 3 days ago
WoW in 2004 truly scorched the field; after that MMO became synonymous with WoW clone. The same action bar, the same pov, the same control, the same short "kill 10 kobolds" quests with an exclamation mark, the same progression...
I was big into MMOs a long time ago. But I never imagined that 22 years after WoW the field still wouldn't have produced another gem in the level of UO or SWG.
Comment by idiotsecant 3 days ago
UO was the last MMO that made the mistake of trying to be a world for everyone to live in.
Comment by mbonnet 3 days ago
Comment by reactordev 3 days ago
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.
Comment by tarellel 3 days ago
Comment by reactordev 3 days ago
Comment by _doctor_love 3 days ago
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)
Comment by knicholes 3 days ago
Comment by throwway120385 3 days ago
Comment by knicholes 3 days ago
Comment by reactordev 3 days ago
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.
Comment by knicholes 3 days ago
Comment by reactordev 3 days ago
Comment by wellthisisgreat 3 days ago
Comment by jghn 3 days ago
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.
Comment by doctorwho42 3 days ago
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.
Comment by general_reveal 3 days ago
Comment by theultdev 3 days ago
Comment by SenHeng 3 days ago
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.
Comment by tyjen 3 days ago
Comment by HanClinto 3 days ago
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.
Comment by block_dagger 3 days ago
Comment by axus 3 days ago
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?
Comment by tyjen 3 days ago
It was a sad day when UO introduced Trammel.
Comment by forestingfisher 3 days ago
Comment by DuperPower 2 days ago
Comment by simlevesque 3 days ago
Comment by sanex 3 days ago
Comment by squidleon 3 days ago
Comment by nonethewiser 3 days ago
>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?
Comment by nebezb 3 days ago
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/
Comment by squidleon 3 days ago
Comment by doctorpangloss 3 days ago
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?
Comment by squidleon 3 days ago
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?
Comment by squidleon 3 days ago
Comment by freedomben 3 days ago
Comment by squidleon 3 days ago
Comment by gopher_space 3 days ago
Comment by jdwithit 3 days ago
In hindsight I am very glad Origin was not overly litigious and didn't send the FBI to my house for "hacking" their game.
Comment by pixelmonkey 2 days ago
When I was in high school, I played a lot of UO. It was actually the last computer/video game I ever played regularly, because I convinced myself as a teenager that I was addicted to it and needed to drop it "cold turkey" to focus on academics and extracurriculars.
(A sign of the times for the late-1990s nostalgics: I sold my UO account on eBay for a few thousand dollars and an MTG Mox Pearl. I owned a bunch of virtual real estate, e.g. a UO tower on an island only accessible via moongate. The high bidder "threw in" a Mox Pearl as a kind of informal escrow, to make sure I completed the account transfer after getting paid.)
Before I dropped UO from my life, I discovered UOX. I was learning C++ and UOX was a great way for me to practice my emerging C++ skills.
My clearest memory of feeling the power of programming was when I created a mod for my UOX server that allowed me to drop an unlimited number of interconnected and color-coded moongates all over my server, creating something akin to the feeling of the game "Portal," but long before Valve released "Portal."
It was after having a blast with UOX that I decided to dig into programming much more. Somehow, the UOX server mod made programming feel "real" for me in the way my prior forays into coding simply didn't.
That led to me learning Python -- as a way of toying around with the Slackware Linux server I had in my basement. I left C++ behind, but it was an important stepping stone for me. Now, decades later, learning Python was probably the single most important decision of my life in childhood. (See e.g. https://amontalenti.com/about)
UOX is such a cool project. UO was a really ahead-of-its time internet game, as well. Great memories. Thank you.
Comment by squidleon 3 days ago
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.
Comment by swaminarayan 3 days 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?
Also interesting to see NativeAOT used here. Was that mainly for deployment simplicity or performance?
Comment by squidleon 3 days ago
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.).Comment by serf 3 days ago
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.
Comment by godrae369 3 days ago
Comment by mungoman2 3 days ago
One maybe obvious way would be that asking for rumors will actually creates the scenario that the NPC describes.
Comment by squidleon 3 days ago
Comment by whyenot 3 days ago
Comment by onlyrealcuzzo 4 days ago
Do you have a YouTube that shows off the progress of what's complete?
Comment by squidleon 4 days ago
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
Comment by MisterTea 3 days ago
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...
Comment by mkehrt 3 days ago
Comment by Benjamin_Dobell 3 days ago
https://github.com/moonsharp-devs/moonsharp/releases
I'm not the creator of MoonSharp, just a maintainer on Github (who has honestly done very little). However, I consult for Berserk Games, and we have use MoonSharp as the scripting runtime for Tabletop Simulator.
Comment by GardenLetter27 3 days ago
Comment by jajuuka 3 days ago
Comment by p0w3n3d 4 days ago
Comment by kethinov 4 days ago
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! ;)
Comment by squidleon 4 days ago
That said, I'll take the nitpick as a compliment :) means you actually read the project description. Thanks for the kind words!Comment by orphea 3 days ago
> other example Mangos is "Wow emualtor"
Do they call themselves an emulator? I'm seeing "a server" or "a reference implementation".Comment by squidleon 3 days ago
Comment by squidleon 3 days ago
Comment by orphea 3 days ago
Comment by squidleon 3 days ago
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! :*!Comment by nebezb 3 days ago
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.
Comment by kethinov 3 days ago
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.
Comment by nebezb 2 days ago
My reply is that, strictly speaking, it is not a reimplementation of a network protocol if you need to recreate parts of the game based on best guesses that _impact_ the gameplay if your guess is wrong/different. A game is more than a network protocol. It is the data within that makes it to you that is being emulated.
SMB3 is SMB3. I would probably classify SMB1 (proprietary, closed) implementations as emulators if the guesses resulted in differing functionality from client<>server to another client<>server.
Comment by daeken 4 days ago
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.
Comment by kethinov 3 days ago
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
Comment by zorm 3 days ago
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.
Comment by eclipticplane 3 days ago
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.
Comment by DeathArrow 3 days ago
Comment by squidleon 3 days ago
Comment by oblio 3 days ago
Comment by elevaet 3 days ago
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.
Comment by devin 4 days ago
Comment by tarellel 3 days ago
Comment by Fokamul 4 days ago
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.
Comment by squidleon 3 days ago
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
Comment by devin 3 days ago
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.
Comment by nzeid 3 days ago
Dead on.
Comment by squidleon 4 days ago
Comment by D13Fd 4 days ago
Comment by HanClinto 3 days ago
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. :)
Comment by Fokamul 4 days ago
Comment by squidleon 3 days ago
Comment by knicholes 1 day ago
Comment by heliumtera 3 days ago
Does it have something to do with the fact that we already have plenty well established Ultima online server emulators in the training set of your llm of choice despite you claiming it is from scratch?
Comment by picklepete 4 days ago
Comment by squidleon 4 days ago
Comment by ParadisoShlee 3 days ago
But I would love to play some old school UO again with people
Comment by pwdonald 3 days ago
Comment by carverauto 3 days ago
Comment by zdware 4 days ago
Comment by squidleon 4 days ago
Comment by eclipticplane 3 days ago
Comment by jghn 3 days ago
In the very, very early days I had a 6ms ping to my server on a then high bandwidth connection. This was when most players were at best on a 28.8 modem with multihundred ms ping times. I remember being able to easily outrun people who were on horses.
My roommate and I could sit next to each other and between the combination of our connection and the advantage voice communication provided for coordination was an enormous advantage. We spent a lot of time in PK hot spots pretending to be lagged newbies, only to give the PK gangs a rude awakening when they'd come to grief us. Turns out a pair of toons who were multi-GMs when most weren't a single GM yet, who were lighting fast compared to others, and with perfect coordination made short work of your average PK gang back then
Comment by thetoon 3 days ago
Comment by ongedierte 3 days ago
Comment by yangosoft 3 days ago
I spent many many hours in UO when I was young.
It was so great playing in some shards with hundreds of real persons.
Comment by stackghost 3 days ago
Comment by gverrilla 3 days ago
Comment by nottorp 3 days ago
"Who owns the UO IP now and how litigious are they?"
Comment by eclipticplane 3 days ago
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
Comment by tamat 3 days ago
Are there UO clients besides the official one?
Comment by 7bit 3 days ago
Comment by kpw228 3 days ago
Comment by bhekanik 3 days ago
Comment by squidleon 3 days ago
You're touching on a real pain point. Right now the Lua boundary does show measurable overhead under load, especially with per-tick callbacks across many entities (doors, spawners, etc.). MoonSharp's interop cost adds up when you're calling into Lua thousands of times per tick.
I'm actively looking at batching script invocations per tick and capping the budget so a heavy script wave can't blow up tail latency. The goal is to keep the game loop deterministic if Lua eats too much of the tick budget, defer the rest to the next tick rather than letting the whole loop stall.
It's one of those problems where the architecture gives you a clean place to solve it (the boundary is explicit, so you can meter it), but the solution still needs work. Appreciate you calling it out — good toknow others think about the same tradeoffs.
Comment by jasonjayr 3 days ago
Comment by DigiEggz 3 days ago
Comment by kpw228 3 days ago