Blog

Until Next Time...

The Past

House of the Dying Sun has been fully released for three weeks! That seems like a lifetime ago. There is a patch in the works to fix some small issues but the game is very close to getting frozen in carbonite for good. We have no plans to create any DLC.

This is bittersweet. House was a huge source of excitement, worry, frustration, and pride in our daily lives. It was also our first project on our own and we earned a ton of experience that will carry forward into future adventures.

Thanks to everyone that helped the game in some way, whether you contributed your time to create your art for it, test it, review it, or simply play it! It was a success thanks to you!

The Future

We are still looking at ports to consoles, but nothing is solid yet. We should know more about this in the new year.

The future is bright, and full of possibility. We are finally going to take that vacation and maybe start helping friends with some of their projects. Research has also begun on a mythical Marauder Interactive Game #2 which will likely be a huge departure from House of the Dying Sun. We won't be talking about that for a long time (if ever), and many things can change, but we hope you'll join us for whatever is in store.

Thanks, and good hunting!

Challenge Mode Is Live

You fight an endless battle —
Permutations of equipment and tactics
of enemies and objectives.
Scenarios repeat.
Ships shatter.
Worlds burn.

And all of it sharpens you.

Challenge Mode

Live on the main branch is a new scenario, Last Stand at Ol's Shelter, previously known only as "wave clear." Each day (at 17:00 PST), a new battlefield is created. Each day, and a new roster of enemies is summoned. Each day, you will die.

The rules are simple:

  • You will fight randomly-generated fleets until you lose your fighters or your Host Termination Timer is up
  • Each fleet is led by one or more traitor lords with a random set of upgrades
  • Eliminating these leaders fends off death by adding time your Host Termination Timer
  • Bonuses may be earned by eliminating civilian vessels
  • Your furthest wave and time is put on display using Steam Leaderboards

Challenge Mode is extremely challenging and is recommended for veteran players. Upgrades earned in the campaign will be available in this scenario.

This mode also represents one of the major feature milestones on the road to leaving Early Access. We're not quite there yet, as there is still work we want to do across the game. Thanks for your support and patience!

Patch Notes

This update also includes the following fixes (among many others):

  • CONTROLS: ArmA-style mouselook is implemented (defaults to LEFT-ALT)
  • CONTROLS: Joystick axis freelook is implemented
  • FIGHTER AI: Major improvements to things like weapon selection and attack run positioning
  • DRONE AI: Healing Drone AI has better prioritization, will top off nearby allies
  • GAP DRIVE: Fixed cases where AI would kill themselves
  • PERFORMANCE: A ton of minor performance fixes went in, hopefully adding up to a better VR experience for many

We'll keep tweaking Challenge Mode until 1.0 arrives, so leave feedback in the Steam Forums! Your feedback has been invaluable so far. Thanks for taking the time to write it!

House of the Dying Sun - 6/7/2016

Enemy Starfighter is now House of the Dying Sun, and it'll be out June 7th at 10:00am PST on Steam!

Launch & Beyond

House has had a ton of iteration put into it before even hitting Early Access, so right now I have no plans to add or change anything major to the game. The remaining work will center around bugs, weapons, upgrades, wave clear, and mission balance. 

What's the final gameplay like?

You're out for revenge.

The campaign is a hit-list of 14 custom-built assaults and assassinations with three brutal difficulties and bonus objectives. These objectives take heavy inspiration from the legendary TIE-Fighter series and Descent: Freespace, but House puts its own spin on them.

Each mission requires you to jump in, complete your objectives, and get out before you are intercepted by a massive traitor flagship.

Completing missions and bonus objectives allows you to upgrade your fleet in many different ways including unlocking new weapons or modifications. These in turn will help you tackle harder encounters in ways more suited to your play style. 

Is it still randomized?

Nope.  The combat in House is HIGHLY dependent on positioning and timing to make it sing. This means old-school encounter design. I really came to grips with this last summer and immediately shifted gears. Now the game runs on highly crafted, lightning fast fights that have designed enemy setups, sight lines, engagement ranges, reinforcements, custom AI behaviors, and more. 

VR vs Traditional Monitors

The game is designed for both VR and for traditional monitors. Cockpit games have the luxury of being able to do both fairly well. But please realize this is not a game you use to sell your grandmother on VR. It's intense.

House uses SteamVR/OpenVR which allows me to support both the Rift and the Vive.

What controller should I buy for the game?

House of the Dying Sun works great with just a keyboard and mouse, but was designed with a dual-analog gamepad (Xbox 360, DualShock 4) as the "lead" controller. We highly recommend one of those. Don't buy a HOTAS specifically for this game!

House of the Dying Sun

As some of you may have noticed, the game is now called House of the Dying Sun.

The reason is so we could get a better trademark. This was a zero-drama name change. I liked the old name a bit too, but this one has grown on me and there are more important things to deal with.

The game is going well, and I'll have more info soon (5.26).

Quick Update

I promised myself I wouldn't work this weekend. I'm cheating and writing this extremely quick update:

  • The campaign has received considerable iteration and simplification based on the feedback I received. It's where I've been spending 90% of my time, and I'm hitting a milestone with it very soon. 
  • I received a Vive dev kit, and going from a DK2 screen to this is incredible. The game has been using SteamVR for a while now, so going from Oculus's devkit to the Vive required no work on my end.

In the meantime, here are some screenshots:

Stay safe out there.

 

Holiday Update

If you celebrate Thanksgiving, I hope you had a good one! I spent the long weekend taking a much needed break from the game, but I'm excited to get back to it tomorrow.

Progress

Long story short, I'm still simplifying the game. ES is working with an extremely limited set of resources (me) on some very hard game design/UI/code problems. Now combine that with VR support and it's quite a bit of work.

Early in September, the game was the equivalent of a film studio getting a 4 hour first edit of a film. There were a lot of good ideas mixed in with a lot bad ones, and mostly it wasn't cohesive and it lost a lot of my playtesters. So I'm trying to edit that meandering 4 hour cut into 80 minutes of focused awesome which is really tricky.

You've all heard of the time/money/quality triangle? That absolutely applies here. I'm not sure when it will be ready, other than ASAP.

Good News

In the meantime, here's some good news:

  • Better joystick support. There's no need to worry about config files anymore, and I've gotten my hands on an X-52 to test. I personally don't like playing the game like this, and the it still feels like it's made for gamepads (because it was). But if you want to play with one of these beasts, you should be able to bind things easily enough in game.
  • Instant Action is online again, letting you set up small skirmishes to your liking.
  • Olivier has been tweaking the soundtrack and it's somehow getting even better.

Until next time!

9/1 Update

PAX

A lot of people were up here in Seattle for PAX. This is great because even though I didn't end up showing Starfighter at the show, I was able to run many friends from out of town through the game. Many of them haven't played it yet, so it was great having fresh eyes on it.

Feedback was positive, especially for the cockpit combat, but there was some consistent feedback about the campaign mode framework that I'd like to address. These fixes don't involve adding major new features, just rearranging some mechanics that are already present and streamlining other aspects of the mode.

I'll talk more about this when the changes are ready.

So (surprise!) I'll be taking a little more time and fixing these issues, but that will just make for a shorter and better alpha/beta experience for everyone. It'll be ready when it's ready, but no one wants this out more than me.

Why not just open the game up into Early Access and get feedback that way? 

You basically get one shot at launch, Early Access or not, so it had better be good. Wave Clear is there and fun, but it's not enough to launch and then hold back the other mode.

Another aspect is the scope of feedback you receive from a large pool of participants. Detail-oriented feedback on balance, UI, and whatnot is great from a large group of people because it gives you a really good sample to pull from. 

But I don't believe a large group is ideal for offering feedback about the issues above, especially when under the unique constraints present with ES. I'm much more comfortable looking to other devs for feedback on these things. If it were a pure PvP game, or sandbox-MP game (Rust, DayZ, etc), that would be a different story!

Until next time!

Quick Note About Controls

Update 10.22

Thanks to some help from Rewired, the game has much better integrated support for joysticks and gamepads. The old config system has gone away in favor of the middleware.

 

Control Standards

As Starfighter gets closer to alpha, I've been getting some emails and tweets like, "You've been working on gamepads and mouse controls, but what about <X>?" I think I've been pretty up front about Starfighter's focus and pseudo-sim nature, but to be absolutely clear, the only officially supported control schemes will be:

  1. Keyboard and Mouse
  2. XInput Gamepad (XBOX360 controller or equivalent)
  3. DualShock4 (PS4 controller)

You can still rebind your controls in menus and even tweak some crazier settings by hacking the config files. You can do all sorts of things with the config files like set custom dead zones or even change the strings the tutorials/menus display for your buttons. Many other sticks and controllers will work with a little bit of effort on your part, but they are not a focus.

Why?

  1. Most of the other controllers are completely non-standard in their layout and button/axis configuration. This makes it really hard to troubleshoot what's wrong, and that eats up time that I would absolutely rather spend working on gameplay. This is also a logistics issue -- I don't have another programmer to whom I can assign these tasks.
  2. Starfighter was designed around gamepad controls. Everything from how the tactical mode unit selection works, to the radial menus, to the fighter input response curves and throttle controls were designed for a gamepad. If a mechanic could not be implemented because there was no room on the controller, it was cut or refactored.
  3. Pretty much my whole professional career has been designing with gamepads. The control scheme feeds heavily off of my experience with console tactical games (Full Spectrum Warrior 2) and console action games (Halo: Reach).
  4. Everyone has a keyboard and mouse, so a good chunk of time has been spent working on that control scheme too.
  5. A lot of people have gamepads. The Oculus Rift consumer model will even be shipping with an XInput gamepad.
  6. It makes porting to consoles easier if that ever happens.

Starfighter is an action game first and foremost. It might have some simulation elements, but it's never been concerned with the mechanical aspect of actually flying a starship. It's concerned with more action-game (or abstract) elements like target prioritization, twitch skill, and allied unit control. 

Again, your non-standard controller will likely work if you're not afraid to hack some easy-to-read config files. Most of my testers that use these sticks say that this experience comes with the territory.

Hopefully this clears things up!

 

 

8/1 Update

It's been a crazy few weeks, and my task list is getting smaller and smaller.

Completed

  • Cockpit training has gone through some more iterations and is ready for Early Access.
  • More waves have been added to the wave clear mode and it is ready for Early Access.
  • The campaign is rolling itself out to the player in much more understandable way thanks to feedback from some old coworkers.
  • A navigation/combat toggle has been added to the cockpit mode. This will show/hide navigation or combat telemetry and cleans up the display considerably.
  • Some upgrades that you earn in the campaign now persist across playthroughs, and certain things unlock after you complete a playthrough.
  • Several crashes and memory leaks have been hunted down and eliminated.
  • Each difficulty mode is feeling more distinct.

Priorities

Getting ready for launch, the overall priorities are now:

  • Keyboard and Mouse Controls - I need to spend some time on this due to some great feedback I've gotten.
  • Gamepad Controls - The 360 controller has always been a priority, but it's now time to shift focus to DualShock4 controls for a few days.
  • Campaign Tutorial - There are a few things that still need to be done to make this better, and make it work in VR.
  • Stability & Bugs - The reason for this should be obvious!
  • VR Support - There are a million little ways to improve this experience, and it doesn't help that the tech is still very much a work in progress. Along with some VR UI, there are some sorting bugs that are screwing up the experience.
  • Marketing - I still have to create a new trailer. Olivier has written some killer music that is just waiting for some new footage!
  • Balancing - After this weekend, this work will mainly be relegated to ship and weapon stats, fleet roster changes, and terrain layouts.

Thanks for hanging in there!

 

7/10 Update

The heat is subsiding in the Pacific Northwest, which is awesome. In the meantime, it was a super productive week. Here are some random shots I took while working:

Work

  • Olivier wrote some incredible trailer music and sent it my way!
  • Cleaned up some of the audio low end using some tricks an old colleague taught me -- everything is still beefy but it all ducks based on priority now
  • Wave Clear is about done and ready now that I've integrated the pilot tutorial into the beginning (optional)
  • Wave Clear needs more waves, and sometime this fall I'll revisit it to add more depth
  • Mouse and keyboard controls are fixed up. Warrens now use the mouse properly if present. There's an odd case here or there but it feels much better. The pilot controls are not ideal, but I'll improve them with the right feedback. I feel like to do the best KBAM controls, it would be third person, but that would take a while and would have to come later if at all.
  • The game is barking a lot more stuff at you in the form of a toast, which helps readability quite a bit. I would say that 80% of my work lately has been in regards to teaching the player the game or helping them to read what's happening.

There's still a little more to go, but we're getting there! Thanks for tuning in!

Player Training

Much of the work done on Starfighter lately has been with player-training and mechanic discoverability. Here are a few screenshots and brief updates about what I've been hammering on.

Discoverability: Shop UI has been refined to help you make better decisions about what you're spending your bounties on.

Wave-Clear

Wave-clear mode familiarizes you with the combat before making you play hide and seek in the campaign.

Starfighter's wave-clear mode will handle the combat mechanics training and lock out the campaign mode until a certain wave number is reached. 

Under the guise of a systems check, you'll perform many of the same learning exercises like many tutorial levels, but accelerated and with less context. 

I'm not super worried about teaching the player to fly. This is because Starfighter's been cold-tested at numerous trade shows AND combat controls have been designed around gamepad FPS paradigms that many players already know. 

For example switch weapon is on Y, X is reload (holding it interacts with your target if possible), and A handles movement abilities. Of course, right trigger is shoot. 

From a high level, controls are designed around realizing player intent as opposed to manually operating a machine.

 

Starmap

The starmap gameplay is fairly simple from an abstract perspective, and is based around common gameplay mechanics. But getting the player to realize they already know how to play it can be tricky.

Space is awesome, but let's be honest: it can confuse the hell out of people, even me.

The number one thing my testers (especially new ones) bring up is that the campaign just sort of throws you into it. If they have problems with it, so will everyone else.  

The good news is that I've made a lot of progress on a starmap-level tutorial.

The downside is that it's not very interactive. It's akin to having a board game set itself up and then read the manual to you, highlighting the pieces in question as it goes. It's not ideal, but it's better than nothing, and has helped so far.

 

Moving Forward

Deciding what information is most important at any given time is an interesting problem. Once you add VR into the mix it adds a whole extra set of requirements.

There are still several things to work on before release, and iterating on these front-loaded tutorials is one of them. The good news is that it's really simple to add new tutorial segments, or modify existing ones.

In the far future, I'll likely need to work on a very methodical Starmap mechanic tutorial. 

Until then, you may need a helmet.

In space, no one can hear you work...

Early Access?

This summer. Soon.  It doesn't make sense to launch so close to E3 when there will be a lot of buzz about a lot of amazing games, so I have a little more time. But first contact is coming!

The game won't be a fully operational battle station, but it'll give everyone a taste of what's to come. I can't wait to read everyone's feedback and criticisms and then improve the hell out of the game.

 

What's Been Done?

A lot.

Everything that's ever said about the last 10% of a milestone being the hardest is true. I've been a developer for a long time and even I can forget about that until I'm in the thick of it. Here's some unscripted footage I recorded this morning:

Some new features have been added since November, like Imperial Marks that act as fleet-wide upgrades, or like the escalation/bounty system that sends the space police to hunt you down. But a lot of work has also been done to simplify mechanics or features, and the game feels better for it. 

This is important -- it's how you make sure your game is focused and is part of the natural process of game development. I've found that space games are particularly nasty in terms of thinking, "Well, we have X so we totally need Y!" A few games can get away with this, but most cannot.

If your triage process starts to feel like a brutal Thunderdome of good ideas, you're probably on the right track. 

I'll do a major feature post when I have more time and am not scrambling to hit a content lock. In the meantime, you can follow me on Twitter for tiny updates whenever I have something cool to post, or tumblr if that's your thing too.

So What's Left?

There are a couple major things left before Early Access such as stability, the end game battle(s), implementing some more rewards, finishing player training, and small UI and polish items. Major feature work is done for Early Access. 

As far as stability, I'm running into a weird crash that may be related to how I'm sending data to FMOD events. This one has been plaguing me for a while, but I'm getting really close to figuring it out. I won't send this out until I can get these showstoppers under control, so please bear with me!

Then there's the end-game. I've had this phase functional for quite a while but it really needs some love and bug fixing to shine.

 

Drums of War

I've recruited a very talented individual named Olivier Zuccaro to write the soundtrack for Starfighter. I first became familiar with his work on Beyond the Red Line, the incredible Battlestar Galactica mod for Freespace 2. He's also done quite a bit of work for E.Y.E. Divine Cybermancy

The soundtrack does far more than I ever could have imagined for a small game like Starfighter: it dynamically transitions based on what is happening in the game. Running from Lane Marshals? It'll switch to tension. In over your head? There's a track and transition for that too.

It fits Starfighter's spartan style wonderfully, and I can't wait for you all to hear it.

 

Bad News: Mac and Linux Versions

After reading a hugely informative launch thread on the Indie MEGABOOTH alumni list, Enemy Starfighter will only be launching on Windows. Mac and Linux versions are now off the schedule, and I'm not sure if/when they will come back. After doing some export tests, I came to the conclusion that I simply don't have the resources to make these versions happen without sacrificing the quality of the lead Windows build.

Oculus's decision to focus on Windows makes this an easier choice for me too. But if SteamOS gains traction, I will take another look at supporting that.

Campaign Trail

It's been an incredibly productive couple months for Starfighter's campaign. Here's only a few of the things that have gone into the game:

  • You can start and win a real campaign and it even has soft-locks that act as power (or skill) checks
  • The campaign map generator went through several iterations (about 9 major updates if my change notes are to be believed)
  • AI fleets are now able to move from one side of the campaign map to another
  • AI fleets have behavior types such as watchdog, transport, patrol, or escort
  • ALL Harbinger fleet movement can now be handled from the tactical mode
    • Related: Keyboard and mouse controls were brought up to par with the gamepad controls
  • LOADS of AI fixes, mainly in regards to weapon usage
    • EX: Wingmen must be specifically ordered to use their heavy weapons (since they are limited)
  • Harbinger Fleet warp state got a polish pass
  • Faction paint schemes have been implemented
  • Shader work, mainly making shadows work again on objects that pull ambient lighting from the skybox. This was broken in the last trailer (and PAX)!
  • A lot of work went into making the tactical mode and star map feel awesome in VR
  • Traits went through a rework, making them simpler to add to units (and save across star systems)
  • A few more skyboxes have been created (with many more to come) along with per-skybox settings like dust color/density
  • Last Stand is dead, long live Last Stand! Everything that was interesting about this mode has been rolled into the campaign itself, so it will be re-imagined at a later time.
  • Renaming your ships works again!

 

Campaign Map Iteration

Some of you might be interested to see how the campaign map progressed from a simple minimal-spanning tree (top left) to where it is today (bottom right). Instead of one minimal spanning tree, multiple are created and designated as kingdoms, then they are connected. This creates choke points into the core systems (and is desired). 

Most kingdoms are in the frontier, where the local outpost is responsible for responding to any incursions.

Over time, a lot of subtle stuff was implemented, like the core worlds being elevated over frontier kingdoms. This puts the king/queen on the hill and clarifies its importance. 

 

What's Next:

  • The design goal of the campaign is to provide the player with a system of behaviors that can be learned, poked at, exploited, and finally defeated. A few things I'm exploring are:
    • Jump Gate Traps: What if you can disable a gate and prevent reinforcements from entering the current system?
    • Cloak: I used to run around in a stealth bomber in EVE and had a wonderful time, even when they were completely ineffective.
    • Warp Fuel: Make warping to and from landmarks cost something without becoming obnoxious
  • Traits can be earned by eliminating priority targets or collecting bounties for the Empire. More work needs to be done figuring out the most interesting way to dole them out. This has been constantly changing.
  • It's time for another earnest balance pass. High level goals for this are:
    • Imperial fighters need to be more effective against light capitals (such as Destroyers)
    • All fighter movement needs to be balanced, particularly with the new armor traits that change the speed of the ships (EX: House Vykorr has Juggernaut Armor which forbids shielding, increases their hull vitality, makes them invulnerable to AOE like flak, but slows them down considerably).
    • Starting fleets per-faction. This is already in, but I am experimenting with giving you bigger starting fleets on lower difficulties (and starting alone on Harbinger difficulty).
  • Leaderboards: See who is the most ruthless pilot
  • Bug fixes (as always)

 

Tumblr

I made and started using a tumblr account and have been posting dev images there. If you're interested in random shots of things that are broken or look cool, be sure to check it out.

House Sentar (The God of Bones) paint scheme from the cockpit. White looks better than I thought it would have, likely due to the lighting/shadow shader fixes from this last month.

House Sentar (The God of Bones) paint scheme from the cockpit. White looks better than I thought it would have, likely due to the lighting/shadow shader fixes from this last month.

Early Access Release?

Soon. Getting the campaign critical path in was a big deal. I'm now regularly doing campaign playtests of 20-35 minutes (even in VR) before I get fed up with something and fix it. That time is quickly and steadily growing as I knock these fixes out.

Over the next few weeks I'm also running old colleagues through the campaign to get some feedback and items to focus on for the next pass. These meetings will help clarify how much work is left before the campaign is sent out into the wild.

Thanks for your patience!

Post PAX Prime 2014

Post PAX

A ton of attendees dropped by to play the game or even to just say hello. Space sim fans and newbies alike gave Starfighter a shot and the response was mostly positive. Lines are a necessary evil, but it's always great to hear conversations about simulation games break out among strangers, or even the occasional, "DIVE! DIVE! DIVE!" shout echoed in line.

The game also won its first award ever, a Golden Sushi, from BigSushiFM. Thank you!

The MEGABOOTH

We've been part of the Indie MEGABOOTH for each of Starfighter's showings, and we're always blown away at the support we receive. A ton of great people volunteer their time to make sure the exhibitors themselves have a smooth experience. That's simply amazing to me. Thanks!

Combined with our fellow exhibitors, it reminded me why this industry can be so cool. It's just a bunch of awesome, talented people kicking it Bill & Ted style and being excellent to each other. 

 

Stuff To Fix

I generally use trade shows for focus testing first and for marketing second. When you have this many people play your game, you learn what to fix pretty quickly. Here are some of the major points:

Immediate Action Items

  1. Impact and Damage Readability - Some players reported having a hard time recognizing when they were getting hit.
    1. Some players offered feedback that the afterburner rumble was too high and maybe hiding projectile impacts. I'm going to lower the large motor rumble values and shift shield impacts over to the smaller motor.
    2. Screen space impact overlays seems like a hard problem in VR, so I'm going to find different ways to show direction and impact events without cluttering up the center of the screen
  2. Team Readability - I knew this would be a problem when I made the player's team red to match the rest of the "I'm the bad guy" tone of the theme and cockpit instrumentation. After a lot of consideration, I still believe in this call, so I'm going to find ways to teach it better. The good news is, once this was understood, players rarely got confused again.
    1. I chose to teach the players this information at the wrong time. I flashed tutorial text that said, "YOU ARE RED. ENEMIES ARE BLUE," when the player exited warp into the combat encounter. But in reality, this needed to be taught earlier, almost immediately.
    2. Most players that had trouble with this immediately clicked with the concept when you framed the teaching as "Red vs. Blue" instead of "Bad Guy and Good Guy." I'm going to try to find ways to frame this in a way that's immediately understandable.
  3. Performance - Starfighter wasn't hitting 75hz in VR unless it was in an ideal case. This hampered the VR experience, even though most players had no idea.
    1. I'm going to try things like using Unity's mesh combination commands on ideal areas like asteroid fields
    2. I'm noticing that projectiles aren't batching. This is probably something I'm doing wrong in ES so I'm going to read up on their documentation. The Keep Talking and Nobody Explodes! crew gave me some great advice on this. Thanks!
    3. The skybox is simple but pretty dense. I can save ES from drawing a bunch of polygons by breaking up the mesh, or even rendering the sucker out to a super high-resolution cubemap texture since I have plenty of texture memory to spare.
  4. Targeting - Starfighter auto-targets the nearest enemy light craft when your current target dies, but the concept of targeting is weird to some new players. This was never specifically taught in the PAX demo, but it's still something I'm worried about.
    1. I can bring back the concept of auto-targeting, using a scoring system to take a best guess at what you want to target based on your crosshair.
      1. Guessing player's intent is often super tricky and in the end, only noticeable when it isn't working correctly.
    2. Teach this better. The "real" tutorial has a section specifically on targeting that lets the player move at their own pace. I'm going to focus on this and do some more testing with it.

There's a lot more on my list, but this is the major work that lies ahead.

You Are Here

The Never-Ending Crusade To Orient The Player

As soon as you allow roll in 3D space, you start requiring more brain cycles with every task you ask of the player. In particular, you're adding mechanical interest to each of the following tasks:

  1. Tracking targets
  2. Avoiding Obstacles in Local Space
  3. Knowing your orientation and position at a solar system level

I mainly want to talk about #3 in this post, since that is what I have been working on most recently. Some games (namely Crimson Skies: High Road to Revenge, Halo: Reach) bypass this problem all together by disallowing roll, but that's not a method of player expression I was willing to give up.

You Are Here

In Starfighter, you can warp your fleet around to different landmarks in a solar system. A landmark may be anything including a belt, a planet, a jump node, or even a nebula cloud. The goal is to let the player make both planned and emergency decisions to jump to any landmark without looking at a map.

Credit: James Clayton / Ubisoft Quickly switching where you perceive yourself to be is hard, as many trees in Far Cry 2 have discovered.

Credit: James Clayton / Ubisoft

Quickly switching where you perceive yourself to be is hard, as many trees in Far Cry 2 have discovered.

Knowing what's going on locally and what's going on system-wide are two almost mutually-exclusive modes of thought. A player who has just taken shield and hull damage is generally not thinking about aiming themselves at a jump node to escape, they are thinking about shaking the attacker. Once they solve the survival task they then switch spatial perception to the solar system.

And their brains start from scratch every time this happens. Does this problem sound familiar?

So you need to help them make the decision of where to jump as quickly as possible. This is helped by abstracting out your solar system design and using the art to complement it.

 

Skybox Design

Baked skybox vertices, with the focal point of the skybox facing +Z

Baked skybox vertices, with the focal point of the skybox facing +Z

The old skyboxes were gradients mapped to spheres that simulated a glow coming from the solar system's star. It looked pretty cool and it partially helped orientation since you always knew where the star was, but that wasn't enough. Knowing where the star was gave you no hints about where any other landmarks would be as you turned toward it. Even if most landmarks fell along similar orbital planes, until you saw 2 or more of them, you would be in the dark.

After reading Simon Schreibt's articles on the Homeworld skyboxes and doing more research, I switched over to a manual approach for creating Starfighter's skyboxes. Later, Travis Baldree showed me how I could bake painted textures into the vertex data using almost any modern modeler. This is beneficial because it allows me to color correct the skybox before it is baked to vertices.

Each background is constructed to have a focal point along the positive Z axis. This is where the light from in the skybox/galaxy painting comes from. It's where the point of interest is. It's also where the horizon sits. 

The focal point orients you forward, and the horizon tells you which way is up. Starfighter uses this concept fully, having different color hues for each side of the horizon line. other times it even suggests sky and terrain (because why not?). 

The skybox from above, with the horizon helping communicate where the average orbital plane sits. This works from every landmark in the system.

The skybox from above, with the horizon helping communicate where the average orbital plane sits. This works from every landmark in the system.

Each improvement to the skybox on it is own is not amazing, but we're trying to scattershot as much information to the player as possible whenever they change spatial modes. This all adds up!

 

Landmark Rules

The player is not the king of Starfighter's jungle, but they are asked to take on the role of predator nonetheless. One of the most meaningful ways to help the player feel like a predator is to position them like one. This concept is used to great effect in many games at a variety of scopes.

Starfighter employs these same techniques, rewarding the player for positioning themselves to ambush (attacking from below) and positioning themselves to stalk (attacking from above). Gates are always positioned above the average orbital plane, so when players enter a new system, they are given an overhead view of the system to plan their next jump. Their prey, smaller fleets and miners (soon), are busy below at belts and planets. 

Jump gates are placed above the average orbital plane, and are always the furthest landmarks from the center of the solar system. This makes them excellent vantage points, and it's a view you get every time you enter a new area.

Jump gates are placed above the average orbital plane, and are always the furthest landmarks from the center of the solar system. This makes them excellent vantage points, and it's a view you get every time you enter a new area.

Rules like this also make orientation easier, because one knows that looking "up" will always lead them to the jump gates. And if your skybox looks like something familiar, such as a dry desert plain, you piece your orientation together even faster. While the player is on the average orbital plane (at a belt, for example), traffic between jump gates feels like airplanes flying overhead, another point of reference any player can relate to.

These rules are abstract and very "gamey", but they are necessary!

 

Why Vertices?

As described in Simon's article, vertex coloring excels at gradients. Seeing filtered pixels on skyboxes doesn't fit with Starfighter's flat-shaded art style at all, and creating skyboxes that are high enough resolution to fix that will take forever.

One can pick out the hexes/vertices, but that doesn't bug me. If Starfighter weren't flat-shaded it might!

Telling A Story

The relatively low-resolution spheres feel very much like painting thumbnails (which are FAST to create), and thumbnail-detail is just fine because it can still tell a story in a way the old gradient/procedural skyboxes couldn't.

This makes each system more memorable. Later, a player may say, "I have to return to the junction system with the creepy blue cloud columns," and not even need to remember its name! This would never happen before!

Homeworld 2 skyboxes. Credit: Relic/Cunningham and Walter-NEST for extraction/packaging.

Homeworld 2 skyboxes. Credit: Relic/Cunningham and Walter-NEST for extraction/packaging.

The grand masters of this were (of course) Rob Cunningham and his crew. Each level in Homeworld 1/2 were carefully crafted to make you ask questions about where you were as much as impress you with their composition. They are oddly surreal but they work.

This happens in other games (notably Halo, with the iconic ringworld hanging in the skybox), but Cunningham and his team managed to tell an incredible variety of stories throughout the campaign that still hasn't been topped.

Starfighter's don't hold a candle to any of these, but lessons have been learned!

 

May Update

nebulae02.jpg

Press

A few people have kindly written articles about a recent build of Enemy Starfighter. Check them out!

And a few others have streamed or uploaded some footage of the game! 

Thanks, everyone!

PAX

PAX East was awesome. If you stopped by to play or say hi, thanks! It's always fun to talk with attendees. It's also an incredibly useful focus test. I scrutinize each and every playthrough, watching how players respond to everything from controls to target readability. Needless to say, I learn a lot from each person!

Big thanks to the Indie MEGABOOTH, our generous sponsors, and the PAX Enforcers. You all rock, and I have no idea what we would do without you!

 

Progress

Even though the first batch of press builds went out only a few weeks ago, a lot of progress has been made on Starfighter since.

  • Federation fleets use a refined hybrid scripted/dynamic group objectives to move around the solar system. This system is a simple version of what we used on Reach for controlling squad movement. I'm (still) a huge believer in Bungie's approach to building combat encounters. If you want more info, check out Damian Isla and Max Dyckhoff's GDC slides.
  • Units can earn XP and level up. This is a crucial element of creating persistence and making you grow attached to your fleet. This will be hitting the test builds in a few days.
  • Lots of AI fixes with steering, weapon usage, solar system movement, and order response.
  • Asteroid fields use a better type of random generation than I was using before. This lets me create much larger fields, but right now it's at the cost of performance. I'm working on this!

 

Roadmap

  • Push the progression system, iterate on the best ways to give out XP, and determine the best way to let players level up their fleets.
  • Now that the solar system movement code is in a good spot, make this more dynamic by (re)introducing other inhabitants to the systems like traffic and mining ops.

 

Last Stand vs. Campaign

The only mode available in the public build is Last Stand. It is a wonderful testing ground for campaign features such as the bounty system and fleet movement. I don't, however, have some super secret campaign file that is floating around in my source depot.

What does exist is a stable of features at various stages of polish that I am dropping into Last Stand to push the gameplay in the desired direction. This is all done in response to feedback I get from my friends and testers.

Eventually, Last Stand will evolve into the campaign. It's not there yet, but it will be soon!

By not taking the kitchen-sink approach to adding features, I can keep Starfighter laser-focused and make sure that everything it does try to do, it does pretty well. 

Greetings, Starfighters

What's Shaking?

It's been a busy few months and too long since I've updated the dev blog, so here's what is happening in the world of Enemy Starfighter. 

  • Solar systems are now "real" and not simply skyboxes as they were before
    • Landmarks such as planets, moons, belts, and nebulae are generated outward from the star based on a simple set of rules
  • You can warp the Harbinger Fleet to any known landmark in the solar system (ANIMATED)
  • ...but the same applies to enemy fleets, some of which respond to your last known location or destination
  • Factions have been implemented, and each faction has its own set of traits that are applied to the unit
    • Traits modify unit stats or enable alternate weapons, making every weapon or ship I create stretch further
    • Some factions are always present in a solar system, such as Lane Marshals that run overwatch on jump nodes
    • Others factions are determined during solar system generation
  • Lots of bug fixing and polish on other systems
  • After a lot of iteration and pain, the game's overall direction has been focused even further

Grand Theft Starfighter

Watching, waiting.

Battle-planning has been replaced with hunting and hiding. Before, each battle was fed to you via a simple mission generator and menu. It wasn't dynamic, lacked tangible persistence, and it certainly didn't fulfill the fantasy of being a starfighter harassing the enemy deep in their territory. I can go into this in detail if people want, but I won't bore you with that here.

Now, when you enter a system you are told what flagship to destroy and are given free rein to hunt and deal with it as you see fit. Do you build up your forces and take out the flagship head on? Do you misdirect their escorts to a bogus landmark and then jump the vulnerable capital with a small group of beam frigates, knowing full well that you will lose them?

Once combat begins, gameplay is structured very much like a police chase with your fleet at the center of it. If you've ever played GTA or if you've ever done small-scale skirmishes in a game like EVE, you should have an idea of what to expect. In fact, a lot of what makes this game tick comes from countless hours I've spent running around in EVE's Syndicate region in an interceptor.

While a few of these systems are super rough, they are at least functional. They mainly need passes on readability and polish, which will happen soon.

Chatty Pilots

If you are watching a stream and go, "Damn these fighters are chatty!" you would be right! It's mostly because I use their VO to help me debug what they're doing. If they say a certain phrase at the right time, I know the AI is working correctly. This will be appropriately tuned and varied for the final game, I promise!

Escape Pods

pod_kill.gif

One thing missing from the game was a satisfying currency reward loop for killing fighters. The tumble alone felt good and you earned points for it, but a new layer has been added: the escape pod.

A majority of your currency is acquired from killing the crew of downed vessels. If you have an autoturret, it happens automatically. As a capital goes down, the famous loot-piñata situation occurs as the crew abandons ship.

It's one of the first things I've put in the game that makes people feel like a villain. Several people reported feeling conflicted about it. Good!

The Future

Here's the roadmap for the next month:

  • Iterate on the fleet AI and solar-system mechanics
  • Pass on the cockpit art (it is woefully out of date, and I know more about what my requirements are)
  • Create new models for units that share them (for example, the Federation torpedo frigate uses the pulse cannon model). It was done this way to get functionality working before worrying about the art
  • Start capturing footage for a new trailer/gameplay video

In the meantime, if you'd like to get a closer look at the goings-on with the game, keep an eye on the Twitch.tv channel. I also post tiny dev updates and images on Twitter.

Aleksander Rostov's Art

Aleksander Rostov was sketching and watching the dev stream in the background. As we were winding down, he posted this:

Be sure to check out his tumblr for more incredible art! 

11.10.13 Update

Control Freak

I've been spending a lot of time (probably too much) working on the game's input and controller support. Unity's input manager does a swell job for simple projects, but it doesn't let you do a few key things: 

  1. Build and load controller presets. I want to let the player say, "I'm playing with the mouse and keyboard," or "I'm playing with a Logitech gamepad," and have the game set up the best possible control scheme with no further effort.
  2. Edit subtle control elements like dead zones on the fly. Normally this is not important, but it is in any sort of sim.

There are cool 3rd party libraries that will help you with these problems, namely Rebind and cInput, but neither did what I needed without a lot of modification.  So I wrote a system that integrates with the command console.

 Config files are read from a folder, and will set up your controls based on a simple syntax:

controls.action.bind +weapon_fire space mouse0 joy1button0

If you've ever written configs for an id engine, this should look familiar. You can even write aliases that enter console commands and bind them to buttons, but I imagine this is more useful for debugging.

If this stuff makes you go cross-eyed, have no fear. Most players will never have to touch a config file. This is there for those with crazier control hardware or those that want to have the freedom to rebind whatever they want. 

Control debugger shows what actions are down, where my analog axes ACTUALLY are, and the final input values after the game has corrected them.

What You See Is What You Get

Games are interactive, and your input devices are the glue between them and your players. So draw your input on screen. I don't care how simple your game is, you will learn a lot about how it handles by being able to visualize what's going on. Don't be lazy. Your game will feel better because of it.

Once I did this, I learned there were deadzone bugs in the pitch/yaw control. I learned that my digital inputs hooked up to axes were overriding input when you let off the stick, making re-centering feel sluggish.  I had never drawn the mouse steering circle/deadzone, but when I did I noticed that long ago it had been written to be configured by absolute pixel size instead of relative screen size.

For a space sim, Enemy Starfighter is on the super lean side of necessary controls and even then, seeing this data helped out with the feel immensely.

 "Draw debug info," should not need to be said, but it's hard to be diligent about writing this code. It takes a decent amount time to implement a good visualization for the data you're trying to present, time that could be spent elsewhere. But with critical systems, it's almost impossible to have too much good information. 

10.25.13 Update

The "shop" and the upgrade system.

Press

A few outlets have been kind enough to give Enemy Starfighter a shout out! Have a look!

Thanks, everyone!

 

Twitch.TV

Brendon at BlendoGames gave me the idea to start streaming some of my dev work, so I gave it a shot. It turned out pretty well. There is a Marauder Interactive channel over at Twitch, so follow it if you want to get notified when it goes live. 

 

Dev Work

I've been working on a lot of small stuff recently: Things like tweaking AI behaviors for almost every ship, or working on the map UI so that subsystem selection is much cleaner.

I've also cleaned up one of my test scripts and turned it into sort of a last-stand mode which turned out pretty fun. I'm not sure how I'll integrate that into the game yet, but it made me polish a few underlying systems like my spawn points which is awesome!