Bloop Boop is a 2D physics based arcade game for android, boop your bloop to the end of the levels!

Post news Report RSS Level design VS procedural generation

This blog post will cover the choice between level design and procedural generation in our game Bloop Boop as well as a run down of the advantages and disadvantages of both.

Posted by on

Overview

One of the most difficult decisions when it came to the overall design of this game was the decision between level design and procedural generation. Both have their advantages/disadvantages and it was left on me the designer to weigh up both these options and decide accordingly. But first I'll take a step back, during the beginning stages of this project once we had a working prototype it became abundantly clear that my decision to have both an "endless" mode (this being proc gen) and a level based mode was extremely out of scope and we would be forced to choose just 1 in order to achieve a better end product. This was not an easy decision and could affect the entire project on a whole, however it lead me to think about the possibility of both on the project. I'll start of with procedural generation or proc gen as it is known.

Proc Gen

Proc gen is defined as "a method of creating data algorithmically as opposed to manually", or in gaming terms you create a system that makes seemingly "random" level layouts whilst adhering to a set of rules you set on the system. So for example you could create a system where the game spawns in chunks of premade level pieces to create the whole level. A good example of proc gen games would be Minecraft, don't starve, Terraria and other games in which a level/world is generated.

12844824643 d337810b76 b


Advantages

This way has it's advantages, the most glaringly obvious one is that you do not have to create a large amount of levels as procedural generation produces a different layout every time. Another advantage is that your game ultimately ends up being smaller in data size as you are not storing those 100 levels your game needs to keep interesting. And when it came to our game yet another advantage was that the game play suited an endless mode which levels could not provide, meaning that the players could be constantly trying to beat a high score instead of trying to beat a level faster.

Disadvantages

Creating a system of procedural generation that works for your game is difficult, we found this out early enough in our project so that it helped influence our decision. It can have it's strain on memory especially when developing for a mobile platform even with optimization leading to increased loading times in game. But without a doubt the most important point was that it is few and far between that you find a game in which procedural generation outdoes good level design, simple. This is due to the fact that you are trying to create a system that can create levels as interesting and engaging as you can if you were designing them yourself. It takes the design out of design.

Level design

Level design is the process of planning out and creating hand made levels for your game then loading these levels in for the player to play. A game example of this would be angry birds, super stick man golf, pretty much any game which you can choose what level you want to play.

hqdefault


Advantages

Drawing off the previous point for proc gen, I have had experience in both designing levels and creating proc gen systems so it was simply figuring out if I could create a good enough proc gen system to rival my on par level design. I decided that no it could not as I am better at being an alright level designer than a superb proc gen designer. Next that yes endless game play would have been good for our game sure, but level design was a good route too and I am almost certain that due to our time limit we made the right choice.

Disadvantages

The main advantage of level designing though is that you need some way of storing all these levels, without having a scene for each level and drastically decreasing your performance (this was the first hurdle when it came to level design). We also needed a way for me the designer to rapidly prototype and test levels, this meant pouring time into a system for creating and loading in levels. Lastly that level design means you have a limited amount of content and however much you include in the start of the game needs to be enough to keep the player occupied for some time. This means more work for our deadline which was already bearing down upon us.

The comparison

As anyone who has played the game would know we ultimately decided on level design this came down to the fact that we wanted better game play for the player, game play that at our current skill level we could not achieve through procedural generation. However in saying this both could have been applied well to our game.

Our level design system

When it came to our system of designing levels, I would need to prototype many different levels and also be able to play test them at the same time then store them effectively. We decided to use Json file reading, as this meant we could store the level objects using their positions and then simply load in that object later. This meant that instead of full scenes we could simply find every object in a level save it to a simple file and then read that file and load the level in later. Full credit goes to the programmers on this one as they did a brilliant job of making it easy for me the designer to rapidly prototype our levels shown below.

Screen Shot 07 26 16 at 04 10 PM

Thanks for reading,
Joel.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: