Thank you, free software!
The internet is full of kind and generous people who want you to use their software, and don't even want any money for it.
And while you're at it, you can have their expertise for free as well. It's far too easy to forget how amazing that is.
Leila and the Little Folk was made entirely using free software (with the exception of the operating system, but there's always Linux if you want to pick nits).
Here's what I used:
-
Eclipse. An excellent Java development environment, with very strong support for Android-specific features. The simplest way to get started is
to download the Android Developer Tools bundle which contains Eclipse and the relevant
Android extensions.
-
GIMP (stop laughing at the back). Image manipulation package for all your graphics creation needs. It's got a pretty exhaustive
set of features, and is also scriptable, which has come in handy (more on that later).
You can get it here.
-
Audacity. Straightforward sound editing software that had more than enough functionality for my needs.
Download it here.
-
svnserve (Subversion source control server). For a software project of any significant size, source control is incredibly handy.
It keeps a history of all the changes that you make to your code, which means you are free to change things
as radically as you like without worrying about breaking it, since you can always change it back. It's by no means a necessary part of the process - you
could just manage your own system of backups - but I'd definitely
say it's worth getting to grips with it for the sake of some peace of mind. Eclipse integrates well with the Subversion server, so it's not a lot of hassle
once you're set up.
Actually writing a game
There's nothing quite like getting something up and running, and the Lunar Lander example that comes with
the Android SDK is pretty much the 'Hello World' equivalent for Android games.
It introduces the basic framework for getting an app up and running on your device,
and specifically introduces the basic behaviour that most games exhibit - looping round as fast as they can, continuously doing
three things:
-
Updating the state of the game world.
-
Drawing that world on the screen.
-
Reacting to some kind of user input.
This formed the basis of what eventually became the shinymonkey game engine.