Springman3

As Springman2 got bigger levels with more happening, so it began to suffer more and more from slow-down.

I took to the literature to dig a bit deeper, and read a couple of books on game programming patterns.  Was chuffed to see that I had managed to evolve a number of good patterns between Springman 1 and 2, but there were also a number of areas I could improve.

And I also had some radical new ideas for the underlying model – a much clearer idea of the templates (interfaces) that were needed to build a highly generic world .  It would still be Springman, but it wouldn’t be built around Springman anymore.  His would be a character that could be created, but one of an infinite number.  Of course the very first character I build when the system is complete will be a Springman!

The system is still in an early stage of development… since I started on micro:bit in 2015 I’ve had little time to dedicate to Springman, and this is not a system I can dip into every now and again – it takes time to get into the right ‘zone’.  At the time of writing the following is in place:

  • An object model that governs the objects that are placed into the 3d world.  A range of simple interfaces allow you to build primitive, then complex, shapes with increasingly complex sets of properties.
  • Thanks to Springman2 I have a number of solved problems for which I can just borrow code.  For example, the whole method of saving then loading and recreating levels is sorted.  I also have a rich abundance of textures and a collision detection system that, whilst not perfect, is workable.
  • The level builder, which doubles as a testing platform.  The level builder provides a perfect place to test code as its developed.

It will be a long time until Springman3 is developed enough to warrant updating this chapter – I would not expect me to reach that point in 2018.