Whenever someone asks me about how I got into software development, it would put on a big smile on my face because I would tell them a funny story about a naive twelve-year-old kid who followed his curiosity. In a way, it’s my own unique origin story that I look back upon a time that I plunged deep into my passion and chased my curiosity to achieve a dream. I hope this story inspires you to follow your curiosity.
If I can do it, you can too
My Software Developer Journey
Back in the late 1990s before online graphical games became immensely popular, there were online multiplayer text-based dungeon games called “M.U.D.,” which is short for Multi-User Dungeon. That’s a type of game and not the game’s name. I have long forgotten the name of the game that I played. Anyways, playing the game required a lot of reading and typing because you needed to read what was happening and type out what you wanted to do. Fundamentally, it’s an MMORPG (massively multiplayer online role-playing game) without the fantastic graphical user interface and ability to use the mouse.
There I was playing the game with my friends, and I thought “Hey! What if I built my own?” so I began to do some research into what it would take. Youtube “how to” videos didn’t exist back then, which meant I had to visit a lot of various forums and websites scattered across the internet. The first problem I encountered was choosing a code base because there’s a large variety of different code forks of M.U.D. code bases. Each was customized differently and had a different explanation of how their code base runs. I forgot which one I chose, but after deciding, it was not difficult to download the code base because they are open source.
WAMP? LAMP? What’s a LAMP? Some furniture?
The second problem encountered was how to set up the code base and the right environment to run the software. Idiotically, I downloaded the LAMP (Linux-Apache-MySQL-Php) package, and I spent a week going down the Cygwin route to run Linux programs on a Windows machine. Eventually, I found the WAMP (Windows-Apache-MySQL-Php) package and found someone who wrote up instructions on compiling the code base on Windows. It was much easier to set up a WAMP package than a LAMP package on Windows. Everything lined up afterward, and I successfully had a localhost version that I could start tinkering.
The fun part began with changing the code and adding new capabilities to the stock version. The community had a bunch of code snippets and tutorials on how to make code changes. While making changes, I self-taught myself the programming language C with a used copy of “C for Dummies” and understanding the changes I was making. At one point, I swore that semicolons and curly bracket were my banes of my existent with every syntax error I ran into when compiling the code. I remember posting on forums asking for help about why something didn’t compile correctly or a problem I couldn’t solve. There was always someone who would chime in on things to try to resolve the issue.
The hardest part came next, which was creating a theme and a story for my dungeon world. My other interest is anime, so I created an anime theme world full of Non-Player Characters of famous anime characters of the time. Adding new areas into the game wasn’t too difficult as there was a dungeon room editor that did the heavy lifting. The tricky part was writing all the room’s descriptions and planning the area out. The total time I spent was close to a few months to change the default medieval theme into what I wanted.
Toward the end of development, I realized that I couldn’t possibly host a M.U.D. on my not always online 56k dial-up connection, so I had to find host server. The great opportunity I had was I became friends with the creator of the game that I was playing, so I asked him about hosting services, and he introduced me to his server host who I talked to about having her host for me. She explained that the service costs $60 a year which I ended up naively sending cash in an envelope. Luckily, the money arrived at the server host’s address, and my hosting account got up a week later.
After uploading my customized code base to the server, there was one last small set back that occurred. The server was a Linux OS, and I had no idea how to work in a Linux environment except for my Cygwin experiment. Once again, I went online to read it up and purchased a book, “Unix for Dummies,” to learn how to use Linux. In hindsight, that was the wrong book, but I didn’t know that back then. Luckily, Linux is based off on Unix, so the environment is quite similar. The code compiled without a problem with the gcc compiler on Linux. Everything finally came together, and I finally launched my game!
Would you believe me if I told you that a twelve-year-old kid with limited resources successfully launched his own M.U.D. game within six months? After launching, I was able to host it for a couple of years before shutting it down due to time commitment issues. The journey was full of mistakes and lessons learned from each one. At every step, people were willing to help me achieve what I was trying to do. In the end, I loved the challenge and the feeling of overcoming it. This wacky and fun dream turned out to be my first step into the fast pace and chaotic software engineering world.
“Curiosity is the fuel for discovery, inquiry, and learning.” Anonymous