
My game works with a turn-based combat system. To make it a bit more interactive, a mini-game for defense was developed.
In the battle screen (the picture on the left) when the opponent attacks, a mini-game should appear. The mini-game should negate or reduce the damage the enemy does to the player.

Here is the original idea of the mini-game. A hit-box in the middle and projectiles flying towards it. The more projectiles get through, the more damage the enemy does to the player.



From left to right you can see the individual phases of development. Image 1 is the first implementation, here the projectiles are still too small and the shield (blue) is also too small. In this phase the most testing was necessary to get the logic of the movement right. I encountered some hurdles in the area of scaling. When the screen size changed, the target and starting positions of the projectiles also changed so that the game made no sense.

I divided the circle around the shield into points that serve as starting positions for the projectiles.
The biggest problems arose because originally position()
was used, not global_position()
.
The difference between the two is that position()
only works locally in the scene, so only uses the dimensions of the original playing field.global-position()
uses the dimensions of the screen in the game.
Picture two is the second phase, here after completing the basic logic and the first tests, errors were fixed and the game was made a bit more enjoyable.
For example, the projectiles are longer, which allows the shield to hit them from the side and neutralize them.
In addition, I made the shield larger to make the mini-game easier.

Game modes were also tested here; on the left, the movement starts halfway, while on the right, the movement starts in a spiral. Both provide a unique challenge that the player has to adapt to.


In picture 3 I fixed some minor errors and worked on the look. I used one of my art streams to design a suitable background image and projectiles. Originally I had an amulet as the background, but decided against it because a shield is much more appropriate for a defense event.

When my pictures are finished, they are scanned and edited using an image editing program so that they look good in a digital game.
On the left are the original assets on watercolor paper. I use watercolor paint and microns, i.e. markers for line art, for my art.

Finally, I added an indicator for victory and integrated the entire module into the battle scene. Here, the problems mentioned earlier with the scaling occurred.


For now, the module is finished, the idea is to make enemy-specific projectiles, and possibly put the entire mini-game behind an item that you first have to equip.
Thank you for reading!
I stream something like this on Twitch, if you’re interested, take a look (i talk mostly in German) 😀