I had to scrap my codebase after a false start. I took a second look at my goals after discovering the 7DRL. To my surprise, a large number of people are writing their own roguelikes. This is a common pasttime among hackers, apparently. My project looked like just another roguelike, but in Python. I don't have enough free time to write everything from my last post in any reasonable time frame. So, I am making the project one step simpler for myself. I will write the game with a pluggable/modular architecture (an educational task itself) which will allow these various features to be added in over time, and perhaps even by other people. My goal will be to design the core architecture, and functional pieces. Instead of getting caught up in the minutia of FOV, random level generation, gameplay balancing, an so forth, I can focus on an architecture that will allow these parts to be written by others and swapped out.
What I need to do next is define what a module and a plug-in are, exactly. There are certain core modules that need to exist, and there can be only one (at a time, I suppose) like the FOV module and the interface module, but there are some which can exist in parallel with others of the same type, like AI modules, level generators, etc. In some definitions, a pluggable architecture means that there are hooks that plugins can "subscribe" to and just work on top of an existing functional program. That doesn't exactly work in this context, as there are main pieces that need to exist, which I would like to swap out easily. More on this later.

