Scoring in Roguelikes

My new favorite YouTube channel is Matthewmatosis, a collection of in-depth game reviews and commentary. In-depth means really in-depth–30+ minutes in most of the videos. One of the most recent is on Pac-Man and scoring, which explores the phenomenon of the “perfect score” in Pac-Man: something made possible by the fact that a) the game is deterministic (the ghosts’ behavior is predictable and reliable), and b) the game has a finite number of a levels (not by design–but an integer overflow enforces this).

So for Pac-Man, there really is just a perfect score to attain, and the leaderboard shifted to who could do it the fastest. But there is actually a fastest-possible time as well, if you execute everything perfectly. So now it’s just an account of people who can attain the fastest time to the highest score.

Matthewmatosis offers a solution in the form of two missing ingredients: randomness, and unlimited time. They are both required, however, because random game elements (such as Tetris or a roguelike) combined with limited time means that top scorers are mostly at the mercy of the random number generator for a good score. And unlimited time without randomness turns the game into an endurance test, rather than a skill test.

Level Analysis: Soulcaster 1

A procedural level builder needs to be able to make fun levels.

It took me a while to get the hang of what is fun to do in the Soulcaster world–when making the first Soulcaster, I probably made about 30 bad levels before I found my footing and made some good ones. In this article I will take a closer look at some of these (the good ones), to see how they are constructed, what experience they offer, and how they might be broken down to be generated procedurally.

One advantage to the pattern-based room generator currently in SC3 is that, worst case, I can just build a large collection of intact levels with some basic parameters, then stitch them together randomly to build the game world. This at least offers the craftsmanship of prefab levels, but kept fresh for each replay. I’m not setting out to make an algorithm that could generate these levels from scratch–that would take way too long. Instead, I’m looking for ways these levels could be broken down into basic elements that could be swapped out, flipped, rotated, inverted, and otherwise manipulated.

Some levels will be only slightly dynamic, while others will have lots of parameters and will be vastly different every time. I think we’ll need a good balance of both of these types to make a solid experience.

Let’s start with the simplest level, the Cellar.

cellarThis is a great example of a room that’s best left intact. It has a few waves of enemies that appear from the barrels, controlled by a combination of floor switches and natural progression by killing foes. Maybe later down the line I could find a way to add dynamic parameters, but that can be put off until alpha or later.

Back From PAX

It’s been a full week now since PAX ended, and I have to say this year was way less stressful than last year. Being in the PAX 10 is a huge honor and will be an unforgettable experience–and it was also a ton of work to operate the booth the whole four days. This year, Sony gave me a spot in their booth, just yards away from Bloodborne, where it was fully staffed in case I needed to take breaks or even come in after 10AM.2014-09-01 18.02.45I also made it a point to take a couple walks around the block outside per day, just to stay grounded. It worked out pretty well–7 days later, and I’m already 90% recovered.

It was really cool to be right in between Disney Infinity and Diablo III – Reaper of Souls. People waiting in line for either of those would be irresistibly drawn to the bizarre goat game, and many would be brave enough to try it out. It’s crazy to think that 12 months ago, my team and I were showing a version of Escape Goat 2 that only had 15 levels built so far. I had no idea what was left to do on it then–“definitely by the end of the year” was the pitch. And I believed it! I guess we didn’t hit too far off the mark, with March 24. And we made a solid game. It’s going to be great on PS4. That will happen soon–stay tuned!