Designing levels is probably one of my favorite parts of designing a video game. In Steel Seal, even though there wasn't much design in the way of levels, there was design in the way the difficulty of the game ramps up over time. When it comes to level design, I enjoy creating not just levels, but experiences for players. This is why level design is my chosen specialization. We have all played a level in a video game that has made us sit back and think "wow", and that's what I like about it. Creating a memorable experience for players.
As mentioned before, because Steel Seal is an endless runner of sorts, there are no defined "levels" that the player navigates through. Instead the levels are more of a difficulty ramping scale that progresses the difficulty as the player gets higher scores. This implementation was done using a tool that Eli, our programmer created for me. The tool reads a few different CSV (comma separated values) files that determine when the difficulties are to be loaded, what spawns on that difficulty and how often. Eli chose CSV's to be the level manager because of how easy it is to learn, and how simple it is to go in and change spawn rates.
How it works is the level manager CSV reads what score the player is currently at, then loads in a respective difficulty. Each difficulty has multiple versions that load randomly to add a bit of variation to the lower levels. For example, Difficulty 1 has 4 versions. (1.1 through to 1.4). When the game starts, it randomly chooses one of these four variations of CSV, which makes each play through slightly different. When the player reaches 250 score, it loads in a random variation of Difficulty 2, which changes up the spawn rates and chances of everything from the enemies, to the power-ups.
The layout of the CSV is easy to use, and can be easily edited within excel or google sheets. The picture below is a screenshot of the Difficulty 4 CSV. Wave chance is the chance that a difficulty can be used. The difficulty is where the level manager reads to see what level it is reading. The object column is where things start to get interesting. Each object listed there is a spawner, which is why there are duplicates of some of the objects. More spawners equals more chance of one of those things being spawned. The spawn position is where on the screen its spawning. Obviously, sharks and orcas are spawning at the bottom, like polar bears walk in the middle of the screen. The SpawnTime, TimeRangeMax, Amount, and Chance all handle the spawning itself. I will use the first row as an example. The spawn time is 2 and the TimeRangeMax is 3, so every 2-5 seconds, there is a 100% chance a single shark will spawn.
This form of level and difficulty design is really easy to edit and balance, because each object spawn can be controlled manually by only having to edit one of these CSV's in excel. This made designing the difficulties in Seal Surfer a breeze, and balancing the levels game me no problems.