CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.08k stars 4.1k forks source link

Skill gain changes: "Practice" action #28283

Closed I-am-Erk closed 2 years ago

I-am-Erk commented 5 years ago

Is your feature request related to a problem? Please describe.
Currently there are three ways to gain skills:

  1. Naturally, by doing things associated with that skill.
  2. By reading books
  3. By doing the same action over and over again until you get repetitive motion strain.

Of these, 1 is fun, but imprecise and slow. 2 is all right, but becomes unrealistic and monotonous and requires that you have the right books on hand. 3 is just... the worst. This plan aims to reduce 3. There is more to be done to alter 1 and 2, but this is a good start.

Describe the solution you'd like
This is based on an old system devised by Kevin's fevered mind half a decade ago. https://discourse.cataclysmdda.org/t/practice-makes-perfect/3509?u=kevin.granade I am going to harvest its organs to create a project pathway.

This is still a WIP suggestion/issue, it's my bedtime and I will probably expand it after sleep.

Basically, we create a tab in the Crafting menu for "Practice" actions. These function like a fusion between recipes and books. Like recipes, they have prerequisites - tools and materials. However, unlike recipes, they don't use up most of these tools and materials. Like recipes, they can be learned from books. Unlike recipes, they may burn up stamina, or focus, or raise hunger, depending on the action. There would be multiple types of practice available for each skill, with different tool requirements.

An example: Breadboard projects: Electronics practice Focus cost: 1/minute Tools required: Breadboard, copper wire, battery, amplifier circuit, power supply, voltmeter. Ingredients required: Uses 1 battery per hour of practice. Enjoyability: 0 Level: Any* (there might be different versions of this with different component requirements for different xp levels)

Knife skills: Cooking practice Focus cost: 1/minute Tools required: Knife, nearby table/counter, a vegetable or fruit. note: The food isn't used up, under the assumption that whatever you chop can then be used in your cooking recipes or whatever. Enjoyability: 0 Min level: 3 Max level: 7

Whittling: Fabrication practice Focus cost: 0.5/hour Tools required: Knife, heavy stick Ingredients required: turns 1 heavy stick into wood splinters every 2 hours. Enjoyability: 1 Min level: 0 Max level: 3

Tae Kwon Do Forms: Unarmed practice Focus cost: 0.5/hour Stamina/hunger cost: moderate Tools required: Gi, practice mat Enjoyability: 1 Min level: 2 Max level: 6

Tae Kwon Do Sparring: Unarmed practice Focus cost: 0.5/hour Stamina/hunger cost: high Tools required: Gi, practice mat, nearby friendly NPC with gi Enjoyability: 2 Min level: 2 Max level: 10

Additional context
For the time being, XP gain would be just a gain per minute of practice or whatever. In time, this would be merged with another system - the deprecation of XP in favour of "hours practiced". This would standardize XP for skills to instead be represented, most of the time, by 'time spent doing that skill'. Spending an hour and a half crafting rope would be the same fabrication XP as spending an hour and a half doing fabrication practice.

I'm not personally sold on Kevin's 10,000 hours model from the originating post, but I like the progression in general and the idea of using hours in place of XP.

Going forward, in a future issue suggestion, books would go from being something you read for XP, to being something you need to have on hand to do appropriate practice. High level practice actions in particular would require an appropriately high level book around as a reference while you were doing them. Practice would become a fusion of the current reading and crafting models.

LostGoldfish commented 5 years ago

Right now you can help read with NPC to help them increase their skills, will this slow their skill up as well? its already slow and takes too much time as it is.

Will be great if they can read or practice on their own while you do something else.

Zireael07 commented 5 years ago

I believe "practice" has been suggested here before, did you run a search for this word?

Photoloss commented 5 years ago

Can these be made available to NPCs as well please? I've already mentioned it elsewhere but getting stuck on faction camp setup just because your NPC cannot train to fab2 and you cannot help them with your own fab10 sucks!

However, unlike recipes, they don't use up most of these tools and materials.

This sounds a little too generous, "consumable" components such as food, glue, solder as well as some of the other materials should be lost (e.g. you cut a rag or two into smaller patches for tailoring practice). For food items if possible I'd suggest advancing the spoilage timer at an accelerated rate as poorly cut/half-cooked ingredients can still be used but most forms of processing greatly reduce shelf life (loss of shells, greater surface area exposed from cutting, chemical changes induced by heat)

I would like a general rework of "continuous" crafting, pausing/resuming and batch options first though as wasting a whole tube of superglue on 2min of fab practice is stupid and so is "practising" fencing for two hours only to be interrupted by zombies, stabbing them with your practice rapier and returning to all your "practice" progress being lost. If skill increases continuously but recipe costs remain back-loaded you can game the system by aborting early, via a caged non-(I)gnored zombie at worst.

Tools required: Gi

I know it fits thematically but can we please keep the requirements practical rather than introduce even more obscure RNG gates? Gis not being craftable is a separate problem but even if they were you do not actually need specific clothing except for a few grappling/choking moves. Sparring partners would need some protective gear especially for armed martial arts though.

Vasyan2006 commented 5 years ago

Everyday practicing is fine for combat skills, because this is how people improve skills irl. But for the crafting it will be another form of "craft 1000 leather helmets and now you can create daedric armor". Starting small is common mentoring practice, when master gives you different repetitive tasks based on your current skill, but it is not acceptable without a mentor and with limited time and resources.
With current system it is required to grind skill by doing useless things and at certain level it will allow to craft useful item. Meh.

It was proposed few times (search on the forum) to separate crafting skills into theory and practice. You can improve theory by reading books and it will open new recipes. And it will be possible to start crafting full plate armor even if character never used any tool before. But this craft will definitely fail and the armor (even if it will be created) will be heavily damaged and practically unusable. So instead of soldering iron pipe again and again your character will do something meaningful to improve practical skills.

For example, a starting character with zero skills will have access to all recepies up to difficulty 4. It will increase practical skill to 4 and possibly improve theory at very slow rate up to level 2. And to craft more complicated items it will require to find and read a book, ie improve theoretical skill.

For combat skills theory is less important, but reading "How to shoot a gun" or military manuals will increase practice leveling rate up to level 2 or 4. So books are not required, but very helpful in the beginning. Something like that.

Photoloss commented 5 years ago

Starting small is common mentoring practice, when master gives you different repetitive tasks based on your current skill, but it is not acceptable without a mentor and with limited time and resources.

Why would self-teaching be any different except for not knowing the best teaching/learning practices and thus being less efficient?

So instead of soldering iron pipe again and again your character will do something meaningful to improve practical skills.

I think the idea is to merely abstract this into the generic "practice". So that breadboard tinkering could be trying to tune an oscillator circuit to fix some radio equipment or it could be optimising peak current in an EMP, but the player need not be told those details unless skill is saved for each individual item/recipe.

For example, a starting character with zero skills will have access to all recepies up to difficulty 4. It will increase practical skill to 4 and possibly improve theory at very slow rate up to level 2. And to craft more complicated items it will require to find and read a book, ie improve theoretical skill.

As far as implementation goes it would be far simpler to make some skillbooks "craftable" so you can bootstrap more advanced practising methods. You won't derive Maxwell's equations from some burnt copper wire in a shed but being able to solder and operate a multimeter you can figure out how transistors work even if you've only used resistors, capacitors and diodes before. Then it's one trip down to the Minecraft forum and you're ready to build your first computer ;)

Vasyan2006 commented 5 years ago

Why would self-teaching be any different except for not knowing the best teaching/learning practices and thus being less efficient?

Why medieval blacksmiths was unable to create high quality steel despite having very high practical skill? Because they lack the knowledge how to do it. I am not saying experimenting and self teaching is not possible, but it is LESS efficient. So spend hundreds of years on self education or find a book with all answers.

optimising peak current in an EMP

Only if you know what is EMP and why it damages robots (have high theory skill).

You won't derive Maxwell's equations from some burnt copper wire in a shed but being able to solder and operate a multimeter you can figure out how transistors work

Without "What's a transistor" book these experiments will be "tie up this thingy to that thingy with shiny metal thread until the lamp will do blinky". Breadboard tinkering and new practicing action will increase practical skill faster and with less keypressing then repetitious crafting-disassembling, but only if you have base theory knowledge for that.

From gameplay perspective new practicing action by itself will not change any mechanic, it will only replace skill grind with faster skill grind. But adding theory skills from books will make books less op as they will not allow to craft anything without practice.

From lore perspective it is "lost ancient technology" trope, when repairing is performed by replacing possibly broken part with another part which looks the same, mostly because nobody know how it actually works.

I-am-Erk commented 5 years ago

NPCs need to be able to self-teach, but I don't think that is part of this specific issue. If someone makes an issue for it I'll add it to 0.E candidates

I-am-Erk commented 5 years ago

Photoloss: I wouldn't worry too much about specific component requirements at this phase, these are just sample recipes. Gi might be changed to more vague requirements, or maybe clothing below a certain encumbrance with at least a certain bash protection. Expendibles would be something that need balancing.

Vasyan: books would eventually be part of the process as mentioned in the last paragraph. For now as a basic thing though, this is basically meant to completely replace the current practice of craftng and disassembling things, giving the same effect without the key presses. In essence that's all it is, at this basic stage... That, and a starting point for further redesign of skill gain. Remember, you still need to learn practice actions from a book, so most of your concerns don't make a lot of sense to me.

Photoloss commented 5 years ago

Without "What's a transistor" book these experiments will be "tie up this thingy to that thingy with shiny metal thread until the lamp will do blinky". Breadboard tinkering and new practicing action will increase practical skill faster and with less keypressing then repetitious crafting-disassembling, but only if you have base theory knowledge for that.

That's a bit excessive, people with no programming experience whatsoever can still do phenomenal things with Minecraft's redstone logic. I never meant to replace books entirely just that "study and evaluation of experience" recipes would simulate the (slow and limited) gain of theoretical understanding through practice well enough. So basically how you might be able to attach your idea to this proposal with a 30min JSON mod.

I wouldn't worry too much about specific component requirements at this phase, these are just sample recipes. Gi might be changed to more vague requirements, or maybe clothing below a certain encumbrance with at least a certain bash protection. Expendibles would be something that need balancing.

Yeah I was more trying to make a point regarding the general design in terms of "how it's traditionally done" versus "what is actually required". Since the main goal is to eliminate player tedium the practice materials need to be fairly broad, for another example you could also practice your whittling on 2x4s which is a big deal for city starts.

Night-Pryanik commented 5 years ago

Unlike recipes, they may burn up stamina, or focus, or raise hunger, depending on the action.

The recipes should get this too. You know, ten hours of fabricating your nodachi should make you tired and hungry.

I-am-Erk commented 5 years ago

It does make you hungry, but yes I agree.

kevingranade commented 3 years ago

This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there:

https://discourse.cataclysmdda.org/t/a-simple-idea-on-skill-progression-involving-both-theory-and-practice/25462/2

PaulBlay commented 3 years ago

Computing is a hard skill to increase if you don't find all of the right books. Right now I have Computers skill 2 but no way to increase it to 3 (at which point I will again have a book to read). If you have a working e-ink tablet PC and some computing skill it would be nice if you could practice to increase somewhat beyond your current 'book only' level.