I wanted to do a quick post on Procedural content. It seems to be everywhere in games, from Complex Dungeons to Sprawling Landscapes with great benefits for both productivity during development and replay-ability for the consumer. Procedural content can be used to randomise a level design (Like in MONSTRUM from our friends at Team Junkfish!).
“Play this game!”
Or to produce additional game content that would otherwise be too time consuming such as placing rocks/flowers undergrowth.
”Frost Bite Engine Scene**”
Recently during some down time between contracts we produced a game called “A Boats Journey”. The game is an adaptation of our previous title “Abstraction” and uses procedural generation to create endless levels for the infinite runner style gameplay. I’m going to step you through the simple process I used to produce the levels and show you some in-game screenshots!
One of the games key features is the use of multi-directional gameplay. The Boat follows the river Left/Right and Up/Down on its endless journey.
All of the levels are produced procedurally using one simple rule “When is the next corner?” This rule checks to see how well the player is performing and how far they have traveled in one direction, then spawns a corner to mix up their gameplay experience.
The first implementation used for this style of level generation was purely programmatic and used predefined fixed distances between level sections. This was great for Abstraction but caused some issues when creating A Boats Journey as we really wanted to improve the visual quality and fake some hand-made feel to the game. So the implementation was changed away from distances to use “Connectors” (Red Circles Below):
Each Connector links up seamlessly to every other connector and means that the level sections can now be of varying size.
These varying sizes allow for hand crafted sections to be placed into the game world. For example after each corner in the game we now have a cool waterfall section that increases your boats speed!
The new system allows us to produce increasingly complex map structures with more hand-crafted content, whilst still retaining the randomisation of procedural content creation and gaining the increased productivity it provides.
The next step for our procedural content creation is not just placement of the level sections but also the placement of the content inside the sections themselves. Once I have a bit more spare time I will revisit this topic and showcase how procedural level sections can be used in combination with procedural placement to truly realise such a simple game mechanic!
I’ll leave now with a short promo video we made for A Boats Journey (Gameplay Coming Soon!).
** – Image obtained from www.Slidershare.com (Terrain Rendering in Frost Bite using Procedural Shader Splatting) Hyper Luminal Games does not own this image.