Advertisement

Input interpretation, or "Do what I mean, dammit!"

Started by March 16, 2002 08:13 AM
17 comments, last by Oluseyi 22 years, 9 months ago
Perticularly relevant to action/reflex games. There you are, playing your favorite sports game (say, basketball). You make the outlet pass off a defensive rebound and are off down the court on the fast break. The defense collapses and you thread the ball to your cutting player on the other side of the floor. Defense starts to turn, all of them to his right. You initiate the layup, ball in left hand, protected. Then you switch the ball to your right hand and perform some garish over the head layup attempt, because the stupid game uses motionsets which can''t be interrupted! Aarrrrgh! It gets worse. Tied in the fourth (and final, for the uninitiated) quarter, twelve seconds on the clock. You have possession of the ball and put it in the hands of your number one option. Eleven. Shake right, initiate drive to left.. ten two defenders break position to collapse on you, approaching from your right.. nine you perform a pivot move to spin away from them and give your self a clear path to the basket... only you spin out of bounds and lose possession. Eight on the clock, opponents take the final shot, win the game. Is it me, or do games like this need a serious overhaul of a) their animation systems, but more importantly b) their input systems/routines. Shouldn''t there be at least minimal processing to ensure the player does something consistent with the game situation and context? Take the first example: what possible reason could I have for wanting to bring the ball to my right hand and expose it to the defense? I can''t think of examples that most of you could relate to (because I don''t play RPGs, FPSes, RTSes...) but I think this is a major issue. Input shouldn''t just blindly do what the player seemingly directs (although the level of interpretation should be configurable, from severe to none); it should operate in such a way that the user feels he is totally in control, that his/her thoughts flow directly into the game and cause action. Therefore any behavior that breaks the suspension of disbelief is a bad thing. Returning to my examples above, the ideal input system would cross check with the "context" before specifying an action. So the layup command should check where the obstacles are and choose the path of least resistance (simple ray-plane intersection tests), and the spin command should keep the player in bounds as much as possible and reasonable (hitting spin right by the sideline running out at full speed shouldn''t miraculously keep the player in bounds). One more (from the same genre). Simply moving about should be somewhat intelligent. I get too many touch fouls simply because I''m playing help defense (moving a player from his defensive assignment to "double" on a player with the ball), trying to recover from a double team and get back onto the appropriate player and I "bump" into him while trying to get in front. Foul. <em>Two free throws</em> (if he was shooting). My players should be able to "slither" through, turning sideways if necessary while maintaining their direction to get where they need to be. Such cheap shots attempt to artificially make the game more challenging - an indication of design deficiency. Okay, enough from me. Feel free to commiserate. <small>[ <a href="http://www.gamedev.net/reference/start_here/">GDNet Start Here</a> | <a href="http://www.gamedev.net/community/forums/search.asp">GDNet Search Tool</a> | <a href="http://www.gamedev.net/community/forums/faq.asp">GDNet FAQ</a> | <a href="http://msdn.microsoft.com/library/">MS RTFM [MSDN]</a> | <a href="http://www.sgi.com/tech/stl/">SGI STL Docs</a> | <a href="http://www.google.com/">Google!</a> ] Thanks to Kylotan for the idea!</small>
???

This thing seems like a very interesting topic to discuss... The point is that i never EVER play sports games. I play fighters, fps, rpg and rts so it''s hard for me to relate this problem to one of those cathegories

Do you mean like; the game shouldn''t do EXACTLY as the player does if the player doesn''t do it correctly? Ie: The computer autocorrects it sometimes?
Advertisement
Think of it this way: rather than directly controlling exactly waht your character does, you give the character impulses. The character then evaluates the situation and the impulses, and acts in the most logical manner. This could be interesting in a wide range of genres, not just sports.

Take an RTS. You''re the Colonel/General/Field Commander and as such are in charge of a fairly large army which is comprised of smaller companies, each headed up by a Captain/Colonel/Whatever. You give battlefield orders to these captains, but they may evaluate the situation and react differently (for example, opening fire may blow cover and bring the whole platoon under enemy fire, so the captain orders the troops to hold). The game benefits in that a) you don''t have to do as much micromanagement (if the platoon comes under attack, the captain will order evasive and counterattack measures independently); b) you can focus on larger picture tactics and delegate gruntwork to, well, grunts; and c) the genre has evolved to have morale and the relationships between commander and troops (or general and officers) have more impact.

Many of these principles transfer unaltered to RPGs. And as said before, the level of interpretation would be customizable, so players are not forced to be "too far removed" from their characters.

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ | MS RTFM [MSDN] | SGI STL Docs | Google! ]
Thanks to Kylotan for the idea!
A stylistic benefit is that the character also looks better doing stuff (which is always a plus with gamers), because it is a coherent action rather than several approximations to an intended action. ie, instead of zig-zagging across the playing surface, your character moves in a smooth arc (and that''s the simplest, most common denominator example I could think of).

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ | MS RTFM [MSDN] | SGI STL Docs | Google! ]
Thanks to Kylotan for the idea!
I think the point is well taken, but it may be difficult to implement. (But that''s why we''re here!) Take your spinning out of bounds example. If you were given the controls to spin in the direction of your choice, the computer should not override you on your decision. If, however, you are only allowed to say "spin" and the computer chooses the direction, YES, there should be some checking to make sure that the computer doesn''t do anything stupid. Of course, the checking algorithm would have to be complex enough to handle all of the possible criteria that may present itself... many of which are subjective. That is a tough undertaking from a programming perspective and even more difficult to accomplish when you want instantaneos reaction time in an already processor intensive simulation.

Definately something that needs to be addressed in many types of games, however.

Dave Mark
President and Lead Designer
Intrinsic Algorithm Development

"Reducing the world to mathematical equations!"

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"

This will definitely cut down on the ol'' "WTF!? *HITS COMPUTER* I DIDNT TELL YOU TO JUMP OFF THE CLIFF YOU MORON!!!"

Oluseyi, I smell a topic for an article here.

~Dwarf
----------[Development Journal]
Advertisement
tsk, tsk

haven''t you played the newest crop of sports games? at least on the XBox and PS2 translations, they already do this to a very large extent. If you have access to either system, I can give you some examples.

all the same- yes, this is a very important development in sports games, and long overdue. when a game does this well, it makes the whole experience so much more enjoyable. *however*, when a game does this poorly, it gives the game a "Dragon''s Lair" sort of feel, where the player feels that they are more "initiating" a sequence of actions than actually performing the actions themselves. Microsoft''s newest football game ("NFL Fever, I believe) falls squarely into this camp, and its no fun at all.

If you see the Buddha on the road, Kill Him. -apocryphal
If you see the Buddha on the road, Kill Him. -apocryphal
I can sympathise in a sense, but I would almost suggest the opposite remedy.

I hate all the soccer games of the mid-90s where they would have one button for ''pass'' and one button for ''shoot''. Almost all the control was taken away from you, as the computer made the decision on how you would strike the ball, which direction it would travel in, and so on. In other words, it got too intelligent. It tried to reduce the game to a case of just pointing the player in the right direction and pressing the relevant button. So I bought a new soccer game called Super Match Soccer which was based on the Matchday series from the 80s. Basically here, you have to do 90% of the work yourself - aim the player, choose the height and power, move the destination player towards the ball to collect it, and so on. The reason I like this, is because I''m in control. If the ball goes out, it was my fault for not kicking it more accurately. If my shot misses, it was my fault, not some random number generator deciding my player missed on this occasion. So although the game is perhaps harder to play, the end result is more satisfying as I feel in control of the game. My victories are a result of my successes and my defeats are a result of my mistakes.

I do agree though that animations and so on should be consistent with the situation. It only takes a tiny amount of AI to choose a decent animation (although admittedly quite a bit more in the way of artistic assets) and a small amount more to allow different behaviour based upon these.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]
quote: InnocuousFox
I think the point is well taken, but it may be difficult to implement. (But that's why we're here!)

SuperDeveloper intro music please...

quote: InnocuousFox
Take your spinning out of bounds example. If you were given the controls to spin in the direction of your choice, the computer should not override you on your decision. If, however, you are only allowed to say "spin" and the computer chooses the direction, YES, there should be some checking to make sure that the computer doesn't do anything stupid.

Well, let's look at the context, the application domain. Using the exact same example (basketball), I've never seen a player with the ball in his left hand spin to the left. Why? Because the movement is incredibly awkward, and the ball is placed right in front of the defender as you spin - which totally goes against the whole purpose of the spin (it's not just for fun).

I was playing ball (in RL) a few weeks ago and I was on a delayed fast break, one-on-one down the stretch. Ball in left, defender approaches from left. I instinctively cross ball to right, then spin left (which puts defender on my back) and cross ball back to left so defender is now on my right and the basket is to my left. Left handed layup, job well done. I think there isn't too much ambiguity as to what should done; the only ambiguity is whether you want the ball in the same hand post-spin, something easily determined by where the opponent is. I mean, you always want the ball as far as possible from the opponent.

Again, configurable so you can lose the ball of that's your thing.

quote: Dwarf with Axe
Oluseyi, I smell a topic for an article here.

Aye, man. After collating all the brilliant suggestions I expect from here and working it into at least a demo version, the article will be put into the pipeline. It may have to wait till I finish my Direct3D owner-drawn controls article (still in the concept stage) for GUI work.

quote: Anonymous Poster (you should register; you make a valid contribution)
haven't you played the newest crop of sports games? at least on the XBox and PS2 translations, they already do this to a very large extent. If you have access to either system, I can give you some examples.

While I haven't sat down to play NBA2k2 and NBA Live 2002 at length, I owned NBA 2K1. While this wasn't as big a problem there, it's plagued the Live series for ages; their animations take too much time and are too complex. Even though they've cut back on a number (like the post up sequence), it's still sufficient enough to thrown your timing off - especially with the shot clock running out.

Also, both these games (as well as Courtside for GCN) would benefit from the aforementioned stylistic improvements (better-looking motion, for one thing). They look quite ugly at times right now.

quote: Kylotan
I hate all the soccer games of the mid-90s where they would have one button for 'pass' and one button for 'shoot'. Almost all the control was taken away from you, as the computer made the decision on how you would strike the ball, which direction it would travel in, and so on. In other words, it got too intelligent. It tried to reduce the game to a case of just pointing the player in the right direction and pressing the relevant button.

Agreed, that's so simplistic there's no real control. I'm not advocating that kind of scheme; I'm interested in developing sports simulations, not arcade-style games.

quote: Kylotan
Basically here, you have to do 90% of the work yourself - aim the player, choose the height and power, move the destination player towards the ball to collect it, and so on. The reason I like this, is because I'm in control. If the ball goes out, it was my fault for not kicking it more accurately. If my shot misses, it was my fault, not some random number generator deciding my player missed on this occasion.

Keep in mind that soccer and basketball are very different beasts. In soccer, the scale of the field and the nature of the game make that kind of control a) more consistent with real life, and b) more feasible. If you had to select the height and power at which you passed a ball and then move a recipient for your basic passes in a basketball sim, it would be come unmanageable. Quick 1-2's would be impossible and the turnover rate would be simply unacceptable.

You bring up an excellent point though, which is that this must fit within the "nature" of the game, for lack of a better word. In current basketball games you can utilize icon passing, which assigns four icons to your teammates (on the PSX/PS2 they match the four RHS face buttons) so you can direct the ball to specific players. Now, that doesn't mean you can blindly throw cross-court passes, as the ball might be thrown too long or too short. Also, since the flight of the ball takes time and you switch control to the recipient before he gets the ball, moving out of range results in a turnover.

quote: Kylotan
So although the game is perhaps harder to play, the end result is more satisfying as I feel in control of the game. My victories are a result of my successes and my defeats are a result of my mistakes. (emphasis mine)

I think that's the whole objective. It's irritating when your victories are in spite of the game's flaws rather than simply due to your "brilliance of execution." Current games satisfy many gamers because, well, they're punks. All they want to see is flashy dunks and spectacular moves - things the current crop cater to well. But when it comes to the details of the sport, translating the more "mundane" skills and abilities of the athletes faithfully and rewarding the player for his/her knowledge of the game, they fall woefully short. While what I describe may sound like it takes control away from the user, properly implemented it shouldn't. Rather, since the game context is very limited, it should make the user more expressive.


A related concept: action maps. Now many of you may have heard of DirectInput's action mapping (for the Window's developers out there), but I'm not speaking about the same thing. To me, an action map is the definition of all buttons for a particular character state. Sports games generally have offense/defense action maps, but I think utilizing deeper maps than this can also bolster "input expressiveness". Staying with the genre, if (some of) my buttons remapped when my character jumped so I could do more, different things while in the air, then I'd instantly have a deeper game. For one thing, I could possibly be able to control exactly what a player does when trying to dunk - something I have never seen in a ball game. Think about it. When I jump, my velocity is set and I have no tractional anchors with which to change direction and/or speed, so why not have my move forward/move left/move backward/move right buttons/triggers switch to raise ball/twist left/lower ball/twist right? Hit a twist trigger with the turbo, tap lower and raise - bam! 180-/360-degree double pump. Okay, so maybe not exactly with those buttons, but you get the idea.

Comments.

[Edit: close your HTML tags, 'Seyi!]

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ | MS RTFM [MSDN] | SGI STL Docs | Google! ]
Thanks to Kylotan for the idea!

[edited by - Oluseyi on March 16, 2002 6:41:56 PM]
quote: Original post by Oluseyi
SuperDeveloper intro music please...

Damn... that''s what I''ve been missing all this time. A theme song!
/me sighs wistfully...
quote: Current games satisfy many gamers because, well, they''re punks. All they want to see is flashy dunks and spectacular moves - things the current crop cater to well. But when it comes to the details of the sport, translating the more "mundane" skills and abilities of the athletes faithfully and rewarding the player for his/her knowledge of the game, they fall woefully short.

No shit.
quote: A related concept: action maps. Now many of you may have heard of DirectInput''s action mapping (for the Window''s developers out there), but I''m not speaking about the same thing. To me, an action map is the definition of all buttons for a particular character state. Sports games generally have offense/defense action maps, but I think utilizing deeper maps than this can also bolster "input expressiveness". Staying with the genre, if (some of) my buttons remapped when my character jumped so I could do more, different things while in the air, then I''d instantly have a deeper game. For one thing, I could possibly be able to control exactly what a player does when trying to dunk - something I have never seen in a ball game. Think about it. When I jump, my velocity is set and I have no tractional anchors with which to change direction and/or speed, so why not have my move forward/move left/move backward/move right buttons/triggers switch to raise ball/twist left/lower ball/twist right? Hit a twist trigger with the turbo, tap lower and raise - bam! 180-/360-degree double pump. Okay, so maybe not exactly with those buttons, but you get the idea.

This I like! And all it would have to do is be linked to a particular state. Let''s work this one a bit. (You ARE going to the GDC, aren''t you?)

Dave Mark
President and Lead Designer
Intrinsic Algorithm Development

"Reducing the world to mathematical equations!"

Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play

"Reducing the world to mathematical equations!"

This topic is closed to new replies.

Advertisement