RODINA

Milestone 2: Combat

This milestone was a significant one: my goal was to have a complete prototype of ship to ship combat in the game, including models, AI, advanced ship controls, multiple weapons, and special effects. Let’s see how I did!

  • New Ships
    For this milestone I created some new ships for the AI to control. These models aren’t necessarily final, but I am starting to firm up my idea that Rodina should go for a kind of modern SNES Star Fox aesthetic. It’s simple enough to leave something to the imagination, but not so simple that it looks ugly. They aren’t bad for programmer art, but I may have a real artist rework them in the future.
  • Ship AI
    These new ships aren’t just for show- they will chase the player, evade her weapons, and try to shoot her out of the sky. Enemy ships are capable of doing everything the player ship does, including:
  • Drifting
    One of the new features added into the game is the ability to engage the “clutch”, temporarily turning off your engines and drifting frictionless through space. This can be a great move when being chased by multiple combatants. Rather than trying to maneuver behind them in order to get a clear shot, just switch off your engines, and while you coast in front of them, flip your ship around and give them the business.
  • Missiles
    If there’s a ship that is a bit too fast for your reflexes, fire a missile and let it’s heat lock do the steering for you. Missiles will close in slowly on their targets, creating a moment of tension as the target frantically tries to get away. Being locked by a missile can be tense, but the feeling when you are able to lose one and shoot it out of the sky is worth it.
  • Special Effects
    Missiles aren’t any fun without explosions. This month I added particle systems to the game, which are used to create a whole suite of effects- air leaks coming from a damaged ship’s hull, flames generated during atmospheric reentry, debris blown off of a destroyed ship, and the energetic exhaust coming from a ship’s engine. I also added a fun camera delta system, which allows me to animate the camera and simulate the ship being knocked around. It’s a bit like Star Trek, when the Enterprise is hit and they shake the camera and all the actors have to pretend they’re being jostled, only with more motion sickness*
    *This feature will be optional.
  • Is that it?
    This milestone took a bit longer than planned, but that’s how things work in the games industry. You start working, and the work takes you in a direction you have to explore. I did some necessary as well as some experimental work in this milestone. I reworked the atmosphere shader. I added a whole gameplay mechanic that makes entering an atmosphere more challenging and exciting. I optimized slow systems, and killed memory leaks, and did some work on the Blender exporter. I scripted the control system, so that actions can be easily mapped and remapped. This last feature is a work of programming art, by the way. It really shows off the benefits of a dynamic language like Lua. It’s extraordinarily clean and easy to read, it’s powerful, and it took me only one day. But all that good work came at a price- time.

I am still shooting for a 2012 release but, based on what I have yet to do, realistically I wouldn’t be surprised if it takes a bit longer than that. Projects like this always run long- it’s important to do everything you can to deliver on time, while realistically being open to giving it more time in the oven if it isn’t quite done yet. I’m doing both of those things.

In the meantime, I will attempt to start some more regular updates. The site now has a blog, as you can see, and I will also begin capturing screenshots and putting a page up for them (starting with the features I didn’t have time to illustrate for this update). Finally, if I can ever get the business side of it figured out, I would really like to create a trailer showcasing all the work that’s been done over the past 2 months.

But speaking of updates and the like, remember that it’s easy to give me feedback on Twitter as well as on Reddit. If there’s anything in this update that piques your curiosity, let me know and I’ll try to elaborate in a future blog post!