Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2 3 4

Author Topic: An alternative skill system  (Read 5238 times)

kaenneth

  • Bay Watcher
  • Catching fish
    • View Profile
    • Terrible Web Site
An alternative skill system
« on: May 27, 2011, 07:24:17 pm »

This may not be suitable for DF, or it may be ideal for DF, but this is an idea for game character skills that has been brewing in my head for over 15 years that I'd like to share. Reading the Books thread reminded me of it, and how it might apply to DF.

Instead of a simple number to represent a skill, use a bitmap.

From 8-1024 bits represent parts of the skill, depending on how refined you want it. Easily expressed to the player as a number by using a 'popcount' (the total number of turned on bits) which can then be converted to a text description from Dabbling to Legendary.

When a character is training a skill by independant study/work, they have a chance for a random bit to become set, representing the invention of a particular technique. if the bit is already set.. well, they already knew that, so it naturally becomes harder for them to invent something new; it could also be weighted to preferr bits near other already set bits so that knowledge is 'related'.

When two artisans meet they can exchange techniques, as an abstraction of: Cheesemaker knows how to make Chedder, and can train others to make Chedder; however, an immigrant cheesemaker knows how to make Swiss, so when they work together, they can both become better cheesemakers. Now, it's possible to take the skill bits and give them labels so that bit 27=Chedder, bit 74=Swiss, bit 35=Feta... but the core idea is just an abstraction to simulate the limits of passing down knowledge, invention, and exchange of knowledge. Not the creation of a specific item, but little tricks and techniques gained as you master a skill, like that altitude affects baking time, how to crack an egg without getting shell bits in the food, and that arrows used for hunting animals have the head in line with the nock to pass through the ribs of a four legged creature, while war arrowheads are perpendicular to the nock to pass the ribs of a standing two legged creature.

This relates to the book thread in that a book may have a specific set of techniques, so if the caravans bring a book about glassmaking, it can be studied by all your glassmakers over and over, and may eventually grant all of those, but only those bits; you can't become a Legendary crafter by reading one book over and over, but only by a combination of study, practice, communicating with your peers, and invention. A crafter could also write a book, copying a number of his bits based on his teaching/literacy into the book. The value of a book may be related to how common those particular bits are globally, a book of common knowledge is cheap, but the secrets of the finest armourer from the dwarven mountainhome would be precious indeed. But the books are just an aside.

This will also possibly make immigrants more useful, as even if they have less overall skill, they might know a few techniques your fortress dosn't have. It also makes possible traveling scholars, travelling the world in search of knowledge by exchanging it; which might also make a very unique style for an adventurer... Travelling the world to learn the secrets of leatherworking... A mood could set a large number of bits at once... and a head injury could knock some bits loose...

Skills could be grouped then unequally divided, such as 1024 bits being for 'Farming' skills, with different ranges of bits for different skills, Milking probably has fewer little tricks and tips than Cooking; but all of "Food preparation" (Cooking, Butchery, Cheesemaking, Plant Processing...) may be comparable to "Animal Husbandry" (Milking, Shearing, Beekeeping...)

Again to be clear, I am not saying to tie each bit into a specific sub-job, because there will always be some detail to add, but just as an abstraction of a 'set' of techniques a skill may have. Kinda like how instead of 'Hit Points' DF has body parts, but dosn't have every part.

This may be like how Toady is implementing 'Secrets', the idea of handling specific peices of knowledge at the civilization level, and this may be way to much data for all the individual skills of all the intelligent creatures in DF; but I thought it may be worth sharing.
Logged
Quote from: Karnewarrior
Jeeze. Any time I want to be sigged I may as well just post in this thread.
Quote from: Darvi
That is an application of trigonometry that never occurred to me.
Quote from: PTTG??
I'm getting cake.
Don't tell anyone that you can see their shadows. If they hear you telling anyone, if you let them know that you know of them, they will get you.

Montague

  • Bay Watcher
    • View Profile
Re: An alternative skill system
« Reply #1 on: May 27, 2011, 09:40:45 pm »

This actually sounds like a good idea.

I always thought it would be better if skills leveled at a sort of graduated curve. You couldn't become a high master stonecrafter if all you've ever made is endless batches of dolomite mugs.

Its realistic, but like a lot of the reality ideas, it might just make things awfully tedious for the player or drag the fps count down somehow.

Still, I like it, if something like it could be implemented well.
Logged

harborpirate

  • Bay Watcher
  • cancels eat: job item lost or destroyed.
    • View Profile
Re: An alternative skill system
« Reply #2 on: May 27, 2011, 10:03:44 pm »

Love this idea. No idea how feasible it would be to implement in DF, which I'm sure uses a fairly tiny (and efficient) storage mechanism for skill tracking. I recall reading somewhere that the entire memory space of a dwarf is pretty preposterously small.
Still, this would be a perfect fit for getting books to work in an interesting way. Perhaps all skills could be combined into a fairly small structure that worked in this manner. Simple tasks might only get a few bits, whereas detailed skills like warfare and metalworking might get quite a lot more.
Logged

dwarfhoplite

  • Bay Watcher
  • Gentledwarves, prepare for Glory!
    • View Profile
Re: An alternative skill system
« Reply #3 on: May 28, 2011, 12:46:46 am »

for armour and weapon smithing there could be "own piece of skill" for forexample hardening and every different metal object its own
Logged

aepurniet

  • Bay Watcher
    • View Profile
Re: An alternative skill system
« Reply #4 on: May 29, 2011, 04:31:54 am »

Awesome suggestion. This is a great system! Hope something like this gets implemented.  It would be a really great way for a ton of new and cool features be implemented. My head is going nuts thinking of all the possibilities.
Logged

Montague

  • Bay Watcher
    • View Profile
Re: An alternative skill system
« Reply #5 on: May 29, 2011, 08:49:23 pm »

It does open a lot of possibilities.

Also, maybe teaching/learning some of the less common bits could be easier... I think of something like a watercooler chat, say a stonecrafter goes on break and has a conversation with another stonecrafter, they could trade knowledge/ skill one way or another. To simulate teamwork.

"Hey, Kog, I keep chipping the cursed lip of these mugs I'm working on with the lathe" "Yup, its this sort of obsidian, always has that problem, what I always do is..." That sort of thing. This way a large team of whatever profession could collude and fill in the gaps of knowledge they all might have and work a bit better.
Logged

vintermann

  • Bay Watcher
    • View Profile
Re: An alternative skill system
« Reply #6 on: May 30, 2011, 08:12:33 am »

The game really could use a way of modeling knowledge, both in world gen and in fortress mode. I had thought about a scheme where the top levels of some skills were subject to special requirements (such as your civilization having picked up special knowledge about them during world gen, or you were able to trade a book/get an unusual immigrant), but the bit-system sounds like a game mechanic with far greater potential.

There's a really interesting (and somewhat controversial) anthropological paper you might be interested in: "Demography and Cultural Evolution: Why adaptive cultural processes produced maladaptive losses in Tasmania" by Henrich Joseph. Not because Tasmania is very similar to the DF fantasy worlds, but because he develops an intriguing mathematical model of how skills are learned and passed on in a society.
Logged

astaldaran

  • Bay Watcher
    • View Profile
Re: An alternative skill system
« Reply #7 on: May 30, 2011, 08:41:43 am »

It seems like a really good idea to me, thought about adding it to the eternal voting? My only concern is performance issues, I don't think it would be one but I have no idea how DF is constructed--but if Toady thinks it would be a problem he would probably just not do it.
Logged

Karakzon

  • Bay Watcher
  • [ethics:give a shit?: denied]
    • View Profile
Re: An alternative skill system
« Reply #8 on: May 30, 2011, 08:54:39 am »

i support this idea. although:
Of current dwarf fortress skills are totaly uncapped, to keep the open endedness is something ide like. therefore: make this the requirement between skill levels, ie: it gets reset every level etc. so that, while yes, higher level dwarfs can teach lower level dwarfs alot more, their only going to go up a level in skill instead of making masterwork mugs but not masterwork stone toys.

Thats how i would see this being implamented into DF if at all.
Logged
I am Dyslexic. No its not going to change any time soon.
Bolts of Exsanguination THE terrifying glacier export, get yours today!

jseah

  • Bay Watcher
    • View Profile
Re: An alternative skill system
« Reply #9 on: May 30, 2011, 09:53:32 am »

This... This is simply fantastic!  I would never have thought of viewing it this way. 

I'd say do it but with more detail.  Different parts of the map indicate different skills and when you learn a bit somewhere (it turns black from white say) all the nearby bits get some more black as well. 

Then certain types of jobs are focused on certain areas of bits and count other areas less.  So you can have a mason who has been crafting mugs for ten years have a solidly blacked out top left hand corner but his experience with the stone lets him work sort of ok at carving images (the material use bits are black as well) into that kind of floor. 

Crafting microcline mugs all day long makes the mason really good at crafting mugs and semi-good at microcline cutting tasks.  Ask him to build a wall, and he might work only slightly better than a newbie. 


And then you can do things like connect different areas to each other so it's not a simple 2D grid per skill anymore. 
...

Actually do you mind if I alter this idea for a game system I am writing?  This is just too unique to not use since I want a skill system. 
« Last Edit: May 30, 2011, 09:56:03 am by jseah »
Logged

JanusTwoface

  • Bay Watcher
  • murbleblarg
    • View Profile
    • jverkamp.com
Re: An alternative skill system
« Reply #10 on: May 30, 2011, 11:24:11 am »

Biggest problem I see is how will this information be presented to the user? It's all well and good to add more complexity to a system, but this is the sort that the dwarves'd know.

It could be a simple bar with black/white blocks, but then how do you know that particular block is mugs?
Logged
You may think I'm crazy / And I think you may be right
But life is ever so much more fun / If you are the crazy one

My blog: Photography, Programming, Writing
Novels: A Sea of Stars, Confession

astaldaran

  • Bay Watcher
    • View Profile
Re: An alternative skill system
« Reply #11 on: May 30, 2011, 02:03:34 pm »

Biggest problem I see is how will this information be presented to the user? It's all well and good to add more complexity to a system, but this is the sort that the dwarves'd know.

It could be a simple bar with black/white blocks, but then how do you know that particular block is mugs?

No, I think he is not saying that any particular "block" is any particular "thing" (like mugs). He was just using that as a visualization for understanding how it would work if DF were real...The blocks don't actually determine anything other than how skilled they are. So the skill system is still simple as it is now (linear) but it doesn't increase the same way. Instead of just practice makes perfect; you could not have a legendary anything unless they have lots of practice, exposure to other techniques, etc.
Logged

harborpirate

  • Bay Watcher
  • cancels eat: job item lost or destroyed.
    • View Profile
Re: An alternative skill system
« Reply #12 on: May 30, 2011, 04:26:03 pm »

Jseah, I really like that system tweak. Letting some bits represent cross-domain skills would not only be realistic but help tremendously with storage density.
I also agree with the most recent post; show the skill level to the player in exactly the same way it is done now. Players that want to be spoiled on what specific bits their dwarves have would have to use a third party tool.
I don't think there is any reason to have bits represent anything specific; let the skill system work the same way it does now except determine the skill level by summing bits.
Logged

jseah

  • Bay Watcher
    • View Profile
Re: An alternative skill system
« Reply #13 on: May 30, 2011, 04:53:25 pm »

For a player usable system, the tweak probably shouldn't be used. 
I'll explain how I understand the OP's system could be implemented:

Every skill gets a 2D grid (it can be a line but a grid can be visualized very easily and is compact)
The size of this grid depends on the "complexity" of a skill.  Smithing, Crafting and Combat get big grids.  Mining, Masonry and Farming get medium grids.  Milking, Woodcutting and Plant Gathering get small grids. 

Whenever a task is complete and the dwarf is gaining experience, he randomly colours squares on the grid black (from white).  If it was black already, nothing happens. 
When dwarves use the Teaching skill to teach other dwarves things, they get some of his squares that they don't have.  (if they have all his squares, they can't learn anything from him)

A dwarf's skill rank at something is simply the number of squares he has.  Legendary means 99% squares, dabbling could mean 5% squares. 
If the skill is meant to be uncapped, then once all the squares are filled, the dwarf rolls against all the squares +1.  If he rolls a 1, he adds a square and colours it black.  This becomes an extra square he can teach to other dwarves.  All extra squares are unique but cannot be learnt by practice until all the other squares are filled. 


That's it. 
The 1st post explains the rationale behind this system. 

My post was just this but more complex. (squares can be grey, colour surrounding squares additively, locations of squares tied to specific uses of skills, cross-skill experience bleeding over connections from certain squares)
Logged

counting

  • Bay Watcher
  • Zenist
    • View Profile
    • Crazy Zenist Hospital
Re: An alternative skill system
« Reply #14 on: May 30, 2011, 06:27:19 pm »

In programming perspective, It will require more process time.

Each skill is now an array[N];


get_skill_level(skill_array*) is a process takes O(N+logN) to determine the current skill map number then an operation of division to set the division into skill level.

gain_skill_books(skill_array*, book_index) will need O(1) to compare

gain_skill_train(skill_array*) will need to call the rand()%N which is something O(KlogK+logN), where K>N


Old system using a variable to represent a skill

get_skill_level(skill_index), O(n_level), compared with level threshold

gain_skill_books(skill_index, book_factor), O(constant) depend on the bits of skill_index multiplying a factor, floating point operation

gain_skill_train(skill_index, train_factor), same as above.


So the cost of a more realistic approach will be the cost of operation time (in many level), and memory. except from reading a books or learning already learned skills. So if there is many new skill to learn it will be faster, a lot of training, probably slower (unless rewrite rand(), or pseudo rand). accessing skill menus will be slower. So don't look at your dwarf, and he will learn faster!
« Last Edit: May 30, 2011, 06:28:59 pm by counting »
Logged
Currency is not excessive, but a necessity.
The stark assumption:
Individuals trade with each other only through the intermediation of specialist traders called: shops.
Nelson and Winter:
The challenge to an evolutionary formation is this: it must provide an analysis that at least comes close to matching the power of the neoclassical theory to predict and illuminate the macro-economic patterns of growth
Pages: [1] 2 3 4