Gravel and the MegaCluster

They MegaCluster asteroid continues to be the final challenge of the game at the time of writing, though it’s also the enemy I’ve returned to and tweaked the most throughout this project. At this early stage, it registered the direction of an incoming player shot and created debris following the same trajectory, so shots would seem to dislodge chunks and create streams of dangerous debris that had a habit of warping to the other side of the screen and sneaking up on the player.

I also made my first and only attempt to use GameMaker’s native compiler for builds, rather than the default that creates a little virtual machine to run the game. This would’ve increased my performance headroom (using sprite-based perfect collision rather than a crude polygon mask, as I do for nearly everything else in the game, is notoriously expensive and frequently warned against), but the different compiler means different class and instance instantiation timings, a much stricter syntax, and a callstack that points to the compiled code, rather than my code, making it worse than useless. I didn’t prioritize getting it to work.

Yesterday and today, I built what I’d planned to be a normal little enemy—a cluster asteroid that dislodges more asteroids as it gets damaged. Instead, I think I built the current boss of the game. It works well, and uses perfect collision detection (without any noticeable performance consequences, so I’ll play with it sparingly and see how it goes). It’s very challenging, generating a stream of nasties that sneaks up on you from behind because of how you fly. When the battle is successful, it’s usually because you rush to get damage in, shifting slightly to get out of the stream of debris and rushing again until your current location becomes unsafe. Once the boss is beaten, you need to have enough lives left to clear some space to move around in, and clear out the stragglers, which are mostly one-shots (I also built the debris—smaller “gravel-type” asteroids). I’m pleased. I might build a non-boss version of this thing eventually, but for now, it’s solid.

I installed Visual Studio in order to be able to build my game with the YoYo Compiler, hoping it wouldn’t raise the antivirus flags that the VM does, but the compiler has a much stricter interpreter and my code doesn’t work for weird and unknowable reasons. Tooling around to figure that out, but I’m not making it my top priority. I know I’m virus-free—I’m just sad to think that it might make friends uncomfortable playing.

I’m itching to start building the numeric shield system and incremental debris casting, but first I want to update the wave spawner to work from that array of shifting functions.