Baby's first game (jam)


Jovian Ship Self-Defense Simulator 1993 is my first game! It is a game about workplace anxiety, and work life balance. You are responsible for the lives of yourself,  your (off screen) crew mates, and most importantly: JovEx's property. You will learn to identify 2 missile types and deploy appropriate countermeasures, or just throw a missile at them for good measure (if JovEx saw fit to issue any). But missiles are expensive and decoys are cheap. Better to try to decoy them and avoid the high cost of destroying them.

Development Process:
I had what was more of a tech demo than a game sitting around in my github for about a year. I wanted to make a much more complex game and my first step was to look up some guides on "How To Make Homing Projectiles In ...". No matter the language, engine or any other context they all only worked for a constant velocity. Some of them had an acceleration up to a constant velocity, but that wasn't helpful. If you implement those, without constant velocity, without any drag, etc. (the kinda thing you'd find in space) what you end up with is a projectile in orbit of the target. Which is cool, but doesn't work for a game about being possibly being hit by missiles. If this were, say a submarine game with a top speed and ~instant acceleration to top speed from almost 0 velocity, they would have worked fine. So instead I had to do a deep dive into modern missile homing technology, and implemented a Proportional Navigation algorithm that is the pride of this code base. That only works for constant velocity, which modern missiles reach quickly because of their high power rocket motors and high air resistance. So to handle the case of the missile under constant acceleration I had to devise my own algorithm, which I ended up deriving from the concept of vector projection. It works great and does exactly what I wanted, it maintains an almost constant vector for the duration of the brief period of thrust. after the initial thrust to send the missile on its way to the player, the missile enter a MIDCOURSE state where it uses proportional navigation to maintain the collision course it created during its BOOST state. (though that is mostly used in anti missile missiles since the player is stationary) See code for more details!

The Jam Experience:
Participating in the jam was invaluable. Releasing things feels better than just solving the "interesting" problems and them abandoning the project, even if nobody ever uses/plays it. Putting out into the world feels good. Feels like throwing up after being nauseous for awhile, the throwing up part wasn't great, but having it out I feel much better. But now I need to clean up the mess.

Future Plans:
I plan to add a CRT shader to the display to better convey the aged equipment. And on the suggestion of https://nitroclay.itch.io/ at a PIGSquad feedback night, a Phalanx CIWS style cannon so the player can be hit by one missile every ~second, but the ammo is expensive, incentivizing optimal decoy use, but making the game more forgiving. Follow up projects are a sequel using the knowledge gained from this game to make a resource management game instead of a puzzle game, and have more seeker type the player must identify and respond to.

Leave a comment

Log in with itch.io to leave a comment.