TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

'I'm running a Mud so I can learn C programming ' (1993)

99 pointsby DyslexicAtheist6 months ago

24 comments

tashian5 months ago
I learned C by running a MUD — a DikuMUD derivative. I was in high school, in the 90s, and I didn&#x27;t know any programmers in my town who could teach me how to really code. My high school computer science teacher didn&#x27;t know.<p>What I loved about the MUD as a learning environment was the players. On a busy night we&#x27;d have over a hundred people playing. So, I got to cut my teeth on a real, live production system with actual users. That motivated me. There were mild consequences if I broke things. And, if I made things better for the players, it felt good.<p>For me, this environment was so much better than doing programming problem sets by myself, writing code that no one would ever use.<p><a href="https:&#x2F;&#x2F;tashian.com&#x2F;articles&#x2F;how-i-learned-to-program&#x2F;" rel="nofollow">https:&#x2F;&#x2F;tashian.com&#x2F;articles&#x2F;how-i-learned-to-program&#x2F;</a>
评论 #42311701 未加载
评论 #42309218 未加载
评论 #42310158 未加载
评论 #42313086 未加载
评论 #42313528 未加载
评论 #42311015 未加载
评论 #42311953 未加载
legohead5 months ago
MUDs are how I began programming, about 30 years ago at the age of 16. Now I&#x27;m a senior engineer making mobile games. Unsurprisingly I focus on the backend.<p>MUDs taught me C, devops, multiplayer&#x2F;sockets, security to some extent, databases (I wrote my own MUD that used MySQL). Also HTML&#x2F;webpages eventually. MUDs taught me the full stack.
评论 #42309682 未加载
评论 #42309096 未加载
mfontani5 months ago
I started &quot;real&quot; programming with MUDs, and after a hiatus I&#x27;m still helping run a C-based MUD, and it&#x27;s awesome.<p>Much water has passed under bridges, yet there are dozens of us even creating new ones and doing all sorts of weird things with this great hobby.<p>The Multi User Dungeon discord is nowadays the place to meet like-minded people who like, or code, or balance, or design, or write or use clients for, MUDs. Join us at <a href="https:&#x2F;&#x2F;discord.gg&#x2F;multi-user-dungeon-279748146316312576" rel="nofollow">https:&#x2F;&#x2F;discord.gg&#x2F;multi-user-dungeon-279748146316312576</a><p>IAC WILL MUD
davidw5 months ago
The good old days when you could just hook up some hacked up C code to the internet and pray you caught all the potential exploits.
Sohcahtoa825 months ago
Back in like 1996 I tried to write a MUD using Visual Basic when I had no idea how classes and objects work, but I understood arrays and how to use &quot;Redim Preserve&quot; to change the size of an array while keeping its contents. So any time something needed to make a reference to something else, I stored the index of where that thing was in another array. It made code EXTREMELY ugly.<p>No data structures, just lots of arrays. Instead of something like &quot;player.health = 100&quot;, it was &quot;playerHealth(playerIndex) = 100&quot;.<p>If I wanted to make a player hit a monster, it was like &quot;monsterHealth(playerTarget(playerIndex)) -= playerStrength(playerIndex) + weaponDamage(playerWeapon(playerIndex))&quot;<p>Awful and unmaintainable.
评论 #42310774 未加载
belthesar5 months ago
I think this highlights one of the tenets that I try to advocate for when folks ask me how to get started on some sort of computer science journey. Find a thing that interests you, and work to make that. Whether it&#x27;s working on a game (from scratch, a mod, whatever), building a hosting platform, writing a little utility to make your life easier, making a website, picking a project that has problems you are motivated to solve does wonders to help you through the initial suck of getting started. And as Jake the Dog says, &quot;sucking at something is the first step to being kinda good at something&quot;, so anything that helps offset the suck can be essential.
评论 #42312083 未加载
midnitewarrior5 months ago
&gt; GET THIS STRAIGHT: &#x27;VAX&#x27; IS NOT AN OPERATING SYSTEM. It&#x27;s the name of a family of computers from DEC. There are plenty of Vax&#x27;es running VMS, and there are even more Vax&#x27;es running Berkeley Unix or Ultrix. The Vax&#x27;es running Unix have a lot more in common with other machines running Unix than they have with Vax&#x27;es running VMS.<p>GET THIS STRAIGHT: &#x27;VAX&#x27; IS A CPU ARCHITECTURE AS WELL AS THE NAME OF SOME COMPUTERS CREATED BY DEC. The plural of &quot;Vax&quot; is &quot;Vaxen&quot;.<p>(<a href="https:&#x2F;&#x2F;en.wiktionary.org&#x2F;wiki&#x2F;VAXen" rel="nofollow">https:&#x2F;&#x2F;en.wiktionary.org&#x2F;wiki&#x2F;VAXen</a>
评论 #42309518 未加载
Blackthorn5 months ago
LPMUD taught more people how to code and more effectively than basically any online educational environment I can think of, and it did it without people even realizing that&#x27;s what they were learning.
评论 #42311287 未加载
efsavage5 months ago
<p><pre><code> &gt; === How to Learn in the First Place &gt; &gt; (1) Play with something. &gt; (2) Read the documentation on it. &gt; (3) Play with it some more. &gt; (4) Read documentation again. &gt; (5) Play with it some more. </code></pre> (6) You&#x27;re starting to learn it! Now <i>fix</i> the documentation
dekhn5 months ago
I learned C by writing a MUD client around &#x27;87-89. This was for VMS, where the telnet client didn&#x27;t properly handle newlines and carriage returns, which made telnetting into a mud (tinymud at CMU mainly, then chaos and a few others) painful. I recently dug up the code (it was still online somewhere) and had a laugh.
评论 #42309149 未加载
评论 #42313568 未加载
andrewla5 months ago
This is how I got started, from a DikuMUD. I had met a couple of other people on Medievia and we decided to give it a go. I knew a tiny bit of C from an old pirated copy of Borland TurboC and just jumped right in.<p>Great stuff -- I remember my proudest moments were adding color to the various system messages (vanilla Diku at the time didn&#x27;t do that), and adding online level editing with saving; previously you had to create maps offline.<p>Never contributed upstream (I was in high school and didn&#x27;t even understand what that would mean), and eventually kind of drifted away from the community. But I got a ton of experience in just jumping in and working in C.
beaugunderson5 months ago
Some of my first programming experience was using the language inside of a MUSH (TinyTIM to be specific, based on TinyMUSH but heavily modified). Interactive experiences could be built up using the rudimentary logic afforded.<p>Found this repository of MUSH code if anyone is curious what it looked like: <a href="https:&#x2F;&#x2F;www.mushcode.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.mushcode.com&#x2F;</a><p>Modifying Eggdrop (the IRC bot written in C) was another project that contributed to my early understanding.
评论 #42311575 未加载
emil0r5 months ago
&#x27;vi&#x27; &#x27;emacs&#x27; &#x27;jove&#x27; -- use whatever editor floats your boat but learn the hell out of it you should know EVERY command in your editor<p>Those who picked emacs from that list never got the point of writing any code for the MUD. They greatly contributed to OS development all over the world however.
codesnik5 months ago
I&#x27;ve played a MUD and accidentally learned Perl once.
评论 #42308538 未加载
hinkley5 months ago
The first production lines of code I wrote was fixing SO_LINGER on diku so that we could restart the server if someone shut down their computer without disconnecting properly.<p>Later I wrote a string intern() function for a highly modified MUD that was having memory issues. But they balked at the complexity of having to use a malloc&#x2F;free replacement even after I made the arena logic dead simple :&#x2F;<p>Also the first implementation of a Slab allocator I ever read about, by a wide margin, was in LPMud, which one of my roommates and a friend were into. I wouldn&#x27;t hear that concept again, unless I brought it up, for a decade or so.
forgetfreeman5 months ago
Related: I wrote a MUD engine and worldbuilder when I decided I wanted to learn Node.
stevesearer5 months ago
Playing a MUD was the reason I started making websites so my friends could &quot;easily&quot; share equipment stats with each other without needing to scan them in the game.
Terr_5 months ago
In terms of &quot;games as an entry into programming&quot;: The first-person shooter <i>Starseige:Tribes</i> (1998) had strong scripting support for both server-side gameplay mods and for client-side conveniences.<p>For example, many gameplay mods allowed players to dynamically place new entities (walls, platforms, turrets), and if your team was too competent and you got bored guarding the flag you put on an a client-side script to play Tetris in a custom HUD.
sjburt5 months ago
Really curious about this:<p>&gt; If you have access to a program named &#x27;Purify&#x27; ... learn how to use it.<p>Anyone know what this was or use it?
评论 #42309679 未加载
评论 #42309792 未加载
评论 #42309738 未加载
pjmlp5 months ago
When I started into UNIX, the MUDs we were running were based in Pascal actually, surprisingly in a C ecosystem.
评论 #42308823 未加载
debo_5 months ago
I remember reading this guide as a Medievia and small-communitt dikumud player in the early 2000s. It was zipped up with a few other guides, including Beej&#x27;s socket guide iirc.
freediver5 months ago
Spent 4 years writing a MUD during my college years (yes in C), eventually dropping out of college as this was just so much more fun.
throwaway3141555 months ago
Okay, I&#x27;ll ask - what&#x27;s a MUD?
评论 #42311004 未加载
LeFantome5 months ago
Amazing that they wrote this wonderful, detailed rant without mentioning Windows at all. VMS was certainly not the most popular OS or even most popular non-UNIX OS.<p>I mean, this is 1993 and they did mention DOS. But reading this, you would not know that most of those DOS machines were running Windows and that they were far, far more numerous than either UNIX or VMS. And Windows NT was already released when that was written.<p>Not that I am a Microsoft apologist. My main machine was OS&#x2F;2 back then, I was already using Linux, and ( if I had the money ) NeXTstep would have been my dream platform.
评论 #42308470 未加载
评论 #42308453 未加载
评论 #42308384 未加载
评论 #42308281 未加载
评论 #42308313 未加载
评论 #42308895 未加载
评论 #42308473 未加载
评论 #42308887 未加载
评论 #42308608 未加载
评论 #42308503 未加载
评论 #42312045 未加载
评论 #42308450 未加载