Quick Update

28 Mar
March 28, 2013

Here are some animated images of the progress that’s been happening!

Capital Ship Destruction Test

I originally wasn’t going to leave the debris around, but I am going to make it a priority now. It was just one of those things I tried as I was working and it turned out pretty cool. There’s extra work involved in the setup, but I think it’s worth it. I love battlefields that get scarred and persist (Myth being my favorite example), so I’m pretty excited to carry that idea into this game.

 

Lead Reticle

There are a total of 4 implementations of lead reticles in the game right now, and I’m glad I did each of them because they taught me a lot. The two front runners are the pictured reticle and the traditional lead reticle that many games like Freespace and Strike Suit Zero have.

One thing I dislike about the traditional implementation is that its nature makes you focus on a piece of interface several meters out in front of the ship. You simply stop paying attention to the ship you’re trying to shoot down.

The reticle above is the same math as a traditional reticle, but it is just solved differently. The green crosshair represents where your bullets will intercept the target at the “ideal” lead time. This means that the rounds will land where the green crosshair is pointing in relation to the target. The added benefit is that now your eyes and focus are now primarily tracking the target ship instead of an interface element.

As both your ship and the target ship suddenly change velocities, the reticle can do weird things as the targeting system tries to compensate, but I feel like those cases can be minimized or worked around. If not, there’s always the option of going the traditional route, or tying different reticles to various weapons.

 

New AI

22 Feb
February 22, 2013

 

TL;DR

These improvements will make YOUR experience with the combat more interesting. The AI react much better to you, to each other, and to communications, making for a more immersive experience.

Long Version

Some of the feedback I’ve received has been about the AI, and how it could be more interesting. That feedback was spot on. The old AI was some weird combination of state machines and goals as I was first learning how to write it. There was no sensory system or target prioritization outside of “choose the closest enemy that I am allowed to.” You saw this during head on passes between flights, where all members would prioritize the frontmost enemy. It looked pretty bad!

Well, that’s no more. The AI now use something called behavior trees and have proper sensory systems and target prioritization. They also have a variable called danger, which is just a number boiled down from people shooting in their direction, enemy proximity (and facing), and special cases like missile proximity. If a fighter is in danger long enough, they panic. They also understand how to use afterburners like you do.

Little actions are pretty trivial to add once you have the system up and running. One of my earlier tests was to see if I could get a pilot to kamikaze when he’s below 25% hull. It worked, and now I want to see if I can make a whole drone class that will do that. It remains to be seen how fun that really is, but I will try!

Here's a debug display of what the tree generally looks like.  Light green means running behaviors, dark green means successful behaviors, red means failure, and grey hasn't been checked.

Here’s a debug display of what the tree generally looks like. Light green means running behaviors, dark green means successful behaviors, red means failure, and grey means the node hasn’t been checked.

Chatty Pilots

I wrote a new combat dialogue system that handles variants a lot better, meaning that if possible it won’t repeat lines. There are also both local and global cooldowns for line types, letting me tune the chattiness. They also won’t talk over each other unless I specifically say it’s cool (like for a death scream).

I apologize that I only have one voice right now (mine), which makes it more confusing than it will be. Look for the subtitles (your flight is “ECHO”) and the HUD marker “(O)” to better see who’s speaking.

Hooked into the behavior tree, I can do all sorts of special case stuff. Like, when an AI evades, he will tell his flight members. But if he’s the only one left, he gets a little more aggressive and taunts the enemy (for example, “Come on you bastard!” is spoken around 0:59). He will also ask for help if he panics, and any squad member that can attack his aggressor will let him know to hang in there.

Other Stuff

If you want to read more about some of the AI techniques, check out the following links and read about it from people a million times smarter than I am, and a million times better at explaining it:

Sorry these are generally the same assets I’ve had for a while. I’ve been working on NEW units and weapons too, so expect those in an upcoming video. I am working toward a combat test using the Unity web-browser plugin that will probably be nothing more than a Firefight-style last stand mode where I keep spawning enemy fighters until you die. No date on that, but it’s squarely in my sights.

Thanks for watching!

Dev Video: Fighter Speeds

25 Jan
January 25, 2013

This is a super interesting problem. For as limited as the scope of the game is in some ways, I am trying to resolve a lot of tricky issues with space combat. Scale is one of them. I’ve increased the speed of the fighters for a couple reasons:

  1. Faster speeds feel better. I’ve been watching and playing the game for a while and sense of speed is incredibly important. Bumping this up makes the fighters feel much faster than everything else on the battlefield which is awesome. You’re important. Fighters should feel badass in a game about starfighters. There’s a danger because the old speeds could just be getting old to me and I am fixing something that isn’t broken, however!
  2. I have been working on capital ships lately, and I want them to do more than just be a backdrop while they slug it out with other large ships. Increasing the speed of the fighters means these become more meaningful obstacles and cover. It also makes the fighters feel more dangerous to larger ships, so much that the only way to adequately deal with them is to send fighters of your own after them. In the context of this game, it’s probably fine.

The scale of your world and speed of your player/enemies is always a hotly-contested topic throughout a game’s development. It’s important to realize that what seems wrong or off can feel that way for a bunch of hidden reasons. The same goes for things that feel correct!

There’s a lot of things that the game is not tuned for now that speeds have been bumped. For instance, the AI fighters turn around really quickly once they make a pass since that condition is based on distance. This makes them more jousty than I want them to be. They also need their steering behaviors dampened so they aren’t as difficult to track.

I am sure I will be messing with this until I finish the game. But I wanted to give you guys some insight into this. Also, capital ships! Hooray!

Post-Prototype Update

15 Jan
January 15, 2013

After you make a prototype, there’s usually a bunch of loose ends you need to tie up to push through to full production. Enemy Starfighter is no exception here. A lot of my time over the last month has been spent fortifying things under the hood to make it easier to create content moving forward. Some examples include:

  • Better AI debugging functionality
  • A better target selector routine for units and Unity editor for tweaking it
  • Refining my Unit classes
  • Making a cleaner menu-to-mission cycle that lets me run a fleet through different challenges
  • Save/Load for the player’s fleet that can even be dumped to a web server
  • Excel-to-ScriptableObject importer for weapons and units
  • Better random-generation scripts that let me create deterministic setups for units

This kind of stuff isn’t what we call the “fun part” of making a game, but it’s nevertheless crucial (and still interesting). I’ve never been formally trained in programming so a lot of my time is spent learning and researching. As a side effect, I’ve gotten pretty good at reading other people’s code and understanding it.

I am stoked to have a lot of this stuff out of the way!

Menus

I still managed to eek out some artistically creative work in the last month, mainly menu mockups. How I present the game to the player is incredibly important. In a lot of ways, the menu flow helps you determine the scope of your game. Here is a mock up:

What the campaign screen may look like.

What the campaign screen may look like. Nothing is guaranteed!

Note that one of the things you can do now is rename your units on the planning screen. Name them after your friends, coworkers, favorite movie-references, and strike fear into the hearts of the universe’s heretics.

What the data looks like before getting sent to Unity. How exciting, right?

What the data looks like before getting sent to Unity. How exciting, right?

Spreadsheets

Designers LOVE spreadsheets. It allows us to see a ton of info at a glance and really helps out with fine-tuning the balance of a game. I’ve worked on projects with some spreadsheet integration into the engine, but I wanted to really exploit the advantages of working like this.

I will probably do a writeup on my Excel import process for any other Unity developers out there. Being able to hit a button in Excel and immediately see your changes in a running session is awesome. Thankfully, Unity is really good at that stuff anyways so it just needs to be nudged in the right direction.

Holiday Update

21 Dec
December 21, 2012

Some good advice has led me to posting some small development videos!

This is me testing out what happens to a fighter when you disable it. Before, it would simply spin and then awkwardly start up in a direction when its systems recovered. It looked pretty mechanical, so I took a crack at making it more believable.

Fighters can get disabled by EMP weapons or by being too close to large blasts. I should probably add some sort of electrical arcing effect so it’s easy to tell if a fighter is disabled at a distance.

Remember those station defenses I hinted at? I really needed to figure out how to blow these things up convincingly. When something that’s 600m in diameter gets destroyed, it poses very different problems than something that’s fighter-sized. There’s still a lot of work to do, but it’s getting there.

For anyone interested in making things go boom, GameDev.net has a great article about making explosion effects.

 

 

Prototype & Announcement

12 Dec
December 12, 2012

This is it! At the end of 3 months of full time work I wanted to have a prototype of the main cycle of the game and here it is.

Aside from (many) bugs, placeholder art, and just plain broken things, it seems to have come together into something both familiar and unique. It’s far from done, but it works. I can put the controller in someone’s hand and ask them what they think about it.

Yes, there are plenty of questions I simply don’t have answers to at this point. But that’s part of the fun!

Incoming!

Incoming!

What is it? Be quick about it!

The game is a random single-player campaign about planning to shoot things in space, shooting things in space, and using loot from your last strike to make you better at shooting things in space. If you die, that’s it, game over. If one of your units dies, it’s gone (steal another one!). The game will be appropriately priced. I will need feedback and testing so expect some sort of pricing model that rewards early adopters. For now, I’m just focusing on making the game.

I’ll make more posts about gameplay specifics as I lock more of them down, but you can get a few ideas about what’s coming from some of the screenshots I’ve posted.

Stolen ships are the best, and your commandos can help you steal some. Just buy them enough time.

Stolen ships and weapons are the best, and your commandos can make that happen. Just buy them enough time.

The Future

More everything! There’s pretty much only one of everything in the game right now. One fighter, one bomber, one facility, one skybox, one pilot voice, one (not great) mission type, etc. Even though it’s a mountain of work it’s a much different spot to be in than, “What the hell is this thing?”

I’m looking forward to getting this into people’s hands. Early combat playtesting has yielded very good feedback and generated very straightforward tasks. I will likely involve the internet at large at some point and to do so I am looking at some auto-patching solutions to keep everyone up to date.

Keep checking this website for updates.

Chasing a bandit into a dust cloud. Certain kinds of clouds will have gameplay effects.

Chasing a bandit into a dust cloud. Certain kinds of clouds will have gameplay effects.

 

 

First Post

28 Jul
July 28, 2012

Oh God. Here we go. How do I–

12.12.12 Update

This is how the game looked about 4 months ago. Crazy!