Preparation for Dr. Hallervorden

I'm unemployed all of March (on purpose!), so I'm going to have a solid 168 hours minus sleep to make a game for 7DRL.

Swift is my most productive language, but it doesn't have any convenient omnibus libraries like libtcod. So for the past few weeks, I've been working on one myself! Here's what I'm going in with as part of my "engine":

  • BearLibTerminal bindings
  • Many, many Swift utility classes and functions
  • REXPaint reader and renderer
  • Ways of making REXPaint "sprite sheets"
  • CSV reader
  • Goal maps (Dijkstra maps, same thing)
  • PCG32 pseudorandom number generator. This algorithm is PERFECT for roguelikes for reasons I'll write about later.
  • Recursive shadowcasting FOV implementation
  • Early stage prefab-based map generator (more info)
  • Control flow data structures to separate title screen, loading screen, individual levels, etc.
  • Entity-component system (ECS) done in a very Swifty way
  • Priority queue and A* implementations
  • Saving and loading game state
  • Multiple levels and transitions between levels

So, while I haven't technically "started" yet, I'm almost on par with commonly used roguelike libraries.

Here's an @ sign walking around between two levels, and restoring state after exiting the game:

To prepare for the act of participating in a jam, I set up a few small hacks that will let me show my work as I go without disrupting my workflow.

First, I added some code to position the game window in the upper right corner of the screen. BearLibTerminal centers the window by default, but I'll be streaming on Twitch, and I don't want to have to tab between the game and my IDE to see my code and the game at the same time.

Next, I positioned LICECap over the game window area so I can take GIF captures extremely quickly.

Finally, I wrote a quick little menu bar utility with rumps to let me trigger uploads with just two clicks!

Before tomorrow, I might get some mobs moving around randomly and have them die if the player touches them, just to work out any remaining kinks in my ECS implementation.

Get Dr. Hallervorden

Download NowName your own price

Leave a comment

Log in with to leave a comment.