NokiMo
drjavi
drjavi

patreon


Devlog: 1st year final notes

I have spent (the little free time I got during) the last 3 weeks refactoring and cleaning up the whole CowHammer project, as well as fixing a few bugs in the first level. While there's still a lot to do there, I think it'd be best to start working on level 2 at the same time, since there are a lot of mechanics that have yet to be fully optimized and they don't happen during level 1.

I intend to post weekly-ish devlogs every Sunday, provided that I manage to get enough progress done during the week. It is only fair to you lovely investors that I keep you updated about my progress, since the development process itself can also be fun. So here are some highlights for September:

Sept 14

Sept 22

After doing some arcane geometry, I managed to make the targeting system cycle through all visible enemies, so the player can easily pick which one to lock onto using the shoulder triggers.

p = player position
a = current target position
b = candidate target position
y = vertical component of vector product (a-p)^(b-p)
if y > 0, then the candidate is LEFT of the current target

Works like a charm. I also optimized the vector product calculation:

y = (a.z - p.z) · (b.x - p.x) - (a.x - p.x) · (b.z - p.z) =
= b.x · (a.z - p.z) + b.z · (p.x - a.x) + (a.x · p.z - a.z · p.x)

Notice that (a.z - p.z), (p.x - a.x) and (a.x · p.z - a.z · p.x) are the same for all candidates, so they only have to be computed once when the player presses a shoulder trigger.

Sept 25

I just managed to finish documenting every last code file of the project. The next step is a scary one: deleting obsolete files. Godot does not like it when I do that. So I have to be very careful.

Sept 27

All unnecessary files (other than the stupidly bloated .godot directory, which may or may not be safe to delete depending on which forum you read) have been deleted and everything is running nicely. I saved... 4Mb. Out of 18Mb. Turns out my game is tiny, it's the goddamn .godot folder that takes 200Mb.

I have also optimized the "trail" and "shockwave" visual effects with more lightweight meshes and shaders. I also added joypad vibration, but that seems somewhat unnecessary and the way to detect if the player is using the keyboard or the joypad is a mess. I'll see if I can improve that later on.


Related Creators