Second update.
After some more hours of programming, a lot of new functionalities have been added to the game's base, namely on the Entity, Actors, Brain and Input handling.Some notes on potential sources of wasted time:
- Brain class: I wonder if I'll ever actually use the Brain class for anything other than the main character, but it feels safe to have it around. It's the kind of thing I've grown accostumed to having and it gives me the opportunity to easily change mob behavior or create mobs that mimic the player-controlled character (just give them the same brain, for example).
- Input class: I might never support anything other than Keyboard in the game, but having this between the actual input handling and the rest of the game should make it easy to support different keyboard schemas and perhaps even joysticks.
- Level class: I added some code to handle multiple layers in the level maps. I plan at some point to use the multiple layers to implement certain scenario changes, as well as enabling and disabling passages. But it might turn out that I don't have such features at all.
- constant.py/utils.py: I've been bouncing back and forth regarding where certain functions/constants should be located. Ideally, if constants are used in only one file, they belong there, as well as utility functions. It sort of becomes difficult to determine in advance whether those things are going to get used in only one place when you just sit and start programming rather than plan ahead.