How to decide what a fighter should do when idle ?

How to decide what a fighter should do when idle ?

Postby hwoarangmy » 01 Dec 2014, 15:49

Hi all,

To have something easy to configure, I would propose to allow to add in the creature definition file a list of usable rooms and a value. The higher the value is the most likely the creature will go there if the room has empty space. For example, a troll would have something like:
Forge 5
TrainingHall 2

A value of 0 means that the creature won't go there alone. But if dropped, it will work there.
A value of -1 means that the creature won't go there alone. And if dropped, it won't work either and will go away.

All missing rooms in the creature definition will be considered as value 0.

Last but not least, I remember that in DK, every creature were not as good when using a room as others. For example, a troll was good in the forge but a black mistress was not. Do we want to have something similar (IMO, it would be a good thing). If so, how do we handle that ?
hwoarangmy
 
Posts: 567
Joined: 16 Apr 2014, 19:13

Re: How to decide what a fighter should do when idle ?

Postby Akien » 01 Dec 2014, 15:58

That sounds like a good proposal, it would make it easy to fine tune the behaviour of each creature.

hwoarangmy {l Wrote}:Last but not least, I remember that in DK, every creature were not as good when using a room as others. For example, a troll was good in the forge but a black mistress was not. Do we want to have something similar (IMO, it would be a good thing). If so, how do we handle that ?

Maybe we can reuse the exact same values that for the idle behaviour? Or if it doesn't make sense (maybe we want some creatures to go a lot to the training room, but not necessarily to be the quickest to train on top of that), maybe add an optional second numeric value that would define their "skill" at using this room, e.g.:

Forge 5 3
TrainingHall 2 2
Godot Engine project manager and maintainer.
Occasional FOSS gamedev: Lugaru, OpenDungeons, Jetpaca, Minilens.
User avatar
Akien
 
Posts: 737
Joined: 22 Feb 2014, 13:14

Re: How to decide what a fighter should do when idle ?

Postby Bertram » 01 Dec 2014, 16:08

Hey :)

I like hwoarangmy's proposal, while I'd make an exception with dormitory and hatchery, or at least the default value for these rooms shouldn't be 0, IMHO.

Akien has got a point, too, when speaking about room use efficiency.
IMHO, this should be defined next to the dig, and claim rates. And also a default value of maybe 0 should be defined for special rooms.
Last but not least, a creature with a specific room use rate set to 0 shouldn't use that room, just like they don't dig/claim when their corresponding rates are 0.

I wouldn't merge the room likeliness and efficiency values together in case you already thought about it, since we might want to have creatures that are, for instance, good at the forge but prefer go to eat, or be tortured. ;)

What do you think of my little addition?

Regards,
User avatar
Bertram
VT Moderator
 
Posts: 1652
Joined: 09 Nov 2012, 12:26

Re: How to decide what a fighter should do when idle ?

Postby hwoarangmy » 01 Dec 2014, 16:56

Akien {l Wrote}:Maybe we can reuse the exact same values that for the idle behaviour? Or if it doesn't make sense (maybe we want some creatures to go a lot to the training room, but not necessarily to be the quickest to train on top of that), maybe add an optional second numeric value that would define their "skill" at using this room, e.g.:

Forge 5 3
TrainingHall 2 2
That's also the ideas I had. Good to see we all go to the same point. That may not be too stupid :)
But I can also see bad points with these options:
Solution 1 : As you already noticed, we might want to have creatures that go to training but that do not train so much better than others. For training room, we could handle it easily with the xp table but for some other rooms, it could be trickier.
Solution 2: The problem with this is that it would prevent from using default values. The only solution I can see if we want default values is to let the room handle them. but we may also want to not have default values at all and if you want a creature to be able to use a room, you have to add it in its definition. After thinking a bit more, it might be a better solution actually. It would avoid forgetting that most creatures won't like torturing and to see them go there because we forgot to add the corresponding value to their definition.

Bertram {l Wrote}:I like hwoarangmy's proposal, while I'd make an exception with dormitory and hatchery, or at least the default value for these rooms shouldn't be 0, IMHO.
Good reminder but it was also clear in my mind that we were not talking about theses rooms. They will be hardcoded to not allow any creature to go there so giving any value won't change anything ;)

Bertram {l Wrote}:IMHO, this should be defined next to the dig, and claim rates. And also a default value of maybe 0 should be defined for special rooms.
Last but not least, a creature with a specific room use rate set to 0 shouldn't use that room, just like they don't dig/claim when their corresponding rates are 0.

I wouldn't merge the room likeliness and efficiency values together in case you already thought about it, since we might want to have creatures that are, for instance, good at the forge but prefer go to eat, or be tortured. ;)
Ok, so I think we all agree on solution 2. So, here is my final proposition. if everybody agrees, I will open an issue on github:

To have something easy to configure, I would propose to allow to add in the creature definition file a list of usable rooms and a value. The higher the value is the most likely the creature will go there if the room has empty space. For example, a troll would have something like:
Forge 5 5
TrainingHall 2 3

The first value is the creature likeness to the room. A value of 0 means that the creature won't go there alone.
The second value is the creature efficiency. A value of 0 means that the creature is not good in this room. A value > 0 will be handled by the room itself.

A value of 0 in efficiency will prevent a creature to work in a room (whatever its likeness is) even if dropped. If a creature has a likeness = 0 and an efficiency > 0 for a room, it won't go there by itself but it will agree to work if dropped.
By default (if a room is not present in the creature definition), the likeness will be 0 and efficiency will be 0.

Do we agree ?
hwoarangmy
 
Posts: 567
Joined: 16 Apr 2014, 19:13

Re: How to decide what a fighter should do when idle ?

Postby Akien » 01 Dec 2014, 17:15

I like your proposal, it seems simple enough and lets room for customisation.
For example, as you said, we can have creatures with likeness 0 and efficiency > 0 that will work in the room only when dropped there, and we can have creatures with likeness > 0 and efficiency 0 that just like to watch their fellow minions work their bottom off :-)
Godot Engine project manager and maintainer.
Occasional FOSS gamedev: Lugaru, OpenDungeons, Jetpaca, Minilens.
User avatar
Akien
 
Posts: 737
Joined: 22 Feb 2014, 13:14

Re: How to decide what a fighter should do when idle ?

Postby Bertram » 01 Dec 2014, 17:35

Looks fine to me :)

@Danimal? @Oln?

EDIT: Workers shouldn't follow this logic at all. Do we agree? Or is there something else planned?
User avatar
Bertram
VT Moderator
 
Posts: 1652
Joined: 09 Nov 2012, 12:26

Re: How to decide what a fighter should do when idle ?

Postby hwoarangmy » 01 Dec 2014, 17:41

Bertram {l Wrote}:EDIT: Workers shouldn't follow this logic at all. Do we agree? Or is there something else planned?
We agree ^^ That's why there is "fighter" in the title ;)
hwoarangmy
 
Posts: 567
Joined: 16 Apr 2014, 19:13

Re: How to decide what a fighter should do when idle ?

Postby Danimal » 01 Dec 2014, 21:32

i proposed something similar some time ago; i really like the idea of creatures preferences of going to some rooms instead of just idling forever, so they work or idle on those rooms, but efficiency sounds difficult to me.

A long time ago i proposed 3 new skills to be created Blacksmith, researcher and misticism;
Blacksmith - just a few creatures have it, to work on forge, add forge points equal to value
Researcher - just a few creatures have it, to work on library, add research points equal to value
Misticism - all creatures have it in ranging values, mana rewarded at temple for praying and other possible uses.

I also proposed that creatures with a zero value on the skill needed on the room couldnt work there.

So i would keep likeness value but expand the efficiency value so the room checks if the creature has the skill to work on it; 0 skill points means it cant (just like digging works) and more means it can and will use that skill value to production. The skill value would growth with level as well (again just as digging/claiming).

But ultimately my main concern would be to be able to easily write on a creature definition how much their work adds to a certain room, ill let to you guys to decide on how to best do it.
User avatar
Danimal
OD Moderator
 
Posts: 1407
Joined: 23 Nov 2010, 13:50

Re: How to decide what a fighter should do when idle ?

Postby Danimal » 01 Dec 2014, 21:44

On a second read your proposal is simple and good, but lacks the upgrades on room production that a leveled up creature would have over a lv 1 .
User avatar
Danimal
OD Moderator
 
Posts: 1407
Joined: 23 Nov 2010, 13:50

Re: How to decide what a fighter should do when idle ?

Postby hwoarangmy » 01 Dec 2014, 22:20

Danimal {l Wrote}:On a second read your proposal is simple and good, but lacks the upgrades on room production that a leveled up creature would have over a lv 1 .
Do we want leveled creatures to work better than not leveled ones ? IMHO, experience is already the most important since creature battle skills depends on it. Moreover, when they will get skills, they might get speed boost.
If I remember correctly, there was no bonus for leveled creatures in the original DK
hwoarangmy
 
Posts: 567
Joined: 16 Apr 2014, 19:13

Re: How to decide what a fighter should do when idle ?

Postby Akien » 01 Dec 2014, 23:01

That may be too complicated, so take it as an overall gameplay idea. Instead of adding a fixed increase to some stats (hp, damage, work proficiency, speed, etc.) when creatures level up, we could have a system where their points get attributed to the skills that they are using the most; e.g. a troll that spends all of its time in the forge would become a good forger, but a poor fighter. On the other hand if he's always roaming the map and fighting, he would increase his speed and damage. This would allow for some kind of specialisation of creatures.

Ok, just as I'm writing it, I find that this proposal is not that good... but now that it's written, I leave it for you to read :-) We aim for a small number of creatures in a short game (15 creatures max currently), but I think specialising the creatures is way above our heads. Let's keep with a simple system as proposed above :-)

For Danimal's question about level up, we could compute the effective work ability based on the base parameter and the level. It might indeed be too much bonus for level up as hwoarangmy pointed out, but it also calls for a compromise: will you keep your powerful creature in the forge to get more upgrades or in the battle to wreak havoc? It can't be at both places at once.
If there is no increase in work ability with the level, then players would keep lvl 1 creatures in their room and put the high level creatures in battle, there's less place for fine-tuning of the strategy :-)
Godot Engine project manager and maintainer.
Occasional FOSS gamedev: Lugaru, OpenDungeons, Jetpaca, Minilens.
User avatar
Akien
 
Posts: 737
Joined: 22 Feb 2014, 13:14

Re: How to decide what a fighter should do when idle ?

Postby Danimal » 02 Dec 2014, 01:31

If there is no increase in work ability with the level, then players would keep lvl 1 creatures in their room and put the high level creatures in battle, there's less place for fine-tuning of the strategy :-)


Good point , lv1 are useless warriors, so its your choice to put them to work (and have many weak creatures being unprepared for any attack) or lose working time to have them become a bit thouger;

I guess hwoarangmy initial proposition is the best
User avatar
Danimal
OD Moderator
 
Posts: 1407
Joined: 23 Nov 2010, 13:50

Re: How to decide what a fighter should do when idle ?

Postby Bertram » 02 Dec 2014, 10:08

If there is no increase in work ability with the level, then players would keep lvl 1 creatures in their room and put the high level creatures in battle, there's less place for fine-tuning of the strategy :-)

To help a bit with Akien's valid point, we may also later have researched skills that improve the creature skill, or a costy spell?

Note that to add a bit more simple strategy elements to the maps, we may later add infinite gold tiles (as very well known), mana tiles, specials that once claimed and brought back could improve all creatures skills as a one-timer, ...

I'm just throwing ideas but we could actually easily make the improvement of Blacksmith, Researcher and Mysticism done through other ways.

Thus, IMHO, hwoarangmy's proposal is good, while I would clearly set the efficiency values as Danimal named them.
I mean: BlackSmith, Research, Mysticism to stay in line with the modding jargon.

What do you think?
User avatar
Bertram
VT Moderator
 
Posts: 1652
Joined: 09 Nov 2012, 12:26

Re: How to decide what a fighter should do when idle ?

Postby Akien » 02 Dec 2014, 10:52

Sounds good, but then it should be either:
Blacksmithing, Research, Mysticism (concepts)
or:
Blacksmith, Researcher (or Scholar), Mystic (persons)
Godot Engine project manager and maintainer.
Occasional FOSS gamedev: Lugaru, OpenDungeons, Jetpaca, Minilens.
User avatar
Akien
 
Posts: 737
Joined: 22 Feb 2014, 13:14

Re: How to decide what a fighter should do when idle ?

Postby hwoarangmy » 02 Dec 2014, 12:06

Bertram {l Wrote}:I mean: BlackSmith, Research, Mysticism to stay in line with the modding jargon.
Well, in my idea, it was the rooms, not the concept used. If you prefer, we can use such kinds of specialisation. But it will add an extra step of defining which room is associated with which concept (Forge with Blacksmith, Research with Library).

IMHO, the question is do we have several rooms that uses the same kind of creature skill ? If no, then there is not much use of adding this extra step. If yes, we have to decide how do we choose between different rooms requiring the same skills.
hwoarangmy
 
Posts: 567
Joined: 16 Apr 2014, 19:13

Re: How to decide what a fighter should do when idle ?

Postby Bertram » 02 Dec 2014, 12:27

Valid points here.

In my own opinion, the skills were each link to one room, other rooms efficiency level names would have come later. But you're right, after thinking more about this, I would be more for an efficiency level per room anyway, and have a more generic config name for every rooms (even future ones).

But maybe Danimal had something else in mind?

Blacksmithing, Research, Mysticism (concepts)
or:
Blacksmith, Researcher (or Scholar), Mystic (persons)

True, as well. :) Let's see whether we drop the concept of specific names or not.

Regards,
User avatar
Bertram
VT Moderator
 
Posts: 1652
Joined: 09 Nov 2012, 12:26

Re: How to decide what a fighter should do when idle ?

Postby Danimal » 02 Dec 2014, 12:58

hwoarangmy proposal is simple and brutally effective, i support it better
User avatar
Danimal
OD Moderator
 
Posts: 1407
Joined: 23 Nov 2010, 13:50

Re: How to decide what a fighter should do when idle ?

Postby Bertram » 02 Dec 2014, 14:02

Ok, then we have a deal. :)
User avatar
Bertram
VT Moderator
 
Posts: 1652
Joined: 09 Nov 2012, 12:26

Re: How to decide what a fighter should do when idle ?

Postby hwoarangmy » 02 Dec 2014, 14:53

Ok. I will open an issue tonight
hwoarangmy
 
Posts: 567
Joined: 16 Apr 2014, 19:13

Who is online

Users browsing this forum: No registered users and 1 guest