Thursday, April 21, 2016

Hammer devlog 15

This isn't action either.


Implemented a tile priority map system so bullets would behave in a more logical, psuedo-3D manner on big maps with a lot of steps and cliffs and whatnot, like this one. Basically: before a bullet even does its collision checks for the frame, it looks at where it is relative to the priority bounding boxes. If it intersects a lower-priority bounding box, it keeps moving even if there's a scenery collider there, because that collision is "under" it; if it intersects a higher-priority bounding box, it assumes that it hit something whether there's collision there or not.

This is a really silly thing to do in Unity, because Unity is a 3D engine and it could just do the proper 3D collision logic even if it was displaying a bunch of sprites on an orthographic camera, but it's necessary for the aesthetic and gamefeel I'm going for. I don't want to handle this the "right" way, per se - I'm trying to create the illusion of a game running on a much simpler piece of hardware than any this will ever run on. I want bullets with piercing properties to climb "up" walls and hit things on top of them; that sort of thing - at once obviously nonsensical as a representation of physical systems and intuitively correct as the behavior of a fairly primitive 2D environment that fakes 3D logic only to the extent that the GBZ80 and 8 kilobytes of RAM will let it get away with that.

Sometimes, you want to make sure that the wires are visible.

I also made the Demon's Spine's behavior a lot less janky and unpleasant. You can get a feel for what that's good for here.

Also also: your energy regenerates in checkpoint rooms, which is just a quality-of-life thing that lets you ensure you do have enough energy to get around, even if you don't have a firefight to get into.