Thursday, October 4, 2012

Game Update...Milestone 1

"Testing" shoot-em-ups is all well and good, but eventually you gotta code. :)

Artillery Support is a Tower-Defence-like game, in that you fire from fixed locations throughout the level, but I use the comparison as a loose reference point, nothing more, so that the screen-grabs I'm going to post have at least a little context.

I'm running the project much like I would manage a commercial project at my place of work, with the exception that this design will be much more iterative than anything the company culture allows during daylight hours. That still leaves room for milestones, though, and I've now hit the first two.

Milestone 1 - Research game engines, settle on a choice

It is all those things
This milestone was a little bit of a fake, because it was in fact the excellent AndEngine that got me seriously interested in developing an Android game in the first place. I've had fifty or a hundred game ideas...but as all programmers know, ideas are cheap, and that part of me that assumed I was going to have to write a load of middle-ware to support what I wanted to do also knew that I would never ever commit the time needed to actually do it.

The idea that a GLES2-based game engine as feature-complete as AndEngine was not only available but completely free and well-supported, never even crossed my mind. Discovering it, and other options like Libgdx, changed my perception of the Android game development ecosystem almost overnight and made me excited to get going.

I settled on AndEngine, not in any particularly scientific way, but it seemed a good fit for what I had in mind (2D top-down shooter) and I know from experience that when it comes to spending my extra-curriculur time on software projects, I need to absolutely stick to what originally excited and interested me about the job in hand rather than agonize over the choices I'm making, which I think is good advice for anyone embarking on a self-determined software project. (It sounds counter-intuitive, but getting underway is worth much more than any mistakes you might have to deal with later-on.)

As well as the obvious audio and graphics foundation, AndEngine also provides vertex and fragment shaders, a physics engine, a particle system, all kinds of helper classes for managing levels, caches, the UI, and so-on, and well-integrated support for dealing with the various types of user and peripheral input you get from a modern smart-phone.

During experimentation I've had no problems with the engine's feature-set or code quality, and while it does suffer from a lack of decent documentation (Libgdx beats AndEngine on this score), the forum has tons of regular posters with good advice, and there are copious demos and examples to fill in the basics. I would like a decent and up-to-date wiki, but it's hardly fair to whinge about documentation when the engine itself works so well, so that'll be the last thing I have to say about that.

If you want to see what AndEngine can do, the AndEngine Examples app will give you a pretty good idea, and the blog lists several games that have made use of the code.

No comments:

Post a Comment