Latest Posts

Topic: About the fish - self-breeding?

BeniH

Topic Opener
Joined: 2011-05-16, 15:49
Posts: 19
Ranking
Pry about Widelands
Posted at: 2011-06-13, 21:32

Hello, i wonder if fish is self breeding? So small lakes would only be depleted when overfished?


Top Quote
Astuur
Avatar
Joined: 2009-02-28, 10:08
Posts: 733
Ranking
One Elder of Players
Location: Frankfurt / Germany
Posted at: 2011-06-14, 06:17

The answer is here:
(http://wl.widelands.org/forum/topic/511/)

The next question is:
Should it not be that way?

Wideland features a very sophisticated auto-seeding for trees (I wonder who did this!)
where spreading depends on the number of existing trees for each species and is dependent
on the terrain type, but land animals and fish are treated like mining resources.
They are placed by the mapmaker in certain numbers, and when hunted/fished they will be gone.

There would not be much sense in setting up a complicated system for fish, or even animals,
since you cannot see fish (unless caught) and even animals influence a game far less then trees do.
But a simple re-spawn system may still be nice.

The problem is mainly with the game balancing.
Atlanteans are the only tribe that can breed fish,
and only Barbarians breed animals.

I have myself suggested somewhere, that there should be a use for
all tribes that would not deplete the resources, but there was not much acclamation for that.


Being no programmer, I apologize for all my suggestions that imply undue workload and for other misjudgements due to lack of expertise or relevant skills.
I am on Win32, have no means to compile, and rely on prefabricated distributions (Thanks to Tino).

Top Quote
BeniH

Topic Opener
Joined: 2011-05-16, 15:49
Posts: 19
Ranking
Pry about Widelands
Posted at: 2011-06-14, 09:51

Hello, thanks for pointing me to the right location.

Indeed, i think it would be a very nice thing if fish and animals would be self-breeding. Of course this should be slow enough to encourage over-hunting or over-fishing so care must be taken when placing hunters and fisher huts.

I agree, that this needs to be simple yet enforce some constraints to be funny. Especially with the animals i think it is important that they only should spawn in rural, not urban areas so the player (other than barbarian) needs to maintain some space in "natural" form which cant be used otherwise. This can be done by binding the respawn to two simple factors: ammount of trees and ammount of animals nearby. Trees is surely a sign for "this area hasn't been domesticated so far", as well as animals are needed to reproduce. This simple factors should already give some very realistic breeding since overhunted areas need foreign animals to wander in again and rebreeding takes a longer time the less animals are nartive there.

So my suggestions/blueprints are the following:

FISH:

  • Maximal population depends on size of water area

  • Population rises until max limit is reached, depending on current population

  • Rising factor is 0.5% of population per minute (first draft, surely needs adjustment; i do not know the current ressource model), so if a population of 100 fish is there, it takes two minutes for a new fish to appear

  • To give a visual feedback on where fish is available, introduce an animation of a jumping fish from time to time, depending on the ratio current_population/max_population

  • the chance of a fisherman to get a fish depends on the current_population/max_population

ANIMALS:

  • Areas with trees but no animals don't spawn animals (for example human created timberland or overhunted natural area)

  • Areas without trees but with animals don't spawn animals since the have no hiding place (for example frehsly grubbed areas)

  • The chance per minute for a given empty (no road, no building, no tree!) maptile to spawn any animal depends on the count of trees and the count of animals nearby (surrounding triangles, based on [1]). The formula could be "chance% = (num_trees/6 + num_animals/6)/2" (so for example a tile with 3 trees and 1 animal would have a 33% chance to spawn a new animal. This may look high, but keep in mind that animals are walking around, and no animals at the hexagon points mean change=0%! Of course, the values need to be balanced afterwards)


[1] Map geometry; here the center point like in http://widelands.svn.sourceforge.net/viewvc/widelands/trunk/doc/geometry/index.xhtml

Edited: 2011-06-14, 09:52

Top Quote
Astuur
Avatar
Joined: 2009-02-28, 10:08
Posts: 733
Ranking
One Elder of Players
Location: Frankfurt / Germany
Posted at: 2011-06-14, 20:35

I like this!
Fish seems to be well as it is.

For animals I would not let this depend on "trees" only.
How about a terrain affinity?
If you think of the reindeers - they are not depending on trees so much.
And with time, we may even see some more animals (esp. in other worlds)
Snakes (in Desert) would be looking for stones rather than trees., just as an example.
Chamois need mountains, but not necessairily trees.
We could have an indirect terrain affinity (as trees all have that anyway per species)
So if trees, why not be a little more precise
and say "rowan trees" for animal X and "fir" for animal Y)
There is really a lot that could be done, if any of the coders caught fire for this idea.....
Otherwise, me at least, is not one who could do this. face-sad.png

Edited: 2011-06-15, 06:09

Being no programmer, I apologize for all my suggestions that imply undue workload and for other misjudgements due to lack of expertise or relevant skills.
I am on Win32, have no means to compile, and rely on prefabricated distributions (Thanks to Tino).

Top Quote
BeniH

Topic Opener
Joined: 2011-05-16, 15:49
Posts: 19
Ranking
Pry about Widelands
Posted at: 2011-06-15, 10:09

Hello, Terrain affinity is surely a nice thing; however i think its a bad idea to couple that to the trees species. What i wanted to express with the trees idea is that usually "processed" terrain is cleared of trees to make room for houses. I do not want animals to spawn in urban and processed areas.

And with the fish, do you mean my proposal is okay that way, or the implementation as it is now (that is no breding)


Top Quote
Venatrix
Avatar
Joined: 2010-10-05, 20:31
Posts: 447
Ranking
Tribe Member
Location: Germany
Posted at: 2011-06-16, 08:57

I’m not sure if it is that easy. For example, I don’t know, whether the code differs between different species (I don’t think so) and breeding a new animal from a fox and a deer seems rather strange. If I remember right, the main difference between animals is the image.

Is there some coder here to give a hint, if there are differences and where? If there aren’t it’s the question if it’s worth to code them.


Two is the oddest prime.

Top Quote
BeniH

Topic Opener
Joined: 2011-05-16, 15:49
Posts: 19
Ranking
Pry about Widelands
Posted at: 2011-06-16, 09:39

Its true, that inter racial breeding seems odd. I dont think, that this is of any relevance here, however. This breeding shpuld not be modeled like it is... u know... in true nature.

Its enough if there just spanws a new animal nearby, that would really be enough. This is not a breeding simulator, after all, its a game about ressources.


Top Quote
Astuur
Avatar
Joined: 2009-02-28, 10:08
Posts: 733
Ranking
One Elder of Players
Location: Frankfurt / Germany
Posted at: 2011-06-16, 10:06

@BeniH: I like your fish suggestion and found nothing to improved there.

BeniH wrote: Terrain affinity is surely a nice thing; however i think its a bad idea to couple that to the trees species.

Not always and for all animals, but in some cases. I just wanted to have the conditions for animals multiplying more flexible, and not only "woods".

  • Deer: Any tree on any terrain.
  • Moose: Swamp terrain, trees unimprotant.
  • Chamois: Firs. Since firs grow best on "Bergwiese" (not sure, just an example), we'd have 2 conditions for the price of one; i.e. "uncivilized Bergwiese" The trees' terrain affinity should see some tweaking for that.
  • Snakes: (on Desert world) quarry rocks, or boulders.
  • Wild boars: Farmland, especially corn. (Can you see Barbarian breeding them to ravage Atlantean fields? face-smile.png )

BeniH wrote: What i wanted to express with the trees idea is that usually "processed" terrain is cleared of trees to make room for houses. I do not want animals to spawn in urban and processed areas.

I understood that. In general I agree, but some exceptions should be possible to keep some animals within the settlements (Bunnies?)

Venatrix wrote: I’m not sure if it is that easy. For example, I don’t know, whether the code differs between different species (I don’t think so) and breeding a new animal from a fox and a deer seems rather strange. If I remember right, the main difference between animals is the image.

No, it's far from easy. Currently no code exists.
Animals are just placed by the mapmaker in certain numbers and wander around their center of placement.
Once they are extinct, they are gone for good.
So this would be a major undertaking to grant them some behavior modification based on conditions.

Coming up with nice ideas is all very fine, but actually implementing such things is a lot of work.
So, all in all, not sure, if it's worth the pain. Our coders are not exactly desperately looking for work.
There is plenty. On the other hand, if one of them feels tempted to try his skills with this, he might do it.
AFAIK they all choose for themselves what they would like to do.
Plus -- we may not have thought of all implications that might come from such a change.
But that is why we're discussing things here. So, let's be patient and see who else can contribute and what they might say.


Being no programmer, I apologize for all my suggestions that imply undue workload and for other misjudgements due to lack of expertise or relevant skills.
I am on Win32, have no means to compile, and rely on prefabricated distributions (Thanks to Tino).

Top Quote
martin

Joined: 2011-01-13, 14:21
Posts: 65
Ranking
Likes to be here
Posted at: 2011-06-16, 10:30

Venatrix wrote:

Is there some coder here to give a hint, if there are differences and where?

All animals are objects of the class Critter_Bob which is defined within src/logic/critter_bob.h. They have a task stack which at the moment only contains one task: randomly walk across the map. As far as I can see, there is currently no difference between all types of animals, when you look at the code only.

But of course, the type of animal has to be defined - this is done in the map data and can be manipulated via the editor. And also there is a conf file for each animal, which defines whether you can eat it, whether it is swimming (e.g. the duck), and some other things.

I guess, a kind of terrain affinity should also be done via the conf files - and requires modifying the code more or less slightly face-wink.png

The implementation of breeding new animals is also possible, but I don't know if this is a desired feature. And of course, we should first discuss an acceptable compromise between modeling "true nature" well enough and not bringing too many rules and complexity into the game...


Top Quote
BeniH

Topic Opener
Joined: 2011-05-16, 15:49
Posts: 19
Ranking
Pry about Widelands
Posted at: 2011-06-16, 10:47

The implementation of breeding new animals is also possible, but I don't know if this is a desired feature. And of course, we should first discuss an acceptable compromise between modeling "true nature" well enough and not bringing too many rules and complexity into the game...

Yes it is desired, because currently its possible to run out of meat. I think, a compromise with good results would be my proposal above, but with the option to add affinity like Astuur proposed. I think this would surely be a good path to implement this. After all, affinity is just an addition of detail.

@Astuur: im not quite confident that wild rabbits would enter the surrouindings of humans. For gameplay reasons i would implement the breeding as such, that no animals are spawned in urban areas. This enforces the player to keep some "natural" space (but no dense forest) for autobreeding to work.

What seems important to me is that there is a max population cap. Otherwise we might have tousands of animals in remote areas...


Top Quote