Jump to content
The Dark Mod Forums

[Resolved in TDM 2.04] Picking up stuff without clunking it


SteveL

Recommended Posts

I'm extracting this discussion from the "Things that could be improved thread". It was intertwined with 2 separate discussions about zombie behaviour, then got buried beneath them.

 

I'll raise a tracker to investigate the idea and link it to this thread. The proposal is that when the player picks up an item, its distance from the player shouldn't change. The player will still need to aim the mouse to pick up a candle silently.

 

On 3/27/2015 at 7:39 PM, DeusXIncognita said:

If thats the cause, it might be nice if what you grab could be grabbed exactly as you frob it, with you then working from there, but I am not sure if thats possible.

...

Overall in most cases its learnable, but not intuitive, since you have to be ion the right distance for the grab, and not only be careful after you "attach" to an object..

On 5/12/2015 at 2:00 PM, SteveL said:

That sounds like a good idea. A candlestick already tries to get in front of your eyes when you pick it up -- that's the skill in lifting it off the surface silently -- but the distance seems a bit unpredictable. That's just my impression from playing; I haven't checked the code. Perhaps we should attempt to preserve the distance when you pick up? You'd still use skill to lift the candle instead of scraping it along the tabletop. What do people think?

On 5/12/2015 at 2:25 PM, Springheel said:

I don't remember any justification for why it works the way it does now. It would seem like having the object stay where it is when frobbed would be the obvious default choice.

On 5/12/2015 at 3:32 PM, Oldjim said:

I agree completely - this is a real bugbear of mine

On 5/12/2015 at 3:34 PM, Tels said:

I'm not sure the candle-stick/grab issue is something we should fix. It actually means there is some sort of "build-in" skill - if you know how, you can grab stuff silently, if not, you might get clatter.

 

That makes things more interesting and a bit unpredictable, and also depending on the player skill, and not always "it automatically works".

 

(It's abit like the "if you jump from high enough, it hurts, but if you crouch and then jump, it makes less noise.". Technically, the engine could ensure that it minimzes the noise by auto-crouching first. Might be a bad example, but you get hopefully my idea).

 

Of course, if it is too annoying, we might improve a bit.

On 5/12/2015 at 4:13 PM, SteveL said:

You'll still need to learn and use skill to pick up a candle without scraping it, by aiming slightly above it when you pick it up.The problem with having the object's distance change is that the player can't control that by aiming with the mouse. It's a different and far less natural-feeling skill, making sure you are standing the right distance away when you pick up an object. And sometimes it's impossible if the object is in a container.

Could there be puzzles in maps that rely on the difficulty? We have lots of noisy stuff in containers next to sleeping AI, but they'll still need a steady hand even if we fix the distance so it doesn't change.

  • Like 1
Link to comment
Share on other sites

Sounds like a good idea, especially for those cases where you pick something up and it's immediately embedded in the table it was sitting on. Subsequently pulling it out looks silly.

 

I don't know about any puzzles that rely on the current behavior.

Link to comment
Share on other sites

When you frob an object currently, it moves to the center of your screen. Does it also move to a particular distance away from you? I've never noticed that.

 

Is there any reason for the object to move at all? In an ideal world, when you frob the object, it shouldn't move at all until you start to move it. If the object doesn't move it could result in it being slightly off-center in your vision, but is that a problem? Would it mess with object rotation or something?

Link to comment
Share on other sites

When you frob an object currently, it moves to the center of your screen. Does it also move to a particular distance away from you? I've never noticed that.

I'm pretty sure something happens to the depth. That's my perception from playing. Long-time players might subconsciously adjust their distance to compensate, if there is a fixed distance. Truth is I'm not sure but I'll find out.

Is there any reason for the object to move at all? In an ideal world, when you frob the object, it shouldn't move at all until you start to move it. If the object doesn't move it could result in it being slightly off-center in your vision, but is that a problem? Would it mess with object rotation or something?

I'm sure we could fix the rotation if need be. I always thought the move-in-front-of-the-eyes was a deliberate design choice, another skill to be learned, but its a good question whether we want it to work that way. Several experienced players in the previous thread hadn't noticed the mechanic at all, so that's a point against it.
Link to comment
Share on other sites

. I always thought the move-in-front-of-the-eyes was a deliberate design choice, another skill to be learned, but its a good question whether we want it to work that way.

 

 

No, that was a post hoc rationalization; it wasn't the reason it was done that way (or if so, no one ever brought it up for discussion). I would consider it bad design to make a player learn a game skill in order to do something that should be extremely easy in real life.

 

There were lots of complaints early on about picking things up and banging them into tables. I assumed there was a coding reason why it had to be that way.

  • Like 1
Link to comment
Share on other sites

I've had a read-through of the code. I've not actually tested any of this yet, I just read the code, but here are a few early observations:

  • There's a default minimum distance for held items of 35 units. That's controlled by a spawnarg, but only AI bodies set the spawnarg. Everything else looks to be 35.
  • The maximum distance for a held item is the item's frob distance.
  • The held item always gets positioned relative to where the player is looking. The item tries to move directly in front of the player's eyes.
  • When you pick up an item, it tries to snap to position in the centre of your screen, at least 35 units away (the default min distance). If it's already more than 35 units away, it'll still change depth a bit to snap to the nearest allowable distance.
  • That's also the target position that it tries to maintain as you look around. Once the player has picked up an object, he or she can adjust the distance between the min dist (35) and the object's max frob distance, but it'll always seek the centre of the screen.
  • The distance rules would be easy to change, as long as we don't mind reducing the global minimum hold distance.
  • The rule that keeps the object directly in front of the player's eyes is slightly more embedded, but it's negotiable too.

 

Edit: Correction after testing. A picked-up item doesn't always snap to 35 units away. Other distances are possible.

Edited by SteveL
Link to comment
Share on other sites

How about when a player frobs a moveable, raise the item up away from what's underneath it by a few units?

Right now when you frob a moveable, the item you frob tries to go to the center of the screen, and it bounces around.

 

So how about if a player points the center of the screen at the base of a candle stick, the candlestick moves up away from the surface it's sitting on, then stays in it's position relative to the center of the screen, until the player looks up, then the item can gravitate towards the center of the screen as per normal?

I always assumed I'd taste like boot leather.

 

Link to comment
Share on other sites

That would make it much easier to pick up a candle silently. Perhaps even impossible to make a noise in most circumstances, if we did make the distance a few units. It could still be an uncontrollable nuisance with items in small spaces.

 

We could try it with the item staying where it is. Then if we find it's too hard not to make a noise, we could lift the item a bit but only just enough to stop the scraping.

 

The player needs to be frobbing it to pick it up anyway, so it'll be fairly central on screen.

Link to comment
Share on other sites

You might have it so at the moment when you frob an object, the object doesn't move (or perhaps the few units directly up). But after the player has moved it so many units from the initial setup, then the current approach kicks into place, where it wants to go to the center & the right distance.

 

In my imagination, I still see the tendency of objects to go to center and a fixed distance as I move around as useful. It's just for that period just after first frob that seem to be the big issue.

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

Does everyone use the mousewheel for moving held objects back and forth?

 

I've a bit more detail on how distance works after testing it. Turns out the snap-to-35-units rule doesn't always apply to objects that you pick up, just those that you drop into your hands from your inventory.

 

Picked up items work like this:

  • Their minimum distance while held is 35, their maximum is their frob distance
  • The range between the minimum and maximum holding distances is split up into 12 equal parts. You can hold an object at any of those 12 distances. When you move the mousewheel, the item will move back or forth by one "12th".
  • When you pick up, the item always snaps to the centre of the screen
  • If you pick up something closer than 35, it'll snap to position at 35 distance
  • When you pick up an item that's in the allowable range, it snaps to the nearest "12th" point.

All of those things conspire to make it tricky to pick something up quietly from a drawer. However, messing with the "12th" rule might really change the feel of the grabber.

 

@Demagogue: adapting your suggestion, I'll see whether it's possible to leave the item where it is depth-wise until the player first moves the mousewheel, at which point it can snap to the nearest 12th.

Link to comment
Share on other sites

One possibilty just coming to my mind is the following:

When you pick something up and hold the button, the object stays at the original point of pickup and distance.

Also the center of the creen is marked slightly, as long as the pickup button is pressed (and something is in the hands maybe?).

When you release the button, the object is snapped to the next 12th and to the center of the screen.

 

Mousewheeling while having the button pressed first snaps to the next or previous 12th, then works normal from there.

 

(I use the mousewheel btw, but of course can't speak for everybody.

Noone can. You can only find out if there are people out there that don't use it, but never if all use it, since there are quite a few silent ones usually.)

Link to comment
Share on other sites

I like demagogue's idea. Let the item stay where it is after frobbing, and slowly move it towards the center when the player starts turning. Regarding the distance, the object should stay exactly at the distance it is when frobbed, as everything else doesn't make sense.

 

 


I'm pretty sure something happens to the depth. That's my perception from playing. Long-time players might subconsciously adjust their distance to compensate, if there is a fixed distance. Truth is I'm not sure but I'll find out.

I am a long-time player and it annoys me a lot. :(

FM's: Builder Roads, Old Habits, Old Habits Rebuild

Mapping and Scripting: Apples and Peaches

Sculptris Models and Tutorials: Obsttortes Models

My wiki articles: Obstipedia

Texture Blending in DR: DR ASE Blend Exporter

Link to comment
Share on other sites

One possibilty just coming to my mind is the following:

When you pick something up and hold the button, the object stays at the original point of pickup and distance.

Also the center of the creen is marked slightly, as long as the pickup button is pressed (and something is in the hands maybe?).

When you release the button, the object is snapped to the next 12th and to the center of the screen.

I like demagogue's idea. Let the item stay where it is after frobbing, and slowly move it towards the center when the player starts turning. Regarding the distance, the object should stay exactly at the distance it is when frobbed, as everything else doesn't make sense.

I like both, but with a preference for the button-controlled option. They both give the player a short time before the picked-up object will make a sudden and unpredictable move. The difference is one option gives the player full control. In both cases we can let the object slide smoothly into centre-of-screen position by the way, using existing code.

 

I think the button action would feel quite natural. Items are already grabbed as soon as you press the button, not when you release. The release currently does nothing. The player's workflow for lifting a candle would become: press to grab (same as now); manoeuvre it carefully out of the way of obstacles, possibly with it at an awkward position on your screen if you grabbed it from an awkward angle; and when safe let go of the button to bring it to your central carrying position.

Link to comment
Share on other sites

@Demagogue: adapting your suggestion, I'll see whether it's possible to leave the item where it is depth-wise until the player first moves the mousewheel, at which point it can snap to the nearest 12th

 

 

That would make sense to me.

 

think the button action would feel quite natural. Items are already grabbed as soon as you press the button, not when you release.

 

 

That seems needlessly complex to me. Why not have the object stay where it is when you frob it, and go to the center of your screen (and snap to 1/12th) the first time you either scroll the mousewheel or rotate it? There's no particular reason for it to be in the center of your screen unless you're going to manipulate it somehow, so that would seem like the most logical time to put it there. And you're not likely to either pull it or rotate it if there are other noisy things in the vicinity.

Link to comment
Share on other sites

Why not have the object stay where it is when you frob it, and go to the center of your screen (and snap to 1/12th) the first time you either scroll the mousewheel or rotate it? There's no particular reason for it to be in the center of your screen unless you're going to manipulate it somehow, so that would seem like the most logical time to put it there. And you're not likely to either pull it or rotate it if there are other noisy things in the vicinity.

Yes that makes sense, and has the virtue of being simpler to code too.

Link to comment
Share on other sites

My feeling is also that the proof is in the pudding. Try that then play test it and make sure it's stopping the banging, but still behaves well after you start moving around, and tweak as necessary.

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

That seems needlessly complex to me. Why not have the object stay where it is when you frob it, and go to the center of your screen (and snap to 1/12th) the first time you either scroll the mousewheel or rotate it? There's no particular reason for it to be in the center of your screen unless you're going to manipulate it somehow, [...]

Transport is more consistent when it is in the center of the screen, true most of the times when I transport something I also manipulate distance and rotation, but not always. In those cases there would be extra buttons to press.

But for all other circumstances having it stay where it is (relatd to the screen) might actually feel better, can't imagine it at the moment.

I just thought the distance in 12ths maybe has another reason besides faster distance changing, and then it would be good to keep that, but if not keeping the starting distance longer is fine.

I like demagogue's idea. Let the item stay where it is after frobbing, and slowly move it towards the center when the player starts turning. Regarding the distance, the object should stay exactly at the distance it is when frobbed, as everything else doesn't make sense.

If the intention is, that the item "moves" towards the center when you turn, in a way that the item just stays where it is, when you turn into a direction where it still needs to be centered in, until its centered, then that would be a good solution too.

(If item is off center to the left, when you turn left it stays at the same place in the room until it is centered horizontally on the screen)

Not sure about the coding necessary though.

Link to comment
Share on other sites

Transport is more consistent when it is in the center of the screen

 

 

90% of the time the object will already be centered, since you generally have to center it to frob it.

Link to comment
Share on other sites

I did give it a try last night, but it needs more work before I can say (or video) what feels natural. The object doesn't get centred on its origin, it gets centred by its centre of mass. And where it's a compound entity like a candle in a holder, you can frob the top of the candle but end up "holding" the base. I ended up with the candle holder intersecting my head more than once in close-up tests. I can see why the existing design is so simple: snap it to position and don't let it get closer than 35 units. But with a few more sums it should be perfectly possible to leave the object where it was when you frobbed it.

Link to comment
Share on other sites

Video is up.

 

To answer my own question in the video, yes, bumping up a candlestick by 0.1 units when the player grabs it does stop it from sinking into the surface where the mapper has placed it touching.

 

Does this look like how we want it to work? I'll go try it in a real map.

  • Like 1
Link to comment
Share on other sites

To me that looks really useful - the sudden centering and distance changing might take some getting used to though.

I think with learning it shouldn't be too bad though.

 

One thing, that hasn't been used in any Fan Mission so far I think, were it could be a bit problematic, would be a "labyrinth" like in the turorial, were you have to navigate something through. If you want to do it silently that is of course. With choosing the right frob distance, it should be at maximum a really minimal difficulty though.

 

Whats also nice with the shown approach is, that we could hold a light source to the right or left of the screen, and have the center free for looking.

Additional bonus :-)

Link to comment
Share on other sites

To me that looks really useful - the sudden centering and distance changing might take some getting used to though.

I think with learning it shouldn't be too bad though.

The snap to position is the same as it is now. It probably looks worse because I'm grabbing things that are so close in the vid. But we could have the item glide smoothly into position rather than snap if we want. And we could try shortening the min distance, but there could be some larger moveable items that then clash with the player at min distance. Those would need identifying and they'd need bespoke min distance spawnargs.

 

One thing, that hasn't been used in any Fan Mission so far I think, were it could be a bit problematic, would be a "labyrinth" like in the turorial, were you have to navigate something through. If you want to do it silently that is of course. With choosing the right frob distance, it should be at maximum a really minimal difficulty though.

I think the player would need more control over the move to min distance to make that work well.

 

Whats also nice with the shown approach is, that we could hold a light source to the right or left of the screen, and have the center free for looking.

Additional bonus :-)

Cool, I didn't thnk of that :)
  • Like 1
Link to comment
Share on other sites

Looks fine. I was wary about it sticking in the original frob place for so long, but watching it in action, it isn't that bad, as long as it's so easy for the player the manipulate it to get it back center. And on that note:

 

But we could have the item glide smoothly into position rather than snap if we want.

 

+1

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

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

    • 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.
      · 6 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
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
    • Petike the Taffer

      Maybe a bit of advice ? In the FM series I'm preparing, the two main characters have the given names Toby and Agnes (it's the protagonist and deuteragonist, respectively), I've been toying with the idea of giving them family names as well, since many of the FM series have named protagonists who have surnames. Toby's from a family who were usually farriers, though he eventually wound up working as a cobbler (this serves as a daylight "front" for his night time thieving). Would it make sense if the man's popularly accepted family name was Farrier ? It's an existing, though less common English surname, and it directly refers to the profession practiced by his relatives. Your suggestions ?
      · 9 replies
    • nbohr1more

      Looks like the "Reverse April Fools" releases were too well hidden. Darkfate still hasn't acknowledge all the new releases. Did you play any of the new April Fools missions?
      · 5 replies
×
×
  • Create New...