Jump to content


Photo

Pushing


  • Please log in to reply
173 replies to this topic

#26 ZylonBane

ZylonBane

    Member

  • Member
  • PipPip
  • 415 posts

Posted 28 May 2006 - 08:47 AM

And we all know that commercial games are always targeted for the best code available and never have petty restrictions like money or shareholders. The only thing commercial games care for is "The best player experience" with no room for compromises.

Fascinating. It's like spawhawk is trying to make some kind of point here, but... didn't.

#27 sparhawk

sparhawk

    Repository Manager

  • Active Developer
  • PipPipPipPipPip
  • 21776 posts

Posted 28 May 2006 - 08:58 AM

Unlike you, right? Uhm, your point was...?
Gerhard

#28 ZylonBane

ZylonBane

    Member

  • Member
  • PipPip
  • 415 posts

Posted 28 May 2006 - 01:13 PM

That you didn't make one.

#29 sparhawk

sparhawk

    Repository Manager

  • Active Developer
  • PipPipPipPipPip
  • 21776 posts

Posted 28 May 2006 - 01:37 PM

You should not only read the content of a posting, you might also consider thinking about it's content. Anyway, I have better things to do, then explaining to you how to read AND understand.
Gerhard

#30 obscurus

obscurus

    Advanced Member

  • Member
  • PipPipPip
  • 723 posts

Posted 28 May 2006 - 10:59 PM

I think the idea is that since such a feature would be very desirable from a realism and gameplay perspective, the fact that it has not been implemented in any major game suggests that the effort required to implement it is prohibitively high.

It's more a question of development time than competence.



Actually, there is middleware such as http://www.naturalmo...es/products.htm for example that is enabling game engines to do the very thing we are discussing (might not be able to get the D3 engine to do it though). There are a number of real-time animation solutions that use realistic physics and AI to animate, rather than being manually animated.

So instead of animating a walk cycle, software like the above will start with an IK chain than will literally learn to walk by itself using physics and AI based adaptive learning, without any intervention by an animator. This middleware is making an appearence on some XBox 360 games, so it can't be that hard, you just need enough free CPU cycles for the AI to operate (obviously you would "bake" most of the animation data in game to conserve CPU power, but you could use it to tween between a limp ragdoll and a standing, animated character as well).

There is so much procedural and automated content middlware software coming out now, and it will lead to a massive reduction in the development time for games, as well as a large increase in in-game realism at the same time. All good. It also means that small game production teams will be able to get back in the business - once you have licences for a bunch of middleware, you need a fraction of the number of animators, programmers, texture artists etc.

Procedural is the way to go.

http://www.gamemiddl...ware/index.html

#31 OrbWeaver

OrbWeaver

    Mod hero

  • Active Developer
  • PipPipPipPipPip
  • 7598 posts

Posted 30 May 2006 - 05:31 AM

Actually, there is middleware such as http://www.naturalmo...es/products.htm for example that is enabling game engines to do the very thing we are discussing (might not be able to get the D3 engine to do it though). There are a number of real-time animation solutions that use realistic physics and AI to animate, rather than being manually animated.


Integrating third party software is unlikely to be a possibility until the Doom 3 code is open-sourced, except perhaps in limited situations (I think the physics engine is fairly modular for instance).

#32 Ishtvan

Ishtvan

    Programmer

  • Development Role
  • PipPipPipPipPip
  • 14860 posts

Posted 30 May 2006 - 01:15 PM

I think all of the animating and physics is exposed in the Doom3 SDK. However, isn't a lot of this procedural stuff not done in real-time? It sounds like with the monte-carlo approach and "adaptive learning," the AI would learn to walk at accelerated time during a loading process or something, and then save that as an animation. How would that work in the case of learning how to get up from any position on the ground? How could they learn beforehand how to get up from an arbitrary position? Wouldn't it be weird to see them learning to get up from a different position every time, since each fall could effectively put them in a new position? Or am I misunderstanding how it works?

The game Spore is supposed to be big on procedural animation too, since you can basically make whatever skeletal structure you want for your creatures. Looks like fun.

#33 Gildoran

Gildoran

    Team Member

  • Member
  • PipPipPipPip
  • 2476 posts

Posted 30 May 2006 - 02:07 PM

Maybe it's more like when they first start learning to walk, they're terrible at it, so the computer needs to spend some time tweaking things and fine-tuning heuristics until it gets them walking well enough. Similarly, for getting up from falls, it make take many practice tries from a variety of positions before it can usually do it well. Then it saves the state of the heuristics (rather than any actual animations) so when you load the game, it doesn't need to go through all that practice again, and can do things reasonably well from a variety of positions. That's just a guess though. I have no idea how any of it works.

#34 ZylonBane

ZylonBane

    Member

  • Member
  • PipPip
  • 415 posts

Posted 30 May 2006 - 02:46 PM

The problem is, a get-up-from-ragdoll algorithm would have to know how to deal with a nearly infinite variety of possible starting conditions, to include the overall angle and rotation of the body, the angle of every joint, and the shape of the environment. And in a real-time application like a game, there's no time to crunch through "practice tries". It has to be immediate, and look natural.

#35 obscurus

obscurus

    Advanced Member

  • Member
  • PipPipPip
  • 723 posts

Posted 30 May 2006 - 06:05 PM

Does the Doom 3 engine support real time forward Kinematics? That is mostly all you need (OK you need a bit more but that would get you started). AFAIK naturalmotion software works in realtime. Obviously you can't incorporate it into Doom 3, I was more pointing out that it can be done, and that it might be possible to code something passible in Doom 3 (not that I have a clue how you would do it).

EDIT: gildoran is correct as far as I know, you don't bake the animation, you save the heuiristc data of an "educated" AI, and it behaves in real time and reacts to physical forces and other AI/models. Apparently you can even set up a virtual soccer match and teams will play soccer in real time (hardware permitting), and the virtual players improve with experience.

Edited by obscurus, 30 May 2006 - 07:31 PM.


#36 Gildoran

Gildoran

    Team Member

  • Member
  • PipPipPipPip
  • 2476 posts

Posted 30 May 2006 - 09:17 PM

@ZylonBane: Apparently I didn't make myself clear enough... I was suggesting that the developer crunches through a bunch of practice tries and saves the heuristic, that way the training doesn't have to be done in the middle of the game or even during preloading. While I don't know how "natural" such an animation would look, learning AIs have been used effectively for other applications such as playing backgammon. The fact that there's a seemingly infinite number of ways for a body to fall isn't a problem; that's why you use a trained heuristic rather than a hand-coded algorithm.

#37 obscurus

obscurus

    Advanced Member

  • Member
  • PipPipPip
  • 723 posts

Posted 30 May 2006 - 10:07 PM

Yeah, it is literally like a little virtual humanoid that essentially thinks for itself, it learns to walk in much the same way as a child does, and it responds to it's vertual environment much as a person would (albeit not as intelligently as a human would in more complex situations). From what I have seen, they can look very natural and realistic, and apparently they don't require that much computing power by modern standards. When you use forward kinematics, the position a ragdoll falls in is irrelevant. It is only because most game engines deal with inverse kinematics, and not forward kinematics, that ragdoll to animation transistions are problematic.

#38 Order of the Hammer Bureaucrat

Order of the Hammer Bureaucrat

    Member

  • Member
  • PipPip
  • 467 posts

Posted 30 May 2006 - 11:28 PM

Thirteenth Floor

#39 DopeFishhh

DopeFishhh

    Member

  • Member
  • PipPip
  • 63 posts

Posted 31 May 2006 - 06:45 AM

So far you've been arguing whether it's possible, well it is even if it ends up looking kinda crappy. What you really need to think about is how it's going to effect the gameplay. I wouldn't implement the whole reanimation from ragdoll ability to push a guy off an edge just so in that rare few circumstances you can push them off an edge. It's certainly not worth it and i think the reason why the reanimation challenge hasn't been tackled is because that there have been few games that have ragdolls and have called for the need of a body to reanimate.

However I don't quite think the ability to push someone around will require a system for reanimation. Even if they are caught unawares and are pushed off a ledge they do have some ability to control their rotation during the fall, they don't go ragdoll the moment they are airborn. Also considering how they land is an important part of determining death (on your head vs both feet and roll to absorb some of the impact), or injury of anyone, you will need some sort of stair dismount/truck dismount like system for determining physical damage sustained (minus the total ragdoll nature of the dismount games).

As far as it being worth it goes, if you implement pushing you might as well implement other physical combat brawling like actions along with it. For instance being able to do trip attacks, or just trip a guard over would be awesome for a trip and backstab combo (wouldn't work on 4+ legged creatures) you don't even need to trip them yourself, you could use a rope or a pole as a trap. Also you could do a knockdown charge to just get past a guard (charge at them, knock them over with a chance of falling over yourself, then you can either keep attacking or run for it while they try to get up). All these actions will need to have considerations for aware guards and unaware guards (unaware tending to have a greater chance of success). It would be a whole new melee system.

Either way it's scope creep, so unless you can do something fantastic with it...

#40 Gildoran

Gildoran

    Team Member

  • Member
  • PipPipPipPip
  • 2476 posts

Posted 31 May 2006 - 10:34 AM

Despite the topic of this thread, I suspect a reason we're arguing about reanimating ragdolls is that it would allow us to have guards wake their unconcious buddies or have knocked out guards wake up after some time; both of those could greatly increase gameplay options.

Edit: Changed 'the' to 'a'.

#41 ZylonBane

ZylonBane

    Member

  • Member
  • PipPip
  • 415 posts

Posted 31 May 2006 - 01:20 PM

I disagree. I think we're arguing about it because it's a fascinating problem.

#42 DopeFishhh

DopeFishhh

    Member

  • Member
  • PipPip
  • 63 posts

Posted 01 June 2006 - 01:26 AM

Well considering that most of the time you won't be around to see a guard wake his buddy up, or someone waking up normally you don't necessarily need to have auto animations for it. I mean sure the player could hover around the body waiting for them to regain consciousness but you could just put some code in to prevent the guard from doing the wake up action until the player is out of sight. Should a guard see a body odds are they'd be looking for the player rather than trying to wake the dude up, again you could make it so that if the player has line of sight the body wont wake up.

It's a cop out sure but it's going to be a hard one for a player to notice.

#43 Gildoran

Gildoran

    Team Member

  • Member
  • PipPipPipPip
  • 2476 posts

Posted 01 June 2006 - 11:54 AM

You're saying you've never hid in the shadows, watching people patrol for long periods of time? Guards only waking up if you're not nearby is the sort of thing that'd probably drive me bonkers.

#44 Order of the Hammer Bureaucrat

Order of the Hammer Bureaucrat

    Member

  • Member
  • PipPip
  • 467 posts

Posted 01 June 2006 - 03:28 PM

We all remember those snoring nobles in their beds who suddenly turn upright half embedded into the bed and say "what, who's there?"

#45 Napalm

Napalm

    Member

  • Member
  • PipPip
  • 442 posts

Posted 01 June 2006 - 03:44 PM

Yea, I think we need to go back to Doms original point, how many non commercial games have suceeded in ragdoll-up animations? Also the whole point was that it would not be easy to code. Spar do you believe you could do it easily? Cause that would be very cool and seems to be where your leaning

#46 Dunedain

Dunedain

    Member

  • Member
  • PipPip
  • 132 posts

Posted 01 June 2006 - 06:48 PM

It would be great if guards could be made to wake up after being knocked out for awhile, the
animation of them getting up from their random ragdoll unconscious pose doesn't have to look
perfect, just decent. Actually, I think it's quite realistic to have guards wake up other guards
they find knocked out. If you were a guard and you found your friend knocked out in some
corner, the first thing you would do is holler a warning to other guards in the area and try to
wake up your friend to see if he's ok. And this raises all sorts of interesting game possibilities
and tactical problems. The guard might wake up on his own after some random amount of
time (several minutes at the minimum), this amount of time could have a modifier applied
to it based on whether the guard was struck heavily (like in Thief where you could take extra time
to raise your blackjack or sword for an extra-heavy blow). This could even be made a switch
in the interface that FM authors could turn on or off (once guards are knocked out, they always
stay knocked out, or they can wake up on their own or be roused by fellow guards).

I like this idea of procedural animation software. If you can have the A.I. model figure out how
to move it's skeleton ahead of time as to how to get up in a fairly realistic way from a wide variety
of positions and then save that refined algorithm and have it canned and ready to use in any Thief
mission, this would save a huge amount of hand animation work and still give pretty good results. :)

#47 Springheel

Springheel

    Creative Director (retired)

  • Admin
  • 37695 posts

Posted 01 June 2006 - 08:35 PM

It would be great if guards could be made to wake up after being knocked out for awhile, the
animation of them getting up from their random ragdoll unconscious pose doesn't have to look
perfect, just decent.


This idea would create a lot of problems, actually. We discussed it at length early on in development, but even if the animations could be created to look half-decent (and they couldn't with any resources we have access to), there is still the major problem of what the AI does after waking up. Unless they happen to have been dumped somewhere right on their patrol route, they're not going to know where to go. If they start freaking out and sounding an alarm, they would draw AI to their position even though the Thief is likely long gone. If they don't sound an alarm, what do they do? Wander aimlessly in their present location? And what about their weapon, which would have been dropped when they were KOed. Even if the thief convienently dropped it near their body, they would still have to be programmed to look for it and pick it up, which isn't as easy as it sounds. If the weapon happens to be somewhere else, then what do they do?

Ultimately, we decided that having weaponless AI wandering randomly didn't add anything to gameplay and wasn't very believable behaviour. Like a lot of ideas, it sounds great until you actually start to think about it.
TDM Missions:   A Score to Settle   *   A Reputation to Uphold   *   A New Job   *    A Matter of Hours
 
Video Series:   Springheel's Modules   *   Speedbuild Challenge   *   New Mappers Workshop  *   Building Traps

#48 obscurus

obscurus

    Advanced Member

  • Member
  • PipPipPip
  • 723 posts

Posted 01 June 2006 - 10:04 PM

This idea would create a lot of problems, actually. We discussed it at length early on in development, but even if the animations could be created to look half-decent (and they couldn't with any resources we have access to), there is still the major problem of what the AI does after waking up. Unless they happen to have been dumped somewhere right on their patrol route, they're not going to know where to go. If they start freaking out and sounding an alarm, they would draw AI to their position even though the Thief is likely long gone. If they don't sound an alarm, what do they do? Wander aimlessly in their present location? And what about their weapon, which would have been dropped when they were KOed. Even if the thief convienently dropped it near their body, they would still have to be programmed to look for it and pick it up, which isn't as easy as it sounds. If the weapon happens to be somewhere else, then what do they do?

Ultimately, we decided that having weaponless AI wandering randomly didn't add anything to gameplay and wasn't very believable behaviour. Like a lot of ideas, it sounds great until you actually start to think about it.


You are approaching the problem as though it was mainly an AI programming issue, when it is just as much a mapping issue.
How are pathnodes handled in D3/Dark Mod maps? I don't think it is necesarily as difficult as you seem to think. I know how to construct pathnodes (with a bit of unreal scripting) in Unreal Ed that will enable AI to do all kinds of things like figure out where they are and where they are meant to go (though I haven't tackled the problem with unconscious guards, I've made maps with situations where an AI is teleported somewhere and needs to know where to go from there, etc). A weaponless AI can be put into a kind of search mode, where they probe their environment continuously until they find a pathnode that will lead them to where they need to go. If they come across a weapon, they will pick it up and equip it. It is mostly a matter of having a good pathnode system for AI to follow, and for mappers to use it properly so that all areas of the map are mappped out for the AI with a good network of pathnodes. I don't think it should be that hard to implement, or even that complicated, as long as you are aware that the system will require a bit of manual effort on the part of the mapper to tweak it until the AI works. Most of the effort from non mappers would be animations and behaviours appropriate to waking up wiht a headache in a strange place. Actually, having the AI wander around in a daze isn't that unrealistic either - if they have a concussion to the occipital region, their vision will be blurry, they will be disorented and they might not be cogent enough to worry about. You could hae them wander about saying "my head hurts" "where am I?" etc.

Granted, no matter how you do it, it might be more effort than it is worth, so really, unless you do have the possibility of guards waking up, there is no functional differnence between unconscious AI and dead AI. Hence one of my objections to the gameplay mode of KOing AI that don't wake up - it really doesn't make any difference to gameplay, and since it is more plausible that unconscious guards would eventually regain consciousness, having them be unable to do so is a bit pointless. Really, blackjacking becomes a method of a bloodless kill - there is no other gameplay difference if the guard can't wake up. Unconscious guards add very little to gameplay that dead AI don't already add if they can't wake up, you might as well just have dead AI or conscious AI, with nothing in between.

#49 New Horizon

New Horizon

    Mod hero

  • Active Developer
  • PipPipPipPipPip
  • 13881 posts

Posted 02 June 2006 - 12:57 AM

Unconscious guards add very little to gameplay that dead AI don't already add if they can't wake up, you might as well just have dead AI or conscious AI, with nothing in between.


Spring already mentioned the problems with AI waking up, and it is very much a programming issue...as much as a mapping issue. In addition to those problems, you're further encouraging the player to kill..because if the AI won't stay down, they're sure as hell not going to dick around with guards they supposedly knocked out and have to knock out repeatedly. The guards who wake up, would likely also bring in backup...so again, the player is slapped in the face for being stealthy. Knocking out guards is supposed to be a gameplay reward, for using stealth...over..murder. It also throws a wrench into the whole 'no kill' objective that crops up in higher difficulties...what if you're in a heavily populated map and the awakening guards make it next to impossible to finish without becoming completely frustrated? Yes, I know that this can come down to mapping as well, but it's pretty obvious that the gameplay would become severely unbalanced with re-awakening guards.

The choice you make...regardless of how miniscule it might seem, is the difference between you being a Thief and a cold blooded killer. Killing AI is louder, more messy and (at least in TDM) more of a hassle...for those who are a little more determined to be a killer, they will just try harder. Blackjacking can still be tricky, but it is encouraged more because it carries moral implications...and the stats will let you know it...or a Failed Mission screen on higher difficulties.

At any rate, we discussed the pros and cons to death within our internal dev forums. It's bad for gameplay.


If they come across a weapon, they will pick it up and equip it. It is mostly a matter of having a good pathnode system for AI to follow, and for mappers to use it properly so that all areas of the map are mappped out for the AI with a good network of pathnodes. I don't think it should be that hard to implement, or even that complicated, as long as you are aware that the system will require a bit of manual effort on the part of the mapper to tweak it until the AI works. Most of the effort from non mappers would be animations and behaviours appropriate to waking up wiht a headache in a strange place. Actually, having the AI wander around in a daze isn't that unrealistic either - if they have a concussion to the occipital region, their vision will be blurry, they will be disorented and they might not be cogent enough to worry about. You could hae them wander about saying "my head hurts" "where am I?" etc.


Sure, the initial waking up might not be hard...but the introduction of such AI behaviour creates a veritable hell storm of 'extra' gameplay issues to balance. It changes the nature of Thief style gameplay more than you might think...and balancing the system we're already familiar with is going to be challenging enough. It's a 'cool' idea, but not necessarily a good idea for what we're trying to accomplish. Maybe for a different type of game, but not for a Thief game.

#50 sparhawk

sparhawk

    Repository Manager

  • Active Developer
  • PipPipPipPipPip
  • 21776 posts

Posted 02 June 2006 - 01:27 AM

Yea, I think we need to go back to Doms original point, how many non commercial games have suceeded in ragdoll-up animations? Also the whole point was that it would not be easy to code. Spar do you believe you could do it easily? Cause that would be very cool and seems to be where your leaning


I doubt that it would be easy, otherwise we would indeed have it seen already in commercial games. I would have to investigate it, to see how hard it really may be.

I think just getting any animation would certainly be feasable. Wether it would also look natural for a human being is quite another question. Can joints in D3 be configured to have limitations on their angles?
Gerhard




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users