Devlog: Pause menu and Screwmville
Added 2025-05-18 07:06:24 +0000 UTCFinally, another comic story is finished and I can go back to working on CowHammer, while writing the next comic story because the grind doesn't end until it kills me.
By the way, apparently some other game studio has already registered the name "CowHammer", which is mildly upsetting, but joke's on you, life, I wanted those lemons. I didn't really like that name for Ternera's war hammer, I can find a better, Spanisher one. But I will keep it secret until the game's ready to publish, just in case.
May 12
I've updated the level selector menu, keeping it generic enough so that it can also work as an item selector when that part is implemented. I was using Godot buttons, but those don't help much when using the keyboard or a controller.
I made my own version using only text labels, for now. They work perfectly with the mouse, but also with the keyboard and the controller, by picking the closest option that is aligned with the user's input (allowing for an approximate 25º margin, or 0.1 in the dot product).
May 16
Most of level 7 (Screwmville) is modeled and functional. It's fairly small and simple because it'll be an investigation level: the details tell a story that the player needs to figure out before they can continue.
The ground collider of the level was unnecessarily complex, since the visual mesh had to account for the village limits and the road around it, so I nerded out and designed some code to handle the only two areas that aren't level with the rest of the, er, level.
If the player is inside the village and close enough to the excavation area, the excavation collider activates; if they're outside and they walk past the diagonal threshold z + x < -8, the river collider activates. This simplifies the computational cost of the ground collider at the cost of slightly increasing the amount of vertices and adding a couple of extremely simple calculations.
May 17
There are two small areas of the level where the visual mesh intentionally doesn't align with its collider - that is, you can walk through objects that look solid. This causes an issue with the camera, that can also go through these objects and see that they're all hollow inside, which looks awful.
So I had to get creative with the visual mesh to make it look decent when seen from the inside. This causes some minor conflict with the texture, because I initially designed it to be an alpha cutout. At this point, I think the simplest solution is just to make it not an alpha cutout, since I wasn't using it anywhere else anyway.
Additionally, some ledges leading directly into teleportation gates were causing issues, since gates are usually ½ units deep and the game requires 1 whole unit of space before it allows the player to climb onto a ledge.
However, that gate depth is supposed to be only visual, while the collider goes deeper to allow for a better teleportation effect. That forces me to separate the visual mesh and the collider, which I was already trying to avoid so the camera works properly.
The solution was to simply make the gates 1 unit deep. It adds 5 vertices per gate and removes the need for an entire separate collider mesh.
Now I just have to fix an incorrectly placed hut and build the inside of the houses (I'll use a single model and simply rearrange the props inside) and the general level layout is good to go. It'll require a lot of extra code once I have the screwmlin and kobold NPCs around, but I'd rather have all the levels done before I start populating them.