NOTE (14 AUG 2010): ROAR Engine is now known as GORE – Graphical Object-Oriented Roguelike Engine. See this post for clarification.

Breakthrough! I’ve gotten a black triangle up, and now I can see how the engine works. The implementor (my roguelike) needs to define resources to load, of which the engine’s resource loader and managers will take the file paths and load them, storing them in memory for retrieval later. After that, the implementor defines subsurface pixel locations for each sprite in a tileset, of which the engine will take these coordinates and calls the renderer to create the appropriate subsurfaces and pumps them into the render queue, which the engine will call from when performing the appropriate render passes.

At this point, the differences between map_array, renderables and entities are starting to become clear. Map_array stores a 3D array of references – nothing more than just IDs stored in the array; these IDs hashes itself to the renderable array, which provides the subsurfaces and position offsets for the map_array to render. Entities on the other hand sits on top of both map_array and renderables, updating both components depending on state changes.

Next tasks on the list:

  1. Actual rendering of the map_array and renderables
  2. Animation system in renderables
  3. Entity event handler