I'm making lemons out of lemonade - trying to integrate knowledge from book on programming theory my manager has been force-feeding me, with Shelter project. Surprisingly, I learned that a lot of advice the authors give has already been implemented in Shelter.
It has an external scripting language - check.
It has a SCRIPT GENERATOR for that language - check.
It has a console - check.
It avoids having duplicate documentation instances that need to be kept in sync - check. Zorlag (dialogue editor) generates people's location, place description and quest reports automatically on compile.
It has regression testing - check. The prison area designed a while back, was and still is being used as a ground for checking how all of the features work together. When new game save/load routines started breaking shit, it again became relevant and invaluable. It tests dialogue scripting, stat checks, combat (lethal and non-lethal), object interaction, inventory/item management.
A very important problem that I'm aware of as well, but unable to fix, is the "broken window syndrome". Building the game has been an evolving process. Initially it all started clean. Think() here, Render() there, handle movement here, items there...
But since the project is new to me, eventually ugly pieces started appearing here and there. Broken windows. Many of them have been "patched up" instead of being fixed elegantly.
There are reasons for this:
1) preceding framework limits how much I can do without breaking more shit
2) with the constantly interrupted development, I keep forgetting how parts of the project work, and am
very prone to breaking shit
This is why this week I also implemented a source control system, so I could always revert to a time when shit wasn't broken.
The "broken window syndrome" has buried other projects at much earlier stages, but Shelter is like a ghost train, relentlessly moving forward in a dark cloud of smoke, leaving behind shattered pieces of glass and melted rails.
Yet as much as it pains me, I may need to redo combat AI and UI management. Over Shelter's evolution, they have grown, a patch over a patch over a patch, into something incomprehensible, and now I have a much clearer vision of what they should, and should not, do.
But I am also working on content... at a snail's pace, as usual. If someone can figure a way to make an e-ink screen, like Kindle DX, to view C++ code (and let me use a normal keyboard), let me know. My dry eye syndrome (DES) is not getting any better.
