Another two months, some items ticked-off, but the list grows longer.
The modules broke down into packages neatly enough, having worked through them patiently and methodically to split the game logic and system functions. For example, the text display request handler is now in a different module to the bitmap font rendering.
Compartmentalising problems helps me to bang my head against them more accurately. The simple text importer turned out to involve a few such targets, because there will probably be more lines of text than any other type of object, and the memory allocator wasn't designed for large index tables.
What continues to grow the planning list is displaying the test screen using a scripting language, rather than a list of function calls baked into the drawing logic module. Thinking this through before coding has already spawned two further design documents, which are still in progress because it seems that the best use of my time - and system memory - is to build a foundation of flow control and variable handling that other game components could use.
The script interpreter will be based on the one from my previous ZX Spectrum games, which is built around one big switch statement with a couple of stacks for flow control. Most of the work will be on the compiler, automating chores like translating variable names to index numbers, and subtler tweaks spanning both systems to speed up execution.
I haven't decided how much of the game logic will run at this abstraction level, but having the option to prototype most of it this way will help me to find the answer sooner.
Email: comments at arbitraryfiles.com