movement in full 3d

Member
Posts: 320
Joined: 2003.06
Post: #1
Hi

my game and level editor have full 3D freedom. I'm just not sure how to let the player control this freedom.

Currently I have:

w: forward
s: back
a: strafe left
d: strafe right
upArrow: move up
downArrow: move down
leftArrow: rotate around Y axis left
rightArrow: rotate around Y axis right

This doesnt even allow for tilting forward/down and back/up, or all the firing/ selection of weapons etc. but I've already run out of easily accessible keys.

I'm going to make the keys fully configurable, but I need some sensible defaults.

Is there some sort of convention for doing all this on macs & PCs? I'm used to consoles that have two joysticks, a directional pad, 8 buttons and 2 triggers.

Oh and this is Chopper2 I'm talking about, so it's a helicopter if that helps...

Chopper, iSight Screensavers, DuckDuckDuck: http://majicjungle.com
Quote this message in a reply
Member
Posts: 156
Joined: 2002.10
Post: #2
IIRC the only controls you need for a helicopter game are the mouse (for left, right, look up, look down) and then you have two keys for increase/decrease thrust.

In order to make a helicopter go forwards, you have to tilt it to point towards the earth slightly and increase rotor thrust.

I don't know how your physics setup works though, so this may not apply to you.

- Iain
Quote this message in a reply
Moderator
Posts: 365
Joined: 2002.04
Post: #3
For FPS games and things which work in a similar way, I like these controls:

E - forwards
D - backwards
S - left
F - right
Q - jump/up
A - crouch/down
Mouse/Cursor keys - pitch and yaw

Alternatively, you could try what I'm doing in my uDG entry, Rescue. When you hold the Command key down, the thrust/roll keys are used for vertical and horizontal slewing instead.

IBethune Wrote:IIRC the only controls you need for a helicopter game are the mouse (for left, right, look up, look down) and then you have two keys for increase/decrease thrust.
The only problem with that idea is that just tilting a helicopter doesn't turn it very much; you have to turn it separately using the tail rotor.

Neil Carter
Nether - Mac games and comic art
Quote this message in a reply
Member
Posts: 233
Joined: 2003.05
Post: #4
The battlefield games use this for helicopters and it works nicely:

a rotate counter clockwise (using tail rotor)
d rotate clockwise (using tail rotor)
w accelerate main rotor
s decelerate main rotor
mouse tilts main rotor

This is tricky to control at first, but it allows lots of technique and flexibility and it's essentially how helicopters work. (only they don't have a qwerty keyboard wedged in the cockpit Rasp )

So basically you take off by holding down w. (letting go of w will probably let the throttle go to a middle position so you can sort of just hover there)
you can look in all directions by simply using a and d to rotate around.
To "strafe" left. Simply move your mouse to the left to tilt the main rotor in that direction. This is where it is a little tricky. If you rotate too much you could simply roll the helicopter and crash. Smile
To "circle strafe" you can hold down a or d and then tilt the main rotor left or right at the same time.
Now moving forward is as simple as tilting forward with the mouse. The main rotor pulls you ahead. Stopping quickly requires tilting back quickly and THEN settling at a level position. That's another tricky spot.
A horizon line indicator is VERY helpful for this sort of thing.

This is very simulator like and it could make your game too difficult to start BUT you could put in various limiters so that you have a more arcade control feel. In other words, make it harder to roll your copter by limiting how far you can tilt the main rotor and maybe having an all stop key that you press to sort of automatically bring you back to a level hovering position.

"Pay no attention to that man behind the curtain." - Wizard of Oz
Quote this message in a reply
DoG
Moderator
Posts: 869
Joined: 2003.01
Post: #5
Helicopters are somewhat tricky to fly since the main rotor is wing and motor at the same time, and you have the tail rotor to think of, too.

I'd suggest using the mouse for tilting the main rotor, that would pretty much make things like steering a plane, and treat the tail rotor as rudders on a plane. Depending on how the view is, this might make more or less sense. And, you need additional controls for changing the main rotor blade pitch. 4 analog axes would be the best, but who has a flightstick + throttle + pedals these days.
Quote this message in a reply
Member
Posts: 233
Joined: 2003.05
Post: #6
The whole main rotor blade speed would be nice to use analog, but I find using the w and s buttons (like in battlefield) works well. For a more arcade oriented game (like I assume Chopper2 will be) I would think it would be okay.

You hold w down to accelerate, when you let go it slowly returns to a "hover" speed (just enough lift to keep you from climbing or descending), if you hold down the s key it decelerates. Holding it long enough would bring it to an effective stop. The reason it's pretty intuitive is because you essentially raise the helicopter while you hold down the w key and lower it when you hold down the s. Not bad, eh?

"Pay no attention to that man behind the curtain." - Wizard of Oz
Quote this message in a reply
Member
Posts: 233
Joined: 2003.05
Post: #7
This has sort have been mentioned already, but I have a couple of specific details to add.

As an alternative, I once made a game prototype with a flying mechanism that worked like a FPS. Basically you'd aim your target direction by using the mouse. The view would change right along with the speed of your mouse movement, but the vehicle would take some time to catch up (the vehicle was visible on screen.) Then, you could instantly move in the four directions using adsw keys like in a FPS. (The helicopter could tilt in those directions in a more predefined mechanical way.)

That prototype game was going to have a constant level hovering over the terrain (sort of) so I had no up and down movement.

For up and down movement, using a scroll wheel on the mouse would be great. Of course, that's not for everyone, so, as has been mentioned, just using another key combination (r and f, or shift all the keys over like suggested... not recommended as a default setting.) Personally, however, I like the suggestion to hold down a key combination to make w and s work differently (raise and lower the heli.)

Personally I'd rather play with the simulation type controls with arcade like limits. Smile It's more technique oriented, but the difficulty curve might be more steep. The first level would be: take off and land. LOL

"Pay no attention to that man behind the curtain." - Wizard of Oz
Quote this message in a reply
Member
Posts: 715
Joined: 2003.04
Post: #8
W= Forward
S= Backward
A= Strafe Left
D= Strafe Right
R=Up
F=Down

if its a spaceship Q to roll left E to Roll Right
This leaves the T,G,V,C,X,Z,Command,Option,Control,Shift,Capslock,Tab, tilde, 1 through 5 keys all within reach of a single hand for various needs while the mouse is busy in the other.

For a quick, circle around a target and kill mode A or D is held with the mouse nudged left or right to adjust the aim.

Try it, its great :-)
Quote this message in a reply
Member
Posts: 320
Joined: 2003.06
Post: #9
Hi guys
thanks for all the replies, I'm thinking I quite like your ideas Aaron, it's quite similar to what I have at the moment, but a little more sensible.

It's really tricky to know how much to make it realistic. It's unreasonable to expect a pilots license from the player, but not much fun flying at a constant height with plastic feeling physics.

Currently I might be a bit far on the pilots license side. The only way to move forward without plummeting is to increase throttle, which is how I think it should work, but made OSC throw a wobbly.

The first few missions will be flight training (some of this is already implemented).

Anyway... now I'm kinda rambling. Guess I'll get it as good as I can (which I think includes the use of the mouse), and leave it up to the beta testers later to tell me how crap it is Wink

Cheers
David

Chopper, iSight Screensavers, DuckDuckDuck: http://majicjungle.com
Quote this message in a reply
DoG
Moderator
Posts: 869
Joined: 2003.01
Post: #10
reubert Wrote:...

It's really tricky to know how much to make it realistic. It's unreasonable to expect a pilots license from the player, but not much fun flying at a constant height with plastic feeling physics.

Currently I might be a bit far on the pilots license side. The only way to move forward without plummeting is to increase throttle, which is how I think it should work, but made OSC throw a wobbly.

...

You might just implement an arcade style stabilization mechanism that can be turned on at will. After all, real (and RC) helicopters also have gyros and whatnot to make the pilot's life easier. Just crippling the controls wouldn't make it too much fun for advanced players, methinks.
Quote this message in a reply
Moderator
Posts: 365
Joined: 2002.04
Post: #11
reubert Wrote:It's really tricky to know how much to make it realistic. It's unreasonable to expect a pilots license from the player, but not much fun flying at a constant height with plastic feeling physics.
In my opinion, games which require skilful use of the controls are much more interesting than those which just let you move around in a very mechanical way, so I totally agree with you here. The trick is to remember that you don't have to be too literal when you design the physics.

Quote:Currently I might be a bit far on the pilots license side. The only way to move forward without plummeting is to increase throttle...
How about making the controls automatically compensate to keep the player off the ground at low altitudes? That is, when you're flying at reasonable altitudes you have free control, but when you get close to the ground it tries to stop you from tilting so far over that you don't have enough thrust to stay in the air. It could also prevent you from landing (or scraping along the ground) unless you hold the 'reduce thrust' key down. This wouldn't protect you from flying into the ground faster than the auto-compensation can deal with, but it would offer a safety buffer when flying at lower speeds.

Quote:...but made OSC throw a wobbly.
Have you still got OSC's wobbly? Please post pictures.

Neil Carter
Nether - Mac games and comic art
Quote this message in a reply
w_reade
Unregistered
 
Post: #12
I'm very fond of the helicopter controls in GTA: Vice City (on Xbox, so gamepad, but may be interesting):

right trigger: increase power
left trigger: decrease power
left stick: tilt (camera-relative; returns to horizontal when stick is centred)
right stick: rotate with tail rotor
(all analogue, which really helps)

However, it has a hideous misfeature, which is that the helicopter also rotates towards whatever direction you have it tilted in, and this rotation seems to override the right-stick rotation control. This makes circle-strafing almost completely impossible Mad. IIRC the PS2 didn't have this problem; apart from that, it's a joy to fly Smile. Sod realism, make it fun.

One thing I've noticed in a few driving games are settings like "braking assistance", "shifting assistance", even "steering assistance"; something like this might be worth considering. Maybe "handling" is a better term? An "altitude handling" setting, as NCarter suggested; perhaps "tilt handling" to stop you flipping yourself over; maybe even "turn handling" for that hideous blight on GTA's controls; whatever comes to mind (or whatever your playtesters demand Wink).

I think it's a good thing to have a set that can be turned on independently, to allow as many people to enjoy it as much as possible; of course, it has to be really, really obvious so that people realise they can actually do it (and really, really simple so they don't get put off Smile). Perhaps a first-run dialog box offering "beginner" or "expert" handling, with maybe a button to take them straight to the handling prefs should they wish for finer-grained control over the settings.

I theoretically agree with OSC's stance on the throttle thing, but my feelings get in the way; I personally love the way you can just tip a helicopter out of the sky and make it fall into a fantastic grass-clipping swoop while you spray chaingun rounds in the approximate direction of some sort of target (with the right control system, that is Wink). The first thing I want to do with a new helicopter game is hurtle around like an eagle on speed, narrowly missing* buildings, hills and bridges, to get the feel of the thing.

I may well be in a minority, but I would be put off if the helicopter handled too safely and there wasn't an obvious way to make it more fun Smile.

* or not Wink

--
H'm; whenever I post here, it turns into an essay. Bad habit Ninja.
Quote this message in a reply
Member
Posts: 233
Joined: 2003.05
Post: #13
I'd reduce it to two modes. Have it default to basic controls, but have a nice obvious checkbox (maybe even on the title screen) that allows you to switch to "Realistic Controls" or "Flexible controls." Well, those names pretty much suck, but you get the idea.

That way, people will probably know right away which one they want. Smile The adventurous will go right to the check box and activate it before even playing with the basic controls. The casual player will just ignore it and press start. The in betweener will make a note, so if they feel to limited or they feel like trying it out, it's always right there at the title screen.

"Pay no attention to that man behind the curtain." - Wizard of Oz
Quote this message in a reply
Member
Posts: 177
Joined: 2002.08
Post: #14
If we take "full 3D freedom" to the extreme, when I played Descent I used pretty much the entire numeric keypad for movement, with only forward and backward not fitting:

-8/4/6/2: Pitch and yaw
-7/9: Roll
-1/3: Move left/right
-+/-: Move up/down
-a/z: Move forward/backward

This put the right hand almost completely in control of motion, and the left hand with access to the rest of the keyboard. This was also very close to the game's default settings; I assume the developer put more thought into it than I had.

For Descent 3, I used the mouse for pitch/yaw, and with my *left* hand on the number pad:

-8/2: Move forward and backward
-4/6: Move left and right
-7/9: Roll
-Enter/dot or zero: Move up and down

Then I could assign all the remaining functions to the arrow, navigation, and leftover number pad keys (which was probably bad for my wrist but I never suffered for it Cool)
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  3D circle movement LongJumper 6 3,335 Jul 27, 2005 08:50 AM
Last Post: ThemsAllTook