As I mentioned in the previous post, jumping from wall to wall already felt quite fun, but the game itself lacked purpose. Simply collecting resources quickly became repetitive, and player interaction was weak. Trying to knock away your opponent’s resources was pointless – it was always more efficient to spend a jump collecting your own. So we began implementing combat.
Location Hazards
The first thing we did was give the heroes health. Now, when a player collided with a bomb, they wouldn’t just be knocked back and temporarily lose control – they would also lose a portion of their health. Losing all health would send them back to their base, costing a significant amount of time.
This single change dramatically altered the pace of the game. Players immediately became more cautious. Previously, hitting a bomb carried roughly the same penalty as miscalculating a jump angle. Now bombs were far more dangerous, and players had to think in terms of priorities.
A common dilemma emerged: by jumping in one direction, a player could collect two resources at once – but that same direction might also contain a bomb, turning the jump into a risky move. And where there is risk, there is excitement. Perhaps the risk could be reduced by carefully edging along the wall and jumping from a slightly different position – and that’s where experimentation and creative problem-solving began to flourish.
Once we introduced the ability to lose health, it became necessary to provide a way to restore it. From time to time, alongside its standard set of spawns (two types of resources and bombs), the resource spawner would also generate a medkit. This immediately intensified player interaction: the medkit was valuable to both players, and therefore naturally became a source of conflict.
Auto-Attack
Players could now shoot at each other. I deliberately chose not to overcomplicate the basic attack and made it as accessible as possible: when the player presses the button, the hero automatically attacks the nearest opponent (provided they are within range). The projectile also auto-targets.
This behavior closely resembles combat in MOBA games, where it’s enough to click on an enemy within range – once fired, the projectile is guaranteed to hit, and dodging is impossible. I decided, however, to allow for at least some possibility of evasion. The projectile travels quickly, but at a finite speed and with a limited lifetime, meaning the opponent has a chance to outrun it.
To prevent every close encounter from devolving into the same predictable exchange of shots, the attack needed a cost – some element of risk. Here again, I drew inspiration from MOBA design and implemented a similar anti-spam penalty. When a player attacks their opponent, nearby resources of the opposing color begin attacking the aggressor. Much like in Dota 2 or League of Legends, where minions aggro onto a champion who initiates an attack, the aggressor risks taking significantly more damage than they deal. The projectiles fired by resources can also be dodged — at least in theory.
As a result, every player encounter becomes unique, since the positioning of nearby resources now plays a crucial role. Moreover, situations are often asymmetrical. With certain resource layouts, it may be advantageous for Player A to attack Player B – A will take minimal retaliation from nearby resources – while for Player B, attacking back might be disadvantageous. This opens the door to anticipation and timing: choosing to engage when the situation favors you more than your opponent.
Another distinctive feature of the auto-attack is its variable cooldown. The delay between consecutive shots depends on specific circumstances – namely, how long the projectile takes to reach its target. If the projectile hits almost immediately, the cooldown is short, allowing the next shot to follow quickly. But if the projectile travels for a longer time, the delay before the next attack increases accordingly.
The difference between the minimum and maximum cooldown isn’t dramatic, but it’s enough to achieve the desired effect. Imagine Hero A chasing Hero B while firing, and Hero B retreating while returning fire. Hero A’s projectiles will be chasing their target, taking longer to connect – which reduces A’s rate of fire. Meanwhile, Hero B’s shots travel directly toward the pursuer and land much faster, allowing B to fire more frequently. As a result, Hero A deals less damage than Hero B during the exchange.
This creates an important dynamic: the attacker is in a riskier position than the defender. In other words, aggression costs more than defense. I consider this a fundamental principle of competitive game design – attacking should always be more difficult and more dangerous than defending. It establishes the right combat rhythm. Players shouldn’t attack recklessly; instead, they should carefully alternate between offense and defense, looking for mistakes and capitalizing on them when the opportunity arises.
Abilities
In addition to the basic attack, we introduced abilities that players could cast from time to time. The initial set looked like this:
- Dynamite. The player throws a stick of dynamite that begins pulling everything nearby toward itself. Upon contact with an enemy hero, it explodes, dealing heavy damage both to the target and to anyone caught in the blast radius.
- Brick. The player throws a brick that passes through walls and reacts only to enemy heroes. It deals no direct damage, but it knocks opponents off walls or strongly pushes them while they are airborne. The brick can also shove resources and bombs, making it a powerful tool for controlling the battlefield.
- Wall Strike. The hero strikes the wall they are currently holding onto, damaging all opponents who are attached to the same wall or standing very close to it. The hit also knocks players off the wall.
Unlike many MOBA games, where projectiles typically interact only with heroes, our projectiles exist within the same physical world as all other objects and characters. As mentioned earlier, the brick isn’t just a way to push an opponent – it can also manipulate resources and bombs, helping you (and potentially your allies) control the situation. You can plant dynamite and then nudge it with your body or a brick, making it even more dangerous.
We always intended to further expand this kind of projectile interaction. It allows abilities to combine with one another, unlocking new properties and emergent use cases through systemic design rather than scripted outcomes.
Dash
Another addition was the dash. After performing a jump – and before regaining the ability to execute the next full jump – the hero can perform one short lateral burst of movement.
Originally, the dash was meant purely as a defensive maneuver. It didn’t alter the hero’s movement vector, but simply shifted them slightly to the side. However, this severely undermined the sense of physicality – it felt as if characters were zigzagging mid-air in an unnatural way.
We eventually revised its behavior and turned it into a weaker secondary jump instead. In many ways, it now resembles a double jump – a mechanic beloved by many players for the freedom and expressiveness it provides.

Write a comment