Code reference points - deodand-inc/crawler GitHub Wiki
What follows are some notes on how other games accomplish some of the things we want to do with our game.
Caves of Qud
Caves of Qud has a rich implementation of an entity-component system / is a generally robust roguelike.
ECS
A GameObject
has a list of parts and then a dictionary view of those parts by the events they are registered to listen for.
Here is the main section that handles incoming events. if FireEvent
returns false then the event stops propagating, which is also roughly how we're doing it!
Events in COQ are not (always?) statically typed, but instead are dynamic, using a dictionary to store the necessary properties.
XRL.World.GameObject.Move
contains the code related to moving to a new square... It's a very long function!
AI
The Brain
class manages AI for a