Welcome back followers of the fearsome!
This week Jesse is in Vegas, but he was still able to make this awesome new banner that I’ll use whenever the blog is about some tech stuff I have been working on.
This week I’m talking about some of our experiments with procedural level generation. We’re a super small team (one programmer, one artist, one designer, one audio person), so creating a lot of content for our games can be challenging. In Shellrazer we used random groups of enemies spawning in the level, which were procedurally generated using difficulty curves. There was still quite a bit of hand work, but the result was a way more varied experience than we had before.
In the next game(s), we’re looking into taking this a lot further. For Star Razer, we wanted randomly generated caverns to explore. There’s lots of cave generation algorithms out there, but we wanted to be able to control the action in each part of the caves, with obvious ambushes, end bosses, etc. So what we came up with is a series of connected random rooms. Each room has one entrance, and any number of exits. Here’s an example of what this looks like in the editor:
This particular room as one entrance (at the top, green), and one exit (red, at the bottom), as well as a squad of enemies lined up to attack you once you get close.
The general idea is to create a LOT of these rooms by hand so that there’s a lot of variety in the caves that are generated using these rooms. When the cave generation code puts the rooms together, it can use different metadata to generate the cave you want such as difficulty for each room, enemy race present for this level, etc, so that the cave that is generated fits with the expectation of the player. For example, if you do a mission that says it’s a Donkonian mission, it would be weird for Crabulons to show up, so the metadata can filter these rooms out.
Rooms can be rotated and flipped to make them fit to other rooms. In the end, a possible cave could look something like this:
The start location is the bottom most room, and as you can see some rooms are rotated 90 degrees to fit to the previous rooms.
We haven’t added much enemy behaviour yet, but we did add a line of sight system that properly exposes parts of the cave when you fly around. It’s barely visible in the video below, because it seems youtube made the video a lot darker than the one I uploaded. Anyway, keep in mind that this is VERY early footage, and in no way represents the final game.
There currently isn’t much game-play to speak of, and to be super honest, it’s not a whole lot of fun yet.
While working on Star Razer we’ve been working on a prototype for another game, and somehow that prototype is a lot more inspiring to work on, and it has pretty much taken over in time commitment. We’ll probably post some more about this project in the future, and Star Razer may end up on the back-burner for a bit. Having a small indie company in which you can do what you want rocks! :)
Alright, that’s it for this week, I hope you enjoyed the little look in the kitchen!