#Some Data Analysis for Sweats (20s Opener)

66 messages · Page 1 of 1 (latest)

swift pelican
#

Hello, to help start optimizing your opening gameplay I compiled some theoretical data based on click intervals (timer is in the top right) to help get a great start!

The numbers do seem to hover around real-time appropriately in practice and should help give you a different perspective in early game strategy!

https://docs.google.com/spreadsheets/d/e/2PACX-1vSmocq0c20Iylpqhr-vUbqplrvRWmROOEKmhxvqqcpGRbjCCWIsneKwgq8dQpJ_pwSYghi__0_GJ2Yg/pubhtml

Data conditions:
-Grasslands (Expect lower numbers in differing biomes)
-20 seconds (0-20)

As a side note and for clarification: the data was sim'ed using the functions found in the source code (../DefaultConfig.ts). Good luck and have fun!

ornate imp
#

Wtf

#

This guy is professional

#

Can u clarify the results up a bit

swift pelican
#

Sure. The first 20 seconds can determine how well you can snowball in the game given ideal conditions and instead of guessing how much to expand, what attack ratio to use, we can identify some optimal ratios (based on clicks and timing to achieve the best possible troop count and interest

#

More balanced gameplay can be achieved with more attack ratio and spaced out attacks such as
23%, 5s -> 418, 8019, 925

Not bad

zealous tartan
#

You just started playing yesterday😭😭

#

This crazy

swift pelican
#

Some Data Analysis for Sweats (20s Opener)

dapper night
#

@swift pelican this is quite good.

#

@crystal sonnet this is what i was talking about

tulip lichen
#

So 5s, 10% is the best conf?

small tartan
#

Just to confirm where you say seconds we should read ticks?

tulip lichen
crystal sonnet
#

This spreadsheet is a bit weird but its cool

celest trellis
#

Excellent.
Second thought:
If this is optimal then we'll need UX adjustment :
What if clicking at fixed intervals was the most optimal way (to conquer bots) ? You're rewarding players that do this boring stuff.

#

This theory could be extended with different terrains and enemy troops gains, ect

#

I would like to see the exact math of the game btw.
It seems that there is no such thing on discord nor the web.

small tartan
#

The game is open source and on GitHub, I've been diving into exactly how the map gets generated, looking at how attacks work is next on my list as I don't think the speed of attacks late game is very fun but I gotta understand how it works now before I can think about how it could change

celest trellis
#

Right I've been lazily asking Cursor to answer about the gameplay math

steady oriole
#

huh

#

gimme

ornate imp
#

Approved

toxic jackal
swift pelican
# celest trellis I would like to see the exact math of the game btw. It seems that there is no su...

Basically it's all in DefaultConfig.ts, maxPopulation() which takes in the tile value and calculates the max cap pop and populationIncreaseRate() which is the growth function for interest. You can plug in the initial values at t = 0 to find the initial interest and max pop. The rest is adding and subtracting the values for example: (tiles_taken= (troops*attackRatio%)/cost_per_tile, which for plains the cost is 80/5 or 16. Then iterate over each attack ratio/time interval and voila

shell meteor
#

It's really cool that you figured it all out and compiled it into one simple table, thanks

swift pelican
#

I definitely didn't include all the variables in the sim (e.g. speed), however, if your like me and look for consistent strategies in games this is definitely viable. I should also note that there are randomness calcs used in claiming tiles, for example, addNeighbors() and numTilesPerTick() in AttackExecutions.ts, which makes further modeling convoluted. But regardless of that, the game becomes wildly unpredictable after all the free land is taken anyways so you would need a different strategy!

I also updated the sim to reflect the 95% to 5% ratio the numbers are actually closer to real time now. Enjoy!

swift pelican
small tartan
#

Oh that's interesting. I was assuming the counter in the top right was ticks, and it was one tick per second. That actually makes the attack logic I extracted yesterday make a lot more sense

devout bobcat
#

Hello. I've borrowed your post for The Federation, giving credit. Hope you don't mind.

peak spoke
#

Neat

scarlet vine
frosty bear
livid pulsar
#

thanks a lot for that

edgy marlin
#

What about lower percentages?
My strategy tends to be 5-8% and just look to maintain at least 200 troops attacking until I get to 6000 pop, then increase how much you maintain it at to like 300, then when you get to 8000, maintain 400 etc.

Your population will grow as long as you look to maintain a number of attacking troops proportional to your population size.

You could possibly do it at something like half your interest number but I haven't tried that.

golden jolt
golden jolt
#

Well since I didn’t get a response ill assume the worst

#

This data is prob outdated to anyone encountering this, since the mechanics were different back then

toxic jackal
#

This data can be easily generated (given the right formula)

#

(I thinkkkk)

fringe ridge
stable nest
#

I saw the data analisys which is very impressive but it would even more interesting if we had data on interval < 2sec to see whats the best one :p

swift pelican
#

Hey guys! I'm very sorry for the no updates, I've been on other projects and busy with work. I'm just going to share the code here. I hesitated to share it, because I scaled the equations arbitrarily to simulate 20% and 4s as accurately as possible (sorry) and I wanted to fix it since the data was iffy sometimes at best (although they get really close right?), but I simply did not have time! But if you can improve on it and find/implement why that is (since I do not know🧐 ) please try! I also tinkered with pareto-ing the data, but I gave up haha. Anyways please play around with it!

Shoutout to @cinder rivet good job, wishing you the best on your journey my friend!

For reference, I used Jupyter but you can run it with anything that uses python, so just pop it in and run it!

A note about the functionality (you can):
-Create graphs/data for each biome
-Create longer/shorter simulations
-Increase/decrease the range of ratios/intervals to iterate over for more or less data

If the data doesn't match up with in-game, try scaling the population_growth function or last_interest under the sim function.

swift pelican
burnt lotus
#

I decided to plot the lines for troop count vs attack perc. and land size vs attack perc. at different click intervals. Apologies for the horrible coloring, posting this from the mobile app.

Quick explanation:

  • x-axis: attack percentage
  • left y-axis: final troop count
  • right y-axis: final territory held
  • lines: final troop count/territory held vs. attack percentage for different click intervals (how long you wait between clicking on unclaimed land)

The conclusion is that if you want to maximize both troop count and land mass at the end of your expansion, you will need to click at the following rates-attack percentage combo:

  • every 2 seconds at 10 or 11% (both optima are close)
  • every 3 seconds at 16%
  • every 3.5 seconds at 19%
  • every 4 seconds at 24%
  • every 4.5 seconds at 22%

For the 5 second intersect, more data is required. The current set points toward an optimal attack perc. outside of what was tested.

You can replicate these results yourself, and please do as I could have made a mistake myself.

Having said that; I have been setting the attack percentage to 11% every game and expanding at a rate of ~2.5 seconds and I usually end up with enough troops to:

  1. round off my borders with consecutive bot clicks of 50%.
  2. continue with pincer attacks at ~33% each click.
    I have added a square to the figure to highlight the settings I’m referring to.

This is all continuous and without waiting for my troop count to grow. Hope this helps!

scarlet vine
#

Also I hope you don't put too much effort into this before the new changes apply in a week or so

burnt lotus
#

Can you link to the expected new changes? Is there a release planning on Github or this Discord?

scarlet vine
burnt lotus
#

I guess just a list of confirmed upcoming changes. Like how do you know there are new changes to this part of the game that will apply in a week or so?

scarlet vine
burnt lotus
#

Ok interesting, thanks for the tip! It’s openfront.dev right?

scarlet vine
#

yes but it's often updated

wide lagoon
#

Every simulation assume that attack are instant and capture every tile in one tick , no ?

wispy harness
#

I always felt like bigger attacks are better, cause the bots regenerate troop count, so taking them with smaller attacks costs more in the end?

wide lagoon
#

Yes

#

More troops reduce losses

#

And attack is faster too

wispy harness
#

yeah, if the simulation does not take this into account, it can't be the most efficient method

wide lagoon
#

For the case where you attack wilderness, attacking with more troops do not reduce loss however if i remember well

#

it's a fixed amount of loss per tile that only depends on terrain, since there is no defending troop

#

the attack logic varies if you attack wilderness, a real player, a bot or a fakehuman bot

wispy harness
#

So attacking wilderness with smaller frequent attacks is more efficient?

hazy bone
#

I also did a python analysis on the formula provided. I changed the scenario to examine the effect of spending troops to get land and the long-term troop amount that would result. the first 30 seconds the simulation takes land and the next 30 seconds it lets troop interest rise. This is to simulate running out of wilderness expansion. These are my results: