9 ms·
What was the technology stack driving the original Ultima Online servers?
- neals 11y agoHow does ones career even look after working on something like that?
- duaneb 11y agoI would imagine specialized: resumes matter less and know-how (which is technically covered under most anti-competitive clauses, though IANAL) matters much, much more.
- jerf 11y agoCould you elaborate a bit? Do you mean that you think that's too specialized to go anywhere else? But a solid base of "client-server" abilities at that level of demand will get you in the door in all kinds of places. With a pedigree like that one would merely need not get too drunk before the interview to walk on to almost any "cloud" team.
- AtmaScout 11y ago> With a pedigree like that one would merely need not get too drunk before the interview to walk on to almost any "cloud" team. Thanks for that, I needed a nice laugh today.
- iolothebard 11y agoNo way, the cloud is totally new and amazing! /s
- jerf 11y agoWell, sure it's all totally new to you and amazing. You're like, what, 900 years old canonically? We don't all get to escape to a parallel dimension where time moves more slowly but we continue to age in our original time line. /topical
- HeyLaughingBoy 11y agoEh! I'm a bit more jaded. I've been fed the line "you have awesome background and we wish we could take advantage of it, but your experience with the skills we're looking for is a little too long ago" before. Translation: "too old" | "too expensive for us"
- newobj 11y agoThis is a really strange comment to make. First of all, this was 1997 +/- a year. They amount of stuff you could pull off the internet was radically smaller than today. The number of solved problems was radically smaller. So basically they went were few had gone before and created something successful that persists to this day. So heir career would be looking pretty damn good I would say. Second, tech stack != career. I'm seeing this sentiment more and more on HN and it's weird. Especially weird in an industry know for its rapid change. Your question is so backwards it almost feels like trolling.
- deleted 11y ago[deleted]
- Kiro 11y agoI interpreted the comment as "these guys must have kick ass careers" and not the other way round.
- neals 11y agoThis was indeed what I meant :)
- chipsy 11y agoThe "tech stack != career" is on my mind lately since the "stack" terminology seems to be really in vogue these days. Like, I hadn't even heard of a "full stack engineer" until a few years ago and now it's everywhere - which I think is because it ultimately amounts to "general-purpose programmer" and that's actually what most businesses need most of the time. Everyone(who's been around long enough) knows that the technology churns and real progress is slow, but I think this kind of fashion is based on employee marketability - nobody wants to be just a code monkey, after all.
- fapjacks 11y agoSomething a friend of mine said that really resonates with me, and helps to put the whole thing into perspective: s/stack/pile/ This works splendidly because even the hippest startups working out of mansions by the beach (or whatever) are still fairly kludged together from an engineering standpoint, especially if there is ageism serving as a kind of experience cap (for example ageism by proxy of being too expensive for those startups to pay for). People are extremely territorial about their piles, but if you are good enough friends with those engineers (or get them drunk enough), you find out that everybody lacks confidence in their work to some degree. Someone I work with currently said that if you don't look at code you wrote three months ago and feel like it's shit code, you aren't improving. That is a very insightful comment, to me.
- LanceH 11y agoShipping a successful game is the most important line on the resume when applying in the games industry.
- putzdown 11y agoAs someone has said, the quality of your resume in the game industry (or film industry, I'm told) is only as good as the last game you worked on. Ultima Online was an attention getter for employers for many years; to a certain extent still is. That's unlike most games that are forgotten after a year or two: there are still a lot of old UO fans whose brains were pumped full of dopamine by this thing and will not let them forget it. On the other hand, UO burned me on game development worse than any other game I ever worked on (though I have kept working on games since then). It was a miserable project. So the effect on the resume was good; the effect on the soul was awful. I never worked on another MMO again and never, ever would.
- scott_s 11y agoI'd be very interested in anything else you have to say on the topic. As, I assume, would most of the rest of HN. What games did you work on after? Was it something specific to MMOs or UO in particular?
- yarou 11y agoCan you elaborate on the experience? I assume the burn out comes from the time constraint. What would be the antithesis to the burnout you experienced working on an MMO?
- Negative1 11y agoThis might answer you questions: http://www.quora.com/What-was-the-workplace-culture-like-at-Origin-Systems-during-the-development-of-Ultima-Online http://www.quora.com/What-was-the-workplace-culture-like-at-... Making games is not as much fun as playing them.
- putzdown 11y agoHm, there's a lot to it. Maybe the best way to do this is a Choose-Your-Own-Adventure style of answer. Do you want to know about... 1) the incredible complexity of MMO development and why nobody wants to make an MMO (though everybody thinks they do)? 2) the origin of Ultima Online as a small, skunkworks project that led to extremely awkward core engineering? 3) the even more awkward munging together of the Ultima IX and Ultima Online teams that led to a suddenly massive team trying to ship a massive game in six months (and succeeding!)? Pick one.
- fl0wenol 11y agoPretty damn good, especially after the turn of the millenium. Hell I'd hire any of the guys now if that was in their resume somewhere, because that was some nifty stuff. Gotta respect those sort of individuals who show real front-to-back understanding of what it takes to build/implement something people actually use, do it well, and adapt to change while scaling.
- careersuicide 11y agoThis is really awesome! I had always just assumed the servers ran on Windows NT or similar. I'm not really sure why I thought that. Maybe because SphereServer and RunUO are/were for Windows so the association stuck in my head? But I never would have guessed Solaris. It's really hard to have a discussion about UO without the urge to talk about how important it was to me (I've noticed I'm not the only one). So rather than resist that urge... Ultima Online is directly responsible for me being a programmer. I was 13 when I got a copy of the game and an account thanks to my parents. It wasn't the first game I'd played where I'd wondered how it had been made but it was the first game I'd played where I couldn't even conceive of how it could possibly work. It was so different from anything else that I'd played before, including the first 8 Ultima games. Trying to figure that out led me towards programming in general and to SphereServer, the UO server emulator. The scripting system for SphereServer allowed me to change the game (for me and my friends only, but still) and really explore what's possible. By the time I was 16 I knew what I was doing for the rest of my life, even if it wasn't necessarily anything related to games.
- penetrarthur 11y agoNo gaming experience has ever been as involving as the good old UO. And I also started my programming by coding automation scripts for one of at that time popular and mostly prohibited playing assist programs called "UO Inject". No other motivation keeps you as engaged in programming as writing scripts that automatically cut the trees for you while you sleep!
- careersuicide 11y agoOne of the very first actually useful programs I wrote was a simple macro program for UO. It would read a text file, parse the very basic commands in the file and then send them to the UO client by finding its HWND via FindWindow and calling SendMessage to send the key presses. I used this to macro easy skills like hiding with scripts like (I don't remember the exact command names now): STARTLOOP KEYPRESS F1 // client macro key for hiding skill WAIT 1000 MOVERANDOM 4 // move 4 times in a random direction to get around server checks for using a skill in the same spot WAIT 8000 ENDLOOP
- notlisted 11y agoJust yesterday I was reminiscing the stability of Sun Sparc servers. I recalled the time we moved offices in 1999, and we had to shut down them down. One last peek at the uptime showed they'd been up and running for 6 years or so (turned on when we moved in, turned off when we moved out).
- pmelendez 11y agoDTrace is another advantage of using Solaris
- scott_karana 11y agoGP was referring to Sun's solid SPARC hardware, never mind that DTrace didn't exist then.
- iolothebard 11y agoSo it was a 40MHz SPARC then? ;-P
- notlisted 11y agoI seem to recall it was a SparcStation 10. No clue about the clock speedm but I believe it was more. Note: my first PC was a 386/25MHz, which was considered blazingly fast (and a cool 10k including the Nec MultiSync 3D monitor, a 256 color EGA video card and 24 bit P2200 printer). PS A different topic altogether, but for quite a while it seemed that whatever clock speeds we gained was wasted on pushing pixels around on the screen...
- curiously 11y agoWe had a small office or closet we converted to a server room with a fan in it. We used to hover a beachball over the exhaust. that's so awesome. I love little stories like this from early pioneers.
- putzdown 11y agoI was there on the UO team. Fun fact: this server closet also gained an optical scanner as its security system, due I think to the generosity/love-for-toys of Richard Garriott. The optical scanner didn't work very well, and was way overkill, but it was super neat. We all felt like spies. Despite actually being geeks.
- Globz 11y agoWow they didn't use any DB at the start of UO, that is amazing haha "As Raph also notes, there were no databases originally involved in the storage of game state or player data for UO (disregarding analytics here), everything was kept in flat files. Backups worked by flagging a moment in time where no one was allowed to cross server-boundaries -- during that moment, each areaserver was commanded to fork(), essentially duplicating itself in memory (it's more complicated than this, thanks to Copy-on-Write, but let's simplify). After everyone had fork()ed, the "lock" preventing boundary-crossing was cleared. Then each areaserv began to dump out its huge chunk of memory-state into a file on an NFS server. Those files were then all tarred together and kept as a "backup" of the state of the server. These heavyweight backups happened at half-hour intervals, I believe."
- pmelendez 11y agoThis website (as far as I know, I don't know if they changed that) since the beginning uses flat files instead of a database. Depending on the case it might actually work and be a valid strategy for persistency
- madez 11y agoI also think flat file storage is a valid solution. If you are abke to use advanced filesystem features like snapshots and online replications, the use-cases for databases shrink even further.
- Globz 11y agoYeah I have no doubt that flat file are a valid solution, I think the only headache was related to a dupe bug. "Server-boundary crossing edge-cases and race conditions persisted for a long time -- allowing for gold and items to be duplicated, though I think we had largely eradicated the big ones by the time I had moved on to UO2."
- moonchrome 11y agoI built a content pipeline and CMS on top of flat files (json) and mercurial. You can get repository level transactions by committing on each consistent state (squashing before push) this lets you do undo/redo and recover from failed operations easily - databases sort of give you this - but only for the stuff they actually contain (so unless you're putting your asset files in to the DB you don't get this).
- gavanwoolery 11y agoI met with Raph IRL once - he is a really smart guy. He is now working on a somewhat of a spiritual successor to UO called Crowfall. http://crowfall.com http://crowfall.com
- Globz 11y agoYeah I am kickstarter funder, I can't wait to finally play this game. Hopefully it will last more than 3 months, I can hardly remember the last MMO I played for more than a year.
- pixelmonkey 11y agoI brought this up on Twitter, but I think the term "shard" referring to a partitioned database originated from Ultima Online. The game's fiction included reference to shards of a wizard's crystal that created duplicate worlds -- a convenient explanation within that universe for the need to run multiple, duplicate servers with different users on them. https://twitter.com/amontalenti/status/615116231092371456 https://twitter.com/amontalenti/status/615116231092371456
- boobsbr 11y agoMondain, the wizard!
- jghn 11y agoI've always thought the same thing,
- jrub 11y agoSame. When I first heard the term "shard," I thought we were talking about UO. I still think about it every time time I hear "shard." I don't ever run into anyone who has played UO either, and so everyone looks at my like I have 3 eyes when I explain the connection. haha.
- jghn 11y agoThe only folks I personally know who played UO were my actual friends :) I have coworkers who were also old enough to remember it but they all started withy EQ or WoW. In my mind no game will surpass closed beta era UO. It had the sandbox and freedom combined with q culture that was actually into the idea instead of the grieving
- keypusher 11y agoWikipedia and Ralph Koster seem to agree. "The word "shard" in a database context may be derived from the 1997 MMORPG Ultima Online, which referred to its game servers and their associated databases as "shards." This was in reference to the game's fiction, in which the broken shards of the evil wizard Mondain's Gem of Immortality each contained a complete, living copy of the world.[24] This usage spread informally through the video game industry, and may have come into mainstream usage via Flickr, which began as a tool for an unpublished MMO." Original blog post: http://www.raphkoster.com/2009/01/08/database-sharding-came-from-uo/ http://www.raphkoster.com/2009/01/08/database-sharding-came-...
- outworlder 11y ago> Each shard (the term sharding probably originated with UO) Probably, as the term "shard" was part of the backstory: a gem that contained the world ("Sosaria") was shattered, each shard then contained a version of Sosaria. https://www.youtube.com/watch?v=rBeA6JHkV1I https://www.youtube.com/watch?v=rBeA6JHkV1I
- zumtar 11y agoJust out of interest, I installed a couple of the European Ultima Online servers, they were Sun E450s running Solaris 2.5.1. They had a massive 10 Mb/s dedicated to them (with the ability to burst to 50 Mb/s) - bandwidth shaping was done with a Packeteer.
- Kiro 11y agoSo if I understand this correctly the game state was kept in memory in variables/data structures and then once in a while saved down to the DB. Why not just save stuff as they happen? Seem like the most obvious solution to avoid rollbacks.
- pjc50 11y agoDo you save write-through or write-back? If you save write-through your game is blocked on your disk write speed, which is not very high, and if you save write-back then (unless you're very careful with journalling) you run the risk of inconsistent state. (Remember, this was 15-20 years of Moore's law ago so price/performance was about a thousand times worse than today)
- bevacqua 11y agoRunUO was the only reason I learned C#. I was self-taught and I don't think I would've made such an effort to learn it if it wasn't for Ultima Online.
- happywolf 11y agoSalute on the craftmanship.
- glonq 11y agoI lucked out and was accepted as a public alpha (and later beta) tester for Ultima Online. I remember it being very laggy and a bit glitchy, despite having a high-end PC (50mhz 80486, 28.8k modem). But I was still mesmerized with the concept of an MMO, that I could see and talk to and fight with people from anywhere in the world.