Revisiting the Command UI

The command UI – the interface you use to give orders to your fleet, while also piloting your flagship – has always been tricky to get right, and has gone through a few incarnations since the first release. The combat gameplay merges a top-down shooter with some RTS elements, and both place high demands on your attention. You have to be able to control your fleet, while still participating directly in the combat  – this is the goal the UI has to achieve.

The very first version of the UI used the standard RTS model – control groups, right-click to order ships around, etc. It didn’t work very well – there’s a strong incentive  to keep checking on how your ships are doing, so that you can adjust if they’re doing something you don’t like. Optimal gameplay was, then, constantly interrupting the flow of combat to open up the map, check on your fleet, and tweak their orders.

The next version – the one that’s in the current release – solved that problem by limiting how many orders can be given to ships (via “command points”) and adding the concept of “assignments”. Instead of ordering ships about, you’d create tasks – capture this, defend that, rally a carrier here. The ships would then work out the details on their own. You could also give a few direct orders if you saw the ships doing something undesirable.

This worked much better – you could create an initial set of assignments at the start of the battle, and then just focus on the combat, only occasionally adjusting them. Because you couldn’t give unlimited orders, you were freed from the burden of having to constantly give orders to feel like you’re playing optimally.

The new approach had some issues, though. When it worked (the AI doing the right thing in “working out the details”), it worked well. When it didn’t, it could be frustrating trying to fix it using the limited direct orders.

The bigger problem was (and, I suppose, still is) accessibility. RTS-like controls are the go-to assumption when one sees a map with units on it – but they didn’t work. If you clicked on a ship, hoping to tell it to do something – you couldn’t!  You’d be presented with a context menu that let you create assignments that target that ship – i.e., you could tell your fleet to escort the ship you just clicked. You couldn’t tell that ship to escort something else, not without creating that assignment first (and then using a direct order from the context menu to assign the selected ship to it – a somewhat clunky process).

Telling the game what you want done – i.e. creating an assignment – is reasonable, in the context of commanding a fleet. An admiral wouldn’t tell every frigate in the fleet exactly what to do – that’s the job of his subordinates. But being reasonable, as it turns out, doesn’t get you far when going against UI convention. Games don’t typically ask “what do you want done”, they ask “how do you want to do… eh, whatever it is, I don’t actually know/care.”

The new version – that’ll be in the next release – aims to combine the best aspects of the two approaches.

The assignments system remains in place, but RTS-like controls can be used to interact with it. For example, if you select some ships and right-click on an assignment, the ships will be assigned to it. If you right-click on an empty space (or an objective without an assignment), the game will automatically pick what it thinks an appropriate assignment. A single fighter or frigate right-clicked on an objective will result in a “capture”, a larger group of ships on an enemy-held objective will create an “assault”, right-clicking on a friendly ship will order an “escort”, etc.

It will undoubtedly get it wrong sometimes – this is fine, since you can always change the assignment by clicking on it and selecting a different type. Creating assignments by clicking on the target (not the actor(s) that will carry it out) is still the preferred way.

Command points also remain, but work a little differently – creating an assignment or giving a direct order opens up a “command channel” for a few seconds (of game-time, the channel will stay open indefinitely while paused), or until the command UI  is closed. While the channel is open, you can give direct orders for free. Creating assignments still costs a command point, though.

In other words – spending a command point gives you something akin to a “turn”, during which you can give orders. The number of these “turns” is limited, but what you can do during one isn’t.

As usual, the devil is in the details. “Left click to select, right click somewhere to give an order” sounds great, until you consider that in the current build, right-click and drag moves the view around. Oops! So, how do we get around that?

One option is to introduce a new way of panning – the way RTS games do, by moving the mouse to the edge of the screen. I did actually add that, but I’ve always found it a bit awkward to use in RTS games  (lots of moving the mouse around to pan a hard-to-control-exactly amount), and wanted to keep right-click-and-drag as well. It’s something that all of the UI supports – weapon lists, the campaign map, the trade screen, etc – you can right-click and drag to pan/scroll, everywhere. Removing that as an option from the command UI felt wrong.

The answer was to take a right-click action when the mouse button is released, instead of pressed. If the mouse moved more than some threshold between the press and the release, it’s a pan. Otherwise, it’s a right-click. Sounds good, right? But, when you’re giving orders quickly – click to select a ship, move the mouse across the screen to right-click on an objective – it would oftentimes interpret that as a pan, just because of the inertia of your hand moving when you right-clicked. The same amount of movement done over a longer period of time would be intended by the player to pan the view, though. Considering whether the interval between the button press and release was short – and increasing the movement threshold if it was – helped things along.

Left-click had its share of challenges, too. You can select ships  – but can you clear the selection? You might want to, because when you have stuff selected, an accidental right-click could give unintentional orders. So, how? Clicking on an empty space seems like the most intuitive way to do it (“click on nothing to select nothing”), but that already has an action attached to it – it creates a waypoint. The answer was simpler this time – a click when the selection is empty creates a waypoint. Otherwise, it clears the selection.

Getting the little details right is what’s going to make the UI feel polished.  There’s still some playtesting to do – and I’d like to improve how the ship AI actually follows orders – but for the first time, I’m happy with the way the command UI feels. It doesn’t just get the job done, but also isn’t fighting me along the way. A lot of that has to do with improvements to the assignment system, not just streamlining the controls – but the details of these could probably make for their own post, so I’ll refrain from getting into the details.

Since you’ve stuck through to the end: here is a screenshot of the new UI. Please pardon the placeholders for a couple of the icons. Yellow arrows indicate direct orders, green lines are automatic assignments. The letters on the buttons are keyboard shortcuts.

New command UIBurn drive on the Tarsus… whose bright idea was that?

And now, if you’ll excuse me, I’ve got a fleet command tutorial to rewrite. Grumble.

Tags: , ,

This entry was posted on Thursday, October 18th, 2012 at 2:55 pm and is filed under Development. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

38 Comments:

  1. Woo! Like this a lot. Can’t wait for the release, thanks for the hard work!

    by nn
  2. Hurrah!
    New blog post! 😀

    by The Soldier
  3. Looking good. Can’t wait to try it out.

    by Vandala
  4. I love the proposed changes! It feels like it will handle as expected, and probably won’t have that steep of a learning curve.

    by Catattack998
  5. Yay better UI! and hopefully better fighter AI!

    by Farlarzia
  6. Sounds pretty darn fine indeed. Eagerly awaiting for the next release.

    by Natti
  7. As a fan of rts games i have to get the new UI the seal of aproval. can’t wait for the next release.

    by ArkAngel
  8. Can we please have the option to pre set formations? I would be awesome to be able to have a primarily missle ship stay between a few heavies or a flack ship know where you would prefer it to stay between the artillery ships! thanks Alex!

    by Jake
  9. Nice work Alex. There’s no reason we can’t have an intuitive interface (uses common RTS commands) while still maintaining the concept of giving assignments rather than orders

    by Nick
  10. I really enjoy these posts and he way your mind works thinking through these problems and concept polishing.

    by Zakalwe
  11. I second the chance to have pre-set ship formations. I always send out a capital ship with destroyer escort and often a set of 3 fighter wings as a group. And my personal ship always has a bodyguard!

    Having the chance to set this up in the fleet screen permanently would be great!

    by Kalamain
  12. Or even better ship-group formations for a muti-group preset setup. would allow for another level of tactics with auch a setup.
    Imagine:
    … a light strike group of a few destroyers and a heavy to take postions while the carrier group with its light excort supports!

    Without having to make it happen every time!

    by Jake
  13. […] a new blog post on the Starfarer site regarding the command […]

  14. One thing that I didn’t like about the previous command UI didn’t have as much to with function as appearance. It felt a bit empty and bland. I’d expect the tactical screen on a fancy spaceship to give a bit more information and have buttons and such. This new UI has more, well, flash to it, and doesn’t just look like a grid with some icons moving around. I can’t really comment on the actual working of the new system until I can play with it, but is sounds damn good the way you describe it.

    by DelicateTask
  15. This looks Like an great improvement, but will I be able to select a ship/wing to do a certain thing, because I wish to have a wolf Frigate take down the Buffalo mk.2, but I don’t want to send the hyperion, which is engaging against a cruiser.

    by Max
  16. Just needed to say I really like the way this game is going! Keep up the good work 🙂

    by PyckenZot
  17. Thanks, guys!

    @Jake/Kalamain: I don’t really see pre-set formations working – that sounds good on paper, but I don’t think it’d actually work out. The game is too dynamic for that. But, here’s something that’s somewhat related: you’ll be able to create control groups (as with an RTS, using Ctrl-#), and these are persistent between battles in the campaign. So, if you always like to use the same set of ships for a job, there’s a quick way to select them.

    @Max: Yeah, you can do that. Just select whatever ships you want and right-click the target.

    by Alex
  18. As the others said, this RTSy UI looks good, and seems more fleshed out than the original one.
    I hope it will up even more the game quality.
    Good work.

    by Troll
  19. Love the new way you’ve done it Alex!

    by nanaki422
  20. Thanks Alex!

    Persistent control groups is all I was after! Glad to hear you were onto it already!

    Love this game and am itching to traverse your progressively generated universe but am happy to wait if it means we get the same quality of thought that you have sofar given to ever facet of this game!

    by Jake
  21. Thanks Alex!

    by Max
  22. Why do you have the waypoint placement on the left mouse button? It would make more sense to have it be placed through a right-click context menu.

    With the current system I can see many players placing waypoints by accident all over the place.

    by Reactorcore
  23. EDIT: By current system, I mean the one you are describing in the above blog post.

    by Reactorcore
  24. @Reactorcore: A few reasons, actually 🙂

    Conceptually, left-click is used to select things, and that’s what happens here – a waypoint is created and then selected, but no order is actually given (which is what right-click is for).

    Also, errant waypoints get cleaned up as soon as they’re deselected. Accidentally giving an order (by right clicking with the intent to create a waypoint, but having some ships selected) would be much worse – it could use up command points. The flow of “left click to clear the selection (if any), then right click to create a waypoint” seems more awkward and error-prone, as opposed to “keep left clicking until there’s a waypoint there”. The latter is also impossible to screw up in a damaging way.

    by Alex
  25. So, there was deliberation between mouse1 and mouse2 for panning, Alex. Did you forget about mouse3 (mouse wheel button)? This is practically a standard nowadays, I don’t think you’d be remiss in using it for panning.

    At the very least, you could use whatever you’ve come up with, and then add an option to bind panning to mouse3.

    by NikolaiLev
  26. I’m not sure that’s a standard – all that comes to mind is a very awkward (subjectively, of course) toggle mode for panning in browsers. At any rate, there was never deliberation between left and right click for it.

    I’m also not a fan of the middle mouse button in general – it’s pretty awkward to press – and especially hold while moving the mouse. It can also result in unintentional mousewheel scrolling.

    It’s also not a control that’s practical to make re-bindable – certain things are so core to the UI that they have interactions around them that go beyond just that control. For example, orders are created on right-click-release instead of simply right click because right click performs two functions.

    by Alex
  27. I must say, I’m a little disappointed, because that right click order+right click drag seems like it’ll be quite clunky.

    How about this, then? Right click pans, and in order to give orders, drag a selection to the target. This can be as easy as dragging a single ship onto a capture point, or drag-selecting a group, and then dragging one ship (which preserves the entire selection) to command multiple ships.

    While this may seem unintuitive to you at first, keep in mind the recent emergence of smartphone games, and the notion that given these are fairly popular, the idea of drag-to-order shouldn’t be too terribly unintuitive.

    by NikolaiLev
  28. Well… from my experience with it, it actually works extremely well – nothing clunky about it in practice, the fact that right click has multiple functions isn’t even something you think about.

    Funny you should mention smartphones, though, as the “click and then either release or drag” interaction shows up on those, too.

    by Alex
  29. Since we’re all begging for stuff, how about ETAs on the approach lines? Doesn’t have to be perfect (a ships time to rotate doesn’t have to be factored in), but something simple like distance/speed/unit of time. Or at least my real problem is I want fast ships to initially capture points, then be reinforced by slower ships ASAP (Fighters then destroyers usually) It’s often not simple to figure out which of my ships are the ones for this job without looking at everyones combat speed and remember who is fast (not always easy), then figuring out which of those fast ships are on the ‘best’ side of my formation to minimize distance to an objective (this is where some semblance of formations could come in handy)

    /rambleoff

    by Nick
  30. Loving it all, i’ve been playing this for months now and every new release i flesh my army out and go at it a few times. This new UI looks like exactly what i need although i agree with Nick an ETA would be divine as well as perhaps a little bit more in depth control with escorts, i’d like to be able to choose specific escorts without using 100 command points

    by William
  31. About ETAs: I don’t think they’re necessary. It’s the kind of thing that becomes second nature after a while (i.e., you know which ships get around more quickly), and automatic assignments already use it – so if you create a “Capture” and a ship gets assigned to it, it’s a safe bet it’s the fastest one that would get there. It would also be tricky to display without getting cluttered, given the various configurations arrows can be in.

    As far as escorts – you’ll be able to set whatever escorts you like at the cost of 1 command point per ship being escorted. All you need to do is select the escorting ships and right-click on the target.

    by Alex
  32. Wow, you’re really making rocket science out of the easiest thing in the world. Instead of Double-Assigning the RMB, just make panning the map be done via pressing mousewheel or pressing LMB+RMB like weve seen in countless RTS’. Also, edge-panning might feel awkward to *you*, but there’s a reason it exists since KKND. I feel like you are trying to reinvent the wheel here, wich might be a really bad idea.
    Now I do see that the UI needs a rework, because I remember it being really counterintuitive, but there was a major flaw with the “issue order” system. Lets say I wanted to escort a bomber with a fighter. instead of justing leftclick here, rightclick here, id have to rightclick the bomber, say fighter escort, then unassign all the fighters I DONT want to be doing that and so on. SO you’re right that its needed a rework, but I feel you are overdoing it. Keep it simple or people will have hard times understanding it. PPL will get annoyed if their RMB fails because of panning and all that. So instead of inventing super-complicated stuff, just keep things easy. Its probably boring as shit because theres no creative process in it, but yeah…just saying

    by iZen
  33. @iZen: I think it’s telling that one of your proposed solutions has the same issue with potentially ambiguous player input that I’d described resolving. Things just seem easy when they work – there are usually details that go into making them work that aren’t readily apparent.

    In these blog posts, I usually pick out a few things that seemed obvious or minor at first glance, but didn’t turn out that way. That doesn’t mean those were the hardest to do – I’m just putting them under the microscope because I find them interesting, and hope you guys do too.

    Although, on the whole, getting the details right probably is the most time consuming 🙂

    by Alex
  34. Don´t know if anyone have already said this but I would actually like something that is really basic like you can move the other ship with right-click and you can get your options if you left click on let´s say a ship and just have a clean dropbox for example.

    You can still use cp and let them cost as now. Also if you right click while holding shift you will make waypoints like in other rts.

    by Sebastian
  35. You seem to be moving more and more toward just boardgame drag-and-dropping targets onto the screen from a small bin, which is utterly unambiguous and doesn’t suck up a button…

    by Hypocee
  36. Hey Alex, i posted recently about escorts and you responded with escorts being easy, 1 command point per ship however makes it very difficult if not impossible to create formations and assign groups of ships.

    For instance i have in my fleet currently 1 aurora, 4 medusa’s, 2 wolf’s, 2 tempests, 4 wasps wings, 4 xephos wings and 2 thunder multiroles.

    Currently i would like 2 of my medusa’s to form a sort of team so they move as a team ( which require 1 medusa to escort the other ) i then want each to have a wasp wing escort on each because of their small pd, i then want a bomber wing and a xephos wing to move with that group as well.

    This requires somewhere along the lines of 5-6 command points if all goes well but i tend to have 2-3 of these groups in a large battle and i never have enough command points. What i was suggesting was the ability to create a formation where (out of battle) you put a bunch of orders and escorts onto a group of ships to create a formation. Then in battle depending on the size of this formation you require 2-4 command points to give them a task because of their size.

    I belive that later on when you have traits and captains this would be very very helpful because you could create formations where certain traits back up each other.

    I realise i’ve kind of gone of a rant here and i apologise if i’m taking up your time but i feel like escorting and formations is the only current part of starfarer that i feel isn’t really keeping up with what is an AMAZING GAME! On another note i’m doing a lets play on youtube under PsyonicGaming if you’d like to see my opinion. Thanks for reading!

    by Willaim
  37. @Sebastian: Ah, in “other rts”. But Starfarer is *not* an RTS, so I don’t think that would work out. Ships need autonomy to make them interesting opponents (and allies), and that’s why the orders are all not overly exact.

    @Hypocee: I seem to recall you making a suggestion of that nature a while ago 🙂 I’m not sure how this is moving in that direction, to be honest. They’re both changes to how the UI works, in terms of creating assignments, but I’m not seeing a similarity beyond that.

    @Willaim (William?): Hey! Well, if you invest skill points into the relevant leadership skills, you’ll start a battle with over 10 command points. 5-6 points sounds pretty reasonable to me, to set up the escorts just how you like. And, if you take advantage of control groups, you could make the assignments in only a few seconds.

    by Alex
  38. Sorry didn´t want to make it sound like that just that that´s easy to controll and you can still have the same effects as the one that is now ect.

    Also sorry for asking and I don´t wanna be that guy but I guess many are wondering. Do you know anything when next patch will come? and not a date som around when. weeks month(s)?

    by Sebastian