Jump to content
The Dark Mod Forums

Penumbra type physics


brethren

Recommended Posts

Been playing the Penumbra series lately, and I thought it had some very cool thiefy type things included within, but of special note were the physics. I know TDM already has the capability of picking up and manipulating objects, but in Penumbra you can also mouse-drag open doors slowly (only partially if needed) and also drag open desk drawers, spin or rotating devices, activate switches or levers, etc. By all this I mean, instead of just frobbing something, you actually perform the action with the mouse. Attack is handled this way also, where you drag your mouse in an arc to simulate a (for instance) dagger swing or sword slash.

 

Just wondered if these types of things are possible with the Doom3 engine, I thought (in Penumbra at least) it made for a much more interactive world. I'm guessing this isn't the only game doing this, but it's the only one that I'm aware of.

 

http://www.youtube.com/watch?v=Cl9MUNKs6UU

Edited by brethren
Link to comment
Share on other sites

Yeah, I own Penumbra Overture episode one. It currently rivals Thief II as my favorite game. :o The physics in Penumbra was absolutely fantastic and the interaction system just immersed me in the game.

 

I know a little bit about Doom 3 physics, and I had been contemplating how to replicate that door-opening for a long time. So far, All I've come up with is an "articulated figure" or ragdoll. A bucket and a handle would be a good example of such an articulated figure. Its just a door on a hinge joint bound to the world. Then we have a swinging door.

 

The problem that occurs is: how do we make visportals behave correctly when the door opens and closes? How do we make an interaction system to make door-opening easy and intuitive (or stealthy, as the need arises)? It'd be such a cool feature, though. -_-

yay seuss crease touss dome in ouss nose tair

Link to comment
Share on other sites

I also played and liked Penumbra. Doom3 physics is probably not quite comprehensive enough to do everything that Penumbra can, but I'm sure given enough time, someone could put in similar controls for opening doors, drawers, pulling levers, turning valves, etc. For the moment, you can frob a door and then frob it again as it's opening wherever you want it to stop.

 

Penumbra also had (or claimed it had) procedurally generated sounds for things scraping against other things. That was cool.

Link to comment
Share on other sites

I'm a fan of this level of interaction. If somebody gets a working version for Darkmod I'd think it's great.

 

But as a matter of gameplay, yeah, for doors and drawers you can already frob it stopped at mid-pull and push it back, and you can already freely move objects around once you're holding them. Not the same, but as a practical matter of gameplay it doesn't change so much how you'd actually play, except better control, and you could add some deeper physics based problems.

But in terms of atmosphere and immersion, I agree it's very cool.

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

Penumbra is compatible with the Novint Falcon

 

 

Think how interesting TDM would be with that

|=-=------=-=|

happycheeze.deviantart.com

 

Moddb

 

Gamers Outreach, a nonprofit that uses videogames to raise money for chairty.

|=-=------=-=|

Link to comment
Share on other sites

Correct me if I'm wrong but Penumbra uses HAVOK physics where-as doom3 doesn't. HAVOK has recently gone open source though and when Doom3 goes open source the two could be merged to allow this type of interaction.

 

edit: The problem I found with Penumbra though is that in some cases the lack of the ability for your eyes to calculate the depth of field results in you being unable to tell how far away you are from the object in regards to the environment. Unfortunately technology doesn't have the capabilities to fix this yet.

Link to comment
Share on other sites

What's the problem with that, since I haven't played it. You try to manipulate objects too far away? Or you get the angles wrong when trying to manipulate them? What about a hybrid system where an object you can manipulate frob-highlights when it's in range? I guess that would kind of undercut the immersion factor that the whole thing is supposed to add in the first place.

 

Unfortunately technology doesn't have the capabilities to fix this yet.

 

We already had that discussion with the depth of field thread...

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

What about a hybrid system where an object you can manipulate frob-highlights when it's in range? I guess that would kind of undercut the immersion factor that the whole thing is supposed to add in the first place.

 

I think you'd have to do it that way though, otherwise there'd need to be a hand or pointer icon on the screen (like Penumbra), and that would really kill the immersion. In fact, I'm not sure how it could be pulled off, since in Penumbra specific areas of objects can be grabbed (like, the left side of a box, or the keyhole of a door).

Link to comment
Share on other sites

It's only there when you click into manipulation mode though, right? And you can make it more inconspicuous.

I get your point though.

Wonder how it would look and play to use the player-model's actual hand on a ragdoll arm that follows it... I guess that would require body-awareness which has its own issues, but not necessarily; there's room for experimenting there.

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

Penumbra looks quite cool, is from 2007 and runs on Linux - I wonder how I missed it!

 

Downloading demo...

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

I have to agree it looks great and feels intuitive even just watching the video. In TDM we already have openable drawers by frobbing but this got me thinking we might at least try it using the grabber even with the current code? I'm unsure how the contents would behave but it might be possible. Rotators like doors might be made possible if we could attach a moveable handle and modify the code so the grabber grabs the handle and pulls/pushes it, the code also rotates the door etc to keep with it. Dunno. That's not gonna happen this year though but might be worth exploring in future years. The bendy mattress I guess is ragdoll physics? I posed quite a long time ago about possibly having a ragdoll material like sacking or canvas to hide loot, trapdoor, etc. Drag it to one side like you would a ragdoll corpse.

Link to comment
Share on other sites

Another idea I had is to add a sort of "random wobble" to items held by the grabber. Currently, each item is hold perfectly still, which is slightly unrealistic, esp. with big crates :)

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Correct me if I'm wrong but Penumbra uses HAVOK physics where-as doom3 doesn't. HAVOK has recently gone open source though and when Doom3 goes open source the two could be merged to allow this type of interaction.

 

edit: The problem I found with Penumbra though is that in some cases the lack of the ability for your eyes to calculate the depth of field results in you being unable to tell how far away you are from the object in regards to the environment. Unfortunately technology doesn't have the capabilities to fix this yet.

 

No Penumbra don't use Havok it uses the Newton physics API, as funny as it can be Havok is not good for that because is not really accurate. Just like PhysX it was made to be believable and fast by using tricks and cutting on accuracy, Newton was made to be very accurate and based in real Newtonian physics calculations hence the name.

 

And i would love to see the Penumbra interactions system on dark mod it would be the cherry on top of the cake.

Link to comment
Share on other sites

I have to agree it looks great and feels intuitive even just watching the video. In TDM we already have openable drawers by frobbing but this got me thinking we might at least try it using the grabber even with the current code?

It would probably be do-able without even involing the Grabber, just using frobbing and a different control scheme directly controlling the mover once you've frobbed it. Resolve mouse motion on to the axis of the mover, move the mover along with that mouse motion. Using the Grabber I don't think would work right now, the drawer is constrained on 4 sides and right now there's a bug that stops the object in its tracks in that case. Even if that bug were fixed, D3 physics isn't very good about accuracy of contact-points, so you might get a drawer that opens jerkily or eventually clips into the frame.

 

I'm unsure how the contents would behave but it might be possible.

That's a problem. I've found Doom3 physics to be lacking when trying to apply a moving reference frame to objects, especially when it's one object resting on another object resting on something that's moving. Put in a rotating platform, put a crate on top that platform, the crate rotates. Put another crate on top of that crate, it doesn't rotate, it just sits there stationary while the two objects spin underneath it. <_< . Put a crate on an elevator, it goes up and down. Put something else on top of that crate, no matter how light, the entire elevator stops moving. <_<<_<

 

You've probably also noticed that carrying an object with another object on top of it is not realistic. Carrying a goblet on a plate, you can balance it in one spot, but if you try to move the plate away, it just slides out from under the goblet and the goblet falls down. It knows about gravity and its center of mass relative to the plate, but it doesn't know that it's supposed to move when the thing it's supposedly stuck to by static friction also moves. I think they did a hack for the idMover class, so that things riding on them move along with them, but it's not a general physics solution that also covers idMoveable objects stacked on other idMoveables that are moving. The bottom one always slides out then the top one falls down.

 

You can do tests with this, but I'd predict that, for objects sitting in a drawer that's pulled out, it might look okay until one object touches another, then, disaster.

 

The physics engine could be completely gutted and replaced with another (probably after D3 goes open-source, because there are some low-level collision optimizations, etc that might not be compatible with a different approach to physics). But that would take a long time. Maybe one man-year or half a year?

 

The bendy mattress I guess is ragdoll physics? I posed quite a long time ago about possibly having a ragdoll material like sacking or canvas to hide loot, trapdoor, etc. Drag it to one side like you would a ragdoll corpse.

That's certainly possible with our current setup, all it requires is a modeler to make an MD5 mesh for the ragdoll object, and then some basic ragdoll setup. Sadly, the only non-corpse, free-standing ragdoll we have ingame now is a bucket. Maybe some enterprising FM authors will make some more after release.

Link to comment
Share on other sites

It would probably be do-able without even involing the Grabber, just using frobbing and a different control scheme directly controlling the mover once you've frobbed it. Resolve mouse motion on to the axis of the mover, move the mover along with that mouse motion. Using the Grabber I don't think would work right now, the drawer is constrained on 4 sides and right now there's a bug that stops the object in its tracks in that case. Even if that bug were fixed, D3 physics isn't very good about accuracy of contact-points, so you might get a drawer that opens jerkily or eventually clips into the frame.

 

 

That's a problem. I've found Doom3 physics to be lacking when trying to apply a moving reference frame to objects, especially when it's one object resting on another object resting on something that's moving. Put in a rotating platform, put a crate on top that platform, the crate rotates. Put another crate on top of that crate, it doesn't rotate, it just sits there stationary while the two objects spin underneath it. <_< . Put a crate on an elevator, it goes up and down. Put something else on top of that crate, no matter how light, the entire elevator stops moving. <_<<_<

 

Is that the same bug that stops a door dead in its track if there are two spoons in front of it?

 

That reminds me, we still have the bug where an arrow blocks a door instead of snapping in half when the AI pushes the door open ...

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Is there any way for moveables within a certain distance to be added to a 'moveable group' and treated as one moveable? Not ideal but just a vague idea. Say a new spawnarg 'bind_group' a bit like bind that is managed by the code. No idea if that is do-able or feasible or realistic or anything - just the germ of an idea.

Link to comment
Share on other sites

It would be nice if it could at least figure out what entity it's ultimately resting on and whether that entity is moving. It could get complicated though if a long object is resting on more than one object. What we really want is an engine with force dynamics and static friction and stuff calculated efficiently. Doom3 is all collision-based and isn't any good at calculating the weight force of one object resting on another object.

Link to comment
Share on other sites

  • 1 month later...
The physics engine could be completely gutted and replaced with another (probably after D3 goes open-source, because there are some low-level collision optimizations, etc that might not be compatible with a different approach to physics). But that would take a long time. Maybe one man-year or half a year?

Yeah exactly. When you have an idea of how much work that would be, making D3's physics just work good enough for a Thief game looks pretty appealing. Also there's no reason to believe that we couldn't have door opening similar to Penumbra one day, just by modifying what's there, instead of whacking in a whole new physics engine.

Link to comment
Share on other sites

  • 2 weeks later...

I don't know what you can do without the source.. but if it's possible to create objects and apply forces to them, (as well as constraints) I don't see why would be so difficult to open a door like that. (I'm not saying it should be done in TDM, I'm saying it's probably possible) Because the rest is just mouse/camera details.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • nbohr1more

      Was checking out old translation packs and decided to fire up TDM 1.07. Rightful Property with sub-20 FPS areas yay! ( same areas run at 180FPS with cranked eye candy on 2.12 )
      · 1 reply
    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 3 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
×
×
  • Create New...