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.
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 https://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!
0 comments