Poisons mechanics in OpenMW

Everything about development and the OpenMW source code.
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: Poisons mechanics in OpenMW

Post by Chris »

erretel wrote: 30 Jul 2018, 21:11 - I personally believe that if you can't simply use the various potions/poisons from a quick-key and without having to go through a menu, you have a bad system.
I'm not sure I agree. If you want an in-depth system, you can't expect to do everything with just the press of a button. See also the various ideas on scaling and real-time altering of spells (rather than just buying different spells of a different pre-made intensity than one you already have, you can just cast what you already know at a different intensity with an associated change in cost). Obviously it should be made as unobtrusive to do as possible, but that doesn't necessarily mean every possible action can be brought down to a single button press.

Saying that, though, I don't see why we couldn't make it so a quick key can apply a particular potion to a particular weapon. Select a potion for quick key, and it'll ask if you want to drink it or apply to weapon, and picking the latter will let you select a weapon. Then when you press the key it automatically applies the potion to the weapon if it doesn't have something applied already (or if you selected to drink it, it acts like it does now).
- Using the equippable TESO mode the creator of this thread suggested is an excellent way to bypass a lot of ergonomic issues that poisons often have.
Sounds like it'd be a maintenance nightmare for user-created poisons. As you increase in skill or get better equipment, your poisons would get better, meaning they won't stack with the other weaker poisons you've made (or similar poisons you've bought/looted). So you have to constantly swap them around as you run out of your various stacks. And if you only want to apply a particular poison once to a specific enemy, having to go into and out of the inventory to change it both before and after the hit would be annoying.
- I still don't get why both of you seems to be so strongly against having a simple button that toggle between potion/poison/throwable into the alchemy menu.
That's basically what I'm suggesting. When creating the potion you can choose to enhance the negatives (make a poison) or the positives (make a potion), and to make it consumable or throwable. The only difference is you wouldn't be restricted to using only negative-enhanced potions (poisons) on weapons. For instance, you could apply a Cure Disease or Resist XYZ potion onto a weak weapon and hit someone with it to crudely help them. There'd be no functional difference between potions and poisons, the selection just dictates various scaling factors that get applied to individual effects when making it.
User avatar
AnyOldName3
Posts: 2666
Joined: 26 Nov 2015, 03:25

Re: Poisons mechanics in OpenMW

Post by AnyOldName3 »

There's also the Witcher-style possibility of poisons on blades lasting about 20 hits.

This is one of the cases where my preference for a fully-programmable GUI (which I don't think I've mentioned before) wins out over having things get pre-designed in-engine and just get reskinned by game data. It would allow arbitrary functions to do arbitrary things when things get clicked on, so if you wanted to make a mod to meddle with all of this, it would just involve providing an overriding version of the alchemy and inventory scripts (although for the latter we might need to break it into multiple chunks so that multiple mods could change different parts of different things without conflicting).

A less flexible way of doing things would be to allow scripts to register interest in being run when inventory items are clicked, and then a modder could create a script that checks that the item that's just been clicked on is a potion, and then check what its effects are, and then offer whichever popups and options it wanted. Another mod might, for example, want to fill your inventory with ants because you fell into an anthill, and then let you click the ants in your inventory to squash them, so it would check if the item was an ant and then add it to the stack of squashed ants which you could then drop.

IMHO, at least in the far future, the more behaviour we can shift into completely user-replaceable scripts, the better.
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: Poisons mechanics in OpenMW

Post by Chris »

AnyOldName3 wrote: 31 Jul 2018, 00:11 IMHO, at least in the far future, the more behaviour we can shift into completely user-replaceable scripts, the better.
Sure, but I don't think we want to wait for the far future before implementing some of these things. In a far future version where hard-coded functionality is superseded by scripted functionality, the old hard-coded functionality would be translated to scripts. It wouldn't be any different for this extra functionality since the scripts will be able to handle it (if they can't, there's an obvious problem).

It's kind of like OpenGL's fixed-function pipeline (hard-coded functionality) and programmable pipeline (scripts). Obviously being fully programmable is better, but that doesn't mean you can't enhance the fixed-function stuff until it becomes a suitable replacement. In reality, extending the fixed-function/hard-coded functionality is what leads to fully programmable/scripted functionality, as the engine itself is made to assume less and less about possible behavior until it can be exposed in a more usable way (a compilable script, instead of a bajillion state variables).
User avatar
AnyOldName3
Posts: 2666
Joined: 26 Nov 2015, 03:25

Re: Poisons mechanics in OpenMW

Post by AnyOldName3 »

The OpenGL fixed-function pipeline became a steaming hot pile of garbage as features were added to it and I think that's likely to happen to alchemy if we start dehardcoding anything non-trivial without making everything fully programmable. There are just too many interacting parts to get anything that has any flexibility without making something else clunky while still having all the options available at once.
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: Poisons mechanics in OpenMW

Post by Chris »

I wouldn't really call these things non-trivial, relatively speaking. Like mentioned, being able to make poisons is essentially just inverting a boolean check when calculating the strength of each effect. Applying potion effects to a weapon isn't too different from enchanting (with automatically removing the effects after the "charge" is used up). Making throwable potions wouldn't be too different from making enchanted throwing ammo.

Obviously we don't need to continuously extend fixed functionality until it gets parity with an initial scripting replacement, but if it's extended properly it shouldn't really get in the way since the "fixed functionality" needs to be there anyway for compatibility, and this is just making relatively minor changes to existing functionality.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Poisons mechanics in OpenMW

Post by Zini »

What other needs do you see that wouldn't be covered by a toggle switch? Especially for a stage1 design (low hanging fruit, allows the feature to be fitted easily into existing games), it seems to fit quite well to me; it would be nothing more than a boolean inversion when checking if effects are helpful or harmful in the potion creation code. And if there are other more invasive enhancements to be made later, it doesn't seem like it'd get in the way.
I don't know what else would be needed. Surely something will come up once we start taking the alchemy skill apart. That's why I suggested to not make piecemeal improvement, but to take a step back and look at the thing as a whole.

As for the switch, my problem here is that this will be another thing we would have to carry along into the de-hardcoding, even though mods/TCs may not want to use this feature. There may be outright better ways to do it, so eventually no content developer would want to use this button, which would make it dead weight that we can never drop.

Okay, I admit I am also biased against this feature. Its just one more abstract GUI element that has nothing to do with the game world. IMO this is bad game design. A design that is based on something that exists in the game world (e.g. use a different tool) would be more immersive and would create opportunities for more content (e,g,. a quest to get the poison making tool).
erretel
Posts: 14
Joined: 29 Jan 2018, 23:20

Re: Poisons mechanics in OpenMW

Post by erretel »

AnyOldName3 wrote: 31 Jul 2018, 00:11 This is one of the cases where my preference for a fully-programmable GUI (which I don't think I've mentioned before) wins out over having things get pre-designed in-engine and just get reskinned by game data. [...]
I basically agree with what you say.
Chris wrote: 30 Jul 2018, 23:39 I'm not sure I agree. If you want an in-depth system, you can't expect to do everything with just the press of a button. See also the various ideas on scaling and real-time altering of spells (rather than just buying different spells of a different pre-made intensity than one you already have, you can just cast what you already know at a different intensity with an associated change in cost). Obviously it should be made as unobtrusive to do as possible, but that doesn't necessarily mean every possible action can be brought down to a single button press.
Aside from extreme corner cases (e.g. you want to heal an ally by hitting him with a weapon coated with an healing potion, but you don't have any healing POISONS on you right now) I don't see how the system as a I describe it would have any less depth.
Saying that, though, I don't see why we couldn't make it so a quick key can apply a particular potion to a particular weapon. Select a potion for quick key, and it'll ask if you want to drink it or apply to weapon, and picking the latter will let you select a weapon. Then when you press the key it automatically applies the potion to the weapon if it doesn't have something applied already (or if you selected to drink it, it acts like it does now).
The question remain the same. Do you REALLY want to go through a menu every single time you use a potion?
Sounds like it'd be a maintenance nightmare for user-created poisons. As you increase in skill or get better equipment, your poisons would get better, meaning they won't stack with the other weaker poisons you've made (or similar poisons you've bought/looted). So you have to constantly swap them around as you run out of your various stacks. And if you only want to apply a particular poison once to a specific enemy, having to go into and out of the inventory to change it both before and after the hit would be annoying.
Fair point, although this issue is already present with the vanilla alchemy system.
Anyway, a solution could be so that when you create poisons, you create 5 or so of them at a time, but each only 20% as strong as an equivalent potion.
That's basically what I'm suggesting. When creating the potion you can choose to enhance the negatives (make a poison) or the positives (make a potion), and to make it consumable or throwable. The only difference is you wouldn't be restricted to using only negative-enhanced potions (poisons) on weapons. For instance, you could apply a Cure Disease or Resist XYZ potion onto a weak weapon and hit someone with it to crudely help them. There'd be no functional difference between potions and poisons, the selection just dictates various scaling factors that get applied to individual effects when making it.
The system as I proposed would still allow the player to create Cure Desease POISONS to use similarly as the example you made. Maybe I didn't make my proposition clear enough?
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: Poisons mechanics in OpenMW

Post by Chris »

erretel wrote: 31 Jul 2018, 16:29 The question remain the same. Do you REALLY want to go through a menu every single time you use a potion?
Who said you have to? The quick key method would still allow for instant-use potions, no questions asked upon pressing it, and dragging the potion onto the paperdoll will drink it, no questions asked. Absolutely no change there from how it is currently. Similarly, the quick key could be set to instantly apply a potion to a weapon (again, no questions asked when pressed). Setting up a quick key may require a couple more questions, but when setting up a quick key you're already knee-deep in menus anyway.
erretel
Posts: 14
Joined: 29 Jan 2018, 23:20

Re: Poisons mechanics in OpenMW

Post by erretel »

Chris wrote: 31 Jul 2018, 19:11 Who said you have to? The quick key method would still allow for instant-use potions, no questions asked upon pressing it, and dragging the potion onto the paperdoll will drink it, no questions asked. Absolutely no change there from how it is currently. Similarly, the quick key could be set to instantly apply a potion to a weapon (again, no questions asked when pressed). Setting up a quick key may require a couple more questions, but when setting up a quick key you're already knee-deep in menus anyway.
Eh I guess it seem fine if you put it like that. I'm not really sold on the the drag-and-drop on weapons to poison them, and I'm still fascinated by the equippable poisons, but overall it seems to be ok. Just please don't introduce requiring bottle to create poisons or new alchemical effects, let the players do everything through the alchemy menu.
Post Reply