So, what have I been up to recently? Well, some of you may have noticed I was working on a little android game named UberFrog. Now I was all set to release this soon but after a visit to GameDevNorth I realised I was rushing this project way too quickly, something any designer knows is no way to make good product. It may just be a simple side scroller, but I can think of a million and one things I can add, change and edit to make this a half decent android title. So! With this in mind it was back to the drawing board.
At this point I have to recommend to anyone with a creative block should give free writing a chance (a tip from Mr Schafer no less) to try to jump those artistic hurdles. What I came out with at the end of it was a list a mile long of changes and tweaks to get the game running smoother, looking better and playing far better.
Job No 1) Fix the damn scrolling backgrounds. In UberFrog I’ve opted to randomly generate the terrains the player flies through- achieved through spawning ‘pieces’ of level and positioning them flush with the previous ‘piece’. You can probably guess my biggest problem was spawning the ‘pieces’ pixel perfectly aligned with the one before it. My first solution had an annoying habit of leaving some small gaps between pieces and the code resembling the tangled mess found only from Christmas tree lights (seasonal!).
So, back to the drawing board and the product of this so far is much improved from its forbearer. The level ‘pieces’ are now aligned and positioned via the mesh data-making each piece line up lovely. The calculations for positioning and movement are also now pre-set on initialisation, less processing time! Woop! The method for spawning has changed somewhat as well, where before one object had to store all the layers in preset arrays, I’m now able to create new layers and add this to the level object, each layer being drawn progressionally backwards – allowing levels to bare differing amounts of layers to allow greater detail. Most promising of this however, is that the new methods allow me not only to deal with 2D levels, but full 3D side scrolling experiences. Neat huh?
Another initial itch of mine was the environments got pretty boring even with all the randomisation going on so… more detail! Finally got round to implementing a system for applying new materials to objects in the environment to create additional details- for example if I placed a plane in the environment for a stump or mushroom, I need only to tag it correctly and the level handler will find and assign it a new image each spawn. This all works of sprite sheets at the moment as well to save on storing all those pesky textures and materials.
So, that’s my re-start so far, Time to jump back in and carry on plugging away at it. The level generation now satisfying me it’s time to look at adding some badass bosses. Should prove interesting anywho…