WitchBalls - Game Development
Aktualisiert: 22. Juli 2021
Explore the cursed castle and find all witch balls to liberate all souls. But be careful you´re not alone...
I start my own game-project WitchBalls. I get the idea when I played PacMan. I asked myself, how would it be if the playing field would constantly change when the game started? How should I design the gameplay so that the game flow is not disturbed?
I researched how the game PacMan works and how a labyrinth can be generated procedurally. And even more I dealt with the topic, even more I got ideas for the game design. I am writing this blog to give everyone an insight into the development of the game and arouse curiosity for the upcoming game.
The algorithm for the generated labyrinth is very complex and extensive. For this reason, I don't want to go into detail here. But you can find a very good tutorial on this topic under this, which I used for the project. The algorithm is called “Recursive Backtrack Algorithm” and was written for the Unreal Engine 4 by Michael Pattison. This basically forms an array defined by the size itself. With this basis we can determine which pieces should be laid out at which points of the array. I have created the following four types of pieces:
The special requirement for the gameplay is that the labyrinth have more evasion possibilities for the player and the AI. For this reason, the walls were joined together separately in the respective blueprints. At the start of the game, individual walls can be destroyed at will.
The next step for the design is to set individual wall-backgrounds (s. Wall-Backrounds) and objects (s. Objects) in front of the wall. For the wall-backgrounds I used a simple material instance with a flipbook function. After defining the size of each piece in the flipbook function, I assign it to an aninamtion phase (parameter from zero to one). At game start this phase is randomly assigned to each object. The challenge with the objects is that they should only be created if they are directed to a certain angle of the walls. Otherwise, they are also created outside the maze.
The concept of the Maze
For the AI of the game I have oriented myself to the AI of the game PacMan. To understand the AI's behavior in PacMan, I found this article. In general the AI is divided into two modes: Scatter (AI goes back to its pre-defined target) and Chase (player is being tracked). These change at fixed times for each level. In addition, all AI immediately switch to frightend mode (all flee from the player) as soon as the player eats a superball.
Unlike the original, the AI has added the two more factors: CanSeePlayer (The AI changed directly in Chase-Modus if the player is within a certain radius (s. KI Behaviour-Tree)) and Wait (The AI stays for a specific time on a target point). All factors are individually adapted and give the monsters different behavioural guidelines. The path finding for the target points works about the NavMeshBounds from Unreal.
Note: In the trailer (WitchBalls - Gameplay Preview) you always see the same monster, but they are different types of AI. The animations for these types are still being worked on.
To get more variety in the game I have included bombs (SkullBombs), which bring the monsters back to their original location. The Witch Boilers turn the player into an evil witch, which not only makes the player faster but also makes the monsters vulnerable.