4 min read

Designing Chasm, a procedurally generated Metroidvania

"I was playing Symphony of the Night for the umpteenth time, and thought it would be cool if details about the game were different each time you played."

James Petruzzi had given up game development until he had the idea for Chasm, a procedurally generated take on Metroidvania platformers that will be released on Steam and PS4 in 2017.

Petruzzi got into programming because he wanted to make games, but for a while he was making them in his spare time while working in software engineering. After partnering up with his high school friend Tim Dodd, they created the multiplayer platformer Take Arms, a game for the XBLIG marketplace. While Petruzzi thinks it did pretty well, it wasn't "a big hit or a life-changing phenomenon" like they had hoped it would be. He stepped away from development for six months, but a eureka moment brought him back to it.

"I was playing Symphony of the Night for the umpteenth time," says Petruzzi, "and thought it would be cool if details about the game were different each time you played. For instance, the order of the rooms, what drops from a particular candle when you break it, items received, which enemies were in a room, etc. I decided to make a quick prototype with some basic room shapes, and found that it was indeed possible to assemble sections of the game together from pre-made pieces."


Although Chasm is procedurally generated, the developers want the game to feel handcrafted. "Each area features a large repository of hand-made rooms. When you start a new game, it essentially creates paths between known points using rooms from those repositories," Petruzzi says. 

This means that the order you fight the bosses and get powerups will always be the same, but the room-to-room experience in getting there will always be different. "We have a very fine level of control over distance between checkpoints, types of enemies that can spawn in certain sections, he says, "so our goal is to make it feel as well-paced and hand-designed as possible."

Getting the procedural generation right has been the biggest challenge they've faced. "It's easy to just throw a bunch of rooms together, but getting it to feel directed, well-paced, with a steady difficulty curve is a whole other matter," says Petruzzi.


"We've found that it's less about total randomness and more about possible variations," Petruzzi explains. "For instance, the rooms are all hand-crafted so there's no random generated terrain in them to worry about. But even the rooms placement in the world isn't completely random. Each one has a section assigned to it that it would work well in, and it helps keep the difficulty curve steady.

"Now you may see that room twice, but things can be different about it each time," he adds, "like which enemies are spawned in it, how many lanterns or crates it has, and also if shrines appear. Another example of variation over randomness, though, is the enemy spawns in the rooms. For each spot we mark which enemies work well there, and then when the room is picked for a dungeon the enemies are also picked according to the difficulty of the area its placed in and what works in those spots."

They've also taken steps to prevent the game from choosing the same room too many times in a row, so that the game feels more random to players than true randomness would be.


When asked how long a full run of the game will take from start to finish, Petruzzi admitted that he doesn't know because the developers know the rooms inside and out and can get through them quickly. "Personally, I'm hoping for a good 8 hour experience for a first playthrough," he says, "but we'll see once we finish up the core content and have our first playtesters check it out."

Latest Jobs


Playa Vista, California
Audio Engineer

Digital Extremes

London, Ontario, Canada
Communications Director

High Moon Studios

Carlsbad, California
Senior Producer

Build a Rocket Boy Games

Edinburgh, Scotland
Lead UI Programmer
More Jobs   


Register for a
Subscribe to
Follow us

Game Developer Account

Game Developer Newsletter


Register for a

Game Developer Account

Gain full access to resources (events, white paper, webinars, reports, etc)
Single sign-on to all Informa products

Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Follow us


Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more