Thursday, 12 April 2012

From clueless to novice

Been a while since I have blogged but that is because I have spent so much time with my head in code, books, forums etc to fully embrace the project and to ensure I embrace inde game development.

The intention is for me to dump my brain of all that I have learnt now I have notched up over 400 hours in game development and very close to my first game being released. The blog was meant as a bit of a diary of my progress but also to help others who want to go on a similar journey. I have been so grateful to the indie development community in getting advice, constructive criticism and invaluable testing resource that hopefully this will help.

Let me roll back a few months....

Having started this journey back in October I tried to go about it in a constructive manner. I know, unless I am very fortunate, that I'm not going to write the next Angry Birds or Temple Run but that doesn't put me off just different tactics. Choosing Corona SDK was always part of the tactics and ultimately why I chose this over Cocoa2D as I wanted to write little games that got the maximum exposure particularly with emerging devices and markets like Amazon Fire and Nook.

I had been keeping a little book of ideas for the best part of a year. A useful tip as I always found I had new ideas or developed on others but totally forgot by the time I got round to do anything about it. Its fair to say I got a little carried away in the first 6 to 8 weeks. While I was learning I wasn't really moving in a direction. From my blog you will probably have seen that I spent the first 4 weeks reading up on game design. This was a useful exercise in things to consider but I didn't really have a developed idea to immediately apply it to. I also was very keen to start programming ...

Corona SDK is based on LUA, one of the few programming languages I haven't programmed in. I will digress a little here to give a bit of background about me as it has context going forward. I have a degree in Business and Marketing but not really applied it like most people's degrees. I also have A-Levels (UK qualification) of which one is in Art, so I definitely have a creative streak. This is why I got into programming as I am a problem solver that wanted a medium to tangibly solve the problem, hence I decided to become a computer programmer. All in I have probably spent close to 15 years programming mainly around Microsoft technologies and qualified as a Solution Architect but my first love was always wanting to be a games programmer. Over the last 5 to 10 years I have moved further and further up the corporate ladder and away from my first love of programming, this was why this project was born. I have managed teams on and off shore, delivered projects for brands you have all heard of, but very few of late has been my code. This had to change...

So with my little black book in hand (no girls names in this one!) I set about a few of my ideas as prototypes. I got some initial rewarding results and was amazed with the Corona SDK engine just how much could be achieved with so little code. However, after about 3 weeks of developing an idea I soon realised I couldn't do it justice. I felt I had lost and wasted a lot of time on the project but took a step back and realised this was part of the rich tapestry of learning from ones mistakes. This was around mid december when I came up with the tactic to learn as much as possible with the simplest idea. I felt if I kept the component parts as simple as possible then I could redo parts if not all if I suddenly came to a dead end which I hadn't considered. This is why animations etc that I have created have no moving parts as when it comes to scaling images / sprites etc I would have no idea how this would work.

This was where Astavoid was born in mid December. A simple scrolling space game (yes another one!) that has stars as a background and a space rocket should be easy to implement and maintain with the concept of avoiding asteroids.

The rest of the series of blogs around Astavoid will focus on specifics such as game design, sprites and animation, memory management, testing and marketing amongst other things but before I go I will share with you the tools and money spent in getting me to this point.

These aren't things I indulged with on day one but things I have found and are useful as I have progressed. All prices are in sterling (GBP) as I live in the UK and wanted to bring it back to a common denomination. Im sure you can do the relevant exchange rate:

Corona SDK (http://www.anscamobile.com/) 218.58
I started off with the trial version but found the official released version is someway behind the daily build functionality. So putting up a query on the excellent community forum would often be met with "this has been resolved in X daily build". So I bit the bullet and bought the iOS licence and made use of the daily builds. To be honest these are a blessing and a curse, the bad thing being is they feel like a line in the sand that is constantly moving. Just when I thought I had finished the game and inevitably done some workarounds the "right" way was released or bugs resolved which put me back a day or a week. When I got closer to a finished game I upgraded to the pro developer licence to include Android, Amazon Fire and Nook.

Gimp (http://www.gimp.org/) - Free
Used to touch up my graphics. I use Inkscape and Preview (Mac) for some vector work or scaling.

Adobe Flash CS3 - Free
Don't know why but I had an old copy of Flash CS3 knocking around which I used for drawing the rocket and asteroids. Since then though (as Flash can be pricey) I found Pencil (http://www.pencil-animation.org/) or ArtPigEditor (http://www.artpigsoft.com/)

Image Optim (http://imageoptim.com/) - Free
This is by far the best tool I use. Really simple but compacts your PNG files by loads. Reduced my app size by 60%!!

TexturePacker / Physics Editor (http://www.texturepacker.com/) - Free to bloggers
Lots of things out there to do texture packing and physics editing (Zwoptex or SpriteLoq as alternatives) but found the ease of use and support excellent at Code n Web. Much to my surprise I got it free as Andreas liked my blog :)

Sublime Text 2 (http://www.sublimetext.com/2) 36.95
The lack of IDE was my biggest frustration with Corona SDK and is to date. The recent release of Corona Cider may be a saving grace with the Visual Debugger but up to now I have used the excellent Sublime Text 2 editor and Corona's console debugger to do my development. I used the NotePad2 autocomplete plugin with this to help. Really like the tool would highly recommend.

Screenflick (http://www.araelium.com/screenflick) - 18.16
Used to create my first sneak peak of Astavoid. Much to learn but seems to come highly recommended.

Audio Micro (http://www.audiomicro.com/) 43.67
Despite the skills I mentioned earlier I possess very little musical ability and while I can play the guitar a little this is not something I would want to soil my games with. Luckily an excellent resource in Audio Micro provides sound effects and music alike at very afforable amounts, royalty free and professional.

Corona Profile (http://www.mydevelopersgames.com/site/) 5.87
I won't go into this too much now as I will write a whole separate blog entry on the subject of my hell with memory management and optimisation but needless to say this tool was invaluable.

Particle Candy (http://www.x-pressive.com/ParticleCandy_Corona/index.html) 34.57
To add a little polish to my game and a slightly more professional feel the rocket's trailing smoke and explosions were created with Particle Candy. Probably something I could have animated or created but at this time there was far more things to cover off.

Right thats enough for now. Next in the series sprites and image optimisation.

0 comments:

Post a comment

 
;