• Even Separation Algorithm

    This post describes an algorithm for evenly spreading out a sequence of items made up of two distinct types of item. I came up with it when attempting to draw straight lines on a grid, where lines are represented by discrete steps in one of two directions. In order for such a line to appear straight, the steps in one direction should be spread out as much as possible with respect to the steps in the other direction. The solution generalizes to spreading out any sequence made up of two distinct types of item that are repeated a number of times.

  • Skeleton Crew

    I wrote this game for the 2016 7 Day Roguelike challenge.

  • 7 Day Roguelike 2016: Success

    It’s now Friday night (technically Saturday morning). Tomorrow morning it will have been 1 week since I started work on “Skeleton Crew”. This is the final entry in my development log.

  • 7 Day Roguelike 2016: Ending

    Tonight I implemented stairs and an ending for the game. You must reach the teleporter on the 3rd floor of the ship, and teleport to safety. I also added some more flavour text, fixed some bugs, and balanced some characters. At this point the game is largely complete. I’ll spend some of tomorrow playtesting and adding any remaining polish and balance I think is necessary. I also want to add a rocket launcher which shouldn’t be too complicated given I already have projectile weapons and explosions.

  • 7 Day Roguelike 2016: Polish

    Tonight I finished the level generator, adding weapons and items. I fixed a bug in my recursive shadowcast implementation causing strange behaviour when looking at the edge of the map. I tweaked a couple of mechanics, namely:

    • explosions destroy nearby walls regardless of whether one side is pressurized
      • this is unlike bullets, which only damage walls if one side is pressurized and the other isn’t
    • flames from the flamethrower don’t stop when they hit an enemy
    • doors can’t be closed if there is an enemy standing in the way
  • 7 Day Roguelike 2016: Pathfinding

    The most notable change from tonight is that I turned on pathfinding for NPCs for the first time. Up until now they had been stationary, and could be injured or killed, or affected by vacuum, but could never observe the world or take actions. Enabling AI is scary because it greatly increases the amount of work the computer is doing between human turns. The vision system is now running once per NPC turn as well as the player. Then there’s the additional cost of pathfinding for each NPC. I use Dijkstra maps for pathfinding which are explained in detail on roguebasin. This post is about solving a performance problem introduced by all the extra characters.

  • 7 Day Roguelike 2016: Procedural Generation

    This is my second attempt at a procedurally generated space ship. The first attempt involved generating the hull first by starting with a large rectangle and stripping smaller rectangular pieces away until I got something roughly hull-looking. I would then attempt to fill the hull with rooms. Adding rooms to a preexisting hull proved messy and prone to difficult edge cases.

  • 7 Day Roguelike 2016: Day 1

    It’s one day in. Here’s my progress so far!