It's March 12, the release date for VRMN NVZN. It's come faster than I thought when I planned it 20 days ago. My game is finished -- it could have a few more features, but that can be said about any software. Finishing a game is knowing when to stop painting -- when you can finally say the detail is enough.
Short gameplay video: Youtu.be
I've been developing VRMN NVZN ("vermin invasion") for a year, now. It hasn't been easy. But I've definitely enjoyed working on it, and put my best effort into all of its minute details. Every subtle behavior of the game I can faithfully say have been meticulously crafted over many hours.
There is a lot of behavior and edge cases in software and games users rarely think about. For my game, that includes the hand-placed tiles on every section of every level; the motion of the vertical centipede, which has gone through about 5 iterations; the timing of every cinematic moment, achieved by replaying the game repeatedly until they were correct; and the design of the graphical interface components used in the main menu, settings, and level selection screens to fit within a 256 by 192 pixel view (the size of the game's virtual screen).
VRMN NVZN is one of about three different software projects I have come to complete. Of the three, it is, without a doubt, the most time-consuming and difficult of them all. A game is a giant system of mathematical functions. These functions' behaviors are combined to form larger systems of behavior -- such as the player, the enemy, and the wall. Games require a crafty diligence in the design of such systems, so that they do not collide, and preferably do not cross-depend on unrelated systems.
Making a game by yourself is very hard. I thought I was going to be doing the rest of the game alone, but ended up hiring the work of two, and receiving assistance from three. I cannot, however, pay any credit to the current communities of the Godot Engine for assisting me when I needed help with an older version of the engine -- only forums and old documentation did me any good. Members of the community are quick to say "just port the game to a newer version if it's causing you trouble."
> You have to realize that not every game can be worked on for a year, with thousands of lines of code, many features and parts of the engine tapped into, and then just "port it to a new version". That's like asking someone to just "move their office building to a better foundation"
> If I was able to produce a game with it, then it isn't defective. \[Godot 2\] has problems, but it is very much functional.
Since working with Godot 2, an older version of an engine which has stopped receiving updates a year ago, I have come to really appreciate stable software. Not software that attempts to destroy everything and start again from scratch -- but software that intentionally remains backwards compatible. The Go language is a great example of this. If you've written a Go program in 2009 on Go 1, it is very likely to compile the same and remain working without source changes on a Go compiler from 2021, in version 2. This is because the Go team doesn't *change* previous design, they just append to it. I understand game engines have a reason to be unstable, but I'd prefer one that can decide upon a solid standard format in the beginning, and just expand upon it, so my game could have been ported easily to the new engine.
I think what came out of my work and the game is really quite good. I do like my game. I don't think I am robbing anyone of their $4 if they bought it. It's a unique experience and it can be quite fun and challenging. I have smiled in frustration while playing my game many times. It's a lot of fun. I wish it could have been longer, though.
You should buy my game for a dollar and try it. Let me know what you think about it. You can email me and find many other forms of contact on my website Lukewilson.me
If you're interested in the source code, a download for that is available on itch.io as well, included when the game is bought. The soundtrack is there, too.
Thanks for reading, and have a wonderful weekend!