Text Adventure Library - Slaying the Spaghetti Monster!


Greetings, fellow developers! In my previous installment, I revealed my project was rapidly growing in both size and complexity becoming unmanageable. To tackle this issue, I made a crucial decision: to split the code into two distinct projects—the game itself and a library. To aid in the intricacies of dividing responsibilities between the library and the game, I needed something to guide me. I chose to create a Technical Design Document (TDD) for the library, providing a comprehensive overview of the software system's design and architecture.

Within the TDD, I outlined the functionality required for the library, ensuring its applicability to various games and potential use by other developers. This involved a thorough consideration of features and a forward-looking approach to accommodate future use cases. For each element of functionality, I detailed the implementation, what patterns I would use etc..

With the TDD serving as my roadmap, I initiated the creation of a new project—a .NET class library compiled into a DLL, to be used in diverse projects. While my TDD remained a work in progress, as a living document it offered clarity and direction. Some things I just could not wrap my head around in design and would need to figure out by doing, I needed a small game using this library. To speed things up, I opted to recreate a game I had developed years earlier, Epic Prose SE (https://logicandchaos.itch.io/epic-prose-special-edition).

In the coming posts, I'll delve into  the systems I created  with detailed tutorials, explaining the choice of programming patterns for a given problem, and providing the associated code. Join me in this epic journey as we slay the spaghetti monster and pave the way for organized and efficient coding!

Leave a comment

Log in with itch.io to leave a comment.