How I learned to fly

The small steps in game modding that eventually led to a career in software development.

Brett Weir, Jan 1, 2025, 5 mins

#nostalgia #gamedev #internet #career

I've been working as a software engineer for my entire career up to this point. How I ended up here is its own story, but there were some early life experiences that prepared me to consider this as a career path. This is the story of one of those experiences.

In the late 90s, I was fortunate as a wee lad to have a Pentium 4 computer (wow!) and a 56k modem (fast!). If memory serves me right, it even had almost an entire gigabyte of storage (énorme!). This incredible privilege meant that I was able to explore the World Wide Web from the comfort of my own home and discover its limitless potential very early on in my life.

I often discovered websites by adding .com to the end of brand names I found around the house, which is how I found the Ivanko Barbell Company website. Or the domain might be printed on a product's packaging, which is how I ended up on id Software's website.

There were search engines, like Tucows, AltaVista, Lycos, and Ask Jeeves, to name a few. I don't remember these being very good.

Then there was Yahoo:

Screenshot of the Yahoo! search engine home page from 1997.
Screenshot of the Yahoo! search engine home page from 1997.

Everyone knew who Yahoo! was, because everyone had seen the commercial of the people in a jacuzzi in the middle of a very snowy place, an activity that apparently Yahoo! was well-positioned to help you orchestrate:

How did he connect to the Internet in the first place?

Yahoo! never helped me do anything like that, but it did indirectly help to kick off a life-long interest in programming and game development. I don't remember what I searched for at this point—probably something like "online game"—but I stumbled across Graal Online, otherwise known as "Graal".

Graal?

Graal Online was (and still is) a top-down 2D MMORPG. It looked like this:

The player prepares for battle with four enemy knights in a grassy area surrounded by rocks and bushes.
A screenshot of Graal Online gameplay that evokes incredible nostalgia.

You'd be forgiven for not having heard of Graal. If it looks familiar, it's probably because the original graphics (and gameplay) were largely lifted from another wonderful game, and then later modified just enough to avoid lawsuits.

Graal had a lot going for it:

In other words, it was a modder's paradise. So many great assets to play with, easy access to dev tools, and countless, countless examples of every aspect of the game's implementation meant the best free introduction to game development that money could buy in 1999.

My first script

My first glimpse into coding was a snippet shared to me by another player. Graal's NPC scripting engine, in hindsight, appears to be an ancient version of JavaScript, so the code would have looked something like this:

if (playerHasItem) {
    if (keyPressed(up)) player.y--;
    if (keyPressed(down)) player.y++;
    if (keyPressed(left)) player.x--;
    if (keyPressed(right)) player.x++;
}

When an object with this script was placed in your inventory, the player would suddenly be able to walk anywhere on the screen, without regard for the locations of walls and other colliding objects. In other words, this code gave you flying boots.

When I tried this script for the first time, it changed my relationship with the game forever. By changing the code, I could make the game do other things, even things I hadn't yet thought of. That was a big deal.

My ventures into Graal scripting didn't end there. I made all kinds of random stuff!

I made some kind of multiplayer spinning ball capture-the-flag arena. It was a lot like air hockey, except it handled like you were half-asleep and the scoring system didn't make sense:

A medieval-themed game arena with three brightly colored spheres spinning and colliding.
Multiplayer battle ball arena game.

I made a lot of powerful bosses with unique attacks. Coincidentally, many of these attacks involved explosions, because explosions were a built-in game primitive.

Here's an underground-looking boss that exploded at you randomly:

The player stands idle in a dark, underground battle arena surrounded by randomly placed explosions.
Underground boss that hits you with complicated and amazing fire spells.

Here's a tower-looking boss that made explosions in circles:

A knight mage boss at the top of a tall tower creates a spiral of explosions.
Sky tower boss that hits you with complicated and amazing fire spells.

There's more exploding bosses, I'm sure, but you get the idea.

Also, what medieval fantasy hack 'n' slash adventure game would be complete without a multi-function combat robot with twin lightning hyper-blasters?

A robotic fighter fires oversized laser lightning cannons in an otherwise medieval themed area.
Battle robot that shoots hyper laser lightning power lasers.

What does it mean?

These early experiences with Graal have informed much of my understanding of programming and computers to this day.

Computers are a force multiplier. They allow you to express yourself in ways that have not existed for most of human history. They allow you to connect with people you otherwise could have never known. They allow you to shape the rules, systems, and interfaces that govern the digital world that we are all now living in. At every point in my life, computers have enabled what I want to do and provided a pathway to do it.

Video games are not the only thing you can do with a computer, but they are one of the most visible, obvious, and engaging things you can do. For myself, making video games, or even trying to, has been a gateway to greater understanding of what computers are and what they have to offer. I would not be surprised if the careers of many software engineers began with trying to mess around and make stuff in some game they were playing.

My life would be very different today without video games, and I am thankful that I had the opportunity to play them as a child.