Sponsored By

Mixing 'bullet hell' shmup with roguelike in Team D-13's Monolith

"Monolith contains thousands of room layouts, of which you will see about 100 or so in a given run," says Taylor Miller, lead programmer for the game.

Joel Couture, Contributor

June 29, 2017

10 Min Read

"Bullet Hell" shoot-em-ups, with their demanding combat, pixel-precise movements, and powered-up armaments, seem like they would add some high-stress mechanics to the procedurally-generated roguelike genre. Procedurally generating stages and weaponry would seem like it would be a recipe for frustration, dumping players into obtusely laid-out arenas or dooming them with weak weaponry in a lethal dogfight.

The developers at Team D-13 were very conscious of the potential for disaster as they developed Monolith, looking to the strengths of both genres to see how they could enhance one another. By carefully tweaking the parameters for health, room layouts, weapons, and enemies, and drawing heavily from their deep love of the bullet hell genre, they were able to effectively blend the procedural generation and shmup elements, crafting a challenging experience that wouldn’t ever feel unfair

Born out of a perceived design flaw

“The two of us have a lot of experience designing bullet hell; we actually met as a result of an old make-your-own-shmup game called Fraxy, way back in 2009, and we worked on a shmup we never finished prior to starting Monolith” says Taylor Miller, lead programmer for the game.

 

"The key rooms can appear anywhere - but never adjacent to each other, so while they're never clumped up, they can sometimes themselves be intersections."

It was not just that love that birthed it, though, but also a design quibble that the developers had with one of their favorite games. “I originally wanted to see if I could replicate the room-based procedural generation of the Binding of Isaac, but fixing some things I felt made its levels a bit too obviously artificial," says Miller.  "The game sort of grew organically out of that learning experiment.” 

“Later versions would fix this, somewhat, but the original Binding of Isaac generated very obvious branches which did not intersect, and important rooms were always at the very ends of those branches," Miller notes. "This made the game a bit more structured, but in my opinion really limited the potential for interesting layouts; there was no potential for two branches to later cross over and rejoin."

Solving this design challenge mingled with their shared interest in shmups, slowly guiding them toward mixing the two genres together to create an experience uniquely their own.

"The key rooms in Monolith can appear anywhere - but never adjacent to each other, so while they're never clumped up, they can sometimes themselves be intersections," says Miller. "That allows the maps to be a bit more varied, and also made the exploration a bit smoother and more open-ended.”

 

Fair fights

Solving the issue of how rooms were laid out and set up was a great first step, but there were still some issues with how the genres would gel together. Shmups require insane levels of precision, and roguelikes can be extremely unforgiving. One-hit-kills seemed to be a bit much for a game that would send players back to the start after a few failures.

"There are several safety nets built in, like guaranteed health drops, regenerating bombs and an unlockable upgrade that just fully restores all player health."

“I think Monolith isn't that difficult of a shmup,” says Alex Lorenz, programmer/artist on the game. “We understand that most people aren't heavy into the bullet hell genre, so the game is very forgiving about this. There are several safety nets built in, like guaranteed health drops, regenerating bombs and an unlockable upgrade that just fully restores all player health, which can salvage runs that seem completely lost.”

“We definitely do give players a lot of tools and leeway to make mistakes," says Miller. "A typical shmup is only really going to allow you to take a few hits over the course of a game, we're quite a bit more generous in this regard."

This actually created a nice effect for the developers, one that took shmups in a different direction. Instead of memorizing layouts and optimum weapon pickups, players would be forced to react on the fly, training them to use the mechanics, rather than know the mechanics in regards to a given, memorized scenario. Here, they would have to be able to use these abilities on command with no foreknowledge of what was to come.

This builds upon a lot of those skills that shmups normally demand: reflexes and precise movements.  “Familiarity with the game also just naturally makes players better at it, both in a sense that they can assess new challenges quicker, but also because they may keep finding out new interesting interactions. This is probably particularly true of bombs, which most people initially underutilize.” says Lorenz.

“Choosing to use procedural generation has a lot of really strong effects on a game," Miller adds. "Aside from the often-cited element of injecting a lot of variety into the experience, it really pushes you more towards gaining skills and general experience in the game, rather than simply memorizing level layouts (though certainly, knowledge plays a major role nonetheless).”

Even if this created a different kind of stress for shmup fans, it would not tax the player for long, something else the developers kept in mind. “I think the most important thing, though, is that play sessions of Monolith are, individually, short," says Lorenz. "Even a fully successful run that visits every room isn't likely to go much over half an hour, which is actually even less time than a lot of standard shmups (and, notably, about on par with, say, the Binding of Isaac).”

While the developers had to scale back some of the challenges of traditional shmups, it helped move the genre in a different, interesting direction, one that demanded a similar skillset, but used more fluidly. Rather than memorize, players would need to react using the skills they would build over the course of play.

Procedurally generating a Shmup

The procedural generation would need to be carefully designed to eliminate other possible problems. When fleeing from dozens of on-screen shots all at once, it wouldn’t do to have the game put together a stage that hampered free range of movement, would it?

"The layout of the floors is unpredictable, but no unbeatable rooms can fall out of the algorithms."

“While there was some initial thought given to the idea of rooms being entirely built randomly, we instead opted for having prebuilt rooms.” says Miller. “This lets the experience be much more tightly controlled. The layout of the floors is unpredictable, but no unbeatable rooms can fall out of the algorithms; all the actual challenges have been hand crafted to be appropriate to the area of the game in which they appear.” 

Each room would be designed to push the player in certain ways, and it would just be the combinations of those rooms that would provide the variety that procedural generation creates.

“It's a lot easier to create appropriately challenging content this way," says Miller. "The procedural generation, then, becomes about having a lot of those rooms and making sure you are offered a solid cross section of them. In order to ensure the game keeps feeling fresh, there are thousands of possible rooms, meaning it will take many runs before a player has seen all of them, and you also don't necessarily enter them from the same side, or encounter them equipped with the same sorts of weapons, meaning any particular encounter in a technically identical room can have very different implications.”

"Monolith contains thousands of room layouts, of which you will see about 100 or so in a given run."

For shmup-loving designers, this was a fun activity to undertake, as it meant creating hundreds of interesting individual challenges for people who enjoy the genre. It meant crafting a profusion of different combat scenarios, really letting the developers cut loose with their creativity and enjoyment shmups. It meant a lot of work to create so many different possibilities, but it also meant they could create thousands of fun combat situations for players to eventually discover.

Monolith contains thousands of room layouts, of which you will see about 100 or so in a given run. To actually play through all those rooms would take hours, but thanks to them appearing only sometimes, the game can contain all that content without forcing the player to go through all of it at once.”

This same idea of creating many, many different possibilities for players to experience applied to the enemies as well. “The enemy design centered around creating as many creatures as possible with very distinct behaviors," MIller notes. "Like all other aspects of the design, variety was a key goal. You shouldn't feel like you're doing the same thing over and over.”

“There's a lot of ways to actually make things challenging - speed, density of bullets, restricting your movement options, and so on. Enemies should be a suitable blend of popcorn and enemies that make you stop and think. The basic enemies - the ghosts, skullies, and the various minor mechanical enemies - all offer pretty simple challenges and can be used in groups or as back-up to more substantial foes. Certain enemies - especially later on, when you run into soul extractors or furnace maws - dominate any room they're in, suddenly forcing a change of approach.”

The procedural generation would give players a great deal of variety in what they would experience on each run, but it would also allow two designers who loved the genre to just explode with ideas to include in their shmup. There would be far, far more content than anyone could experience in any one game, likely getting cut were this a regular shmup. Instead, due to the procedural generation, its developers could design thousands of different scenarios and dozens of enemies and bosses, letting their creativity flow.

It would also let them play around with elements that shmups might not often get to utilize, like cover. “Bullet hell patterns are very centralizing, so for the most part it's kept to the bosses and minibosses, with the regular enemies starting to pick up on this only very late into the game. As a general rule, regular enemies are more about handling and predicting particular behaviors, and, while they certainly utilize bullet based attacks, elements like cover, and room hazards - not very common in standard bullet hell shooters - dominate the standard rooms.” says Miller.

While it would take some effort to make procedural generation work to create a shmup that wouldn’t cut players down in a hurry, the results offered the developers a chance to take the genre in a new direction while also giving way to a lot of creativity. They could create a lot of content in a genre they loved, as well as innovate it in a new direction that would change up how its players interacted with the genre.

“The magic of roguelike elements is that, as long as you can get the generation to create sufficiently compelling and varied content, I don't think a genre exists which can't be made to work with those elements.” says Miller.

About the Author

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like