Advertisement

Unified UI for person/vehicle/ship

Started by September 24, 2004 01:01 AM
10 comments, last by johnnyBravo 20 years, 4 months ago
I know user defined controls are preferred, but I'm struggling to spec out default controls and interface paradigm that stays unified across vehicles or people. Unfortunately, this is as much a question of organization as it is design... Imagine controlling your character in 3rd person in these four sci-fi situations: 1) You're racing to a planet in a well armed freighter when you have to use your turrets to pick off some corsairs 2) You park your shuttle in orbit and take a shuttle down to the planet 3) You fly through the atmosphere, touch down, and take the rest of the distance in a buggy 4) You get to the mouth of an alien ruin, exit the buggy, and charge in on foot... How would you best like to control your character? Before you answer, let's complicate things a bit more: You've got 5 wingmen in fighters who can land and join you, so you assign one to guard the ship in orbit, one to fly guard overhead, and the rest to land and join you on foot.
More detals... Basic Controls There are three camera modes: Direct, Interface and Orbiting (around a character). You can control your character, vehicle or ship with the mouse (or joystick, but nevermind that for now).
  • Direct - Default. Standard FPS style controls.
  • Interface - View locks and widgets can be selected from the HUD
  • Turret - When mouse is moved the camera orbits the avatar. This enables turrets gameplay, enemies to be kept in view even when moving anohter direction, or dramatic screenshots.
For your character, you'll need to be able to:
  • Context Click - Click a character and perform a default action: Talk to a neutral or ally; attack an enemy, etc.
  • Lock On - Target an object, enemy, ally to attack, scan, talk, see distance etc. A carat tells you which way to turn when the object isn't in view. (Characters and cars don't get this, but ships, tanks and power armor do)
  • Deselect (Select None) - Clears all selections.
  • Use Equipped Item - Fire equiped weapon or trigger device
  • Auto Attack - Initiate a constant automatic attack (useful in capital ship combat)
  • Perform Secondary Function (sniper mode/multifire/long range scan/etc.) - Fires a burst with guns, activates special weapon modes or fires a volley / spread with vehicles / ships
  • Scan Selected - Scans the target
  • Comms With Selected - Attempts comms with the target
  • Activate Pie Menu - Brings up subfunctions for an object, such as dock for a station or disable command for a target
For your allies, you'll need to be able to select / deselect an ally or group of allies, then order
  • Attack Your Target (Ally switches to weapon if not equipped)
  • Attack Freely
  • Go Home
  • Stay Close / Formate
  • Roam / Break Formation
  • Hold Position / Guard Location
  • Guard Another Character
  • Defend You
  • Trade Inventory
  • Equip and Use Item
  • Use Item's Special Function
  • Add Ally To Group
  • Remove Ally From Group
  • Perform Special Action (Pie Menu) - Scan, repair, hack, etc.
What I'm not sure of is whether to go with a system where you select allies in a menu box then use a marker to exactly position them; or go with a full on RTS paradigm where you zoom out, select allies, set waypoints and scroll around the screen. The first works for dogfights, but seemed too unweildy in games like Unreal Tournament or Battlezone because terrain got in the way of knowing what was going on. OTOH, a full RTS paradigm would require a whole new set of keys for turning, rotating and zooming the camera! This also doesn't work well indoors unless the levels have false ceilings so you can zoom out.
Here's my partial stab at organizing all this (skip if you've got a better idea) You have a armed and unarmed mode: As a character, you holster / unholster your weapons; as a vehicle / ship, you power up or arm weapons. This should help mistakenly attacking neutrals or allies.
  • LMB - When armed, fire weapon; otherwise context click (talk, look at object, etc.)
  • Double-click LMB - Lock on target
  • RMB - Select object. Click empty space to deselect.
  • Double-Click RMB - Activate object's pie menu
    • Left click activates menu's options
    • Clicking anywhere but on the pie menu deactivates it
  • CTRL + LMB - Activate weapon / device's secondary mode
  • TAB - Toggle direct control or interface widget selection
  • Backspace / Middle Mouse Click - Toggle Turret Cam
  • Mouse Wheel / Double Mouse Click and Drag - Zoom in and out from character
The player would bind weapons and devices to number keys; then bind allies or ally groups to function keys (F12 being all allies by default). Icons and hotkeys would be used for scanning or communication, as well as selecting near allies or enemies. I'm really at a loss for controls for allies / groups, any thoughts here would be appreciated. I'm thinking that this should not only show a different interface, but maybe have a totally different set of keys.
--------------------Just waiting for the mothership...
Your muse needs a vacation.

I'll add something relevant later.
---New infokeeps brain running;must gas up!
Advertisement
I don't like the idea of the LMB being both attack and interact. What if I forget to put my weapon away before trying to talk to a key character? I suppose you could decree that allies/neutrals can never be attacked, and enemies can never be interacted-with, thus making it a moot point.. but that's a design constraint you may not be happy with.

Also, I think you may want to consider click-hold motions. For instance, you could put the "bring up pie menu" command on click-and-hold-RMB, freeing up double-RMB for something else (such as context click).

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

I would suggest using alt+LMB for context clicks.

For all flight I would suggest the standard wasd format for control of planar movement. I think decent did a pretty good job with controlling the other movement.

As for your allies, I would simply number them. IF you want to do the mouse clicks as well that's fine.

1-y-h would select fighter one, defend, hold position.
3-y-y-h-h-h would select ally 3, attack, roam freely.

more later

[s]I am a signature virus. Please add me to your signature so that I may multiply.[/s]I am a signature anti-virus. Please use me to remove your signature virus.
Quote:
Original post by Flarelocke
Your muse needs a vacation.


Hey, don't encourage it!!! "Get back to work you scurvy dog, no break for you for TWO years!!!!" [grin]

Quote:

I'll add something relevant later.


I'll hold you to that! :)
--------------------Just waiting for the mothership...
Quote:
Original post by superpig
I don't like the idea of the LMB being both attack and interact. What if I forget to put my weapon away before trying to talk to a key character? I suppose you could decree that allies/neutrals can never be attacked, and enemies can never be interacted-with, thus making it a moot point.. but that's a design constraint you may not be happy with.


Hmmm... consider what the normal case is: Normally, you're not going to attack an ally, and normally, you're not going to interact with an enemy. You could tuck the option to do so, however, in a popup pie submenu (labeled "Parlay" or "Backstab" or whatever, depending on context)

Quote:

Also, I think you may want to consider click-hold motions. For instance, you could put the "bring up pie menu" command on click-and-hold-RMB, freeing up double-RMB for something else (such as context click).


Oh, that's a good idea. Thanks!
--------------------Just waiting for the mothership...
Advertisement
Quote:
Original post by Thermodynamics
I would suggest using alt+LMB for context clicks.


Okay, this is a possibility as well.

Quote:

For all flight I would suggest the standard wasd format for control of planar movement. I think decent did a pretty good job with controlling the other movement.


Yes, I think Freelancer controls very nicely with this scheme as well (despite all the carping on usenet about no joystick-- but it would be wise to provide an option for that as well)

Quote:

As for your allies, I would simply number them. IF you want to do the mouse clicks as well that's fine.

1-y-h would select fighter one, defend, hold position.
3-y-y-h-h-h would select ally 3, attack, roam freely.


The numbers are going to be taken up by your personal "utility belt" that you configure, in terms of options. So 1 or 3 might be your gun or radio, depending on what you've bound to that key.

Function keys might work, although they're a little more awkward and don't leave much room for common interface selections like quicksave / quickload.

--------------------Just waiting for the mothership...
Quote:
Hmmm... consider what the normal case is: Normally, you're not going to attack an ally, and normally, you're not going to interact with an enemy. You could tuck the option to do so, however, in a popup pie submenu (labeled "Parlay" or "Backstab" or whatever, depending on context)
Many weapons have splash damage. Fire near an ally when you're trying to talk to him. Whoops.

There could be enemies in the same space as allies. Imagine that you're trying to interact with an ally when an enemy momentarily crosses your path. You fire, and the projectile misses the enemy and hits your ally.

In Doom3, Interact was the same button as Fire. I killed one friendly on accident and shot myself with a rocket trying to open a container.

Quote:
The numbers are going to be taken up by your personal "utility belt" that you configure, in terms of options. So 1 or 3 might be your gun or radio, depending on what you've bound to that key.

Function keys might work, although they're a little more awkward and don't leave much room for common interface selections like quicksave / quickload.
Freespace did this especially well. F4-F12 could be bound to any specific ships you desired by pressing F3.
Quote:
# LMB - When armed, fire weapon; otherwise context click (talk, look at object, etc.)
# Double-click LMB - Lock on target
# RMB - Select object. Click empty space to deselect.
# Double-Click RMB - Activate object's pie menu


* Left click activates menu's options
* Clicking anywhere but on the pie menu deactivates it


# CTRL + LMB - Activate weapon / device's secondary mode
# TAB - Toggle direct control or interface widget selection
# Backspace / Middle Mouse Click - Toggle Turret Cam
# Mouse Wheel / Double Mouse Click and Drag - Zoom in and out from character
I don't really like any of these except TAB. First of all, it's nearly impossible to double click a moving object, which makes it a bad choice for locking on a target. It is also a bad choice for a pie menu -- if you want to be able to pie menu an arbitrary object, why bind it to the same button as selection? If you don't want this, why not a button "Display pie-menu of selected object"? Granted, this is an abuse of input because pie-menus are strongly visual, and selection is strongly visual, but a key is tactile. Hence I wouldn't use a pie menu at all. I would much prefer a numbered overlay menu conveniently off to the side. Pressing the number or selecting the item would select the action.

The objection I have to the RMB is that deselecting by right-clicking will end up causing you to deselect a lot more frequently than you mean to. It is especially harmful if you consider it in combination with the double-RMB click. Click once, selected. Click again, deselect or pie menu, depending on how fast you click.

For both dismissing a menu and deselecting, I'd use ESC.

CTRL+LMB on what? Anything? Then use a key. On a target? Then you're limited to one weapon/device or using all their secondary fires at once (like you do with weapons?). I guess I don't know if you're limiting yourself to one weapon at a time, like an FPS. I sort of just assumed you used the Freespace method of multiple weapons with an interface for selecting one or more of them at once.

You need a whole new interface for this (secondary fire), perhaps unified with the typical Freespace/Starsiege active weapon interface.

Middle-mouse: Besides the fact that many people don't have a middle button, I and many other people don't normally have a finger on it, as well as the fact that it's just pressing the mouse wheel down, so it's not very fast. I'd use the space bar instead.

The discrete movements of a mousewheel are either frustratingly slow or jittering and disorienting. It may be possible to do this properly, but I imagine it's rather difficult.
---New infokeeps brain running;must gas up!
Play UT2k4, BF1942, and (especially) BattleZone 1. Good fusion of vehicle control and player control without a schism of controls. For an extreme perspective, play the venerable classic LightSpeed (aka HyperSpeed) to see how a large battleship can be controlled from a spacefighter control system. For a example of how _not_ to do it, play OutWars or MechWarrior II (as an elemental) to see how bad torso-twisting-style giant robot action sucks on a human scale.
-- Single player is masturbation.
The basic interface for a game like this is pretty standard and you're on the right track. The tricky part is issuing commands to allies from a shooter perspective. The most obvious way, and this seems to work well for many games, is to aim at the place where you want to issue the command (go to, defend, attack...) and then press some key or chose that option from a menu. But this doesn't work in many situations: in complex battlefields, when the fight is too intense to take the time to aim, and when you're playing the exclusive role of a tactician, like commanding fighters from a mothership, and an RTS view would be much better.

For the first two situations, you could follow the example of real life and simply issue high level commands, like a leader in combat shouting orders: attack either the left flank, right flank or front; retreat to the back; pick off the smaller ships or the big ones first; etc. It doesn't necessarily need a huge number of commands, you can for example use a combination of 2 keys, like a verb (attack X, defend X... others like retreat or hold fire don't need the second key) and a noun (the "X": left/right flank, front, rear, some specific enemies...). I'm sure a lot of CS players would appreciate this ;)

As for the last one, when an RTS-like interface would be better, well, if it's not too much effort, you could include it as an option. You could issue some simple orders from your mothership to destroy some petty pirates but if things get too tough you'd press the "RTS view" key to have a little more control.

This topic is closed to new replies.

Advertisement