The story so far: Inspired by my friend’s success at creating and publishing his own game using GameMaker, I decide to have a crack too. My first game concept is Atomic Soccer but, alas, after just a couple of weeks, it becomes apparent that its complexities will exceed my coding skills. Now read on…
So Atomic Soccer was dead – for now, anyway. Fortunately the work I’d done was all useful – I could plonk a nucleus down, fire an electron at it and have the electron get captured in the nucleus’ orbit. I could even tap the keyboard and launch the electron into space at a tangent to the orbit. So far so good; all I needed now was a game idea!
While playing with the code, one thing that instantly became obvious was that a small, round electron did not work – it’s shape made it too tough predicting where the electron would go when released from orbit. The shape needed to be thin and long, like a dart or an arrow or… a spaceship! Eureka! The game could be about a spaceship orbiting and travelling between planets! The planets could have different masses that would affect your speed… And you’d have to collect crystals and return them to a spacestation… And, in a Sinistar-inspired move, there’d be aliens trying to collect the crystals too, to take them back to their battle station… And there’d be a vast scrolling map to explore… And… And… And again, the ideas got too complex.
So, back to the drawing board. I liked the idea of having to collect stuff and return it somewhere to cash it in. The points could escalate the more stuff you dropped off in one go, but if you got hit by an alien you’d lose half of the stuff you were carrying. So they’d be a nice risk/reward dynamic: do you stay out in the field, collecting loads of stuff but risking being hit, in return for big payday, or play if safe and drop stuff off in small dribs and drabs?
So what else might need to be collected and taken somewhere? What about a bee, I pondered, collecting pollen from around flowers and returning it to the hive? It was an idea that appealed to me, mainly because I could see it looking cute and colourful – certainly much more so than the space idea. It would also be simpler to do – the bee’s speed would be unaffected by the flowers’ sizes, and it could all take place on a single screen.
I wrote a couple of pages of design notes, bullet-pointing the required features and controls, simply so I had something to keep me focussed and on track. I also created a version log to record features as they were implemented – that way, if I spotted bugs down the line, I could at least refer back to when the erroneous feature was first implemented, which would hopefully make squashing them easier.
And so, in late January 2015, I began work in earnest. I knew what I wanted to do – and, most importantly of all, it seemed achievable.
I began by implementing some placeholder bee/flower graphics, then I decided to get the basic controls in. I’d already written a gesture recognition routine for fun, so I implemented that quickly. Now a quick tap of the screen launched the bee – or Buzzy, as I took to calling him – from orbit, while a swipe changed his orbital direction from clockwise to anti-clockwise and vice versa (initially you had to swipe left to go clockwise and right to go anti-clockwise, but it was too confusing if Buzzy was upside down – I simplified it so that any swipe changed direction).
I then decided to make Buzzy accelerate if you tapped and held. The faster he got the more he’d sweat, and if you held top speed too long he’d burn out and slow to a crawl – during this time he’d be uncontrollable, so if you’d used the boost to outrun bad guys you had to be careful.
It was about this point, having become familiar with more of GameMaker’s features, I realised that I lot of the complicated, trig-based code I’d written was essentially redundant as GM had a load of built-in functions that replicated its function. As my codebase was still relatively modest I decided to rewrite everything, which reduced its size by about 40%. It was a pain but I figured I might as well do it right and get the foundations solid.
So, with the core controls done, it was time to start on the actual gameplay… But you can read about that in the next thrilling instalment!