Black Annex, a game written in 12,000 lines of QBASIC is gaining lots of support on Steam Greenlight - partly because of the affection the community has for QBASIC itself.
An isometric action-fest with a twist of deception and espionage!
(click to enlarge)
According to the game's description:
Your role here will put you in charge of a number of agents with skill-sets catered from aggressive weapon use to stealth and deception - beyond this, you'll be customizing their ability and weapon load-outs as you see fit to handle the task at hand. Choose any agent to act as your PERSONA at Black Annex and manage the business side of things before taking direct control of a squad and deploying to the mission location.
The most intriguing aspect of the game is that while it has the plot and presentation values of an up-to-the-minute action game, including a music track supplied by Abducted by Sharks, it was programmed in QBASIC.
While QBASIC needs no introduction to most of today's developers - they mostly grew up programming in it - it is now so long since it was abandoned by Microsoft that some younger developers might never have come across it.
QBASIC was the cut down version of Quick Basic that Microsoft introduced in 1991 with MS-DOS 5 and then included with both the Windows 95 and Windows 98 operating systems.
In its day, QBASIC was a hobbyist rather than a professional language - its contemporaries were Pascal and C++ - but it was capable of games as demonstrated by Gorrillas, a game created by IBM that was also included with MS-DOS 5:
Yes, there is a huge difference in the level of sophistication achieved by Black Annex over this primitive demo. But why choose QBASIC over today's crop of languages?
Lance McDonald, the game's creator, has described it as his "love-letter to the games he grew up on" and explained to PC World:
"When I sat down to make Black Annex a year ago, I didn't want to 'learn' how to make a game—I realized I already knew how to make a game. I just had to go back to the tools I knew."
McDonald's blog, which has charted the course of the game's development, shows that this was no easy ride. Summing up the experience he says:
It’s been a year of nights staying up until 3am with 9am starts the next morning. A year of missing time at the gym because a door keeps randomly opening the third time you visit a certain level. A year of missing time with my wife and daughters because half the chair legs on all the desks are the wrong shade of grey and tomorrow is screenshotsaturday.
But he also points to:
amazing encouragement from a huge online community of people who really actually care about the effort I’m putting into making a game that they might get to play some day.
He has had a great response from the Gamedev sub-Reddit and most recently from the IndieGaming one and now the that he's opened it up to the world on Steam's Greenlight platform it does look as though it can become a commercial product.
The first version of the product is for Windows, from XP to Windows 8 but it is intended to release it for Mac and Linux as well. This is because it links to SDL (SimpleDirectMeida Layer), a free open-source cross-platform, multimedia library written in C that presents a simple interface to graphics, sound, and input devices.
If Black Annex becomes a commercial success it may have the effect of clarifying QBASIC's status, which rather than shareware, is considered "abandonedware". It is assumed that Microsoft has no further interest in the code but it has never issued a statement clarifying the issue. The QBASIC community have long assumed that it was freeware or that Microsoft would ignore them as long as there was no commercial use of the language. The more cautious have made sure that they had an MSDOS licence of some description to cover their use of QBASIC.
So thanks Lance McDonald for showing there's still mileage in the programming tools of the 1990s as long as you package them with the right wrapper.
To support Black Annex and the future of QBASIC programming vote for it on Greenlight.
Xamarin has announced a Unified API for Xamarin.iOS and Xamarin.Mac which allows developers to support both 32-bit and 64-bit applications with the same source code (as well as binaries) on both [ ... ]