The last week has been spent mostly tidying up known problems, bad code, and general bug fixing in my various handler classes. The pattern of work each day generally went like this:
- Rewrite handler class to remove garbage, tidy up methods to be more consistent, and then rework all the calls to those methods elsewhere
- Compile the code and see dozens of errors; beat head against desk and then spend a couple of hours fixing those up
- Test the code in the editor and discover that the number of bugs and artefacts have doubled; spend several hours puzzling out and fixing those up. Some head beating may have been involved as well
- Build to the phone and discover even more problems; beat head against desk and then assault Google to figure out why and fix those
- Finally, exhausted, with all known (for now) bugs resolved, check in the code
- Rinse and repeat the next day with another handler
For now, I’ve got 6 out of 8 of the handler classes sorted, although “sorted” is a somewhat fluid state, considering how often changing the next one means I need to go back and fix something else in the previous one. But at least I can now see that a few long-standing bugs have been squashed. I think I’ll take a break and go back to doing some fun new features for a couple of days, but then it’ll be back to handler class #7 – FaceAnimationHandler – to tackle the nefarious frozen jitter bug that’s been plaguing me for some time, and then finally the parent class that controls all the others, into which I’ve basically just dumped all the “fix it later” logic.
In other news, I managed a first try at integrating OneSignal push notifications into the game. It works, although I still need to puzzle out a few peculiarities. Fortunately the people who support OneSignal have been in touch and have been very helpful so far, so I am optimistic I can get it all working properly. I have some pretty nifty ideas for how to use OneSignal, such as pushing daily challenges to people who’ve subscribed to those, and perhaps even player-to-player challenges, but first I need to find out more about what can and can’t be done and where the limits are.
Okay… time to finally tackle the “hint system”, something I’ve been wanting to add in for some time now.