Content

Post new topic Reply to topic

Ergonomy in flight

Author Message
16aR View user's profile Send private message

Reply with quote Thursday, January 12, 2012

Hello all,

and first, thanks to the for this awesome game.

I don't know if it is the correct forum to ask/discuss about ergonomy. If not, if the modos can move the thread in another part of the forum, I would be glad Smile

About the flight, I got multiple propositions :
* Have one button to activate/deactivate the fly mode, instead of having the fly up button to activate the flight, charge+fly down to deactivate. I know you can configure the keys as much as you want, but having 1 toggle button for that seems fair.
How about flying up and flying down you say ? Let's use some keys that are nearly unusable while in air : jump and walk.
okay jump is already used for soaring, but I have something for it too, I'll talk about it later.
So, while in the air, jump will fly up, and walk will fly down. (I would have used crouch instead of walk, but we don't have crouch, so walk is kind of of the same use). For the ball flips, we can use the walk button while in a jump.

* Soaring : why a separate mode for soaring ? This is a little bit disturbing, and the manipulation is not easy. Because at the end, when you know how to use it, you can make pretty advanced move (loop, roll). It could be toggled on by pressing both attack keys since you can't attack in this mode for example.

* Staying straight : while in the air, when you fly, turn around to check enemies in your back and come back to your first position again, you might finish inclined. My solution is to deactivate flight with charge+fly down, then fly again to be "standing up" again. I think the solution to this would be to keep the horizontal axe around which you watch up and down horizontal. It is just to feel better ergonomically (for me). But maybe it will feel a little robotic in the view, so if a transition solution is possible, it would be better looking too.

The only thing to really move in air, would be the head, then the body after a delay, and then the body and camera would get aligned/standing up again. (I guess it is already implemented on the ground when your user is watching some people in the air, only the head seems to move).

It seems that on the latest SVN version I've tested a while ago, the soaring mode was using the mouse, which is already a big plus. Or maybe I didn't get it at that time (I wasn't really understanding all the keyboard mapping/movements etc)

What do you think ?

Zeth The Admin View user's profile Send private message

Reply with quote Thursday, January 12, 2012

* Have one button to activate/deactivate the fly mode, instead of having the fly up button to activate the flight, charge+fly down to deactivate. I know you can configure the keys as much as you want, but having 1 toggle button for that seems fair.
How about flying up and flying down you say ? Let's use some keys that are nearly unusable while in air : jump and walk.
okay jump is already used for soaring, but I have something for it too, I'll talk about it later.
So, while in the air, jump will fly up, and walk will fly down. (I would have used crouch instead of walk, but we don't have crouch, so walk is kind of of the same use). For the ball flips, we can use the walk button while in a jump.


A lot of people have suggested this in the past. It was one of the main design decision changes distinguishing us from our predecessor (Bid For Power). The problem for most people is simply the matter of what they are "used to" rather than what's most practical.

Consider what you are suggesting from a semantic point of view and you'd soon see that it's rather counter-intuitive overall to suggest such a mix-match/splashing of buttons rather than dedicated keys.

You press forward to move forward. You press left to move left. You press up to move up. You press down to move down. It's a simplistic cardinal assignment that makes logical sense. If this were a traditional FPS while on the ground, down could (potentially) also trigger a crouch as this could be construed as directly applying to a downward motion.

Utilizing a dedicated key for a toggle is rather wasteful. Try considering this in a scope you are more accustomed to. Would you use, say, the "t" key to toggle move forward on and off? Of course not. Sure, an option can exist for what you are wanting, but that doesn't make the end-solution any more reasonable as a primary system change.

* Soaring : why a separate mode for soaring ? This is a little bit disturbing, and the manipulation is not easy. Because at the end, when you know how to use it, you can make pretty advanced move (loop, roll). It could be toggled on by pressing both attack keys since you can't attack in this mode for example.


Your thought process is very intriguing. You ask "why not a separate key for flight" yet question why there IS a separate key trigger for soaring. This very strongly suggests to me that you are coming from another game with a pre-existing conception of how the controls should be handled.

Again here, using the "ATTACK" keyset to trigger a motion-based action is completely non-relative and lacking in any form of semantics.

* Staying straight : while in the air, when you fly, turn around to check enemies in your back and come back to your first position again, you might finish inclined. My solution is to deactivate flight with charge+fly down, then fly again to be "standing up" again. I think the solution to this would be to keep the horizontal axe around which you watch up and down horizontal. It is just to feel better ergonomically (for me). But maybe it will feel a little robotic in the view, so if a transition solution is possible, it would be better looking too.


It sounds like you are speaking in relation to the the concept of "Advanced Flight" in ZEQ2-lite. If you want a flight system (again, what other games of our type use) that uses Euler angles for orientation, you are more than free to; however, if you wish to experiment with the Quaternion based flight system (what Descent used) for more freedom and no issues with the Gimbal lock (full degree pitch) that option exists as well.

Yes, quaternion-based flight it does require mastering the roll keys (Q and E for default), but you are granted more versatility and control in tricky situations. Besides that, it's completely optional -- although forced on in soar mode.

The only thing to really move in air, would be the head, then the body after a delay, and then the body and camera would get aligned/standing up again. (I guess it is already implemented on the ground when your user is watching some people in the air, only the head seems to move).


The viewangles while in the air all should change uniformly. I'm not entirely sure what you mean by this "delay". Are you referring to the latest SVN revision where the camera does not adjust when moving the mouse freely (only changing character rotation on actual movement)?

It seems that on the latest SVN version I've tested a while ago, the soaring mode was using the mouse, which is already a big plus. Or maybe I didn't get it at that time (I wasn't really understanding all the keyboard mapping/movements etc)


The main drive behind such a rigid control scheme (no mouse) in earlier releases was to help distinguish the mode from simply air dashing as well as to prevent improbable 180 degree yaw snapping (that was never prevalent in the series). It was more of a quick design experimentation & placeholder than anything else but incidentally had a "Star Fox"-like feel to it and was eventually replaced by a simple forward-momentum mouse-oriented one (which isn't yet finalized).

What do you think ?


I'm actually pretty relieved to hear an intelligent analysis and suggestion-set from someone in the community; I encourage more of these! Believe it or not, our main focus with controls has been about minimalizing overall buttons through context key combinations whenever semantic and non-intrusive options are available. There are still plenty of additional context triggers that plan on getting implemented in the future to further give the player less overall keys to play on, but core fundamental movements are a poor choice to stack in other places when more straight-forward cardinal keys are available.

16aR View user's profile Send private message

Reply with quote Sunday, January 29, 2012

Yes you're right, I might seem a little bit schizophrenic by trying to say that we have too much buttons for fly up/fly down, and then I want to add a new button for soaring, but that was my feeling Wink

And about soaring, you are a little bit of the same since you need to push the jump "button" to "soar", it would be as counter intuitive as pushing "jump" button to "fly up" Wink

As for my proposition of having some transition between rotation in air... It seems that it is a bug. It must be a configuration bug, because on my ubuntu 11.10 machine at home, I have a bug where my camera get totally twisted, and on another station on ubuntu 11.04, the camera is always horizontal, even if I soar, DO A BARREL ROLL, or whatever. I will compare each of my config files and put a bug in a bug forum on that.

About the primary question : using some walk for fly down and space for fly up, and a dedicated button for toggle fly mode. If I can make a patch which works, would it be possible to integrate it as an optional configuration mode ?

But first, I need to make it compile on linux, and I'm having trouble, so if somebody can lend me a hand Wink Right now, some SDL stuff redefined size_t , the basic C library didn't like it. What should I do ?

And I would be glad correcting issues with filename case in linux. 2 days ago, I wasn't able to connect to NL server because after some map switching, the server told my client to load maps/Desert.bsp, but in my folder, I only have maps/desert.bsp .
And in my home folder, I had .ZEQ2/ folder and .ZEQ2/ folder. The first one contained some default config files, and the second one was the really used one.

Cheers

Shenku RiO Incarnate View user's profile Send private message

Reply with quote Sunday, January 29, 2012

16aR wrote :
As for my proposition of having some transition between rotation in air... It seems that it is a bug. It must be a configuration bug, because on my ubuntu 11.10 machine at home, I have a bug where my camera get totally twisted, and on another station on ubuntu 11.04, the camera is always horizontal, even if I soar, DO A BARREL ROLL, or whatever. I will compare each of my config files and put a bug in a bug forum on that.



I'm not sure if I'm reading that right or not, but that might actually be in relation to the "Advanced Flight" mode in your options. If it's turned on, you can rotate your character(along with the camera) to perform barrel roll type maneuvers, or if it's off it locks the camera horizontally. The latest version of Soaring mode puts you into advanced flight automatically, but disables as soon as you revert to standard flying(assuming you have it turned off in your options).

I'm not sure about your issues with Linux though, you'd have to ask someone else since I don't use Linux myself...

16aR View user's profile Send private message

Reply with quote Monday, January 30, 2012

bull's eye !
It was the advanced flight mode. I don't remember touching it, but, anyway, thanks Very Happy

Zeth The Admin View user's profile Send private message

Reply with quote Monday, January 30, 2012

And about soaring, you are a little bit of the same since you need to push the jump "button" to "soar", it would be as counter intuitive as pushing "jump" button to "fly up"


There's a big difference in 6 primary directions (forward, backwards, left, right, up, down) and a key that performs a specific action. Jump is far more than just moving up. It's a new action altogether -- just as soar is. Their relativity as separate actions (and not cardinal movements) justifies the reasoning.

About the primary question : using some walk for fly down and space for fly up, and a dedicated button for toggle fly mode. If I can make a patch which works, would it be possible to integrate it as an optional configuration mode ?


You can use a Quake 3 script along to make a key that toggles flight without needing to touch the code. Simply have a key that you toggle rebind to call fly up and f+c respectively.

As for context-based code additions to rebind existing keys, that's fine as well -- as long as they are kept optional! You'd do this in bg_pmove.c. Feel free to come to the #zeq2Development IRC channel on freenode if you'd like to idle around or discuss more in-depth changes.

But first, I need to make it compile on linux, and I'm having trouble, so if somebody can lend me a hand Right now, some SDL stuff redefined size_t , the basic C library didn't like it. What should I do ?


I'll forward you to Arnold (our Linux maintainer) for that one. Again, the #zeq2Development channel would be a good bet on getting a solution.

I'm not sure if I'm reading that right or not, but that might actually be in relation to the "Advanced Flight" mode in your options. If it's turned on, you can rotate your character(along with the camera) to perform barrel roll type maneuvers, or if it's off it locks the camera horizontally. The latest version of Soaring mode puts you into advanced flight automatically, but disables as soon as you revert to standard flying(assuming you have it turned off in your options).


Technically advanced flight enables a quaternion-based camera to avoid issues with the gimbal lock. Yes, it does provide an additional degree of movement with the introduction of "rolling", but a Euler-based traditional camera could technically do that as well. The important fix with the quaternion camera is that you are able to completely wrap around in pitch and orient your view angles upside down without snapping/fighting issues at the peak.

Even though a quaternion solution has been implemented, there is still a degree of drifting (or perhaps rounding issues) with the current implementation. This causes a sin-wave-like field of motion when changing along certain axes. The implementation could use refining/adjustments and is located in bg_pmove's PM_UpdateViewAngles fuction for anyone math-savvy enough.

Post new topic Reply to topic

Actions

Online [ 0 / 6108]