Monday, May 11, 2015

It's starting to resemble a game

Tools: LUA, Love2D, ZeroBrane Studio

Back in October I made a post about a procedural dungeon generator I was working on for a 1GAM game. Shortly afterwards I decided that I wanted to expand the game way past its original scope, and I wound up choosing to quit 1GAM all together so I could focus on making one good game instead of a dozen mediocre ones.

Unfortunately my dev computer died on me right before Thanksgiving and I wound up shelving the project for a while, until I finally had a chance to come back to it in the beginning of March. I'm making a lot of progress, so I figured I'd post an update going over some of the features I have working in the game so far.

In a nutshell the game will be a rogue-lite dungeon crawler with randomized enemies, weapons and armor. I intend to have some kind of meta-progression to increase replayability and encourage multiple playthroughs.

Currently, dungeons are generated on demand as the player progresses. The player can pick up new weapons and ammo drops from enemies and chests as they go. Here is a short demo of the game as it currently is (very, very pre-Alpha):

Saturday, February 28, 2015

Experiments with Procedural Generation, Part 3

Cave Level Generation: The 4-5 Rule 

Tools: LUA, Love2D, ZeroBrane Studio

I was playing around with my Game of Life project a few weeks ago and I decided to put this together really quick. This is just a quick implementation of the 4-5 rule, often used for procedural cave-like level generation. It was a quick change and only took a few minutes to put together, but the effect is interesting so I figured I'd share it here.

 

The 4-5 Rule
At the start the entire grid is filled with noise. In this example every tile has a 53% chance of being white.

Every step two simple rules are applied to every tile:
- If the tile is black: If 5 or more of the adjacent tiles are white, it becomes white.
- If the tile is white: If 4 or more of the adjacent tiles are white, it stays white.

More work would need to be done to generate any real levels from the result due to all of the disconnected rooms that are generated from this, but there are several solutions which are all pretty easy to implement.