QBasic Gorillas – The Precursor to WORMS

QBasic Gorillas – The Precursor to WORMS

In the early days of personal computing, before the era of sleek graphics and immersive gameplay, there was a charming simplicity to the games that captured our imaginations. One such game, a staple of many childhoods and a delightful introduction to programming for many, was QBasic Gorillas (or as I knew it, “gorilla.bas”, as that was the QBasic file that housed all of the code for the game.) This humble, yet addictive game has a special place in the annals of retro gaming history, and probably helped spur many kids in the 90’s to become developers.

The Birth of QBasic Gorillas

QBasic Gorillas was part of a suite of games that came bundled with MS-DOS, the operating system that dominated the PC market in the 1980s and early 1990s. (Kids today don’t know what they were missing when certain games required custom boot disks. Wanted your new CD-ROM drive to work? Boot disk!)

It was written in QBasic, an easy-to-learn programming language that was included with MS-DOS 5.0 and later versions. QBasic was designed to teach the fundamentals of programming, and QBasic Gorillas served as both an entertaining diversion and a practical example of what could be achieved with a few lines of code. As a kid, I would dive into the code of the gorilla.bas file and just play around with it, not entirely understanding what I was doing. The entire game was just under 2,600 lines of simple code, and gave users the ability to customize the game in any way they pleased.

Development

The game was created by IBM employee Mike Abrash, who would later go on to work on more complex projects like Quake and the Windows operating system. Abrash’s goal was to demonstrate the capabilities of QBasic and to provide a fun, engaging way for users to learn programming. The source code for QBasic Gorillas was included with the game, allowing curious users to dive in, tinker with the code, and learn by doing.

Gameplay

At its core, QBasic Gorillas is a simple artillery game. Two gorillas stand atop skyscrapers in a cityscape, and the objective is to hurl explosive bananas at each other until one gorilla is left standing. The game is turn-based, with each player inputting an angle and velocity for their throw. There is no single-player option, as the code is incredibly simple and doesn’t support a computer player.

The simplicity of QBasic Gorillas is part of its charm. Here’s how a typical game unfolds:

Game Setup

"QBasic Gorillas" setup screen.
QBasic Gorillas setup screen allows you to even adjust gravity.

You name each of the two gorillas who will be hurling exploding bananas at each other and also select how many rounds it will take to win the game. Then, you get to define the gravity in the game, in m/s2. This simple option gave the game more complexity and allowed you to play in moon-like gravity if you pleased.

The game initializes by generating a random city skyline, with buildings of varying heights. Each gorilla is placed on top of a skyscraper at opposite ends of the screen.

Taking a Turn

On their turn, a player inputs two key variables: the angle at which they want to throw the banana and the velocity of the throw. The angle is measured in degrees (toward the enemy), and the velocity determines how far the banana will travel.

Taking a turn in "QBasic Gorillas".
Taking a turn in QBasic Gorillas.

Once the input is provided, the gorilla hurls the banana. The banana arcs through the sky, following a simple physics model that includes gravity and wind (which can vary from turn to turn).

If the banana hits a building, it creates a small explosion, potentially altering the skyline. If it hits the opposing gorilla, the game ends with a dramatic (by early PC standards) explosion and a message declaring the winner.

QBasic Gorillas gameplay and end scene.

Educational Value

Beyond its entertainment value, QBasic Gorillas was an educational tool. By examining the source code, players like myself could learn about basic programming concepts such as loops, conditionals, and functions. The game’s physics calculations also introduced users to more complex topics like trigonometry and projectile motion.

The inclusion of wind as a variable added an extra layer of challenge and introduced the concept of randomness and its impact on gameplay. Players had to adjust their strategies based on the changing wind conditions, making each game unique.

Legacy

While QBasic Gorillas might seem primitive by today’s standards, its influence on early PC gaming and programming education is significant. It wasn’t the first artillery-style game (Artillery, made in 1976, was one of the first popular ones), but for many, it was a first step into the world of video game coding and a source of countless hours of fun. Its open-source nature (from Microsoft no-less!) allowed budding programmers to modify and enhance the game, fostering a spirit of experimentation and creativity.

QBasic Gorillas also paved the way for more sophisticated artillery games and has a nostalgic legacy among retro gaming enthusiasts. It stands as a testament to the creativity and ingenuity of early game developers who worked within the constraints of limited technology to create engaging and memorable experiences.

Should You Play It?

You’ll need an old DOS computer or DOSBox to play QBasic Gorillas AND be able to edit the gorilla.bas file. This is the best way to play the game, since you have the ability to edit the source code and play with the gameplay directly. However, if you just want a quick shot of retro nostalgia, you can play the game online at Classic Reload.

It’s worth at least a look. If you only play the online version without diving into the code, it’ll grow a bit tiring after a couple of rounds. But if you can dive into the code, you may find yourself having a few hours of fun tinkering with this classic.

If you want a great next step up from this one, check out Scorched Earth, which gives users a ton of options around the projectiles fired at the opponent and is much more strategic and engaging.

Retro Gaming Geek

I'm a retro gaming geek that dives into the magic of retro gaming from the 70's, 80's and 90's. I like to dive into how the games that shaped the industry came to be. Every game has a story. My job is to uncover that story and share it with all of you.

Leave a Reply