Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 24, 2014
arrowPress Releases
October 24, 2014
PR Newswire
View All

If you enjoy reading this site, you might also want to check out these UBM Tech sites:

Black Annex: A QBasic game for the 21st century Exclusive
April 15, 2013 | By Mike Rose

April 15, 2013 | By Mike Rose
More: Console/PC, Indie, Programming, Design, Exclusive, Video

Black Annex is a nifty-looking stealth strategy game from Lance McDonald of Australian indie studio Man Fight Dragon. What really makes the game stand out is that it has been written entirely in the decades-old QBasic programming language.

"When I was like 10 years old I sent a floppy disk to Epic MegaGames [former name for Gears of War studio Epic Games] featuring a game I made in QBasic and they never wrote back to me," says McDonald. "Well, who's laughing now?"

QBasic is what McDonald grew up on, and he knows it better than any other language. "I wanted to spend time creating a game, not learning new skills with Black Annex," he explains. "From the start, I knew I was proficient enough in QBasic to finish the entire project."

He reasons that if he'd targeted, say, C++ with OpenGL or DirectX, he would have ended up making a heap of fundamental mistakes, and may never have finished up development on the game.

"I wanted to make a game, not learn new skills," he reiterates. "This was the best way for me to do that based on my history with computers."

Of course, there's a reason why certain programming languages have fallen away in favor of newer codebases. Many of the languages that were popular before the turn of the century featured numerous limitations, and QBasic was no different.

black annex 1.jpg"The primary issues with the way I am developing Black Annex is that I can't touch the GPU," McDonald notes, "so I need to do my damned best to make the game run fast.

There are also plenty of other issues with the way the QBasic handles certain aspects of development too, such as how you're limited in handling arrays -- "but things like that aren't a problem because I am just completely used to that," McDonald says.

"It's the speed that forces me to do things as clean and fast as possible," he adds. "The game, at the moment, requires about 2.6GHz on a single core to run good. It's just about unacceptable for a game that looks like it was made in the 90s. I just have to do my best with my abilities and ship what I can at the end of the day."

But this isn't putting him off using QBasic again in the future. "There will be one more product from Man Fight Dragon in QBasic after Black Annex, at the very least," he says, although he adds, "I won't use any other old languages or any other goofy stuff - QBasic was just chosen for my own personal skill, not as a gimmick."

Black Annex (which is on Steam Greenlight) is due for release later this year on Windows PC, with Linux and Mac OS builds to follow.

Related Jobs

Bohemia Interactive Simulations
Bohemia Interactive Simulations — Prague, Czech Republic

Game Designer
Activision Publishing
Activision Publishing — Santa Monica, California, United States

Tools Programmer-Central Team
Bluepoint Games, Inc.
Bluepoint Games, Inc. — Austin, Texas, United States

Senior Graphics (or Generalist) Engineer
Intel — Folsom, California, United States

Senior Graphics Software Engineer


Glenn Storm
profile image
QBasic is awesome, this is great! Using a known language (read: old skool) to learn systems, processes and to experiment is a great way to focus on what you want to learn with less chance of getting distracted or thrown off course. This game looks great!

Kevin Fishburne
profile image
Nice work Lance. If you're into Linux you might want to give GAMBAS a try. It's a BASIC dialect and IDE, is object oriented and supports a ton of components including OpenGL, GLSL, SDL, name it and it's there practically.

Funny thing is your story parallels mine exactly (which is why I use GAMBAS). Had I chosen anything else the project time would have quadrupled.

Gryff David
profile image
This is amazing! Reading articles like this makes me realise all us indie devs come from the same mould! I started learning to program in QBasic when I was about 8 too and also working on small games, experimenting etc. I've now moved onto C++ and C#, but lots of my favourite programming memories come from just learning the basics and making small games in QBasic. Love this article.

Todd Boyd
profile image
If only you didn't have to deal with that damn abstraction layer. There were actually some pretty nifty hacks you could pull off in Q(uick)Basic back in the day with direct access to the hardware.

Kevin Fishburne
profile image
I used Fastgraph, which was a graphics library programmed in Pascal for QuickBASIC 4.5. It let you do a lot of bit-blitting type stuff, image loading and playing wav files. Really took things up a notch for QB games. I remember I could do full screen scrolling at 320x200@8bpp at a reasonable frame rate, do color cycling, smooth palette transitions, all sorts of cool stuff. Those were the days...

Nick Harris
profile image
I'd sooner play this than stupid macho Gears...

I quickly sided with the Locust, it was their planet after all.