Jump to content

[DISCUSSION] Regenerative Resources


Recommended Posts

Design thread

Some resources which already exist on the map (fruit and fish) will recover resources over time when they are not being gathered.

The rate of regeneration needs to be decided.

1. Constant regeneration. This is very simple, the amount of resources increases by the same amount each second.

2. Sigmoid regeneration. This varies the regeneration rate based on the current resources. When the resource is close to empty then the rate is slow and when the resource is nearly full the rate is also slow.

I have attached a diagram showing the two methods, constant is in orange and sigmoid is in green.

Link to comment
Share on other sites

I prefer keeping resource regeneration rate constant. It is simple and also means that you don't need to manually manage your workers to optimize the gathering rate. As long as there are several regenerative resources the workers will use up one, then move on to the next etc. With a sigmoid version to get the most resources workers need to be pulled off the resource before it runs out and put onto resources before they have finished replenishing. This adds lots more actions for the player to perform which are mechanical and don't seem to give any interesting gameplay.

Link to comment
Share on other sites

I prefer a combination of approaches (as is currently implemented in #1973). Berries should have constant regeneration, and fish should have sigmoid regeneration.

Advantages of sigmoid regeneration:

  • It's more realistic: the more fish there are, the more new fish are produced, but when the population gets large enough it slows down again due to less available food for the fish.
  • It takes some time to get "warmed up" from 0. This means that it isn't immediately useful to gather from for a while after it's depleted.
  • Less "game-y" than constant regeneration, which simply seems overly artificial for a resource like fish.

Disadvantages:

  • It is possible to micro your fishing boats heavily to optimize food income, adding pointless micro to the game.
    • Counter-argument: As we don't have many fish on maps spreading fishing boats out is not feasible.
    • Counter-argument: This would get prohibitively difficult with > 5 fishing boats - anyone who can pull that off deserves to be rewarded.
    • Counter-argument: This isn't pointless micro - it requires doing a fair amount of non-trivial math in real-time to balance the number of fishing boats, the number of fish sources, and the current resources of each source.
      • Counter-counter-argument: Someone could do the math for X numbers of fishing boats and Y numbers of food sources once and post a table of it, meaning that people could just memorize that and brainlessly micro their fishing boats around.

I prefer keeping resource regeneration rate constant. It is simple

Simplicity doesn't really mean much here; the player doesn't really need to know how it works. I actually think sigmoid may be the more expected form of regeneration from a player's perspective - people expect more fish to reproduce more fish.

and also means that you don't need to manually manage your workers to optimize the gathering rate.

The advantages of this are dubious, IMO. It would likely not provide a substantial food benefit and the ridiculous APM required to constantly check your fish sources and remove the fishing boats at the necessary time could be put to far more productive things.

Nitpick: You wouldn't be optimizing the gathering rate but rather the regeneration rate. It would gather at the same speed regardless, however you would have more food available more quickly if you pulled the fishing boats off at the point the sigmoid curve starts to turn exponential.

As long as there are several regenerative resources the workers will use up one, then move on to the next etc. With a sigmoid version to get the most resources workers need to be pulled off the resource before it runs out and put onto resources before they have finished replenishing. This adds lots more actions for the player to perform which are mechanical and don't seem to give any interesting gameplay.

Those actions could be put to far more productive things. I think you underestimate the APM it would take to constantly check the resource levels of every supply of fish and move fishing boats around constantly. If you're fishing with one or two boats, sure, it might give some extra food, but when you have 5 or 6 boats? Not so easy.

Incidentally, I might count this as a pro for sigmoid regeneration: overfishing is punished in real life, too. :P

  • Like 1
Link to comment
Share on other sites

Thank you Alpha best defense than me.

That feature is for Alpha 15?

It's quite possible to get it in Alpha 14, especially since the release will be delayed until the AI is fixed (which could take around a week). Basically once this design stuff is settled I can commit it (although the bit in the patch that handles delay before regeneration is more ugly than I like - I'll either change that or remove it entirely).

  • Like 1
Link to comment
Share on other sites

I like 2 more solely for being more "realistic" (I'm assuming here that the max amount is the critical mass over which the fish population can't go for lack of resources etc.) I don't think the micro issue is really one, it seems like it'd be really really really complicated to do properly (but AIs might manage it).

Link to comment
Share on other sites

I don't know if that is something that have been thought before but I will give a idea regardless of the option chosen: resource regeneration could work only after the workers had stopped X time. This penalty is to prevent micro and make resource regeneration just a feature to make unlimited resources.

  • Like 1
Link to comment
Share on other sites

starting regenerationonly after a period after the last worker left enforces micro on linear regeneration as you want to deplete asource as fast as you can, and when you let unit ai do, it doesn't work, so i strongly oppose the idea. For the different algorithms , I think real life should be followed, so sigmoid on the fish and linear on the fruit. I'd like to test it this way and see how it affects the game.

Link to comment
Share on other sites

I like 2 more solely for being more "realistic" (I'm assuming here that the max amount is the critical mass over which the fish population can't go for lack of resources etc.)

That's correct.

I don't think the micro issue is really one, it seems like it'd be really really really complicated to do properly (but AIs might manage it).

It would be. I'm not even sure if TheMista could do it properly for any more than about 3 fishing boats. It's a huge amount of effort for small (but tangible) gain.

I don't know if that is something that have been thought before but I will give a idea regardless of the option chosen: resource regeneration could work only after the workers had stopped X time. This penalty is to prevent micro and make resource regeneration just a feature to make unlimited resources.

That's actually implemented in the patch on #1973. Sanderd17 has brought up some good reasons against it though (which you can also find on that ticket).

starting regenerationonly after a period after the last worker left enforces micro on linear regeneration as you want to deplete asource as fast as you can, and when you let unit ai do, it doesn't work, so i strongly oppose the idea. For the different algorithms , I think real life should be followed, so sigmoid on the fish and linear on the fruit. I'd like to test it this way and see how it affects the game.

I think I'm going to remove the delay. In addition to causing some problems like that the code is ugly and it's not realistic - nature doesn't wait for people to stop gathering from it to regrow. :P

Link to comment
Share on other sites

The sigmoid approach seems ripe for exploitation:

1. Get the game's source code (it's freely available).

2. Hack the game a little to make it optimize resource collection automatically while you do other things.

3. ???

4. Get a much/vastly better resource collection rate than someone not using this exploit.

  • Like 1
Link to comment
Share on other sites

There are a lot of far more productive ways to cheat right now. :P

zoot, I'm not sure why you think writing a bot to play along side you is a con of the sigmoid function, it's a flaw of the game's lack of anti-cheating measures.

And let's clear something up: the resource collection rate doesn't change. The way to "exploit" (which is completely the wrong word here) the sigmoid approach is to remove your fishing boats at the beginning of the exponential part of the curve and add them back at the end of it. This means that the you'll always stay within the fast-regenerating part of the curve. It would not be "vastly superior" by any means, if it would even make a difference at all. It would just mean more food is available faster. This would make precious little difference in practice since fishing isn't meant to be a primary food source anyway.

Please stop spreading FUD - which is what your post is - and concentrate on the technical stuff.

Link to comment
Share on other sites

There are a lot of far more productive ways to cheat right now. :P

zoot, I'm not sure why you think writing a bot to play along side you is a con of the sigmoid function, it's a flaw of the game's lack of anti-cheating measures.

And let's clear something up: the resource collection rate doesn't change. The way to "exploit" (which is completely the wrong word here) the sigmoid approach is to remove your fishing boats at the beginning of the exponential part of the curve and add them back at the end of it. This means that the you'll always stay within the fast-regenerating part of the curve. It would not be "vastly superior" by any means, if it would even make a difference at all. It would just mean more food is available faster. This would make precious little difference in practice since fishing isn't meant to be a primary food source anyway.

Please stop spreading FUD - which is what your post is - and concentrate on the technical stuff.

Mind your own business, little man. I wasn't talking to you. The concern is completely valid and just an extension of wraitii's point that "AI's might manage" to do the optimization. The relevant people are completely capable of evaluating whether or or not that makes "precious little difference" without your silly posturing.

  • Like 1
Link to comment
Share on other sites

The concern is completely valid and just an extension of wraitii's point that "AI's might manage" to do the optimization.

I think wraitii was referring to the AIs doing the "optimization" if it can even be called that for themselves, not as a means of cheating for people. Incidentally, it would be rather non-trivial to teach the AI to juggle fishing boats around, so that's pretty far in the future. AIs do have the APM to do it though.

The relevant people are completely capable of evaluating whether or or not that makes "precious little difference" without your silly posturing.

Well, I wrote the code, and am on the design committee, so I think I'm one of the "relevant people".

Link to comment
Share on other sites

I think I'm going to remove the delay. In addition to causing some problems like that the code is ugly and it's not realistic - nature doesn't wait for people to stop gathering from it to regrow. :P

Well, I don't think deer or fish will want to mate in the middle of being hunted and harvested. So, at least some small delay seems logical. ;)

The sigmoid approach is fine. To be honest, I don't think 99% of players will notice a difference between it and linear regen, but for the 1% that thinks it'll be cool and "more realistic" then hey, I'm willing to throw them a bone. Especially if there is little performance difference between the two sets of calculations.

Just a question, but how do you know at which point the resource at the curve is?

If you want to let the player know, you could perhaps add a graph to the game UI.

I really don't see the need for this. The player really just needs to know that the fish are regenerating.

But this brings about an idea.

What if fish deplete like normal (and don't regen), unless a fishing trap is placed by the fishing boat? I think AOE1 had something like this. This is more of an extension of the current implementation or would it need a rewrite? Maybe it's okay to just commit the feature as already agreed, then maybe later thinking about doing cool things like what I just suggested.

Link to comment
Share on other sites

While the sigmoid approach is nice, I prefer constant regeneration, just because I think the game should be as simple as possible to understand for players. Constant should be obvious to understand, sigmoid should be explained to players, maybe in the tutorial.

Going with sigmoid however, I would prefer a gentle curve, without extreme parameters.

Link to comment
Share on other sites

  • 2 weeks later...
  • 10 months later...

If it's decided to use a non-linear regeneration rate for any food (or perhaps even in the linear case), it would be nice to note it somehow during gameplay. Some sort of report when clicking the fish saying "Current Regeneration Rate: 2" (I guess the unit is something like "food-per-turn" or "food-per-100 turns" or whatever, but I don't know that a unit is important...), or "Constant Regeneration Rate: 3". If it's contant, it could just be placed in the gameplay notes, but if it's non-constant and non-linear, it would be nice to know what's going on for those cases when, at the beginning of the game, I don't have much else to do, and I would like to optimize *something*, so I may as well micromanage some food-gathering.

Link to comment
Share on other sites

wraitii already improved some tooltips recently. I think it was showing how much more harvest can be expected if another gatherer was added to a farmfield or other resource.

Do you have some info about how fields regrow in real world? I know there are formulas for animal reproduction, e.g. perfectly fitting our fish, but are there formulas for calculating the field's harvest over year and even years?

Link to comment
Share on other sites

  • 4 weeks later...

A thought, what about farming trees? You could do it like a farm field, but with extremely long build/work times and small output. Like 15 trees for one field and 30 minutes of 5 workers "growing" the grove. But each tree would only have like 200 wood.

Just a thought.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...