Today I refactored a lot of code related to how the stages are loaded into the game. It is surprising how difficult is implementing flexibility in a system without delving into chaos. I have settled on 50 stages, and when it comes time to implement them, I see that I could do a thing slightly differently on each stage, and how these exceptions are handled are key to keeping a sane codebase.
Over the last few months I had been working on personal projects that have since gone stale, but surprisingly I find myself using a lot of the knowledge I gained trying (and failing) at this. I coded a surprisingly simple implementation to save game progress into localStorage in just a couple of minutes, but I understood how to do this only because of previous experience.
Another thing I explored in my stale projects was The Bézier Game in paper.js. I didn’t get too far, but this time around I’m leveraging the library to it’s full potential. And I see my understanding of the library comes from my experience with vector editors. Without this experience it would be tremendously difficult to understand what is going on.
I’m actually grateful and surprised to see my stale project come to life again in a different form, even without reusing any of the code. To the person mourning a failed project it’s no consolation understanding that some knowledge was gained. The consolation is gained when the knowledge is put to good use.