I’d been using Blitz3D to mess with 3D game development for the last 2/3 years. It had even helped me get my first programming job. I’d finished a couple of basic games in it and was pretty well versed in it’s eccentricities.
However the creator of this famous development tool had announced something very special: A new version of the Blitz tools: BlitzMax!
Gosh, I remember reading in awe how I could develop for 3 Operating systems from one codebase. It had super fast openGL (or slightly slower DirectX) 2D graphics. A 3D engine was apparently in the works and most importantly it was now fully Object Orientated!
I wasn’t initially too excited about that last part. “OO” was something that happened to other programmers for me at the time. As it happens this turned out to be the eureka moment my game developer’s brain was needing.
Ships are objects In Blitzmax!
I’d previously attempted to develop a space shoot-em-up game in Blitz3D called “Pioneer”. As with much of my early game code bases it had become this spaghetti mess of includes and massive functions that duplicated large amounts of code. Nothing was self contained, mostly because you couldn’t do that. Like I said, I had just started a new job (along with Rich as it happens, but that’s another story). They were very keen on getting us up to speed with OO programming. This involved many conversations such as “Does the hammer hit the nail, or does the nail request the hammer to hit it”. Ho ho. Fun programmer discussions, you know you love them.
For the non developers out there, Object Orientated programming is a concept to describe writing self contained code for an individual element in a game or other piece of software.
So after a short stint at making a casual game called “Pushy and the Magic Blocks” I decided to embark on remaking my shoot-em-up RPG adventure game. Making it in BlitzMax was a dream in comparison to the previous incarnation of the language. It was my first game that sold more than 5 copies.
Welcome To The Tribloos
When we first started Bumpkin Brothers (which was about 2009 I seem to recall) we had two games in the pipeline.
The first was “The Machine” a 3D puzzler made in Unity 3D (version 2?!) And also The Tribloos. The Tribloos was written in Blitzmax and my second attempt at a casual title after Pushy. Once again the ease of use of the language meant I had a prototype out very quickly. I sent it to BigFishGames and they sent back a contract only two weeks later!
Tribloos did very well for a game using programmer art and I used the proceeds to fund the following game which I jumped into immediately.
I decided to use it for the 3rd game in the series too as it meant I could improve upon the existing code base quickly. I could also copy and paste plenty of reusable code including system setup code (eg. graphics modes) which can be frustrating to re-write.
But it’s time to move on…
I feel a bit emotional about this. But Blitzmax is no longer being updated to the degree it used to. An official 3D engine never emerged. It now feels a bit dated in it’s approach.
I love it but it’s far past time to move on.
So what next? I was a little undecided.
Space Farmers 2 will be Unity3D. There’s no question there. I like Unity3D, it does a lot of awesome stuff. More than a lot, the editor is great and it’s moved on a huge amount in the few years I’ve used it. The Asset store is an incredible leverage of other people’s skills out there to improve an already great product. But I’ll be honest, I don’t love Unity the way I loved BlitzMax. I think a lot of this is to do with the way you attach scripts to things. I know this is a pretty awesome thing in itself but I’m a full page code type developer at heart. And this feels at odds to how I like to look at my project.
MonkeyX is also a possibility. It’s the next generation from the Blitz developer Mark Sibly. The syntax is similar, it’s got tons of new features. It’s recently been updated with a new backbone of a game engine. There are some good 3rd party tools made for it (not as much as Unity sure). But I’m slightly off put by the size of the user base, it’s not as big as the glory days.
I was also looking at other systems like GameBryo, Unreal, CryEngine and Cocos. However they all require C++ and I’ve not had enough recent time with the language to feel comfortable trying to make games in it.
It’s all in the syntax…
I think it’s a fairly safe bet I’ll be moving to Unity3D permanently. While I’m not as much of an expert as Rich is at the moment I’m very familiar with, and keen on, the C# language. Also now that Unity has improved it’s 2D development tools it feels like the right time and the right destination to move to. I’ll definitely keep an ear out for future Blitz developments but for now, sadly, I think it’s time to jump ship. Um…Once Tribloos 3 is finished anyway.