BAWD work since my last update has been fairly one-note, but also high-value.
As I mentioned last time, it seemed crucial to the play experience to get persistence working. The bulk of work recently has been on getting that operational. ES3 made this significantly easier than it was in my prior BAWD implementation, though there were still some hiccups to resolve with regards to model and procgen consistency (seed values, etc.).
Now, the player, galaxy, and individual mines are all persisted through a consistent interface, so the game world feels a bit more real.
In testing, I noticed that when I would get a ‘line clear’, the game froze for a split second, which is bad enough. It felt doubly awful to be “punished” rather than rewarded for completing a line.
My initial hunch was that this might have been a consequence of mine persistence: maybe I was saving to disk dozens of times when you landed?
Profiling fairly quickly revealed that I was completely wrong on that. It was actually a consequence of the way I implemented mine animation and updating. Every tile change was causing memory allocation and garbage collection, a huge no-no on mobile.
Fairly trivial fix in the end: object pooling. Microsoft has a nice open source ObjectPool implementation that, as far as I can tell, is extremely performant. Mining is pretty smooth now.
As usual, when a major feature or fix is implemented, it can expose weaknesses in other features (or their absence). I think this is because while some part of the game is incomplete, you can explain away anything “wrong” with the incompleteness. When that excuse goes away, you can see all the warts.
Now that the game saves everything, and mining is super smooth, I’m being bothered by a few key gaps:
- Mines have no “difficulty”. They’re interchangeable and bland.
- Though the abilities are implemented, they are not accessible – there’s no store to sell them!
- Speaking of – money means nothing at all. Zzzz.
- You’re stuck in a single solar system, still. It really dulls the sense of being a spacefaring mineral maestro.
- No music. No sound. Zzzz.
I’m still trying to decide what an MVP for this game requires, but I feel like the first three are critical. Abilities are how you cope with the awful 6- and 7-tile blocks, after all.
So my short horizon tasks are to implement the shop and module purchases, then use that to re-introduce mine difficulty. I’m sure that will expose other shortcomings, but this was always going to be a release with shortcomings.
Precious: Don’t Be
I’m continuing to push to get this ready for release ASAP.
One of the nice things about being indie and unknown is that I don’t have to be precious about an app’s first release. As long as it can make it through the app store review, what do I care if it’s not wonderful? Odds are that approximately nobody will play it, so there’s plenty of time to iterate.
In that spirit, every day I fight to keep the scope minimal. Tiny. Dainty. “Shipped” is an awesome feature.