Started implementing the bit I am the least confident in -- the diving mechanic. The idea is that you can be in one of three states

  1. Dive under water, cannot do damage, cannot be harmed, go under obstacles
  2. Surface on surface, can bump other objects around and do damage, can be harmed
  3. Ramming on surface and going fast, deal critical damage

Early prototypes had a separate "dive" button to toggle between dive and surface (ramming only being possible while surfaced) but that felt clumsy. This prototype tries to keep the controls limited to pointer deltas and has it so that diving is controlled by steering speed. You are alpha'd out when underwater and outlined in white when above ramming speed.

This is a fine implementation but I need to sit with this mechanic a bit to see how I feel about it. It might be... too clever. It might get in the way of slamming around which is already quite fun. This might just be a game about bashing around in a physics engine, and avoiding things like enemy projectiles is maybe best done by dodging.

If it's weird to play in an iframe try the full thing. Only tested on mouse + desktop.

I kept working after I posted that prototype and made a version without the diving, just the ramming, and I like it a lot. This is likely what I will build on going forward and maybe reintroduce diving if the gameplay ends up feeling too flat? Full thing playable here.