New Turrets + How to play


After some friends reached out to me, saying they don't really understood what to do just from starting the game, I decided it was time to create some kind of tutorial, or a guideline on how to play the game. Therefore, I added a little menu to the title screen where the core concepts are visualized (it isn't 100% finished, though). I figured it would be better to have some graphics/videos to show the player what awaits in the actual game instead of having too much text. What do you think?

And I added some new turrets. Mortar, Cluster and Artillery turrets don't shoot a straight projectile. Instead when they shoot, the projectile will fall from above, exploding when hitting the "ground" emitting a blast that can destroy multiple blocks at ones.

Another feature I implemented was a better way to handle spawn mechanics for turrets. Before, I just generated a random number for the wave's turret count and picked a random turret for each slot. This resulted in a very chaotic wave spawn that was hard to control in terms of rising difficulty. So I created a system where I can define for each turret from which wave count the turret can spawn, how many of a turret's type can be in a wave at once and the probability of the turret being picked for a slot. For each slot, the following method is used to determine which turret will be picked (Pseudocode):

# build a probability map for each turret
max = 0
probability_map = dict((min, max), Turret)
foreach t in Turrets:
    if can_be_spawned(t):
        probability_map[max, max + t.probability] = t
        max += t.probability
# pick a turret based on the probability map
r = random(0, max) # max is exclusive
foreach entry in probability_map:
    if r >= entry.key.min && r < entry.key.max:
        return entry.value
return null # should not happen


New Features:

  • 3 new turrets:
    • Mortar turret: 
    • Cluster turret: 
    • Artilley turret: 
  • How To Play menu (WIP)
  • Adjustments to turret spawn mechanics

Current features:

  • Paddle Navigation (Moving and rotating)
  • Support for Keyboard and Gamepad
  • 9 types of turrets:
    • Gun turret: Shoots a small bullet straight to the other side, without aim
    • Cannon turret: Shoots a big, slower bullet straight to the other side, without aim
    • Precision turret: Shoots a small, faster bullet while aiming at the player
    • Spread turret: Shoots 3 small bullets with an angle difference of 45°
    • Barrage turret: Shoots 5 small bullets with an angle difference of 22.5°
    • Multi Barrage turret: Shoots 7 small bullets with an angle difference of 11.25°. These bullets are a little bit slower
    • Mortar turret: Shoots a dropping bullet that creates a blast when hitting ground. The blast is able to destroy multiple blocks at once.
    • Cluster turret: Shoots multiple dropping bullet that create small blasts when hitting ground. The blast is able to destroy multiple blocks at once.
    • Artillery turret: Shoots a dropping bullet that creates a huge blast when hitting ground. The blast is able to destroy multiple blocks at once.
  • 9 types of Power Ups:
    • Shield: Makes all paddles invincible for a few seconds
    • Block spawn: Makes a single block spawn at a random position, allowing the player to stitch it to one of his paddles by colliding with the block
    • Slow down: Slows down time for enemies and projectile, while giving the player the ability to controll the paddles with almost normal speed
    • Stun: Stuns all enemy turrets, halting them from what they are doing for some seconds. (This can be used to block some spawn slots for the next wave)
    • Deflector: Deflects bullets for a short time, causing them to bounce off (not working for missiles)
    • Speed up: Increases the movement and rotation speed of all paddles for a few seconds
    • New Wave: Instantly call a new wave. All current turrets stop in their actions and begin to retreat (even if they have not shot yet)
    • New Power Up: Instantly spawns a new Power Up
    • Copycat: Copys all current paddles and spawns them at random locations. They are instantly owned by the player
  • Paddle split on hit
  • Stitching paddles together (or blocks)

Planned features:

  • More turrets:
    • Laser turret: Shoots a laser covering the whole row or column with a small beam width
    • Missile launcher: Shoots a homing missile that follows the player for a short amount of time
    • EMP turret: Shoots a projectile in a random direction. When the projectile is destroyed (by colliding with other projectiles or a paddle), it renders paddles inside a big area uncontrollable for a short time
  • All turrets will get variants. A variant is displayed with another color and has the same projectile profile, but will fire multiple shots before retreating again and/or have a faster fire rate.
  • More Power Ups:
    • Magnet: Creates a force field around all paddle for a short time, adding a small force to nearby bullets
    • EMP Burst: Destroys all nearby projectiles in an area (EMP projectiles still activate their effect)
  • Global leaderboard
  • Adding animations for UI and game elements
  • Make the paddles' controls smoother
  • Polishing
  • Make better graphics / sprites



Ideas:

  • Give each block a HP pool so that they need more than one hit to be destroyed. This could be paired with turrets dealing different amount of damage and a Power Up to restore HP.
  • The original idea was creating a bullet hell  evasion game with a mix of pong. So an idea was to integrate the ability to spawn player projectiles (balls) that bounce off the arena walls, destroying projectiles and/or enemy turrets. The player can alter the balls trajectory path by letting the ball bounce off paddles. With this, a Power Up to spawn a new ball would be a possibility.

Known Bugs:

  • Currently nothing noticable. If you find something, feel free to report :) I try to find all the bugs myself, but that isn't always possible :)

Files

Block Cluster.zip 44 MB
Jun 17, 2024

Get Block Cluster [Demo]

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.