The cross-platform development Holy grail (DarkBASIC vs. Blitz 2011)

I had been hearing rumours of this new language for some months. Now and again I’d pick up chatter on Twitter that Mark Sibly, author of the Blitz 3D and Blitz Max development software, was working on something new. Something quite special. After reading several more tweets about it I finally cracked and decided to take a look. And what I’ve seen impresses the heck out of me.

This monkey is actually from Yoshi's IslandMonkey is a free and open programming language. But what is most exciting is that it’s truly cross-platform. The target platforms that should be available from launch include HTML5, XNA, Android, Native GL, iPhone and, yes, Flash. This means the exact same code will compile across all of those platforms, using their native SDKs (Xcode, Flex SDK, etc) which will should make them perform extremely well.

Monkey itself will be a simple but powerful core language only, with no platform specific baggage such as 2D or IO. Those are added in with modules. Mark has said there will be a module called mojo which will be a lightweight 2D module, but the real aim is to keep it as compact as possible.

Given that Blitz was used mostly for creating games it’s not surprising that Mark has said a simple game modules will be released. And of course the community can release their own modules to take the language in whatever direction they want.

At the moment there’s no real way to write one set of code that will execute across multiple platforms like this. Unity can handle some of them, but not all. Flash also can handle some of them, but certainly not all, and some of those it does handle have significant performance issues. It’s very similar to how haXe works, but with a far “friendlier” looking syntax. And knowing Mark I’m sure plenty of game specific modules will start coming forth, as Blitz has a significant game development community behind it.

Those of you who know my past may find it amusing that I’m blogging about a Blitz product :) To understand read on …

A Short Game Dev History Lesson

From 2003 to 2007 I worked for a company called The Game Creators (TGC). They created a programming language called DarkBASIC (DB), and later DarkBASIC Professional (DBPro). Our biggest competitor at the time was a language called Blitz Basic (BB), which then evolved into Blitz3D and ultimately BlitzMax. I was involved in the DarkBASIC community long before joining TGC in 2003, and back then there was genuine rivalry between the DB and BB camps. As the software evolved and new versions came out, so it became more and more intense. Coders from one camp would try and out-code those in another. Disinformation was rife.

By the time I was in charge of building the TGC web sites and forum, we had to actually instigate a ban on the “flaming” of Blitz products, as it was just getting too messy. Blitz developers would flood the forum with various bits of rubbish, and the opposite happened. It was very school play ground. Being a DarkBASIC fan boy, and then employee, I would vehemently defend the product. Of course I know and respect the TGC team and am good friends with several of them. But all of this was many years ago now, and I no longer feel like a traitor for exploring this new Blitz Research product :)

Both DarkBASIC and Blitz really did put game making tools into the hands of anyone who wanted them, without the complexity of DirectX / OpenGL. Back then there was no such thing as Unity. GameMaker was very embryonic, and other similar software extremely expensive or restricted with insane licenses or noob styled IDEs. DarkBASIC and Blitz really opened up a new market and blazed the trail.

Time waits for no technology

However it’s safe to say that neither products have really changed much in the past 5 years. Yet technology hasn’t let up one bit. Although both still have strong and active communities they have both ignored the tidal shift that is happening in both indie game dev and the platforms upon which games are now enjoyed. Unity has come from nowhere and stolen a huge percentage of their markets. HTML5 gains traction with every new browser release, and Flash has gone from being a random curio of a Netscape plugin to one of the largest platforms in the world.

Today we’ve got mobile platforms galore: iOS, Android, Symbian and RIM. XNA, WiiWare and DSiWare open consoles to us that traditionally have been locked behind closed doors. Even new platforms such as Kindle should not be ignored. And of course the ever present giant that is Facebook gaming (be it via HTML5 or Flash). Today gaming platforms are everywhere, and there are literally millions of connected and active users to tap into as well as the PC and Mac markets.

As an indie game dev on Flash I know my games will be enjoyed by millions of players. When I make a game, I make it to be played. My Flash games see more plays per day than my Windows games had downloads in their whole lifetime. But even I acknowledge that Flash isn’t the best way to be making games if I want to be truly cross platform. It’s performance on iOS is lacklustre at best. Android is lot better but still requires a hefty 16MB AIR install before a user can get off the ground, as well as having a hugely fragmented list of mobile devices to support. And forget about Symbian, XNA, Wii, Windows Mobile 7, etc.

DarkBASIC vs. Blitz – Round 3

So why does Monkey excite me? I think mainly because of the heritage from which this language comes. Hindsight is a wonderful thing. I’m a significantly more experienced developer now, and I realise  just what an excellent language Blitz was. Especially the incredible performance it achieved on the hardware of the era. So I don’t doubt that it’s going to do the same again.

But things are never quite that simple – and interestingly The Game Creators counter-attack by announcing their new App Game Kit which claims you can “write once, deploy to everything”. It will include 2D game specific functions and a built-in physics engine. This is very different to the approach Monkey is taking which is keep the core as tight and fast as possible, and then extend on-top of that. But from a game developers point of view, AGK on paper has more appeal already. Of course the proof is in the pudding.

I wonder if new battle lines will be drawn in the sand for these two products? I always felt like Blitz had the superior tech, but TGC had excellent marketing and community management (something I worked very hard to create and foster for them!) and to this day they still do. Blitz lack this, and it’s not something to be ignored in this age when communication with customers is king. Will pure tech alone win this round? Will Blitz hire someone good at marketing? Time will tell. But it will be exciting to see what happens in 2011. And of course no-one can forget the elephant in the room that is Unity.

For more information about Monkey you need to follow Marks blog at: http://marksibly.blogspot.com/

You can see an example of a Monkey coded Flash game in this blog entry.

And here is a video showing Monkey running on a mobile device.

The Blitz range of software is on the Blitz Research web site. Lots of famous indie game devs use it, such as Jayenkai and his incredible AGameAWeek site.

Details about AGK are limited at the moment, but can be found on the AGK teaser site, where you can sign-up to be notified when it launches. It’s also worth subscribing to the free TGC monthly newsletter, which will carry the latest AGK news as well as lots of other great indie game content. Fun fact: I started the newsletter and was the editor of every issue until I left in 2007, it will reach the 100th issue this year, which is awesome :)

The Game Creators range of software can be found on their main site.

Is true cross-platform development even possible?

Of course true cross-platform development is something of a holy grail. I don’t believe that any software will ever truly provide it, because there are so many device specific things that get in the way. Preparing graphical assets (especially for 2D games) is not the same between say a tablet running Android and a Nokia running Symbian. Device IO, resolutions and speed will always be factors.

This makes me feel that you will need to custom tweak your game for every platform, no matter what language you used to code it in the first place. Of course the least amount of changes you have to make, the better.

Whatever way you look at it though, 2011 is an exciting year for game developers. Our market is expanding by millions of devices each month. And when it comes to development everyone seems to want to make our lives easier.

Adobe, your move.

Posted on January 11th 2011 at 12:08 am by .
View more posts in Game Development. Follow responses via the RSS 2.0 feed.


7 Responses

Leave a comment
  • January 11th 2011 at 4:39 am

    I can understand your excitement but there is just one thing that bugs me … it’s the word “Basic” in the name! If I hear the word basic in any newer programming language then I automatically get flashbacks to stuff like Director Lingo or MS Visual Basic and thinking of these languages is like a nightmare creeping up my back.

  • January 11th 2011 at 9:44 am

    It doesn’t have the word “Basic” in the name of the new product Sascha :) Only in the old one. From the code samples I’ve seen on his blog it’s a comprehensive language, with proper method overloading, object properties, etc.

  • January 11th 2011 at 11:01 am

    Ok, then forget my last comment. 😉

  • February 8th 2011 at 12:37 am

    Excellent article Rich. Exciting times ahead.

  • February 10th 2011 at 12:49 am

    Really interesting topic and great blog post. Adobe actually seems to be doing a lot of work to make Flash cross-platform these days, with the release of products like Air for iOS and Air for Android.

    My last job actually involved working with Flash Packager for iPhone (since renamed Air for iOS) to make an iPhone app, and I was pretty impressed, all told. There were a few instances where performance wasn’t great. It varied by platform: iPhone 3G performance was terrible, 2nd gen iPod Touch was pretty good, and iPhone 4 performance was flawless. There are techniques you can employ to optimize Flash for the iPhone platform but my then-boss didn’t want to pay me for doing that work.

    Also, I’ve heard that Air for Android is phenomenally good in terms of performance, though I’ve not had a chance to play with it. As I understand it, they were able to get such great performance on the Android by working closely with Google in the early days of Android to get Flash running on the OS. Adobe has a fantastic (albeit lengthy) talk on their “Air for Mobile” efforts here: http://2010.max.adobe.com/online/2010/MAX179_1288135055468NJIS

    Of course, if you’re a game developer, publishing on 360 and PS3 is probably in your interest, and it seems like corporate red tape at Microsoft and Sony is what’s preventing Flash / Flex / Air games from appearing on those platforms. Really a shame, but Microsoft is busy plugging Silverlight, and Sony is doing things the old fashioned way, making you go through a “concept approval process” and buy a Sony-only dev kit to develop your game with. See these two links for more info: http://news.bbc.co.uk/2/hi/technology/8008070.stm http://newretro.org/games/2008/07/14/developing-for-ps3-playstation-network-psn/

    I feel like we’ll have a solid cross-platform SDK for game development eventually, but it will take a few years of general computer hardware improvements (Moore’s Law) and some arm-twisting at big companies like Microsoft and Sony. Right now, Adobe seems to be leading the pack in terms of efforts, though I’m really curious to see Monkey when it comes out.

  • April 3rd 2012 at 12:44 pm

    You forgot to mention GLBasic, which support platforms neither the AGK or Monkey support (like webOS, Windows CE and GP2X/WIZ).

    It also has one important advantage over either of these too – namely 3D is available on all platforms…

Make yourself heard