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

image

A GameObject has a list of parts and then a dictionary view of those parts by the events they are registered to listen for.

image

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!

image

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