Some features were expensive
So, the level generator task exploded, things got out of control and I'm not yet sure to what extent whatever it generates is good or not, and certainly it will need some improvements soon anyway. The bottom line is: I tried to be too clever, then I tried to implement a clever algorithm in a lazy way, then when making the algorithm more palatable a few things got lost in translation.Long story short, the map generation was a very expensive feature. And it's not yet "complete", though any further development on it is pushed back to the end of the queue.
The hot swapping / state saving pair is another one that cost me a bit of time. Hot-swapping itself hasn't been very useful and at times, it's unwanted error-obfuscating feature gets in the way. On the other hand, in preparation for hot-swapping, I also made sure all my data was serializable and now owned by any particular object apart from the non-swappable bits of the program. As a result, I ended up with a nifty and useful save-state / load-state feature, which has already proven useful and will certainly prove further useful when developing monster AI.
I thought a bit about the current state of affairs and came up with the following task priority list for the next available hours, from most important to least important:
- Character/Map collision (let's make it dumb)
- Scatter family members around the map and have them follow the player once they meet
- Signal the player to the exit once the family is collected
- Ending sequence once the exit is reached
- Add static monsters
- Monster wandering behaviour
- Add death and fail conditions
- Add auditory system (player produces sounds, monsters within hearing range hurry to the source of the sound)
- Map generator - produce terrains (grass, roads)
- Make doors interactive (and a source of sound)
- Make windows interactive (and a louder source of sound)
- Add minimap
- Funky post-processing method
- Map generator - adds non-building barriers, decorations
The game is borderline "deliverable" once the ending sequence is added, it is an actual game after death and fail conditions are added, and once the auditory system is in place, it is pretty close to the vision I had for the game in terms of mechanics. In terms of look/feels, the postprocessing step is the most important, but it cannot be made at the expense of any other features before it, because should time be too short then I simply don't have a proper game.