I was a cheat

* but not in the way that violates the OSU Code of Conduct

My best friend Steven got the original Nintendo system first, basically when it became available in the United States. The NES was groundbreaking – no kid had ever had something that offered this level of gameplay before. When I went over to Steven’s house (and when we weren’t forbidden from being inside), we would play Contra, that game where you would jump through the jungle shooting evil commandos and weird aliens with swinging tentacles. I think we were seven.

up, up, down, down, left, right, left, right, a, b… how does it go again?

One great thing about Contra was that two players could cooperatively play at the same time, which made it that much more awesome. But even with a buddy helping you, there is one thing that still sticks in my mind – Contra was hard. You didn’t have any of these gentle-making modern inventions like ‘HP’. No, take one single pixel bullet to your character’s hit box and you are out one of your three lives. And did I mention this game was a bullet hell? Certainly no first-grader in today’s more gentle generation of gamers would last more than a minute in that environment, and Steven and I probably shouldn’t have been able to either, except for one thing: Steven knew the Konami code.

The Konami code was a combination of inputs that you had to enter in the short time the intro screen was sliding in that would give you 30 lives. It was also more than that – the Konami code was my first lesson that the mode of operation of a program could be changed in inobvious ways. It was definitely a cheat, it might be sort of a hack (although in those pre-internet days these codes were also revenue generators that helped sell gaming magazines), and it definitely wasn’t coding, but it got me into coding, sort of, eventually.

After discovering the Konami code it was only a matter of time for me to start looking for hidden ways to gain forbidden power in every video or computer game. In middle school we discovered Doom, and not long after someone was told by some else to type in ‘IDDQD’ to get immortality. Not long after we found out about ‘IDKFA’ which gave some other upgrades, and then suddenly we were actually trying to hack the game by typing in random codes to see what we could do. I hadn’t taken CS 225 at that point so the idea that I just had to systematically try 26^5 combinations permutations didn’t come up. I don’t think we ever discovered any new codes ourselves.

By that time the internet was a thing, and with the power of search engines we were soon using hex editors to give our saved games infinite money in games like Sim City and Civilization. We had leveled up our cheating, and doing things that I would not understand until I took CS 271.

It’s a mob!

It wasn’t long until the untold of power that was the hex editor actually made gaming way less fun. Everything was too cheap and easy – even a 7th grader could tell that dominating the simple AI with 8K RAM using the hex editor was pretty lame. I might have actually played a game without cheating a few times.

Luckily the rest of the world was marching on in gaming technology, and we got internet multiplayer games in the form of text-based role playing games (Multi-User Dungeons, MUDs) that normally had anywhere from 1 to 200 players pressing ‘n’,’e’,’s’, or ‘w’, to navigate between text-paragraph-rooms, kill other players and also non-player characters, which were actually called mobs which was short for mobile objects, and did I mention that when my son got into Minecraft and starting talking about ‘mobs’ for the same reason I almost fainted . . . and I digress.

The point about multiplayer games is that cheating was definitely back on the table. It was way more fun to dominate another human being using fair or unfair methods than the stupid local AI. In my defense, most MUDs, and definitely the only ones I played, were created and run by unpaid volunteers (the ‘Immortals’ or ‘Imms’) whose primary compensation was the ability to program their cheat characters so they could slaughter the rest of us that were merely playing the game. However, because the implementation team was somewhat amateurish (or didn’t care), there were always tons of probably unintended exploits in these games to, well, exploit.

My MUD of choice was called SneezyMUD, and I played it for a few years and might have had some lower grades in college than I should have had due to that game. SneezyMUD eventually shut down due to a huge fight among the staff and player base over, you guessed it, a massive cheating scandal (I had nothing to do with it I swear), and my grades picked up and I graduated with a chemistry degree. A while later, the head Imm open-sourced the code onto Bitbucket, and another fan of the game fixed up the code, opened up a new server, and also kept the development open-source on Github (https://www.github.com/sneezymud/sneezymud). I found out, started playing the game again, realized the code base was an interesting source of cheat potential fun history, and started delving into the spaghetti of C++ that had been written over 25 years.

To jump to the end of the story, using the source code of SneezyMUD to my advantage was fun, but much like in the days of using a hex editor on save files, it became unsatisfying. I actually became annoyed with some of the exploits I discovered, and with a lot of help from the current SneezyMUD staff I managed to submit some pull requests to the project to fix things up. Simple fixes turned evolved into feature additions, and I wound up learning a lot about open source software development to my surprise. That led me to me leaving my chemistry job to work for a friend who had a web app startup, enrolling in the OSU online CS program, and it seems like all of a sudden I’m in my last class, CS 467, capstone.

My capstone project? An online multiplayer game (definitely not a MUD). Right now I’m obviously not sure how it will turn out, but I really hope that someone will like it enough to try to cheat on it.

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *