Keyboard Bindings

Talk among developers, and propose and discuss general development planning/tackling/etc... feature in this forum.
Silverain
Expert Mercenary
Expert Mercenary
Posts: 984
Joined: Thu Aug 07, 2003 5:35 am
Location: Brisbane, Land of Oz
Contact:

Keyboard Bindings

Post by Silverain »

After a quick conversation in the Documentation section, I wanted to ask the VS community at large for input:

Hellcatv raised the point of changing the keybindings for 4.3 or 5.0 to be more intuitive, an idea seconded by dan.a since the keys really just grew out of what was the largest space on the keyboard.

I'm of the opinion that we should really group sets of keys near each other. For example - all movement/navigation keys should be nearby (afterburner, increase/decrease set velocity, max, nil, SPEC, shelton slide, match speed etc).

Example New:

TAB = afterburner
q = stop
w = full
a = decrease
s = increase
x = shelton slide
z = SPEC

Reason: all left handed keys to access movement keys. No reaching across keyboard. Intuitive that q is stop, below which is a decrease (also w & s) z = SPEC but easy to locate key. x = slide (less used).

Any thoughts?

P.S. Think outside what's gone before. So what if Wing Commander/ Star Wars games/ X2/ (name your game) follow a certain design (-/+ setspeed) - this one is OUR design!
THOUGHT CRIME! [points finger] THOUGHT CRIME!
Silverain
Expert Mercenary
Expert Mercenary
Posts: 984
Joined: Thu Aug 07, 2003 5:35 am
Location: Brisbane, Land of Oz
Contact:

Post by Silverain »

Additional example for keyboard flying:

up, down, yaw left, yaw right, roll left, roll right. Hmm, six functions but only 4 arrow keys. So? Forget the arrows, use the six keys above (US standard keyboard).

Insert = roll left
Delete = yaw left
Home = down
End = up
Page Up = roll right
Page Dn = yaw right

The idea is forget about the key name on the keyboard, think about the key positioning itself. People with programmable keyboards will know what I'm angling at.
THOUGHT CRIME! [points finger] THOUGHT CRIME!
hellcatv
Developer
Developer
Posts: 3980
Joined: Fri Jan 03, 2003 4:53 am
Location: Stanford, CA
Contact:

Post by hellcatv »

interesting...I'd favor the quake style binding then s subtracts speed w increases it... q and e somehow do strafing? that'd be a trip ;-) I do have strafing keys but last I heard they didn't work so well

or maybe w is afterburner....

the problem is teaching people these new keys... hmmm
Vega Strike Lead Developer
http://vegastrike.sourceforge.net/
Silverain
Expert Mercenary
Expert Mercenary
Posts: 984
Joined: Thu Aug 07, 2003 5:35 am
Location: Brisbane, Land of Oz
Contact:

Post by Silverain »

hellcatv wrote:the problem is teaching people these new keys... hmmm
You play, you learn.

Same as every other game ever played.
THOUGHT CRIME! [points finger] THOUGHT CRIME!
Halleck
Elite
Elite
Posts: 1832
Joined: Sat Jan 15, 2005 10:21 pm
Location: State of Denial
Contact:

Post by Halleck »

Most games make it easier to adjust by adhering to a pseudo-standard- i.e. most FPS games use wasd or arrow keys, et cetera.
The learning curve for VS is steep enough as it is- IMO there's no reason to make the user adjust to using delete and pgdown to yaw, etc.

That being said, I still think that the keyboard mappings need an overhaul. We need to decide on priorities for the layout.
I think that it should roughly be:
1. Keys are layed out/grouped in a logical manner
2. Keys are positioned ergonomically
3. Keys should be intuitive or symbolic

For instance, the first time I fired up VS, my instinct to adjust the throttle was the "+" and "-" keys. that makes sense. If it had been "a" and "s", i wouldn't have guessed this. "+" and "-" are symbolic, and I would say logical. "a" and "s" are ergonomic.

"a" is a symbolic, logical key when used to activate autopilot. Not so with SPEC, but "s" would be.

Also, where is that page that let you compare the VS config with wing commander and stuff like that? I seem to have lost the link.
Last edited by Halleck on Wed Feb 09, 2005 10:23 am, edited 1 time in total.
Ygarl
Merchant
Merchant
Posts: 42
Joined: Wed Jul 07, 2004 9:37 am
Location: London UK
Contact:

Post by Ygarl »

Thank the gods you can change your own keybindings as well! I use the arrow and insert through Page Down keys for most of my functions (a la Unreal Tournament slightly modified...)
That which can be imagined can be achieved.
pincushionman
ISO Party Member
ISO Party Member
Posts: 467
Joined: Mon Jan 13, 2003 9:55 pm
Location: Big, flat Kansas
Contact:

Post by pincushionman »

If we're going to consider overhauling the keymap, I'd like to consider overhauling the config system and file entirely. I suggest we separate the "main configuration sections" from each other. By this I mean having:

graphics.config
sound.config
gameplay.config
controls.config

That way, it would be easier to set up and try out new keymaps without having to worry about corrupting or breaking" our gameplay or display options. I think it would help things out (that is, I don't think it would HURT anything) for when we have an ingame graphical uitility for settings. The game would remember the last-used master.config (or maybe user.profile or somesuch) which would be simply something like the following:

Code: Select all

GRAPHICS: dan.graphics.config
SOUND:    petey.sound.config
GAMEPLAY: default.gameplay.config
CONTROLS: dan.controls.config
The game would then load the appropriate config files sequentially, rather than all from one file. You could then have several different independent configurations (for testing purposes for example) and they would be much easier to manage. Modularity == good.

Also, the format of the controls section of the config file seems bass-ackward to me. Right now it is the following:

Code: Select all

<bind key="keyname" modifier="none" command="DoThis"/>
What I think would be more intuitive would be:

Code: Select all

<command="DoThis" bind key="keyname" modifier="none"/>
Now, the way it is now is a perfectly reasonable way to do things. But I don't think it's the best. But I also don't know the mechanics of how the game loads this information; it may be that the current format is the way it has to be to get it to work.

But even if that is the case, it could still be made better. Right now the controls are gouped by device - that is, the joystick function map is together, the keyboard map is in one place and is presented alphabetically. This may make sense from the standpoint of the game reading the file, but it is pretty messed up from the standpoint of the human who must edit the file by hand. Since we can only do it by hand at this point, it therefore == bad.

What would make more sense is to instead group the keybindings by function rather than key. All the movement and speed control keys would be grouped together, all the weapons controls in another section, all the power controls someplace else, and so on and so forth.

A control file set up this way would be worlds easier to edit -- rather than searching high and low for the key that currently has the function I want to change (oh yes, that command may also currently be unbound, and I have NO idea how I would find it then) I look in the appropriate section and make sure I have controls assigned to all the functions I think I will be using.

This also has the (possibly insignificant) advantage of making players more aware of what functions are availible to them.

Can such changes be made to the format of the config file without significant code modification? If they can, I see no reason not to reformat the file. If it needs code changes, I also don't see a reason not to make such changes so we can reformat the file.
Conquer space!
-pincushionman

---------------------------------------

Kansas really is flatter than a pancake!
http://www.improbable.com/airchives/pap ... ansas.html
CubOfJudahsLion
Confed Special Operative
Confed Special Operative
Posts: 286
Joined: Tue Dec 21, 2004 3:11 am
Location: Costa Pobre
Contact:

Post by CubOfJudahsLion »

How about keybindings for quickly choosing speeds? Like -/+ x10, x100, x1000 increase, or maybe a collection of speed presets?
Halleck
Elite
Elite
Posts: 1832
Joined: Sat Jan 15, 2005 10:21 pm
Location: State of Denial
Contact:

Post by Halleck »

Found a pic of the current keybindings.
http://vegastrike.sourceforge.net/galle ... eys?full=1

Still, it'd be nice if someone could unearth the website that generated this.
hurleybird
Elite
Elite
Posts: 1671
Joined: Fri Jan 03, 2003 12:46 am
Location: Earth, Sol system.
Contact:

Post by hurleybird »

It would be nice to also have Strafe/thrust keys. I heard that VS supports them, but didnt have any luck trying to get them to work.
zaydana
Site Administrator
Site Administrator
Posts: 478
Joined: Thu Jan 02, 2003 10:05 am
Location: Perth, Western Australia
Contact:

Post by zaydana »

i'll second that. strafe keys really are an important part of a game like this: VS is really lacking without them.
hellcatv
Developer
Developer
Posts: 3980
Joined: Fri Jan 03, 2003 4:53 am
Location: Stanford, CA
Contact:

Post by hellcatv »

don't worry...i'll work on it
Vega Strike Lead Developer
http://vegastrike.sourceforge.net/
hurleybird
Elite
Elite
Posts: 1671
Joined: Fri Jan 03, 2003 12:46 am
Location: Earth, Sol system.
Contact:

Post by hurleybird »

hellcatv wrote:don't worry...i'll work on it
yay!

If strafe/thrust keys are in, then here's my ideal key binding:

Movement

Thrust up: s
Thrust down: x
Thrust left: z
Thrust right: c

[note] this is just wasd except every key is moved down one position. IMO wasd doesent make that much sense in that the z, x, c, and v keys are hard to use. Moving wasd down gives you 4 more pracitical keys to work with, and in a game like vega strike, you need all the keys you can get.

Afterburner: left ctrl
Spec: space
Roll left: a
Roll right: d
Change primary weapons: left alt
Change secoundary weapons left shift (these arent flight characteristics, but im puting them here because they are close to the other flight keys)

shift is more accesible than alt, and your probably going to change your missiles more than your primary guns. Use the pinky to reach shift and ctrl while using your ring finger to reach alt.

Navigation map: tab
Full stop: q
Macth target velocity: w
Full speed: e
Change speed: +/-, mousewheel (yup, mousewheel, why hasnt anyone thought of this yet?)
Shelton slide toggle: button 3/mouse wheel button
Jump/dock: caps locks (operates as a dock button when in range of docking clamps, or jump if your in a jump node)

and there you have it... complete control over every flight command in your ship (with the exception of non-combat mode, which will hopefully be purged out of the game) without having to even move your hand positions. For some people this set-up would take getting used to, but after you got used to it, it would make flying your ship a breeze.

ok, that was the hard part, next up:

Fire control

Primary fire: mouse button 1
Secoundary fire: mouse button 2
Change turret: r
Turret control: t

Targeting:

Cycle all targets: g
Cycle hostile targets: f
Target closest to crosshair: c
Bases and jump nodes: v

Communication:

Toggle messages/wingment: ~
Messages: keys 1 to 0, until we get a more suiteable implementation at least.
Wing men: keys 1 to however many are needed, I dont use wingmen much so I wouldn't :wink:

...and I know theres other stuff too, like ship views, cargo, etc but I dont have the energy to think of all that stuff, which in IMO is pretty non-essential as you dont use it enough. Nevertheless, if you think you see a good place to put those keys, I'd like to hear it! :wink:
Last edited by hurleybird on Fri Feb 18, 2005 11:38 pm, edited 2 times in total.
hurleybird
Elite
Elite
Posts: 1671
Joined: Fri Jan 03, 2003 12:46 am
Location: Earth, Sol system.
Contact:

Post by hurleybird »

Ok, heres an idea. How about making a splash screen that shows all of the keybindings on it, and have it always be the one to show up when you start a new game?
CubOfJudahsLion
Confed Special Operative
Confed Special Operative
Posts: 286
Joined: Tue Dec 21, 2004 3:11 am
Location: Costa Pobre
Contact:

Post by CubOfJudahsLion »

You know, that could also work if the splash screen were to simulate a ship startup console.

Say,

-=- V.E.G.A. OS v0.4.3 -=-
*** Systems initialization ***

Official registration: <ship/flightgroup name>
Registered to: Deucalion
<yadda yadda, whatever extra story info you want to sneak in>

Loading navigation records...
[Supplementary navigation data module "<Mod name>" loaded]

Coordinate resolution complete
Current location: <station/planet : system>

System status:
<report of ship components not operating at 100%>

Ship control interface loaded, checking bindings
<key bindings list>

Loading mission logs...

And so on, each line a metaphor of what is being loaded.
Just another crazy idea, not to be taken too seriously (unless you want to) :p :lol:
pontiac
Elite
Elite
Posts: 1454
Joined: Sun Jan 12, 2003 6:24 pm
Location: Far out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy
Contact:

Post by pontiac »

CubOfJudahsLion wrote:You know, that could also work if the splash screen were to simulate a ship startup console.

...
Actually that sounds like a really cool idea and would add to the atmosphere too (IMHO) ;)

Pontiac
energyman76b
ISO Party Member
ISO Party Member
Posts: 445
Joined: Tue Feb 11, 2003 8:04 am

Post by energyman76b »

Hi,

please, do not change the general layout, ok?

I am a lefthanded person, my heyboard also has the F-keys on the left side, right hand one arrow-keys which are one block with home,end,del and replace, left hand on the mouse, with only a small movement, to reach all F-keys+qweta<>, which makes it quite easy to use.

The left hand does most of the steering (mouse glide), the right hand is for some keyboard-steering and mostly firing the missles and hit 'h'.

Please, do not change the layout. You could provide two different, a 'classical' and a '3d-shooter mode' layout.. but I do not see any advantages by placing the directions (up, down, left, right) somewhere more or less randomly into the keyboard, where you are always prone to hit the wrong keys.
hurleybird
Elite
Elite
Posts: 1671
Joined: Fri Jan 03, 2003 12:46 am
Location: Earth, Sol system.
Contact:

Post by hurleybird »

energyman76b wrote: Please, do not change the layout. You could provide two different, a 'classical' and a '3d-shooter mode' layout.. but I do not see any advantages by placing the directions (up, down, left, right) somewhere more or less randomly into the keyboard, where you are always prone to hit the wrong keys.
I dont think you need to worry, as we would probably still have the classic layout as well, no matter how we changed the interface. I think everyone who has proposed a new layout has had ergonomics in mind rather than 'randomly placing keys' though :wink:
energyman76b
ISO Party Member
ISO Party Member
Posts: 445
Joined: Tue Feb 11, 2003 8:04 am

Post by energyman76b »

Hi,

well something like: ijklm as up,left,middle,right,down (or its derivatives) is random enough... imho ;)
Guest

Post by Guest »

Though I don't think that this belongs here, I post it anyway.

It's not long ago that I played the first time Vegastrike. It is fun, but then I died the first time.
I saw the message "Press ; to rejoin [...]". I tried to press ; but nothing happens. So i took a look into the config file and it looked for me like there is an error in the design of it.

The problem is, i'm using a german keyboard layout. When i want to write an semikolon, i've to press Shift + "," to get one. Vegastrike couldn't use this command for anything, because it waited for an Semikolon without pressing Shift, right?

I did some modifications to my keys so I could rejoin. (Shift + r is more intuitive that an ; i think).

Ok, my point is, i want to change the format of the config file, because i want to write a simple application to change the keycodes (that prevents double usage of a key and everything else).

Currently the keyboard section of config file looks like this:

<bind key=";" modifier="none" command="Respawn"/>

But this doesn't use the full "power" of a keyboard.

I'd prefer something like this:

<bind key="," ctrl="0" alt="0" shift="1" meta="0" command="Respawn"/>


Hm, i should get an account...

Regards,
xTs
xTs
Explorer
Explorer
Posts: 8
Joined: Mon Feb 28, 2005 8:13 pm

Post by xTs »

Hi,

there needs something else to be done...


I haven't found a possibility to configure the death zone of a Joystick, which is pretty important.


And is there a "center mouse"-Command? I haven't seen one. It's possible to center the mouse by hand, but it's hard. (with time comes practice...)


Regards,
xTs
MamiyaOtaru
Privateer
Posts: 729
Joined: Tue Jan 07, 2003 8:32 am

Post by MamiyaOtaru »

I'm not entirely sure but I believe what you are looking for is
<var name="deadband" value="0.05"/>
xTs
Explorer
Explorer
Posts: 8
Joined: Mon Feb 28, 2005 8:13 pm

Post by xTs »

Hi,

i found the deadband value just in the mouse config section... i'll take a look at the sources, if the joystick section uses the same option.


Regards,
xTs

EDIT:
Ahhh, found it... my config file is a bit unsorted. Thanks for the help! :)
Silverain
Expert Mercenary
Expert Mercenary
Posts: 984
Joined: Thu Aug 07, 2003 5:35 am
Location: Brisbane, Land of Oz
Contact:

Post by Silverain »

This query is mainly for the international keyboard users:

What keybindings are ones that commonly cause grief for you? Example ~, | etc?

Answer for energyman76b: by redesigning the keybindings, I'll also be looking for left handed options, international options etc, not just US standard keyboard.
THOUGHT CRIME! [points finger] THOUGHT CRIME!
Halleck
Elite
Elite
Posts: 1832
Joined: Sat Jan 15, 2005 10:21 pm
Location: State of Denial
Contact:

Post by Halleck »

CubOfJudahsLion wrote:You know, that could also work if the splash screen were to simulate a ship startup console.

Say,

-=- V.E.G.A. OS v0.4.3 -=-
*** Systems initialization ***

Official registration: <ship/flightgroup name>
Registered to: Deucalion
<yadda yadda, whatever extra story info you want to sneak in>
...
And so on, each line a metaphor of what is being loaded.
Just another crazy idea, not to be taken too seriously (unless you want to) :p :lol:
Awesome idea. Kind of reminds me of some maxis games, ie. "Reticulating splines..." :D Although, some of it would probably go by pretty fast (the info on the player) if we were displaying it in realtime. We would probably want to work in a delay so that the player would have time to read it while textures are loading.
Post Reply