Latest Post: August 16, 2021
I’ve been doing a lot of refactoring and straight deletion of code to clearly separate the spells, inventory items, and pickups. It took quite a bit of time, but everything makes much more sense now. Game development is such a wild ride. All of my previous programming experience has been in environments where there’s pretty clear scope and requirements, even when prototyping, there’s a clear set of requirements where all the versions explore different methods to meet those requirements. In games, the most important requirement is fun. For this game, I have a clear concept - a living marble labyrinth - but the vision has changed quite a bit through the various prototypes. It’s been a mish-mash of learning Unity (and generally improving my base of programming knowledge), prototyping, re-visioning, working on art and animation, and more prototyping.
Recently, the former Bioware producer Mark Darrah started a YouTube channel where he talks about all sorts of interesting game development topics. In particular, the video he made about project phases in game development helped me to organize my development process. The phases he lays out are Concept, Vision, Prototype, Prove, Tooling, Production, Fix, Certification, and Balance. Any real project is going to have overlaps in the phases, but it’s been hard to see where I am in this process. I’ve certainly been in the preproduction phases of Concept, Vision, and Prototype for the last year and half - so often I play the prototype and it just doesn’t match my expectations, so it’s back to the drawing board. Meanwhile, I’ve been working on the art and animations assets, which keep getting better, but I have to be careful to not spend too much time on any given asset, as I still don’t know exactly what will end up in the final game. But I also need to not completely half-ass the art, because I need to know that process well enough to make time estimates and to figure out what the real art requirements are. For example, what is the minimum number of unique tiles I need to create a new wall and floor set? As it turns out, the Forest set needs a few extra unique wall pieces compared to the Stone set, as the Stone set looks great with repetition but the forest looks distractingly odd when there’s too much repetition. So it’s not the static answer that I want, but I at least now know that about 50 tiles will cover nearly every wall configuration and I can make a 80% polish set in a day or two, so if I want four unique environs (Stone, Forest, Desert, Cave), that’s 200 tiles and up to two weeks of work (for full polish).
Once I implemented spells (well, two of them) and played with them in a level, that was the biggest jump in the fun curve I’ve had with my game since the first few prototypes. It does transition the game into more of a top-down platformer type experience, but it still feels like a marble roller - the physics of the “tipping the board” feels correct. This serves to further define the vision of this project, and gives me a better sense of what levels could/should be. Like any platformer, it’s fun to use the various special abilities and use them together to unlock new areas or “cheat” problems. In the production phase, I’ll need to be exceptionally clever when making levels, especially for the end of the campaign when the player has all the spells. But for now, I need to finish up prototyping the interface, spells, and monsters.

This capture demonstrates (1) spells being picked up and automatically added to the quick access slots, (2) the health bar initializing correctly, (3) health decrementing when player is damaged, (4) health resetting at beginning of new level (5) spell assignments persisting to next level. I don’t yet have a fleshed out requirements document, so these don’t correspond to anything directly, but they have all help me checkpoint things I’ve been changing recently.
- Spell pickup system - it took many iterations to find a reasonable system for pickups that unlock spells, add those spells to the quick access, and undo that stuff if the player dies before finishing a level.
- Health Bar - health bar hearts are now generated dynamically
- Health Bar Update command has been simplified
- Health now refreshes at end of level, as there’s no healing aside from the +1 max health item. This may change with a difficulty setting (high difficulty => no health restore at level end). May add healing potions back in, as pickups that immediately heal the player.
- Adding Spells to the DataManager and making sure spells are properly initialized took a minute. Currently, Spells are driven by an enum system, because I’m a dinosaur and haven’t yet taken the time to learn reflection well enough.