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.