Most of the coding was done on this before Christmas and I am currently suffering from a heavy cold so excuse the brevity of this blog entry!
It wasn’t that tough a weapon to put into action, for the motion I work out the ideal vector between the mine and its target and then ‘lerp‘ the mine’s horizontal and vertical velocities towards this value (with a set maximum ‘acceleration’).
I found that sometimes mines were getting stuck against the edge of buildings if the nearest target was on the other side of a building, so I implemented a very simply AI that moves the mine to the top of a building if its path is blocked. This seems to work fine and gives pretty amusing results in some scenarios.
The other simple AI I added is a check to see if a target already has a mine attached. If it does, and the HP level of the target is low enough to be knocked out by it when it explodes, further mines will seek alternative targets to prevent them being wasted. This is pretty satisfying in-game as you can just fire a bunch of mines into a swarm of enemies and trust them to find their individual targets.
Actual development of this weapon took about a day and a half, the extra time was spent improving my mother-of-all-geometry-shaders to draw triangles, six and eight pointed stars and add decent-looking fades for all these various shapes. The six-pointed star is used when the mine explodes and I will definitely be using these elsewhere in the game too.
Oh yeah, enemies with limpet mines are rather too dangerous at the moment! I am going to have to implement some kind of enemy-specific ‘pause and reload’ functionality for all the weapons.
Dev Time: 3 days
Total Dev Time: approx 143.5 days

(Vaguely) Intelligent Selection of Target

Not Getting Stuck On Buildings

A Sticky Situation

One of the New Geometry Shaders – Six Pointed Star
One Trackback
[…] working on a much improved bullet that tracks the player’s movement in a similar way to the Limpet Mine. There’s also a ‘tell’ that the ship is going to fire as you can see the antennae […]