Complaint From Players
The player must pick up candles before extinguishing them, and then the player must remember to drop the candle. The player must drag a body before shouldering it (picking it up), and the player must remember to frob again to stop dragging the body. The player finds this annoying or easy to make mistakes.
For players who ghost, some of them have the goal of returning objects back to their original positions. With the current "pick up, use item, and drop" system, the item might not return easily or at all to its original position. For example, a candlestick might bounce off its holder.
(See player quotes at the bottom.)
Bug Tracker
https://bugs.thedarkmod.com/view.php?id=6316
Problems to Solve
How can the "pick up" step be eliminated so that the player can directly use or interact with the item where it is in the game world?
How can so much key pressing and mouse clicking be eliminated when the player wants to directly use an item?
How can candles be extinguished and lanterns toggled off/on without first picking them up?
How can bodies be shouldered without first dragging them?
Solution Design Goals
Make TDM easier for new players while also improving it for longtime players.
Reduce tedious steps for common frob interactions.
Make it intuitive so that menu settings are unnecessary.
Do not introduce bugs or break the game.
Terms
frob -- the frob button action happens instantly.
hold frob -- the frob button is held for 200ms before the action happens. (This can be changed via cvar: 200ms by default.)
Proposed Solution
Note: Some issues have been struckthrough to show changes since the patch has been updated.
Change how frobbing works for bodies, candles, and lanterns.
For bodies:
Frob to shoulder (pick up) a body. Second frob to drop shouldered body, while allowing frob on doors, switches, etc.
Hold frob (key down) to start drag, continue to hold frob (key down) to drag body, and then release frob (key up) to stop dragging body.
Also, a body can be dragged immediately by holding frob and moving the mouse.
For candles/lanterns:
Frob to extinguish candles and toggle off/on lanterns.
Hold frob to pick it up, and then frob again to drop.
Frob to pick it up, and then frob again to drop.
Hold frob to extinguish candles and toggle off/on lanterns.
For food:
Frob to pick it up, and then frob again to drop.
Hold frob to eat food.
For other items:
No change.
New cvar
"tdm_frobhold_delay", default:"200"
The frob hold delay (in ms) before drag or extinguish.
Set to 0 for TDM v2.11 (and prior) behavior.
Solution Benefits
Bodies:
New players will have less to learn to get started moving knocked out guards.
With TDM v2.11 and earlier, some players have played several missions before realizing that they could shoulder a body instead of dragging it long distances.
Frob to shoulder body matches Thief, so longtime Thief players will find it familiar.
Second frob drops a shouldered body.
Players still have the ability to both shoulder and drag bodies.
Compatible with the new auto-search bodies feature.
Dragging feels more natural -- just grab, hold, and drop with a single button press. There is no longer the need to press the button twice. Also, it's no longer possible to walk away from a body while unintentionally dragging it.
Set "tdm_frobhold_delay" cvar to delay of 0 to restore TDM v2.11 (and prior) behavior.
Candles:
New players will have less to learn to get started extinguishing candles.
With TDM v2.11 and earlier, some players didn't know they could extinguish candles by picking them up and using them. Instead, they resorted to throwing them to extinguish them or hiding them.
Hold frob to extinguish a candle feels like "pinching" it out.
Once a candle is picked up, players still have the ability to manipulate and use them the same way they are used to in TDM v2.11 and earlier.
For players who ghost and have the goal of putting objects back to their original positions, they'll have an easier time and not have to deal with candles popping off their holders when trying to place them back carefully.
Set "tdm_frobhold_delay" cvar to delay of 0 to restore TDM v2.11 (and prior) behavior.
Solution Issues
Bodies:
Frob does not drop a shouldered body, so that might be unexpected for new players. This is also different than Thief where a second frob will drop a body.
"Use Inv. Item" or "Drop Inv. Item" drops the body. This is the same as TDM v2.11 and earlier.
This is the price to pay for being able to frob (open/close) doors while shouldering a body.
Patch was updated to drop body on second frob, while allowing frob on doors, switches, etc.
Candles:
Picking up a candle or lantern requires a slight delay, because the player must hold the frob button.
The player might unintentionally extinguish a candle while moving it if they hold down frob.
The player will need to learn that holding frob will extinguish the candle.
The player can change the delay period via the "tdm_frobhold_delay" cvar. Also, when the cvar is set to a delay of 0, the behavior matches TDM v2.11 and earlier, meaning the player would have to first "Frob/Interact" to pick up the candle and then press "Use Inv. Item" to extinguish it.
Some players might unintentionally extinguish a candle when they are trying to move it or pick it up.
They need to make sure to hold frob to initiate moving the candle.
When a candle is unlit, it will highlight but do nothing on frob. That might confuse players.
However, the player will likely learn after extinguishing several candles that an unlit candle still highlights. It makes sense that an already-extinguished candle cannot be extinguished on frob.
The official "Training Mission" might need to have its instructions updated to correctly guide the player through candle manipulation training.
Updating the training mission to include the hold frob to extinguish would probably be helpful.
Similar Solutions
In Fallout 4, frob uses an item and long-press frob picks it up.
Goldwell's mission, "Accountant 2: New In Town", has candles that extinguish on frob without the need of picking them up first.
Snatcher's TDM Modpack includes a "Blow / Ignite" item that allows the player to blow out candles
Wesp5's Unofficial Patch provides a way to directly extinguish movable candles by frobbing.
Demonstration Videos
Note: The last two videos don't quite demonstrate the latest patch anymore. But the gist is the same.
This feature proposal is best experienced in game, but some demonstration videos are better than nothing.
The following videos show either a clear improvement or that the player is not slowed down with the change in controls. For example, "long-press" sounds long, but it really isn't.
Video: Body Shouldering and Dragging
The purpose of this video is to show that frob to shoulder a body is fast and long-press frob to drag a body is fast enough and accurate.
Video: Long-Press Frob to Pick Up Candle
The purpose of this video is to show how the long-press frob to pick up a candle isn't really much slower than regular frob.
Video: Frob to Extinguish
The purpose of this video -- if a bit contrived -- is to show the efficiency and precision of this proposed feature.
The task in the video was for the player to as quickly and accurately as possible extinguish candles and put them back in their original positions.
On the left, TDM v2.11 is shown. The player has to highlight each candle, press "Frob/Interact" to pick up, press "Use Inv. Item" to extinguish, make sure the candle is back in place, and finally press "Frob/Interact" to drop the candle. The result shows mistakes and candles getting misplaced.
On the right, the proposed feature is shown. The player frobs to extinguish the candles. The result shows no mistakes and candles are kept in their original positions.
Special Thanks
@Wellingtoncrab was instrumental in improving this feature during its early stages. We had many discussions covering varying scenarios, pros, and cons, and how it would affect the gameplay and player experience. Originally, I had a completely different solution that added a special "use modifier" keybinding. He suggested the frob to use and long-press frob to pick up mechanics. I coded it up, gave it a try, and found it to be too good. Without his feedback and patience, this feature wouldn't be as good as it is. Thank you, @Wellingtoncrab!
And, of note, @Wellingtoncrab hasn't been able to try it in game yet, because I'm using Linux and can't compile a Windows build for him. So, if this feature isn't good, that's my fault.
Code Patch
I'll post the code patch in another post below this one so that folks who compile TDM themselves can give this proposal a try in game. And, if you do, I look forward to your feedback!
Player Complaints
TTLG (2023-01-10)
Player 1:
TDM Forums (2021-03-13)
Player 2:
Player 3:
TDM Forums (2023-06-17)
Player 4:
TDM Discord (2021-05-18)
Player 5:
TDM Discord (2023-02-14)
Player 6:
Player 7:
Player 8: