Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign up[CR] Skill Progression Using A Real World System #28697
Comments
This comment has been minimized.
This comment has been minimized.
|
That's interesting, but it doesn't provide a model for skill training, it just lists a bunch of interrelated elements of it. |
This comment has been minimized.
This comment has been minimized.
|
That's exactly what it provides. A model for skill training. Are we reading the same thing? What I mean to say is that this model uses some language so similar to C:DDA that it easily lends itself to outlining it in the terms we use everyday. For instance, "new physical abilities" could easily be labeled "mutations" or "skills", depending on context. (Which in this case is skills.) Okay, I can see that some of the professional athletic language he uses is getting in the way of understanding the heart of the system, so let me break it down further. |
This comment has been minimized.
This comment has been minimized.
|
Each of these components are interrelated, like the members of a class. And at the heart of these components is Total Performance Ability aka Skill Progression. I've relabeled some things to better illustrate my thoughts, and used [] wherever I changed the source. The original author readily alternates between athletes and soldiers, so I'll use similar terms whenever possible. *_mpd relates to basic motor patterns, such as using computers or performing basic sewing tasks. At this level things require very little from the "energy system" mentioned in *_esd, and this component is summarized perfectly in the second sentence. This component
*_bmd requires *_mpd and relates to finer coordination, such as hitting a baseball with a bat. In fact, this component describes the very essence of learning new skills.
(The next sentence also touches on stat gain, which is connected to this system, but not part of this discussion.)
In essence, did the action require increased external resistance, speed of execution or both? If yes, then increase related skills. *_esd is energy system development, such as tasks that require higher physical ability and energy, and his linked energy systems article begins:
Furthermore, the very first paragraph of that article describes in-a-nutshell how the body converts food into energy, which harmonizes nicely with the recently mainlined nutrition system. The next sentence describes how *_esd
Energy transformed into action.
*_gsd is the basis for fundamental movement skills (walking, swimming, cycling, driving, etc.) I believe you recently used the phrase "quick to return" when discussing how skill "rust" would rebound faster for certain skills.
Award winning performance is one step below Olympic Class in my mind. And then, on skill return:
*_tsd is the basis for specific skill development:
*_npd relates to current skill level and intelligence, and utilizes morale and focus. Cognitive and Emotional should be self-explanatory by now. I'll stop here and let things simmer. |
This comment has been minimized.
This comment has been minimized.
|
It's nice that you broke all this down in simpler terms, but none of that provides any information on how to implement any of this in a game. As an example, a survivor who has read all of 101 Wrestling Moves goes out and gets in an unarmed fight with a zombie and wins with minimal injuries. What does the HPD model indicate about how his skills should improve? As a second example, a survivor who has read all of Under the Hood goes out and fixes a badly damage mini-fridge in an RV. What does the HPD model indicate about how his skills should improve? |
This comment has been minimized.
This comment has been minimized.
Are you certain? Wasn't a basic understanding of nutrition required by @KorGgenT to implement his changes to that system? And, from what I understand, nutrition will continue grow and improve based on that understanding.
Are monsters rated by danger/difficulty in the source? If not, then we use length of combat and energy expended (and possibly hp loss) to determine skill gain. Tougher battles receive higher skill gain, but short battles with weak opponents and at high skill levels receive very little. Obviously, this is a very simplified explanation and doesn't include every factor involved.
See my notes on bmd/esd. Current skill level would be compared to the required skill level, and that result would be passed to bmd to determine load. Then, load would be modified by the time and energy expended to determine skill gain. Tougher tasks receive higher gain. Of course, all of this is modified by npd based on the elements it involves. |
This comment has been minimized.
This comment has been minimized.
|
So, there's an element you're missing. I worked closely with KorGgenT on the nutrition system, and there are three steps:
This is a good step towards (1), but it doesn't include any of (2). Saying "tougher battles receive higher skill gain", or even "we use length of combat and energy expended (and possibly hp loss) to determine skill gain" isn't an algorithm, or even a design, it's a statement of objective. How do you perceive these moving parts interacting with one another, not in vague terms but in crunchy mechanics? |
This comment has been minimized.
This comment has been minimized.
|
There's an element that you're missing. Moving from (1) to (2) isn't a realistic expectation for the majority of the player base. But, I'm willing to meet someone halfway, and if someone else does likewise, then we can bridge the gap between (1) and (2) and move forward. This is where the discussion lives or dies. Perhaps someone familiar with the source can share what they see lacking in the current skill progression, or ask questions about functions or equations they've already seen at work in the game? Then, I can begin to translate those into crunchy mechanics. In fact, anyone could provide me with the necessary language (through this discussion) to express this in terms they understand. Many others have had their mind in that space for a much greater length of time than us plebs. (By that space, I'm speaking of the code base.) Thanks again @mlangsdorf for the earlier examples. To be quite blunt, I'm happy with skill progression as it stands, but I saw a need expressed for something more robust and fulfilled it. In fact, if anyone gains insight or inspiration from what I've already shared, then I've surpassed my original goal. This isn't a WIP or a PR, but it could become one. A win-win for everyone involved. With that said, if this discussion continues, then I'm likely to expend more time and energy into putting forth an algorithm to express this model using elements already present in the source or adding to them where necessary, as I learn them from participants. In truth, there might already be an algorithm or equation on the Internet to express this model, but it's under another name, and using ideas from this discussion we can discover it. The beauty of this model is that it can work for physical and mental skill progression, although it was originally intended for physical skills. (Thanks goes to the original Author for using terms that made sense for both!) Thanks to everyone for their precious time and energy. |
This comment has been minimized.
This comment has been minimized.
|
I don't think there's enough meat to what you're proposing right now to attempt to help you go from 1 to 2 here. You've just tossed some extremely vague theoretical concepts at us, single paragraph summaries of loose categories in a subject that people spend years researching. These questions we're asking are examples of the kind of things you need to answer to take the concept forward. In other words, how do you imagine this system working? How do you see these six loose concepts affecting something concrete? You don't have to know code, or even math, to answer these questions, but you do need more than just "here is a theoretical document with no bearing on game design". For example, when KorGgenT wanted to know how the digestive tract worked, I gave him a very brief rundown, and then we discussed relevant things like where nutrient absorption takes place, or how various vitamins are depleted from the body, or how long it takes food to transit in the gut and how much of that is spent on nutrient absorption, and from there we calculated a loose formula that would absorb nutrients from food over that span of time. I don't know anything about c++, but I didn't just say "the digestive tract consists of the oropharynx, a multi-part organ with teeth, tongue, and salivary glands; the esophagus, a muscular tube leading to the stomach; the stomach, an acidic organ where food is mixed up to form chyle; the small intestine, a very long winding organ; and the large intestine, bigger in diameter but shorter in length." Like your summary, that is descriptive, but more or less useless from a design perspective. |
This comment has been minimized.
This comment has been minimized.
CoroNaut
commented
Mar 15, 2019
•
|
Erk, i think you have the wrong idea. The article does indeed break down what it talks about quite well, which is specifically what makes it easy to reference here in CDDA. For example:
This sentence clearly defines to us (with CDDA in mind) that "swimming, walking, running, cycling" shouldn't degrade fast, and shouldn't degrade fast because
Which brings us to the conclusion that simple motor tasks depend on our characters biomotor development, which then depends on the energy system development, the ability to maintain an intensive task for longer periods of time (stamina) of the player, and
Which tells us that the body is responsible for providing aerobic capacity, and through the even more general "Biomotor Development", we can train our player to increase said aerobic capacity. And so on... The article is very well laid out in that you can draw long conclusions that reference the article over and over. So I believe the article is already in a state to be understood by someone and transferred into the game. You also say that these are "loose concepts" when they are not. The article does a very good job of keeping everything information-dense. I have to agree with Ricky simply because the article is very inter-related like he said before, and does indeed provide a basis for skill training. The only problem now is that there should probably be another issue opened to define more precise changes to CDDA to match the article |
This comment has been minimized.
This comment has been minimized.
|
Let me start with this:
Then the author continues with the diagram of HPD and explains how each component is used to produce increased skill and training in a soldier or athlete. Yes, some of the language is dense because it's based on training professional athletes and soldiers. This isn't a theoretical model or a hypothesis. This is a real world model that's in use every day by training professionals. The article is very short at only 7 paragraphs besides the model and the list of tips at the end. Speaking of which, for anyone that doesn't want to read the article here's the list.
|
This comment has been minimized.
This comment has been minimized.
|
Ok, please answer the questions that you have been asked about how it applies to specific scenarios then, because I do not see how anything in the article tells us anything meaningful about questions we actually care about, like rate of skill gain, rate of loss of fitness, what activities are eligible for skill training, translating skill level into performance level, etc. The concrete statements I see like "These skills, such as swimming, walking, running, cycling, etc. do not significantly degrade over time and are dependent on biomotor development (BMD) and fine motor skill to produce award winning performance." don't change anything about how we handle these skills, translated into game terms, these are not skill based activities, instead they are dominated by stats (strength and dexterity).
I don't doubt that the model and related systems are very useful, but what we need are things like training schedules or fitness test curricula or research papers in the area, not a magazine article about it. |
This comment has been minimized.
This comment has been minimized.
|
Attacking the source of the information is unproductive. Don't you think? I found a source condensed for quick consumption, which conveys the meat of a system that's robust enough to provide every aspect of skill progression. Anyone want to pore over reams of training manuals, fitness guides and medical journals?
That's unfortunate, but I trust that we can fix that soon. Feel free to share concrete function names, class names, variables, etc. I want to learn.
The rate of skill gain would be determined in part by the load. Do you understand loading as it was explained above? I used the phrase "apply pressure," but I don't know if that was sufficient for everyone.
Any activity that has sufficient load will produce some form of gain. Perhaps I'm not fully understanding your question. Aren't skills already defined by the game?
I was too tired when I first read this question. HPD as a whole produces total performance ability. I'll consider this question when I'm more alert. What's the current method? How does CDDA translate skill level into performance level? Let's apply our differing spheres of understanding to what's already there, and see if it improves or fails. Thank you for the examples, @kevingranade! These were concrete questions, and I've worked hard to translate the answers into something tangible and meaningful for everyone. I want to explain things much deeper, but I must keep my answers in digestible chunks until we're on the same wavelength. I have some questions of my own. How does CDDA determine the percentage of skill increase for a specific task/activity? (Let's avoid skill gain by book for the moment.) Also, what variables and/or functions determine rate of skill gain? Thank you to everyone, for their time and energy! |
This comment has been minimized.
This comment has been minimized.
|
skill increase per task varies with skill and task, but a common formula is you get task difficulty points of exercise every ten minutes if the task difficulty * 1.25 is greater than your current skill. That exercise is adjusted by your current effective focus. You need to accumulate 100 times the square of the next skill level of exercise to increase a skill. So: For my two examples: Survivor with Mechanics 3 does a skill 3 mechanics task for an hour. Consulting the helpful table in veh_utils.cpp, we see he earns 60 practice before focus adjustment. He needs 1600 experience to reach Mechanics 4. Relevant code references: What should we be doing differently? |
This comment has been minimized.
This comment has been minimized.
We should change the xp requirements from "100*[next skill level]^2" to something like "100*[next skill level]^2.5" and create practice actions. This is more or less the plan I think though. |
This comment has been minimized.
This comment has been minimized.
I'm not disregarding usable information because of the source, there's no information to disregard.
I disagree, it's barely the bones of the system, much less the meat. The outline provided does confirm a number of features of the existing system, such as many tasks not being skill based, fatigue leading to poor outcomes from training, the need for retraining (skill rust), and others that were AFAIK assembled based on intuition and informal understanding of these processes. What it does not do as far as I can tell is give a path forward to something better.
Yes, I do. It's called research. I've read hundreds of scientific and technical papers investigating how things work in order to improve how cataclysm handles them. I havent found any particularly good sources that read on fitness and skill training, but that is the kind of thing I'm looking for to fill the gap. You havent answered a single question that has been asked. You seem to think generalities like, "Any activity that has sufficient load will produce some form of gain.", are answers, but they're just rephrasing the question into a statement. We know that practice leads to improvement, that's common knowledge, what we need is what kind of practice, in what amount, leads to what level of improvement. Putting this another way, unless you have a source for numbers, this is going to continue to be fruitless. |
This comment has been minimized.
This comment has been minimized.
I know from your work on this project, and your previous posts and comments, that you aren't lacking in cognitive ability. And yet, writing "there's no information" is such a sweepingly broad generalization that nearly anyone could see that it's false. What am I to gather from this fact? Is this how you operate as a person? On the (very) positive side, it does put a large load on the other individual's capacity. The kind of load that's used in biomotor development to increase (mental) stamina, speed, etc. In this circumstance, the load either leads the person to increased ability, or to simply give up. That kind of activity is very healthy for the system! |
This comment has been minimized.
This comment has been minimized.
As far as I can tell, you never made it past the second paragraph of the article. The author establishes his competence with the subject matter within the first 3 paragraphs and, although he doesn't have an especially unique name, he alone dominates the first page of Google results for "Nate Morrison".
You should toss him an email and tell him what we're trying to accomplish here. Yes, I'm suggesting you, because you know exactly what to ask from him to fulfill your informational requirements, and you're the leader of this project. Something that a man in his role would respect. I'm just a player looking to improve the game that I love. I handpicked those sentences from his bio, because they're of special note. Nate doesn't just deal with athletic training, but highly specialized cases, such as those we might find in a survival situation or cataclysmic event.
Haven't you found a good source for numbers, since your post in 2013? Fruitless? I heartily disagree. Much information has already been exchanged in this discussion. Thank you so much, everyone! |
kevingranade
closed this
Mar 16, 2019
This comment has been minimized.
This comment has been minimized.
|
I am still waiting for a response about how the current algorithm should change with respect to the two examples I requested. You said you were willing to meet someone halfway on developing an algorithm, moving from i-am-erk's stage 1 to stage 2. I am trying to meet you halfway and provide my coding knowledge. I'd like to see less exhortations for developers to do research and send emails, and more answers to my specific questions. |
This comment has been minimized.
This comment has been minimized.
|
I was already working on a complete reply to you, @mlangsdorf when Kevin's appeared. Everything you shared was extremely valuable! No worries, I was only thrown off by the clearly false generalization and responded as such. Task difficulty directly relates to loaded capacity, and I can continue from there to produce something concrete based on the model. Exhortations aside, I'm inclined to contact Nate myself and see what insights he might offer. Why waste hours scouring the Internet when there's someone that already knows where to find the information you're seeking? Onward and upward. |
RickySandbox commentedMar 14, 2019
•
edited
While learning more about skill progression systems I found an article about a real world system used in military training known as, Human Performance Development Model. The topic of skill progression has come up several times, and I thought now would be a good time to share and get some feedback. Some pieces of this system are already implemented in some ways, but under different names, such as morale, focus and stamina. Below is the heart of the system, and the original article can be found at the bottom for anyone interested.
Human Performance Development Model
Full article: https://spotterup.com/components-of-a-military-fitness-training-system/