Verified:

Slagpit Game profile

Administrator
Game Development
5055

Mar 22nd 2021, 2:44:32

One of our short term goals is to make NPC countries better participate in the public market and to fight back when other countries attack or spy them. To that end, there is a lot of work to do:

1) Better destocking
2) Better NPC logging and reporting
3) Better public market purchasing
4) Better public market selling
5) Misc issue clean up
6) Add retals for bots

There's a bit of a learning curve when it comes to working on the NPC code, but at this point I believe I've made all of the code adjustments needed for goal 1. It's my intention for the NPC changes listed below to go live starting on March 30th, but that will depend on how further testing goes. Summary of changes:

ALL NPCS:
* The amount of time that bots spend logged out has been changed. Even after the changes, cashers, farmers, and rainbows are all playing more often than I'd like. It may not be safe to increase the logged out period until market interaction has been fixed.
* Bots are more likely to buy jets and turrets instead of troops and tanks.
* Destocking has been completely redesigned. The second post will contain a detailed log for players who are interested in the mechanics of how it works.
* Countries will begin destocking at different times instead of all destocking when there are 50 turns left. Some players have been taking advantage of this behavior by pricing military at very high prices for the 20:40 GT buyout. This will no longer work.
* While destocking, countries will resell bushels if it is profitable to do so.
* While destocking, countries will calculate future private market capacity and will reserve money to purchase off the private market. Consequently, they will continue to login after their first destock attempt.
* Countries may need to spend money on the public market on high priced goods if they don't have a large enough private market supply. The maximum prices that they are willing to buy are randomized and grow as the set gets closer to the end.
* Countries may attempt to resell military at relatively high prices if they have extra private market capacity.
* Techers will dump tech at $1000 while destocking if it is profitable to do so.

TECHER AND RAINBOW NPCS:
* Techers can now sell up to the server maximum percentage of goods instead of 25%.
* Techers will no longer sell tech below the price floor of $1000.

INDY NPCS:
* Indies can now sell up to the server maximum percentage of goods instead of 25%.
* Indies will no longer spend so much money on tech. I hope this results in indies actually building out their land instead of spending most of the reset at 50% unbuilt.
* Indies no longer favor producing troops when the public market is empty.
* Indies produce less spies.
* Indies are more willing to produce jets.
* Will no longer pick Dictator as a government and will instead rarely pick Demo.

FARMER NPCS:
* More likely to pick Fascism as a government and less likely to pick Republic.
* Will sell at higher prices when the food market is empty and will avoid selling at prices lower than their private market sell (after taxes).

CASHER NPCS:
* Less likely to pick Republic as a government and more likely to pick Demo or Theo.

Let me know if you have any questions or comments.

Edited By: Slagpit on Mar 25th 2021, 22:08:29
See Original Post

Slagpit Game profile

Administrator
Game Development
5055

Mar 22nd 2021, 2:44:37

Below is an example destock. The test server has an extremely fast turn rate which is why the calculated values for future PM capacity are so high.

[03:20:05] Country #6: Earliest destock time is: 03/22/2021 22:48:00
[03:20:05] Country #6: Doing destocking actions forced by debug variable
[03:20:05] --- Set indy production: 100% j
[03:20:05] Country #6: Money is 4218796845 and calculated money to reserve is 55000000
[03:20:05] Country #6: Turns left: 8
[03:20:05] Country #6: Starting cashing or teching...
[03:20:05] Country #6: Finished cashing or teching
[03:20:05] Country #6: Estimated public bushel sell price is 34
[03:20:06] Country #6: Current private market food price is 29
[03:20:06] Country #6: Current public market food price is 60
[03:20:06] Country #6: Decision on attempting public market bushel reselling: no
[03:20:06] Country #6: Attempting to dump bushel stock...
[03:20:07] --- SELL Public: 894k food @ $34
[03:20:07] 7 Turns - Put goods on Public Market $4.2B ($-187.8k) 121k Bu (-7813) API: 10
[03:20:07] Country #6: Done dumping bushel stock
[03:20:07] Country #6: For m_tr market buying loop, total money is 4218609025 and budget is 4163609025
[03:20:07] Country #6: Attempting to spend money on private and public markets on units better or equal to PM m_tr...
[03:20:07] Country #6: Iteration 1 for public market purchasing with budget 4163609025 at or below 288 dpnw
[03:20:07] Country #6: Iteration 1 initial public market conditions for m_tr are price 124 and dpnw 263
[03:20:07] Country #6: Iteration 1 initial public market conditions for m_j are price 136 and dpnw 240
[03:20:07] Country #6: Iteration 1 initial public market conditions for m_tu are price 131 and dpnw 231
[03:20:07] Country #6: Iteration 1 initial public market conditions for m_ta are price 454 and dpnw 241
[03:20:08] --- BUY Public: 678k m_tu @ $138 $4.1B ($-94.1M)
[03:20:08] --- BUY Public: 2M m_j @ $144 $3.8B ($-288M)
[03:20:09] --- BUY Public: 92.8k m_ta @ $481 $3.8B ($-44.7M)
[03:20:10] --- BUY Public: 345k m_tr @ $131 $3.7B ($-45.4M)
[03:20:10] --- BUY Public: 163k m_ta @ $543 $3.7B ($-88.9M)
[03:20:11] --- BUY Public: 1000k m_tr @ $142 $3.5B ($-142M)
[03:20:11] Country #6: Iteration 2 for public market purchasing with budget 3460190064 at or below 288 dpnw
[03:20:11] Country #6: Iteration 2 initial public market conditions for m_tr are price 144 and dpnw 305
[03:20:11] Country #6: Iteration 2 initial public market conditions for m_j are price 165 and dpnw 292
[03:20:11] Country #6: Iteration 2 initial public market conditions for m_tu are price 178 and dpnw 314
[03:20:11] Country #6: Iteration 2 initial public market conditions for m_ta are price 555 and dpnw 294
[03:20:11] Country #6: Spent 703418961 money on public market military cheaper than 288 dpnw (on m_tr pm iterations)
[03:20:12] --- BUY Private Market: 4.9M m_tr $2.8B ($-703M)
[03:20:12] Country #6: Adjusting budget down by 42657963552 which is future PM capacity for m_tr
[03:20:12] Country #6: For m_ta market buying loop, total money is 2812175440 and budget is 0
[03:20:12] Country #6: Adjusting budget down by 58062228168 which is future PM capacity for m_ta
[03:20:12] Country #6: For m_j market buying loop, total money is 2812175440 and budget is 0
[03:20:12] Country #6: Adjusting budget down by 47397737280 which is future PM capacity for m_j
[03:20:12] Country #6: For m_tu market buying loop, total money is 2812175440 and budget is 0
[03:20:12] Country #6: Adjusting budget down by 51841275150 which is future PM capacity for m_tu
[03:20:12] Country #6: Completed all PM purchasing. Money is 2812175440 and budget is 0
[03:20:12] Country #6: Estimated future PM gen capacity is 199959204150 dollars
[03:20:12] Country #6: This is NOT the final destock attempt for this country
[03:20:12] Country #6: Budget is 0 which means not enough money for additional public market purchases up to 336 dpnw
[03:20:12] Country #6: Considering military reselling...
[03:20:12] Country #6: Money is 2812175440, on-market value is 28585695, and future PM gen is 199959204150
[03:20:12] Country #6: Future free PM military capacity is estimated at 197118443015 dollars
[03:20:12] Country #6: Attempting to build a public market package for military reselling...
[03:20:12] Country #6: Want to sell mil units with min value of 50000000 dollars and max of 197118443015 dollars
[03:20:12] Country #6: Calc sale of m_tu: PM price is 210, our sell price is 260, and max sell is 338817 units
[03:20:12] Country #6: For m_tu: sell volume recalculated as 338817 and package value is 82806875
[03:20:12] Country #6: Calc sale of m_j: PM price is 192, our sell price is 222, and max sell is 1000097 units
[03:20:12] Country #6: For m_j: sell volume recalculated as 1000097 and package value is 208700242
[03:20:12] Country #6: Calc sale of m_ta: PM price is 588, our sell price is 729, and max sell is 237788 units
[03:20:12] Country #6: For m_ta: sell volume recalculated as 237788 and package value is 162946605
[03:20:12] Country #6: Calc sale of m_tr: PM price is 144, our sell price is 358, and max sell is 3677429 units
[03:20:12] Country #6: For m_tr: sell volume recalculated as 3677429 and package value is 1237528407
[03:20:12] Country #6: After checking all military unit types, the total package value is 1691982129 dollars
[03:20:13] --- SELL Public: 3.7M m_tr @ $358
1M m_j @ $222
339k m_tu @ $260
238k m_ta @ $729
[03:20:13] 6 Turns - Put goods on Public Market $2.8B ($-101.5k) 109k Bu (-11.8k) API: 20
[03:20:13] Country #6: Resold military successfully
[03:20:13] Country #6: Considering tech sale...
[03:20:13] Country #6: Did not sell tech for reason: No support for non-techers at this time
[03:20:13] Country #6: Next play seconds was passed in as 120
[03:20:13] This country next plays in: 120 (12 Turns)

Edited By: Slagpit on Mar 22nd 2021, 3:25:54

Gerdler Game profile

Forum Moderator
5113

Mar 22nd 2021, 10:28:02

Awesome!

When this is introduced it is only on express or?

Kahuna Game profile

Member
1312

Mar 22nd 2021, 12:15:27

RIP tech market....hmmm you should make bots consume way more tech. Tech prices are already low with bots not producig as much tech for sale

Edited By: Kahuna on Mar 22nd 2021, 12:17:37

NitelL Game profile

Member
636

Mar 22nd 2021, 13:54:16

Great change!

Kahuna, the problem right now isn't tech prices being too low.. a techer still wins every set and has won every set for a while now (with the occasional commie indy winning here and there). There is very little strat flexibility in Express if you are looking to win it.

Tmac Game profile

Member
890

Mar 22nd 2021, 14:11:02

Thanks for your work slagpit =)

Slagpit Game profile

Administrator
Game Development
5055

Mar 22nd 2021, 14:38:51

Originally posted by Gerdler:
Awesome!

When this is introduced it is only on express or?


It'll be Express only for a while. We plan to use Express as a method of testing changes because the resets are so short. Eventually the changes will roll out to other servers, although I understand that some tweaking may be needed to make the new NPC code work well on alliance on FFA.

Originally posted by Kahuna:
RIP tech market....hmmm you should make bots consume way more tech. Tech prices are already low with bots not producig as much tech for sale


In what way are tech prices low? I've sold tech for over $9000 on the final day of the set. Over the past few months, a techer pretty much has a guaranteed win unless someone running a different strategy bothers to grab to at least 40k acres. Grabbing to 40k acres is going to be way harder on Express once the bots are smarter and are able to fight back.

One of my goals is to make every strategy competitive on Express. Frankly I don't want players to feel like they have to play techer to finish well. That sounds really limited and boring.

Gerdler Game profile

Forum Moderator
5113

Mar 22nd 2021, 14:59:57

over 9000 just memeing now. :P

Its interesting to consider what prices would be balanced since indies are kinda perfect for this server considering they can grab when everyone else are done and the bots are huge with no DR while selling expensive military to the already jumping techers(and now bots?) and buying techs after that market has crashed.
Because of how many turns we can save balanced prices should look quite a bit different here than on other servers.

I remember when I started playing EE I won with an indy at like 45m NW while selling much of my early turrets/jets at $80-90. Bots are quite different now so thats no longer the case.