The Bowman
July 2020 to Today (still in development)
The Bowman is a game I am currently developing on my free time. It will be available on iOS and Android.
This game is a fast turn-based tactical game in which the goal is to eliminate all the enemies on the screen without getting hit. To do so, the player have to choose to do one of those 3 different actions each turn :
- Shoot an arrow toward one of the four directions
- Moving toward one of the four directions
- Boosting himself to do more damages with the next shot
This game is mainly inspired by two games:
Archero, for the fast-arcade style with a bit of randomness.
Dofus, for the turn-based style and the tactical choices.
With The Bowman, I want to create a fast-tactical experience, plug & playable as Archero, and tactically innovative as Dofus.
Randomness
Randomness is a key element of the game. It appears with the bonuses the player get, temporarily or permanently. And also in the combat with the critical hit system.
However, randomness is always positive or neutral, but never negative, in order to create a feeling of pleasant surprise without ever creating frustration , the player will never be punished randomly.
Randomness is also and mainly here to avoid each level to have a permanent dominant strategy. Instead , the most efficient strategy will be different each time you play a level, based on your equipment and your enchantments. This way, the same level is different each time you play it, so it avoid repetitivity.
Tactic
Tactic is the core element of the game and are intrinsic to the gameplay of it.
The player constantly have to choose between several options and try to get the best result, based on the current playground state.
The game is all about anticipation and thinking and can sometimes feel like a puzzle game with multiple outcomes and solutions..
Strategy
Strategy is a part of the game that I wanted to add with the goal of increasing the depth of the game.
The player can prepare by equipping objects, before doing the levels, that will change some aspects of his way to play and and allows him to express his own style inside the game.
This will allow him to adopt a way of playing and therefore a strategy before even starting.
Game structure
The game is divided into worlds which are basically a series of levels. At the end of each world, the player obtains a random piece of equipment among a panel of possibilities and can then access the next world.
On this world selection screen which acts as the central hub of the game, the player can also access their inventory and modify their equipment.
Gameplay loop
Micro
Macro
Entities and their states
Every objects in the game grid are what I call entities.
States are intrinsic behavior common to each entities, so every entities have a defined behavior depending of their states.
There are 3 kind of states:
- Soft state : It allows entities and projectiles be on it and cross it. (EX: Portal or ground)
- Semi-hard state : It allows only projectiles to cross it. (EX: Water)
- Hard state : It allows neither projectile to cross it or entities to walk on it. (EX: Wall)
Soft State
Semi-hard State
Hard State
Atk up
Piercing shot
Poisoned shot
Enchantments
Enchantments are temporarily bonuses that the player obtains through is progression in the current world.
They are obtainable in a recognizable level that is common to all the worlds, and it appears every “x” level completed. In this level, the player can take a bonus by stepping on the ripple-box at the center of the screen.
When touches it, three bonuses are chosen randomly in the database, then displayed on a menu. From there, the player can choose one of the last 3. They can obviously be combined with each other as well as with the pieces of equipment.
The player can also test his new power on the “punching bags – scarecrows” provided for this purpose.
Gameplay elements
There are items in the levels that are neither enemies nor walls, these are what I call gameplay elements. These objects are arranged on the chessboard and may or may not be removable depending on their nature. They react to an arrow touch or when an entity walk on them.
Gameplay elements have different purposes depending of their nature and their state, here are some examples:
- Bombs : Hard state, explode in a circle range of 2 box when touched by an arrow, kill enemies or player in range.
- Portal : Soft state, systematically present in pairs, it teleports any entity (character or projectile) to its twin position
- Spikes trap : Semi-hard state, kills entities on it when it triggers.
Bomb
Portal
Spikes
Classic Knight
-Swordsman-
Turret Knight
-Turret-
Hidden Knight
-Swordsman-
Enemies and Archetypes
The enemies are, for the most part, in hard state.
Here is two example of enemies archetypes.
- The swordsman, an moving entity, its behavior is driven by a modified a* path-finding algorithm that exclude diagonals. It will seek for the shortest path to the player, then once next to him, will try to kill him.
- The turret, a static entity, its behavior is an alternation between two actions, he load on one turn, then shoot 4 projectiles toward the main 4 directions. Then repeat this cycle over and over.
Each archetypes of enemies can have variants, those variants don’t change the main behavior of the enemy but add something to it.
For example, a variant of the swordsman is the hidden knight, he is hiding in bushes while moving toward the player so the player have to be concentrate to see which bushes have moved and find him before he reaches him.
Pieces of equipment
When the player complete a level, he will get a random piece of equipment: helmet, bow or boots.
Theses pieces of equipment can be equipped before entering a world, in the inventory menu, and each of those will influence respectively the player behavior in game, here are some examples.
- Explodeproof helmet: The player is now immune to explosions.
- Salamander bow: An arrow that hit something will create explosions around the collision point.
- The Holy boots: Allow the player to walk on water.
These items bring a strategic aspect to the game, they allow the player to prepare before starting a world, and to involve the player in a loop of improvement, optimization, and constant progression.
The concept of The Bowman appeared during the development of a prototype, Trapped Soul.
Once I’ve prototyped the main gameplay of Trapped Soul, I wanted to explore other things the player can possibly do in addition to simply interacting with the objects in front of him and moving box by box.
So I started prototyping 2 objects, a lantern and a bow. And the latter caught my attention. Thinking of it while I was in my car, I suddenly imagined a top-down mobile game based on this gameplay. Barely arrived, I started prototyping.
World logic and constraints
First of all, I had to choose if the game would be played in portrait or in landscape, or both. Finally I chose to constrain the game to portrait format, this way the enemies are more easily aligned with the player on the Y axis and I prefer that the player does not have to turn his phone to play. I also determined the number of squares and the grid layout (7×12) more or less arbitrarily, but wanted an odd axis and an even axis. With these pre-established constraints, I began to create the logic of the game.
Main controls
The first problem I encountered during prototyping was the controls. Unlike Trapped Soul, which is developed for PC, and therefore can have as many buttons as needed for a large number of different actions, the bowman is a mobile game. So I had to find a solution so that the player could shoot or move with a touch.
First, I created a big button at the bottom right that allows you to switch between shot mode and move mode. This appears as a change of icon on the button as well as on the boxes surrounding the player, the latter only has to touch where he wants.
The problem with this solution is that it is quite counter-intuitive and often the player takes the wrong action because he forgets to change the state, or does not remember which state is active.
So instead, I opted for a more elegant solution. I’ve removed the button and the four boxes around the player are still used to move with the touch, and for shooting, the player just need to touch the aligned enemies or the closest wall.
Then, while playing my prototype, I was facing a situation when I don’t wanted to move, in order to be aligned with the enemies the next turn, and to do this, I had to shoot an arrow with no target. So I started thinking that instead of wasting a turn without many purpose that to be aligned, the player could choose to take the risk to not move and instead make his next shot more powerful. This idea reinforce the reward of the player anticipating the enemies and give player a new option during his turn. I call this action “The boost“.
Enchantments management
As one of my inspirations was Archero, I tried to implement the same experience system: each enemy gives a certain number of experience points and after a certain number of points the player level up then he has the choice between 3 power up.
This system works well with Archero, because the levels are displayed randomly (not exactly random but sort of) so the number of enemies and their type are random too.
This leads to really different path and experience each time you play the same level and avoid repetitivity.
But my game is not Archero, after testing this system, I realized that it was not relevant to what I had in mind. Unlike Archero, The Bowman’s levels are not random, it is a tactical game and I want to have my hands on the whole difficulty curve, and I want the player to learn from his defeats and preparing better the next time he’ll have to beat level he previously failed.
So, instead of making a complex experience system, I decided to insert bonus levels. These are levels where there are no enemies and in which the player can pick up a power among 3 at random and test it on punching bags.
These levels allow me to choose, in my level design, when to give a bonus to the player and to slow down the pace of the game to give the player a break.
Also, since the player doesn’t know when these levels are going to appear (at least the first time around), they provide pleasant relief when they appear.
UX improvements and game feel
By having people play my prototype and by playing it myself, I quickly focused on improving the user experience. Indeed, beyond the controls mentioned above, certain problems remained:
- The detection of the player’s finger was too precise, it was necessary to touch very precisely the square on which the desired action was, and often the finger is imprecise and misses the said square. This caused annoyance in the player and forced him to concentrate on an action which should not be a challenge. To overcome this, I created a fairly large detection zone that appears when and where the finger touches the screen, then this zone detects the interactive boxes inside and activates the nearest one. Then I balanced the size of the area to make it not too permissive.
- The player also tended to touch too early, before the end of the turn, which had the consequence of not taking the player’s input into account. It also caused frustration and forced the player to repeat the operation. To solve this problem I was inspired by the coyote jump used in the development of platform games, I used the same process, which detects the player’s input even if the turn is not finished, and executes it a once it’s finished. Then I balanced to find the right moment from when the input is taken into account.
- Since the player can only aim enemies aligned with him, this created an awkward situation where the player would wait for the enemy to shift to the correct line but instead the enemy would advance on their own line, out of reach of the player. It was causing frustration (yes, again) and was not rewarding the player’s anticipation. So I modified the AI of the enemies and made it so that when two of his possible destination squares are equidistant from the player but one is aligned with the player, he will favor it. Thus, enemies are more often aligned with the player, and more predictable for him.
Also, I added a little hidden help to the player. In the situation where an enemy is stuck to him, that it is the last one and that an non-boosted arrow would not be enough to kill him but that a critical hit would, the chances of the player to inflict a critical hit are doubled. This creates more of a situation of “good surprises” and relief (phew, that was a close call).
Things to resolve and improve
There is some things to improve in the global design of the game:
- Resolve the 1v1 infinite loop (When there is one enemy left and the player’position is adjacent to it, the player can choose to run forever, so it may need a check and mate situation)
- Balancing powers and equipments
- Think of a way to break the monotony of the 7×12 terrain rat
- Improve the quality of the environment assets
- Improve the quality of the enemies IA.
Design critism
I still ask myself some questions that I need to answer:
- Does the strategy aspect is really worth it? (Currently testing it)
- Wouldn’t it be better to simplify the whole game, to make it a puzzle game without enchantments or equipment, only one type of enemy and a simple sequence of levels with only one solution for each of them? Or just make another game with this?