7 ms·
Year was 1995. I was a 15 year old kid who discovered Diku muds. CircleMUD to be specific. My life revolved around building MUDs and PC gaming. My family bought
by bitexploder 4y ago
Year was 1995. I was a 15 year old kid who discovered Diku muds. CircleMUD to be specific. My life revolved around building MUDs and PC gaming. My family bought a Pentium 133, it cost my family a fortune and we were not well off. I got good at C and Linux, went off to work in 1999 after almost not graduating high school. The rest is history. I owe so much to MUDs, which lit my brain on fire and led me to a life I never could have dreamed of. MUDs still exist, you can still build them and they are as much fun now as they ever were. Give it a shot :)
- vinhboy 4y agoAround the same time, middle school I think, I was in the SF Public library playing MUD on the little terminal they reserved for searching books. We couldn't afford a computer, or internet, at home. The librarians tolerated us. Eventually led to me learning C and running my own ROM MUD. I remember sending some random person $5 or $10 and they hosted my MUD on their server. I too owe MUD everything.
- abathur 4y agoI gather this happens a lot, relatively speaking. In early 2001, a junior in a webmastering class I took (I was a sophomore) introduced me to an LPMud, and it's ~recursively changed my life again and again. It was what finally taught me to touch-type in high school. It wasn't where I learned to program, but it was where I really cut my teeth (even though it took 9 years for me to decide to try). It isn't open source, but a related yak-shave did lead me to my first major OSS contribution merged into another project. I've talked to at least a handful of other people who've worked on our game with similar stories, and at least one who used something he built for the MUD to get his first programming job.
- pixelfarmer 4y agoThe LPmud driver is quite some insane piece of work, considering it was done in 1990/91 initially. It is a VM, OOP C dialect featuring lists and hashtables (LPC), has lambda-closures (and things like map() + filter() with that), and allowed reloading of most parts of the game without having to restart the entire MUD for that, a big issue Diku and others suffered from. There were a number of spawn-offs from that like MudOS and there was something called LPC4 which eventually morphed into Pike, the language the Roxen webserver was/is written in. I actually used that on my local machine over Apache, because configuring latter back in the early days was a nightmare while Roxen had a pretty simple and straightforward webinterface for that already. LPmud eventually got developed further and runs under the LDmud label now. The MUDs based on LPmud/LDmud are quite diverse and are interesting in themselves, if you have access to their core sources. I also remember statically linking MudOS which resulted in a binary of like 500kB back in time, meaning it was possible to use that as a very powerful scripting language in embedded systems.
- abathur 4y agoIndeed. I'm using LP as a shorthand; ours is currently LDmud, but it predates LDmud and changed over from LP before I started playing. It took a long time, but LDmud finally got 3.5.0 released in 2017 and has been releasing a lot, since. Includes union types, and I think either 3.5 or 3.6 added a python module with the ability to define efuns. fluffos is also actively carrying the mudos banner.
- miki123211 4y agoMUDS have some really unique and interesting programming concepts which you won't find anywhere else. This is particularly true about MOOs and somewhat true about LPs, not so much when Diku derivatives are concerned. To give just one example, MOO lets you create and reprogram objects while the game is running. Instead of your normal code-compile-run cycle, you're constantly in game, modifying things one method at a time. As you fix bugs and add features, you can experiment with your shiny new object, or even give it out to friends to play around with. There's no need to recompile, rebuild, restart, get back into the screen where the bug you're currently fixing was, you just make a change to a verb, try performing it and see if the effects make sense. You can literally go from a bug report to globally fixing your issue in seconds. In MOO, The distinction between code, which programmers modify and occasionally deploy, and data, which users can modify at runtime, is much more blurry. Everything is an object, including entities like players and rooms, and code is stored in the same database as object instance data. Things are persistent by default, if you edit a method at runtime, that edit is persisted across restarts, just as a simple attribute change would be. All of this comes with a pretty sophisticated security model, which lets you decide who can see and modify your code and attributes, or even who can call it, and under what permissions. There's also a quota system, with limits on both execution time as well as the number of objects owned. This makes it safe to give out programming rights to untrusted users. On (some) MOOs, all players have the freedom to make their own rooms and their own objects. You want a clock that chimes every hour? A game of monopoly in your virtual living room? Maybe you want to turn your virtual house into a Harry-Potter-themed world, magical duels and all? You're only limited by your imagination and your coding skills. With modern cores, which give you access to JSON serialization, HTTP requests and other such niceties, you could even build a virtual house where the light switches control real smart lightbulps in your real bedroom. This way of coding certainly comes with some drawbacks, there's no version control, and usually no testing before you introduce your changes to everybody else. Moving changes between different servers is somewhat difficult, as core game objects reference players and the things they own and quite a bit of code is written and owned by the players themselves, making little sense when other things that those players might have in their inventory don't exist. I also imagine it would be difficult to incorporate modern notions of horizontal scalability, considering that any command you execute can theoretically modify any object anywhere in the world or send text to any other player, and you have no idea what it's actually going to do before you execute the code. I don't think this paradigm would work well in the modern, corporate and commerce-driven world, but it lets us imagine how programming could have looked like in an alternative world that diverged from ours somewhere in the 80s; it's more like old Smalltalk than like our modern languages.
- libraryatnight 4y agoI had a similar story though it sounds like I'm a little younger, so shift the dates up a bit and instead of CircleMud, Vampire Wars then Godwars II. Being a few years in the future, even our modest computer could play Starcraft etc, and yet I still gravitated towards MUDs. I still haven't experienced something like that again, something that felt somehow antique but also light years ahead of any other gaming experience I was having at the time. Sure, no sprites or models, but I could write descriptions for my spells. Combat was engaging and fun and you could get into ridiculous detail. The world felt enormous, I could actually get lost and have to scrutinize inputs and room descriptions to get my bearings. I remember feeling actual relief at one point reading the familiar room description of the fountain outside of town or something. Oh, and I'm not really one for drama of any sort, but if I have to see drama in a gaming community I really prefer it to be between the programmers that make the game arguing in public chat about ripping off codebases etc.
- nvarsj 4y agoPretty much the same story for me, even down to CircleMUD :). I created a widely used MCCP (zlib compression for telnet streams) patch for it and also added lua scripting support. I was better at C programming than most of my university professors after spending countless hours coding MUDs! And it grew my love for programming. Of course many hours wasted playing them too.
- bitexploder 4y agoStories like this make me so happy. I know MUDs have always been a little niche, but what is inspiring the current generation of hackers?
- myko 4y agoMy story is very similar, but it was '99 and the PC was from '89 (purchased for $50 from a neighbor) Now I'm an admin on the game I played back then. Very few players, and I'm a poor C developer so there are terrible bugs, but it's up and running!
- bitexploder 4y agoValgrind and other tools are amazing for finding memory safety and leak issues now.
- mmuddy 4y agoI only ever used one MUD but I remember it well, it was hosted on Pipex Dial (UUNET), I think as a personal project of one of the employees. It was called Neverholm. There was rarely anyone else on there, I would spend hours roaming around exploring. Loved it. Best thing was that you could access it, along with many other things that you probably shouldn't have been able to, from Pipex's freephone sign-up number (0800 056 2110) so it didn't even cost a penny, which was great for 15-year-old me trying not to land my parents with a huge phone bill.