Welcome again! It has been a week and a half since the first project update, so it was time already for another one.
On the first update we explained a bit the concept of the game, we took a sneak peak at the story, and we went trough the main combat mechanics of Zoel’s Amazing Castle.
Today, we will be taking a look at the random element of the game, such as how the castle is built and what are the challenges you will have to overcome to fully explore the castle. After all, the feeling this game is trying to achieve is the sense of exploring a mischievous and ever changing maze, so getting this right is a critical part of this project.
Again, quick disclaimer: Zoel’s Amazing Castle is currently in a very early development phase. Both the graphics shown and the mechanics explained in this update are subject to change over the development cycle.
Let’s dive in and take a look.
The procedural generation
Being a roguelike was one of the first ideas behind this project, since I have always loved the feeling of exploring a brand new world every time you start your adventure. This was a given from day one, and the story and characters were built around this fact, to give the game a unique feel. However one problem that sometimes can be seen games which are fully procedural is that a lot of times it doesn’t feel as polished as a level handmade using traditional level design. Taking this into account, we settled with the idea of combining traditional level design with procedural level generation to get the best part of each world. The main objective behind our levels is to feel as carefully crafted as a hand made level, while retaining the ever changing and ever fresh nature of a procedurally generated world.
To try to achieve this feeling, Zoel’s Amazing Castle uses a room based level making system, in which each room is designed by hand in a traditional way, but containing several random elements, and then the levels are build randomly spreading a set of rooms in a sensible manner. This way, things like platforming or puzzles can be designed by hand, to avoid weird unnatural results, but other stuff as enemies, rewards or decorative items can be placed procedurally.
Meta-information such as the difficulty of each room and the type of room will be also used by the level generation algorithm in a weighted probability system (this means that it will still be random, but the chances of undesirable situations will be lower) to avoid, for example, that a level that is too hard overall, or to have a bunch of puzzle based rooms in a row.
Puzzles, Combat and Platforms
As mentioned previously, we will have some rooms that will be built based around solving a puzzle. From a game design point of view, there are 3 different types of rooms in this game:
This rooms represent the main portion of this game, as it will be the ones that will appear more frequently.
You have to take into account that being a platforming room doesn’t mean that there will be no enemies, it just means that the enemies are not the main focus of the room.
Less common that the platforming rooms, this rooms are built to test your combat skills. Again, same as platforming rooms, it doesn’t mean that this type of rooms will not have any platforming, but the main focus here is in the combat against enemies.
This rooms are quite far from the other two categories, in order to change the rhythm of the game once in a while. They will not appear very frequently and they will contain very few or no enemies. It is just your wits against the puzzle.
The puzzles need to be reasonably simple, taking into account that if you can’t solve a puzzle, you can’t continue advancing, and this will end in a very frustrating scenario.
Locks, Seals and Runes
In order to prevent the traversal of the castle to being too straight forward, there is different types of locks.
Some rooms can be locked from the inside, so you can’t complete the room until you perform certain tasks inside the room. This can happen sometimes in a combat room, so you will have to defeat the enemies inside the room in order to unlock the door, and it will (of course) always happen in a puzzle room, so you can’t leave until you solve the puzzle.
To give the player some visual information about what to do to open a locked door, an emblem will be shown with swords for the combat based locks and with a question mark for the puzzle based locks.
Apart from rooms locked from the inside, some doors between rooms will be closed with a magic seal. There are three different types of seals, based on fire, water and earth, and each one corresponds to an elemental rune that the player need to obtain in order to make the seal disappear (This system is similar from the one used in Doom, with colored cards to open colored doors). Since the level is procedurally generated, a graph based algorithm was built in order to place the runes and the sealed doors in a way that it is always possible to get them.
Other than just opening the sealed doors, the runes have additional purposes, as sometimes the chest will be also locked by a elemental seal, and the three runes will be always needed to open the final door of the stage to reach the boss.
Phew, that was a long update. Thank you a lot of you read trough everything, and I hope you had as much fun reading as I had writing. After this two initial project updates, all the basics of the game are already explained, so from now on we will be mainly focusing on showing content.
Stay tuned for future updates!