-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proficiencies. #31610
Comments
In addition to the JSON editing you pointed out, this would require some UI work to ensure that the character sheet doesn't get cluttered and difficult to use. |
I think you'd move the cursor over a skill to see a list of what proficiencies you have in that skill, or have partly learned and maybe press a key like "P" to examine the individual proficiencies and their descriptions. That or we split the @ menu into tabs, which might be just about due |
Crafting currently increments time with a step of 5 minutes and takes 1-2 seconds real time per tick on average. That's ~15 real seconds for an hour of activity. 9000 hours of crafting is about 47 REAL HOURS OF PLAYTIME. And, in fact, a lot more than that, because the player has to manually answer hunger/thirst/sleep prompts. This is simply unreasonable. I understand it's tempting to implement all these long-taking actions to make the game more realistic and whatnot, but unless there are auto-eat, auto-drink, auto-sleep mechanisms and the game can process 1 game week in a minute, it's simply torturing players by forcing them to stare at the screen for hours without doing anything interesting. |
#30415 auto eat and drink zones should be pretty trivial to set up apparently. Auto sleep shouldn't be too much harder. Practice actions will help to further automate it. There are ways to further speed up automatic time passage, like allowing line of sight calculations to be lazier... These things are all planned at this point, and not really germaine to the subject of proficiencies |
Well, you kinda propose 2 things at once: proficiencies and exponential practice time requirements for gaining skill levels. I have no issue and, in fact, welcome the first one, but the second is deeply flawed and I can list a lot of arguments why it's not a great idea. Lazier LoS calculations are excellent, but I doubt little optimizations like that can speed the game from 1 second per 5 minutes to 1 second per day. |
What lazier LoS are you talking about @Amoebka ? |
1 second per day is never happening, obviously, nor should it. One of the underscored points of this is to make more things happen within a single level of a skill, so that lateral learning is a bigger thing rather than just pushing to the next level. We're not getting around slower leveling of skills; it's pretty much a foregone conclusion, I'm just mentioning it here for the sake of suggesting a proficiency level up speed in that context. |
This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there: https://discourse.cataclysmdda.org/t/butchering-should-be-its-own-skill/24086/22 |
I don't know if this is off topic, or exactly how the process of built in mod creation works, but it might be a good idea to make a mod similar to stats through skills that affects stats through proficiencies, as proficiencies become more functional. Also adding proficiencies for martial arts would probably be a very good idea, perhaps some professions can know a martial art, but not have the body aspect (the proficiency) from the start of the game, while others such as the black belt have max proficiency in whatever martial art they took from the start of the game. |
I feel proficiencies should have a more binary nature to them, representing substantial (and critical!) practice and experience, and thus reducing failure consequences/chances, improving success consequences/chances, etc. Moreover, I can't shake the feel that the most elegant solution would be to simply divide up the skills and create dependencies, defaults and bonuses between them. Then adding sparse binary proficiencies on top of that, to represent a degree (or several degrees) of critical practical experience in certain skills, not reachable without actual attempts and practical training. Lastly, I'm not sure there's even a definite need of proficiencies at all, provided sufficiently specialized skills are added, like my suggestion above. Piloting could be its own skill (hard to learn and harder to train!), and glassblowing could be too, if it's not to be gated by recipe. Weaponsmithing and armorsmithing are realistically very different from regular blacksmithing, and practically disciplines in their own right. In my opinion they would work both as proficiencies based on "Smithing" or Blacksmithing, or as skills in their own right, with defaults ties up with any related skill. |
As more and more proficiencies get added, this system (in it's current form) feels worse and worse to me. Sure, the concept of "you gotta know how to Currently that is not the case. Take the following example: ExampleThat recipe presumable takes one hundred days of pure crafting time to complete (season is left at 91 days). That is fricken insane. Yes, you don't know cobbling, yes you don't know much about waterproofing, yes you have difficulty with those advanced materials, and yes, you don't really know how to treat leather. Even if you are absolutely clueless about the proficiencies... It should not take more than a few days (of 8h crafting) at most... and maybe eat some materials and maybe result in a damaged item (due to lack of proficiency). RantThis feels less like a game system (remember - this is supposed to be fun) and more like someone taking the mickey by making things effectively unattainable. SuggestionsThis clearly needs work. A lot of work.
|
You are choosing the most top tier items in the game, and looking at how they are to make if you have no idea how to do any of the necessary skills. It takes a very long time, quite intentionally. If you want to learn cobbling, leatherworking, plastic molding, and waterproofing, you should do that first and then try to use those skills to make a specialized piece of gear better than anything you could have found pre-cataclysm, including milspec stuff. If you look at the time to do something like knit a sweater, or even make a pair of boots for a character who doesn't know how to make boots or work with leather, the timeframes are much more sane. Semi unrelated: Survivor gear performs too well to be upcycled clothing. That is a conversation outside proficiencies really, but I am doing some of the adjustments alongside each other so it's fair game to bring it up here. Either the survivor gear needs a nerf or it needs to be much harder to make to justify what it is. I'm going a bit more towards the latter presently. Edit: Not to say, by the way, that my timeframes are perfect at the moment. Just that you've based your analysis on a pretty bad example. |
I am aware that I'm arguing with a double edge case here. I specifically looked for the item with the highest duration penalty. And I'm only seeing it because it's a migrated savegame where the character did all the "simple" stuff when there were no proficiencies in yet.
I am in absolute agreement with you here: If there are one or two proficiencies involved, the system is (mostly) sane. But if there are three or four proficiencies at play, then the penalties just keep multiplying with each other. And that is no longer sane. I think the penalty aggregation needs tweaking here. Anything above a composite multiplier of 20x feels absolutely insane, above 15x is still really bad, and above 10x is "merely" aggravating. Ultimately the system should be tweaked so that the absolutely hardest item with the absolute shittiest skills should end up at (or just beyond) the "really really bad" but not yet ludicrous threshold (which to me felt like a 15x composite multiplier). But then, maybe such "under" proficiency should get a penalty to material loss chance instead. I'll see if I cant crunch some numbers here to see if I can come up with some formula suggestions. |
What you're facing here is what I'd call a soft cap, and that too is intended. After a point, you can't really make survivor boots. You don't know how. If you sit down to make them, you'll just fail and you'll spend more time goofing off reinventing the wheel than you would if you started with something more skill appropriate and worked your way up. The time multipliers aren't the big one, your failure rate on an item like that is going to make it impossible regardless. We could add special code to make a hard cap saying "after x time and failure multiplier just hide the recipe", but that's just a UI thing. Personally I'd rather have the option to try, because there are going to be edge cases where the attempt is worth it*, and a hard cap will reduce that freedom. *For example, you could gather the parts, assemble them to an in progress item, and then stop. Then you have them gathered up and won't accidentally use them for something else while you learn the needed proficiencies. Edit to add: |
Did some number crunching as promised - I think adding the penalties (not multiplying them) is the way to go. Cumulative penalties top out at 13x (as opposed to 108x) while lower numbers stay significantly closer: https://gist.github.com/DoctorVanGogh/bd5a1fa2f3869748dee40e563e42f219 PowerShell script to grab results: https://gist.github.com/DoctorVanGogh/b236963ec9e0e529fcb385c334607bc6 |
Unfortunately I think adding the penalties is quite a bit too soft. Something that takes an experienced professional a half a week of full-time work shouldn't be doable in only a month or two for someone without the foggiest clue where to even start. We could, at some point, look into diminishing returns, so each subsequent proficiency has a lessened penalty to time, but I suspect it will remain this way for stable, because it is pretty much working as intended with just some fine tuning at the extreme end |
See #44302 for my suggestion of an optional "off switch". |
Yeah, toggling a feature like this not happening, as usual. Progress marches on. If people turn things off because they're in progress, they will never be tested properly. On the other hand, your passive aggressive approach to me discussing this with you, considering options, and not immediately agreeing has made it so that now I'm unlikely to listen to you in the future. Good job? |
I am sorry Erk, that you see this as a passive aggressive attack on you - it was not meant as such. This was me putting my code where my mouth is: If I claim that this needs a switch, then I may better damn well be willing to at least try adding that one. And since you seem to be the driving (or at least most visible) developer behind that feature here, I don't really expect you to go all "Oh gosh, yes, of course! That random person on the internet who jumped out of that bush 2 days ago is right, I will immediately change my plans". Thus me trying to add an option for some tweaked things while you stuff in your system as you designed. I realize that the mere offer of an alternative system somewhat steps on your toes here. But I would much rather have tried offering an alternate solution than keep on stomping my foot and going "But I'm riiiiiiiiiiiiight! You should change the default system to what IIIIIIII want." I was - at least until now - under the impression that options & configurability were the preferred way for this project. Well - seems Kevin thinks otherwise, so my whole argument is probably moot 🤷 |
Actually the well-advised decision of not allowing step-back options dates a long back in history of the project. Requests for toggle-off bail-out options emerged, emerge and will emerge after almost every major feature or shift of paradigms in the game development (and by paradigms I mean entering yet another tier of it's complexity). I can imagine that if it was an open option, the need for constant support of ever-branching out superimposing "nerf" options would hamper further development. And if "the mainline" features is what you deliberately design, they why even stray off the path by adding a back door. It would be like saying "hey, this feature completes a milestone in a development goal, but lets leave the back door just in case". One year after and you'll have a house of doors to manage and you'd be adding more doors, to allow other doors to open, in order for them to not get into each other's way, as they start to intertwine. And you end up with inability to obsolete old code (which you are in fact no longer interested in as you developed a new milestone and you want to follow that path) as it supports one of the branches, and now any change to that area and you have two competing branches of codes to update in a single project, and you need to follow every path and interaction on both branches, and if they too branch out, then you end up in a Mandelbrot fractal hell. "What about a back door for mods?" is still not valid in this scope, as a back door is always a back door and falls under the same scrutiny traps. Options & configurability yes, but along the mainline path of development. You cannot expect to put an equal sign between options & configurability and de facto carrying the baggage of the previous obsoleted features. For that previous game versions are supplied, so one can roll back to the past at the cost of forsaking the future. But you can't have the past and the future in one cake, as you cannot have a cake and eat the cake. Schrodinger's cat option wouldn't work here imho. |
Yeah, the option (hah) is between maintainability hell by adding an infinite variety of options, or adding options for stuff and then just stripping them out when something related to them changes so that they don't need to be maintained. |
Here's my reasoning on why I think this thing needs options. Some of the maybe temporarily, some maybe permanently: 1. SynopsisThe in development Proficiencies system is a new[1] game mechanic aimed at adding granularity in player progression, activities & playthrough differentiation. 1.1 Proposed SystemThe system was proposed as splitting up tasks into specific knowledge domains where lack of knowledge increases time required to complete the task (or allow otherwise completely unattainable tasks to be executed). 1.2 Current implementationThe current (partial) implementation turned out to be somewhat different. So far tailoring is the first skill which has gotten its initial pass at specific knowledge domains. It has recieved ten proficiencies with several interdependencies and prerequisites: 2. Percieved issues2.1 Issues with other game systems & conceptsThe new system muddles and conflicts with the existing concepts of recipe knowledge & learning and skill/recipe books. So far a player either knew a recipe (memorized) or had a recipe book which allowed them to perform the corresponding crafting activity. With this new proficiencies system, that knowledge suddenly becomes arbitrary. Skill gain may magically pop a new recipe into the players mind, but will not give any knowldge on the component tasks required to achieve the end result: "You know a nuclear reactor can be built out of some belt buckles, shoelaces and a piece of gum - you just don't know how". 2.2. Issues with the system itselfAs stated in 1.2 the new system can create very large composite penalties due to the stacking of multiple values all reinforcing each other. The current absolute edge case can lead to an activity time of over 100 pure crafting days. Only after 5 of those days (or 15 days of 8h shifts) would the character gain any proficiency knowledge - but with that much time spent carfting they should immediately jump to 100% in that proficiency, alas, the task would not recalculate the required duration. Almost perfect proficiency is treated as no proficiency at all. While the system records like a float, it acts like a boolean. Proficiency is either there or not. Also I'm seeing some scope creep here. What initially suggested about three proficiencies per skill turned into ten for the first skill with a serious pass. If this pattern keeps up, the system will end up with well above 50 proficiencies. Which will not be an easy thing for the game to display or players to keep track of. 3. Some thoughts & ideas3.1 Short term
3.2 Long term
[1] [2]
[3] See "Multiplicative" column here [4] See "docs/IN_REPO_MODS.md", "Development mods"
|
So as I said, you've pretty much used up your good will after insulting me for listening but not acquiescing. However, I will briefly address your misconceptions here.
|
"i see concerns with the design that could be improved" is a valid argument. erk was even willing to discuss it with you for a time, before you ramped up the hostility. "i see concerns so i need to be able to turn off the entire work in progress system" is not a valid argument. this will achieve nothing. every time we've had a work in progress system that was in active development and let people turn it off, it ended up partitioning players and developers, and resulted in the system taking much longer to get complete. what you asked for will make development more difficult, slow adoption of the mechanic, slow completion of the mechanic, and fragmenting people playing the game. this is why kevin said "no, not interested". it's a "hard no" from the team because it's an inherently bad plan, and "more choices is always better" is an axiom that the team in general rejects. i urge you to reconsider your antagonistic approach to interacting with the team, both displayed in this issue and in your pull request. if you continue to behave in this fashion, don't be surprised if you're asked not to participate further. |
Wrapping up some issues with your argument that weren't directly addressed.
This is irrelevant, this isn't some kind of formal design-by committee thing where a proposal is riddled with compromises before being accepted and is then writ in stone, the implementation evolves continuously as it's being implemented and then afterwards. I.e. the original proposal is not a source of truth, we are.
There is no conflict, it's an explicit goal of adding proficiencies to separate knowing "what" to make and the details of "how" to make it. It's also not arbitrary, recipes represent knowing the sequence of steps to make something, proficiencies represent knowing how to execute those steps, skills represent ability to execute those steps.
This is the primary point of contention. You've been told several times that this is by design and fully intended. There's no way around it, the goal of this is that certain crafts are practically impossible unless you have the requisite expertise. At the same time we're building facilities into the system for you to gain some of that expertise as you go.
You are entirely missing the point here, if you see, "this will take you 1,000 hours to complete", the sensible thing to do is not to just fire it off and grind your way through it, the sensible thing is to do things with lower time investment that will whittle down those penalties until it's achievable. "It's not fun to do it this way" is only a reasonable statement if there are no better alternatives. If grinding away at a huge craft were both boring and highly optimal, you might have a point, but as it is it's just a bad option, so just don't do it.
This isn't completely out of the question, but at the same time even encountering this is a symptom of targeting the largest, most complex crafts with little to no preparation in the first place. The reality is people are told IRL to NEVER do things this way, because it's a terrible way to learn due to the infrequency of feedback and compounding errors. |
@I-am-Erk I would challenge you to point out where the heck I allegedly insulted you. I am pretty sure I did not throw one single iota of an insult at you. I am also not going to continue to argue this. I had been accused of not having made a case why certain aspect were excessive. That is my case (together with some other side observations about the system). If the delays are not a mere by-product of the added complexity but one of - if not the main - reason for the complexity.... I would not expect those to change that much. Also... several people seems to be under the impression that I am particularly invested in the "off" option for the system - which might explain why my points are viewed as so antagonistic - I am not. While that was included in my PR it was merely what felt like a natural extension of my tweaking of the aggregation logic. (Because that conceptually started out as a multi-select option of "default", "more lenient"... and "off" felt like the natural third option to that). |
This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there: https://discourse.cataclysmdda.org/t/what-are-proficiencies-trying-to-model/24808/2 |
I've talked about this to others but the proficiency system definitely has potential, it helps mitigate the qualitative transition from chicken fodder to strong survivor that'd you'd expect would take a lot of time and experience. Obviously, it is still flawed, mostly because of the monotony of standing there leveling X proficiency especially since it is only on a few recipes. From my perspective the system should be tweaked in the following ways:
|
I know this has been discussed already, but I still want to make a comment from a gameplay perspective. Suppose the survivor wants to make an item "I" with normal crafting time "T". Suppose this item requires three proficiencies, with multipliers M1, M2, M3. The current formula says that the crafting time is T*M1*M2*M3. Clearly, trying to craft "I" directly is not a reasonable strategy. Instead the survivor will find items I1, I2, I3, such that I1 requires M1 alone, etc. Let's say that the crafting times for the items are T1, T2, T3, the recipes are reversible, and the the deconstruct time is at most the construct time. Then, by learning M1 from constructing and deconstucting T1 etc, all three proficiencies can be learned in time 2*(T1*M1+T2*M2+T3*M3), and then the total crafting time for the goal item I is T+2*(T1*M1+T2*M2+T3*M3). Assuming that T1, T2, T3 are at most T, the total time the survivor should take is at most Would it be possible to make that the formula? Currently any player can craft the item "I" with no extra use of resources in time at most 3T(M1+M2+M3), but the process is quite convoluted. Perhaps I am missing something. |
I just wanted to say that I'm completely new to GitHub, so I'm terribly sorry if it's wrong of me to write my thoughts here. I hope no one feels it as a slight or affront to the process in any manner, nor that I'm making a horrible faux pas by writing this here.. Hmm, I have two chief thoughts on this entire idea/system. Firstly,I'm wondering if there's a rather sizeable choice the dev team needs to consider here soon:
Here's my personal take on this:
Secondly,Given that the proposed proficiency system should continue in its current direction (more or less option 1 in my list above), the framework should perhaps enable proficiencies to work in a more generic trait-like manner when involving skill use. Under, I've tried to use various examples to illustrate the particular respective need for a proficiency to affect that certain aspect of skill use. Having or lacking a proficiency should affect one or more of the following:
Again, sorry for the large amount of text, and possible error in posting it here. I just feel that this is major subject that will impact the game to a sizeable extent down the line. |
One of the underlying problems if the system as it exists before proficiencies is that it doesn't resemble the process of learning how to do things in any meaningful way. |
for electronics might I suggest microsoldering as a proficiency, the curcuit boards that do more complex things are likely using more modern chips. |
This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there: |
This issue has been mentioned on Cataclysm: Dark Days Ahead. There might be relevant details there: https://discourse.cataclysmdda.org/t/will-there-be-proficiency-books/26222/2 |
Is your feature request related to a problem? Please describe.
Skill gain is both too fast and too general currently. Building a house teaches you what you need to take up glassblowing, and within a short time you can master every skill in the game.
Describe the solution you'd like
A proficiency system would allow skills to be broken up into different subspecialties, with crossover between related fields handled by overall skill level. It would also provide something to learn and advance in with slower level progression: yeah, fabrication 8 might take three months of game time, but on the way you can learn all kinds of different proficiencies, so you won't feel stagnant.
A proficiency entry in JSON might look like this:
If a recipe/action requires two proficiencies and the player is not proficient in either, use the harshest penalty of the two. If the player is proficient in one, half the penalty of the other.
XP: all skill XP is expressed in hours of learning here, although the game should measure it in seconds. For crafting skills this is simply the time spent crafting/doing actions related to the skill. Combat skills will need a different conversion that I'm ignoring at the moment.
L1 5 hours
L2 15 hours (20 total)
L3 100 hours (120 total)
L4 200 hours (320 total)
L5 350 hours (670 total)
L6 600 hours (1270 total)
L7 1000 hours (2270 total)
L8 1500 hours (3770 total)
L9 2200 hours (5970 total)
L10 3000 hours (8970 total)
To learn a new proficiency requires an amount of XP equal to (learn_level)² in hours, spent using that specific proficiency.
You start the game with a number of proficiencies equal to the number of skill points you've invested.
List of some suggested skills and proficiencies (skipping combat for now)
Computers
-programming
-hacking
Cooking
-canning
-baking
Electronics
-hotwiring
Fabrication
-carpentry
-knapping
-pottery
-glassmaking
Health (formerly first aid)
-wound care
-suturing
-soft tissue infection
--sepsis
-anatomy
Mechanics
-welding
-lockpicking
Science
-basic chemistry
--biochemistry
--basic spectrometry (req basic chem or basic physics)
---mass spectrometry
---nuclear magnetic resonance
-basic physics
Speech
-barter
-persuasion
-intimidation
Survival
-animal trapping
-booby traps
-military traps
-makeshift shelters
-plant identification
the overall list would be a dependency tree, this is just to give a quick idea.
Describe alternatives you've considered
Splitting skills up is inelegant for crossover... but a single master crafting skill with subskills for each crafting type is conceivable (fabrication - blacksmithing).much like marksmanship - archery. I don't think this is easier or better than the boolean "knows blacksmithing".
Additional context
This would require lots of json editing.
This post not done.
The text was updated successfully, but these errors were encountered: