twilight.infinite
About
A project built in an engine constructed for a mini game jam. This was an opportunity for me to learn Visual Studio ('cause previous projects have all been Linux) and play with a new 2D graphics framework called Simple2D. I'm reasonably happy with how things turned out given the 72-hour constraint.
Code is written in C++. I use QueryPerformanceTimer, which means that there isn't a Linux version ... but otherwise there isn't really anything that would bind this application to Windows. I may look into a port to other platforms eventually (just for fun).
The mazes are procedural - I used a really simple little recursive driller to make 'em. All mazes are 36 tiles wide by 18 tiles tall. The mazes are generated with one entrance and one exit - the exit is guaranteed to be a specific distance away from the entrance, but otherwise the placement is random.
The lighting effect is a combination of a few different things - a shader, a simple light calculation, and the way the assets are made. The shader is a random dither with a time-based component - the time gives a little variation to the way the dither works (making things more visually interesting). The shader is applied to all textures, and clamps colors to black, white, or a dark shade of red.
The light calculation is a little flood-fill algorithm that runs and applies an ever-decreasing illumination value to tiles within a specific distance from the player, with light permitted to take a turn. Walls are easier to illuminate than floors, because the wall textures have a much higher white component.
The assets are built with quite a bit of gray - the dithering algorithm will apply differently to the large gray sections over time, giving them a little bit of a twinkle effect.
In any event, I hope you enjoy the game, and thanks for taking a look!