Springman2 is to Springman1 as modern humans are to Neanderthal. It is a paradigm shift and a huge upgrade which allowed me to really explore the potential of OpenGL’s 3d world engine.
I will confess up front that it lacked the visceral fun of Springman1 and the cute innocence of it. But what it lacked in fun it made up for in potential!
The key difference between this and S1 was that I knew a bit about OGL before I started S2, so was able to better tailor the design to fit the library. My OOD was informed and well thought out and I knew enough to avoid some design pitfalls the original had fallen into.
The first thing I did was give Springman a face-lift:
He now had a separate jet pack which can be doubled up (as a power boost). He also got the face of my youngest son! As a bonus I gave one of the baddies the face of his big brother, which caused no end of joy!
Next I began to play with the camera – zooms and swoops were now achievable, and I built a nice algorithm to ensure Springman always remained on screen, regardless of how high he jumps or how far he falls. It is easy to get carried away with changing camera angles, but I learnt early on that the eye does not appreciate grandiose camera gestures: smooth and incremental changes are the best for the user.
I then added all sort of things that were mandatory for any platforming environment:
- Check points
- Death traps
- Surfaces with variable ‘bounce’ (e.g. trampolines)
- Moving parts of the world, with switches to trigger the movement
The image above shows 2 switches, which can be used to open and close the bridge (and are used to trap the baddies). It also shows the powerup below the bridge (which gives Springman double booster power) as well as a trampoline on the bridge.
As Springman2 got more complex with more on-screen objects (in particular any that I needed to check for collisions), so the performance degraded. Admittedly my laptop is far from cutting edge, but nevertheless, dropping frames and tangible slow-down was not an option I was prepared to accept. Springman2’s days were numbered!
The next chapter is NOT about Springman3 though… long before the performance degraded to a point I was not happy with it I had a bigger challenge:
I realised that I was hugely constrained in how I created the game worlds… I was hand-coding them. This was just not scalable, and there is no way I could develop a decent world using this method. In addition, I am not the most creative person out there, so was unsure I would ever be able to create decent worlds. Catch22 though – as long as it was necessary to hand-make them in code, I was the only person able to create them.
There was no other option – for Springman to flourish it was necessary to develop an application that could be used to easily develop game worlds.
The Springman saga has 4 chapters: