The last of the bedroom programmers died long, long ago…
In the old days, bedroom programmers were fairly common. In fact, pretty much everybody in the early days of computing was a bedroom programmer at some point, because most people in the PC industry worked directly with the hardware because there wasn’t much in the way of software development kits or friendly languages to use. As computing matured and we had things like Windows and DirectX and so on, programming became a bit more common, and since users today don’t need to know a lick of programming or scripting to do anything, there’s absolutely no need to learn this skill. People who were around before my time might remember typing BASIC programs into the old computers to run some new game. How’s THAT for software distribution? Bedroom programmers would grow into the industry giants you see today. Some of them (Romero comes to mind, as does (Dr) Derek Smart) probably grew a bit too tall. In any event, I’m sure that most of us have wondered if we could dabble in the art of programming. More often than not, people are interested in game development. So, if you are interested in game development, what are your options? First off, don’t think that you’ll be creating Half Life in 6 months on your own. But we’re focusing on doing things either on our own or with just 2 or 3 people. With that said, keep your expectations realistic, and read on…
Game Maker 8
Game Maker has been around for ages… in fact it might even be over 10 years old now. If not, it’s certainly getting up there, and it’s still one of the most popular hobby authoring systems available. GM8 mostly focuses on 2D games, but it does have a few D3D functions that could let you create a Wolf3D style FPS without much work. Quake? Probably not going to happen. A Wolf3D clone? Sure thing! GM8 is pretty easy to work with since it can use drag-and-drop logic blocks for much of the code, but you can do a bit of coding in C-style script. Will you make any money with this stuff? Hell no. Anybody out to make money is out of luck, but for anything else, or just for playing around, give it a shot.
DarkBasic has a long, colourful history. It’s also technically abandoned; there won’t be any more updates for it. Which is a problem, because all through the development history of this app, stability has been questionable. DarkBASIC’s goal is to provide 3D game development with a BASIC-like coding interface. To that end, most commands and program structures are in plain text; it’s easy to understand and the coding structure of advanced languages like C++ either doesn’t exist or has been simplified. That said, some of the commands are simplified too far, and can be difficult to remember. DarkBasic works with a DX9 engine and has a lot of addins for things like shaders, but it’s still a pretty unstable bit of kit. DarkBASIC Pro is currently free for non-commercial use. There have been commercial apps sold with DarkBASIC. Might be worth a look.
If you liked the sound of DarkBASIC, but were turned off by the stability problems, then Blitz3D might be the way to go. Built off the BlitzBasic language, Blitz3D uses a BASIC-like language to create 3D games. Like DarkBASIC or any other app, you’ll be starting from scratch in terms of getting things created and displayed (there’s no visual editing interface like GameMaker or anything like that) but the language is very easy to understand. If you’ve never programmed before, you might want to give this one a shot to see how it goes. Lots of useful functions have been given commands and they’re all very well named. The biggest problem with Blitz3D is that it’s a DX7 engine. There are additional (commercial) engines you can bolt onto it to give it more functions, but it adds to the cost. Still, it’s rock solid and a great place to start, so long as you don’t mind the older interface.
XNA/Visual Studio C#
Microsoft released the XNA development kit to try to entice people into making games for the PC and Xbox 360. Games are written in Visual C#, an upgrade of C++. In terms of ease of use… it’s hard. Although XNA takes a lot out of the difficulty out of writing a game, it still doesn’t help much because you’re expected to know C# and there’s not much to help you learn how to use XNA. If you’ve got the time to sit down and learn it, or are really, REALLY serious about making commercial games but can’t sit through C++, give it a shot.
Cheap shot, but if you really want to develop commercial games, you’ll need to learn C++. You can find lots of engines that will work with C++, but you’ll also spend AGES learning it. Good luck, but this is the only real commercial route.
The lazy app. If you want to make a VERY simple FPS game, this one might keep you entertained briefly. It’s a snap to use and takes zero effort, but getting custom content into the game is extremely difficult. Also it costs a fair bit and doesn’t do much. The engine is very slow as well… I wonder if it uses any sort of culling at all to stop it from drawing hidden faces? Probably not. I include it as a curiosity, not as an actual suggestion.
So which one should I use?
If you’re only going to do 2D/very basic 3D development, or don’t want to do a lot of coding, then Game Maker is your only real choice. If you want to make a 3D game but really want a visual system for placement of objects and a great IDE for manipulating your assets, Unity is probably the best way to go. You’ll still do a lot of coding, but a lot less than you would with anything else. If you’re not afraid of coding, but you don’t know where to start, Blitz3D might be a good option because it’s a BASIC language which is dead simple to understand, thanks in part to the commands being worded in plain English. If you want to be a REAL coder, check out C# and XNA, but it’ll take you ages to get it up and running.
DarkBasic Pro, although a rather well featured engine, has stability problems and sometimes its syntax is absurd. FPS Creator is… well, it sucks. It’s worth taking the extra time out to make something better.