DIR Return Create A Forum - Home
---------------------------------------------------------
Zerg Hex Forum
HTML https://zerghex.createaforum.com
---------------------------------------------------------
*****************************************************
DIR Return to: Builds & Guides
*****************************************************
#Post#: 2256--------------------------------------------------
Re: Zerg Hex Science
By: BigNoob Date: September 27, 2021, 10:54 pm
---------------------------------------------------------
Cool stuff.
I've only read your eco part, so I will only address that.
1 - Please don't follow the pretentious economics bullshit of
calling your model's first order conditions "laws"
1 - Your model will be much more meaningful if you made it
independent of supply count. Until you make it capable of
emulating a more realistic scenario, where your already
simplified parameters are spawners and spires only, all these
results fail to be robust to any perturbation, because under the
restrictions of your assumptions, the next move is dictated
strictly by your supply number. An already more realistic case
is to make your supplies worth 45 each, which introduces
imperfect supply usage. How should we manage our growth policy
then?
2- Your first order conditions already don't hold, because the
marginal eco growth provided by both spawners and spires depend
on the count of the other. You're currently treating x and y as
purely exogenous variables, where in truth they're deeply
endogenous; you shouldn't treat implicit variables as explicit.
3 - Ignoring (2), I really like what you did, making spawner and
spires depend on the supply count, and then finding their
convergence! Now that I think about it, it makes sense that the
upper bound would be below 4, since at the stable what matters
is the number of buildings, and the tradeoff is 1 spire vs 3.75
slowlings. I think you might have forgotten to include that each
spire increases income by a flat rate of 30 (or maybe you did,
and I just suck at reading).
5 - I don't know if you've taken macroeconomics yet, but it's
been verified (to the extent that economics can) that economic
growth is exponential (hence why macroeconomic estimates are
usually presented with a log link). You could definitely try
some curve fitting, but looking only at the tail values, given
how quadratic and exponential functions are decent
approximations of each other at small values.
8 - Income growth is quadratic and mineral bank is cubic? It
doesn't make sense that your unspent resources grow faster
than... your only source of income. If we focus only on the
economy part of the game, then let's suppose building a spire, a
spawner, and supply+ are all abstracted as buttons. Then
according to that perfect machine, your eco bank should be a
thresholded function of your income. Meaning that the absolute
upper bound of your mineral bank is the cost of the next supply
+ some overflow (since spawner and spire both cost less than the
lowest supply upg). Did I perchance misunderstand mineral bank
for unspent resources instead of lifetime income?
I just want to reiterate that I find it hard to believe that eco
isn't exponential. The game economy is best modeled as a partial
differential equation of spawners and spires, (both of which are
implictly defined by the order). Even if we made either spawners
or spires a form of numeraire, or even the net supply
formulation, your ODE's growth is strictly dictated by your
current endowment. Any ODE that satisfies any form of y' = y is
an exponential function.
This is a really cool thread! Does your current code roadmap
allow for eventual curve fitting? I'd love to be proved wrong,
cause a non-exponential economy would be really interesting to
see.
#Post#: 2257--------------------------------------------------
Re: Zerg Hex Science
By: guguizg Date: September 28, 2021, 7:46 am
---------------------------------------------------------
First of all thank u for the feedback i like to see more nerds
around.
Now before i adress each thing you said, let me just say that
english is not my native language so i think a lot of confusions
were caused by poor word choices and i'm sorry about that xD
1. What i meant by "law" is that in this system, with those
concessions, those equations will always be true.
1. I couldn't make it not supply dependent because supply
increases with cost at each supply you buy. Therefore i needed
to factor that increase. It doesn't really matter if the supply
has 45 or 90 because as i said, I'm not restricting the
variables to integers, so there is no imperfect supply usage.
2. I don't think i understood what you ment by exogenous, as I'm
reconsidering the new "ratio" and new income on each supply, as
the number of spawners and extractors change. There are no
outside variables in this system.
3. I did consider the flat 30 when i said the initial spawner
value is 54 (flat 30 + 24 initial spawners)
5. I'm still at introduction to macroeconomics, but maybe
macroeconomics wont apply to this game. To further investigate,
as i mentioned, I'm working on a simulator. I'll share some
preliminar results I got from it. The simulator considers time
(building time for extractors and spawners too) and all costs
that are in the game. I'll attach it on this post. To make it a
fair comparison, I got the simulator to make only slowlings and
extractors. It can deal with imperfect supply - it will always
get bellow 4 before buying the next supply. I ran the simulation
for a milion seconds and this is what i got for income (y axis)
by time (x axis):
HTML https://imgur.com/e9vewLD
This sure doesn't look like a exponential curve, but to confirm
it, I'll make the y axis in log scale:
HTML https://imgur.com/YBOwnAt
I can be wrong as i might be lacking some information or
something, but i think that given that the simulator is working
properly (I believe it is) that curve is not exponential.
8. What i meant by accumulated mineral bank is the lifetime
income - mineral bank at the end + all spent minerals.
Unfortunately i don't have knowledge on curve fitting, but if
want to give it a try i would be happy to check it out. In any
case i can ask a friend for help - he is studying engineering
and is nerdier than me so i guess he can do it.
#Post#: 2258--------------------------------------------------
Re: Zerg Hex Science
By: BigNoob Date: September 28, 2021, 11:02 am
---------------------------------------------------------
Here, E and S will refer to extractor/spire and spawner.
1 - I think my intended use of imperfect supply usage actually
refers to dead weight loss. For example, if we're at 45 supply,
then the only way to use all of that 45 supply is by making 3
spires, since 30 mod 4 != 0. We can't have fractional spawners,
so this adds to the cumulative inefficiencies.
I also think that you shouldn't include cost of supply in your
best growth scenario, therefore making your model depend
strictly on E and S. The impact of increasing supply cost, I
believe, is strictly to implement forced inefficiencies: you
can't stay at perfect mineral usage (i.e. 0 unspent resources)
because you need to wait for enough minerals to upgrade supply
after using all of it. The linear increase in cost is just a
penalty on time, which should converge to 0 at a large enough
scale anyway, since your eco will grow by much more than 125 per
supply. That is to say that cost of supply does not affect your
build order.
2 - Notice that your utility function, U(E,S) is such that your
decision to make an extra E depends on how many s you have. This
implicitly creates a relationship between E and S, such that
your number of spires is actually a function depending on
spawners. Similarly, your next building should be E if you have
enough S, so spawners are also a function of E. This means that
the full characterization of your utility function is U( E(S),
S(E) ), since they depend on each other. This is because your 2
inputs are complements, much like how capital K needs labor L to
be productive, and L is more productive if they are tools
(capital). Intro econ classes will teach them both as explicit
variables, I think because of envelope theorem, which states
that 2nd order effects and beyond resolve themselves, but don't
take my word on this.
Disregarding the previous paragraph (because now that I think
about it, the effects might honestly be too small for us to
care), I think at the minimum, your model should be U(E,S) and
not U(n). This gives you the flexibility to test situations such
as "what I were to lose 1 entire side? (i.e. -2E, - 4S)", or
even consider "how long would it take me to get back to normal
3T eco if I had {1,2,3} 2:15 leavers?
3- Thanks for clarifying. I think your utility function should
also have intercept whatever your hive gives per minute, since
you mentioned that I = S * E + H. Of course, setting H to be
your intercept also means that you would need to make U(E,S) =
(S + 30) * E and set your initial conditions to whatever it
needs to be.
5- That definitely does not seem exponential! That's pretty
cool. Your time range was definitely long enough, and that log
curve is very very far from being straight.
Great stuff
#Post#: 2259--------------------------------------------------
Re: Zerg Hex Science
By: guguizg Date: September 28, 2021, 1:21 pm
---------------------------------------------------------
I see your point. It was very hard for me though to make all of
this with maths. There was a point when me and my friend
realized we wouldn't go much further with pure maths and a
simulation was much needed. The model just has too many
variables to factor and when u disreguard them the results make
less sense. I don't have good enough tools to make the model
considering all of the variables, so i just stopped at that
point. Hopefully a simulation can carry me further.
Anyway, thank you for the input, it's cool to see debate getting
at this level on the community.
#Post#: 2270--------------------------------------------------
Re: Zerg Hex Science
By: guguizg Date: October 19, 2021, 9:27 am
---------------------------------------------------------
Spawner position optimization
Zerg's economy depends heavily on the spawner count. Therefore
it's important to have all of them secured so the terran can't
kill. On the other hand, the further away you place them, less
efective they will be. All spawners have a max capacity, meaning
that a slowling spawner, for exemple, can only have 2 slowlings
on the map, and when there are 2 on the map already, it stops
producing. That means that the general goal at optimizing a
spawner is to have the unit killed as fast as possible, which
means that it will be always producing.
There are a few ways to improve a spawner's efficiency:
- Capacity upgrade: can have more units on the map, but costs
minerals (delaying eco)
- Positioning: getting the spawners closer to the terran makes
units die faster, but increases risk too (terran can kill your
eco)
- Speed: Speed upgrades make units go faster and therefore die
faster, but also cost quite a lot of minerals
- Traffic: Depending on your spawner positioning, units can get
stuck on a funnel or be forced to take a longer path, which
makes it take longer to die
On this post I'll try to focus on positioning.
In the attatchment I got the game stats in Excel. Each unit has
a different movement speed and creep boosts the speed in
different values for each unit, so I can tell already that the
results will not be uniform - each unit will have it's own
conclusion.
Metodology:
Having the movement speed on and off creep, the max unit
capacity and the spawning time, makes it quite easy to calculate
where the unit should die compared to where the spawner is
placed. It's spawning time * spawn capacity, which gives us the
optimal death time, and spawning time * spawn capacity *
movement speed for the optimal death distance. Now, just have to
place on the map a spawner and calculate where the unit should
die. Thankfully I already have the map in Excel, I'll attatch it
again.
Slowling Spawner:
To test out if everything was right, I tested the method for
slowling spawners and this is what came out.
HTML https://imgur.com/qEHm6Db
This one is for normal slowlings spawners, the black tile with
the number is where the unit has to die for it to be optimal.
HTML https://imgur.com/LMfjwNS
This one is for capacity slowlings.
Problem:
This is a very mechanical process, I can't do this for each
spawner, each speed value, with primal rapid respawn, packed
mass, it's just too much work. As a follow up post, I'll try
either choosing the most important ones or figure out a way to
do it more efficiently
Note:
On the Excel attachment you can try yourself to get the optimal
positions, It considers speed, capacity and the upgrades that
matter: u put next to "Speed" the speed value (from 0 to 3) and
for packed mass and rapid respawn put 1 for true and 0 for
false. The result is in squares, so you can use the map to
calculate (sucks to make pythagoras each time there is a not
straight line).
#Post#: 2277--------------------------------------------------
Re: Zerg Hex Science
By: guguizg Date: October 30, 2021, 9:02 pm
---------------------------------------------------------
Walls
In this post I would like to discuss a very underrated topic:
walls. Walls are great, they can delay a zerg incoming attack,
redirect zerg unit flow and even keep one side or your entire
base safe (on one gas and high ground situations). Walls are
crazy. But there are a lot of unanswered questions I would like
to answer.
Construction Yard:
"Nearby structures take 40% less damage and regenerates slowly"
1. How slow is slowly?
5HP/s
To test this out, i used a few creepers to shoot at a wall
inside yard range to see how many it took to start making the HP
go down. When you have 5 creepers it's stable, 4 it
regenerates and 6 it decreses HP. So, the regeneration rate is
equal to the dps of 5 creepers * 60%, because of the 40% damage
reduction.
4dmg/1,2seconds, but the wall starts with 2 armor so
2dmg/1,2seconds = 1.667
1.667 * 5 creepers = 8.333
6.667* 60% = 5HP/s
Note that this is a aproximation, the number might be slightly
off.
Unified Armor:
"Walls share health with one another to protect the weakest
areas"
This is a very interesting upgrade and it works in a misterious
way for me. In this post I would like to uncover the mistery.
2. Is there a range for unified armor?
Yes.
To test the "range" of unified armor I used a slowling to attack
a row of walls. The wall under attack broke before all of the
other walls were with the same HP, so in a way the health is not
shared, it works in a different way. When the wall under attack
broke, the other ones had the following HP
55, 70, 95, 110, 175, 175, 175...
So in that aspect, the unified armor has a maximum range of 4
walls.
On the other hand, if instead of a low damage zergling you have
a high damage unit like a infused roach or a brutalisk, the
range can change. For instance, if a unit 1 shots the wall,
unified armor does not apply. In a way, saying that the health
is shared is false advertisement xD
3. So if the health is not shared, how does it work?
I don't know lol. I cant figure out, seems to work pretty
inconsistently so i can't figure it out. I also can't
understand the pattern from the last question which appeared
(the same exact values) every time i tested it.
Defenders and SCVs:
4. When is it worth it to link the defender?
Defender link: "Transfer 40% of repair rate to nearby
structures"
That means that each structure under attack gets 40% of the
regen, meaning that its start being worth it when (number of
structures * 40%)>100%, which happens at 2.5, so when 3 or more
structures are under attack.
Also, if you have unified armor, it is definitely worth it to
link the defender, because as discussed previously, the unified
armor spreads the dmg to other walls which are going to be
healed.
5. How much is the SCV repairing rate? Is it better than a
defender?
Aproximately 8HP/sec. If that checks out, means that the SCV has
80% of the repairing rate of a defender.
6. Does SCV repairing rate stack with armor upgrades like the
defenders?
Yes. To test this, I used tanklings (they deal true damage) and
upgraded the armor a lot. Turns out SCVs started repairing
faster with the upgrade. Hard to tell how much, because the game
doesn't give numbers, but it is faster.
Other topics
7. How good is a anti-torra wall
8. Is it better to have a bigger wall and more surface area or
less walls with less surface area?
9. How many armor upgrades do you need to survive on the high
ground for each attack level?
To be continued...
Also, if you have other questions or if you have answers to the
unanswered questions you can comment them :)
Questions 3 and 6 haven't been properly answered.
#Post#: 2313--------------------------------------------------
Re: Zerg Hex Science
By: guguizg Date: February 4, 2022, 2:45 pm
---------------------------------------------------------
How long does an italis take to pay for itself?
Italis don't use energy to shoot, so in the long run it will
save you energy. Considering that it costs 25,000 energy to make
it, when does it start to create surplus energy?
Metodology:
I'll compare the italis to different marine stages and different
zerg units. I wont consider overkilling units, which is a bigger
problem for the italis considering it has higher damage, so
consider a margin of error.
In one of the first posts i have calculated the energy
efficiency for different marines, different upgrades against
different zerg units. I'll use those values.
A. Tier 1 marines with shattering, conservation and penetration
against armor 2 target (roaches and big spine): 6 damage per
energy outside armory and 8.75 in armory range.
B. Tier 2 marines with shattering, conservation and penetration
against armor 2 target (roaches and big spine): 5,625 outside
armory and 7.5 in armory range.
C. Tier 2 marines with shattering 1 and 2, conservation 1 and 2
and penetration against armor 2 target (roaches and big spine):
13.125 outside armory and 15.75 in armory range.
D. Tier 2 marines with shattering 1 and 2, conservation 1 and 2
and penetration against armor 7 target (brutalisks): 2.625
outside armory and 2.625 in armory range.
E. Tier 3 marines with shattering 1 and 2, conservation 1 and 2
and penetration against armor 2 target (roaches and big spine):
12.5 outside armory and 13.75 in armory range.
F. Tier 3 marines with shattering 1 and 2, conservation 1 and 2
and penetration against armor 7 target (brutalisks): 6.25
outside armory and 7.5 in armory range.
G. Tier 3 marines with shattering 1 and 2, conservation 1,2 and
3, penetration and elite scope against armor 7 target
(brutalisks): 12 outside armory and 14 in armory range.
Now considering that the italis do 32x4 damage with a 1.2s
attack speed, the damage per second will be 100 to armor 2
targets and 83.33 to armor 7 targets. Considering the cost of an
italis to be 25,000 energy, I'll multiply that by the damage
each setup (A to G) would have dealt to figure out how much
damage the italis have to deal to be the same as 25,000 energy
from that marine. With the damage and the damage per second,
it's easy to calculate the seconds (or minutes) it will take to
pay for itself.
Results (in minutes):
A. 35.5 and 25
B. 31.3 and 23.4
C. 65.6 and 54.7
D. 13.1 and 13.1
E. 57.3 and 52.1
F. 37.5 and 31.3
G. 70 and 60
I'm very impressed at those numbers, specially considering how
much they're favoring the italis - only considering 2 armor or
more and not considering overkilling units, which happens way
more to italis than marines. This is also considering that
italis are shooting non stop, and marines too which doesn't
always happen.
Conclusion:
In general, i don't think getting italis is a big energy saver,
as waiting more than 30 minutes for it to just pay for itself
might take longer than the game itself. The fastest "debt
payment" scenario is vets vs brutalisk and i'll be impressed
with only italis can hold brutas for 13 minutes while you still
have veterans. It can help you survive, but if you're looking to
save energy, there are probably better options.
#Post#: 2329--------------------------------------------------
Re: Zerg Hex Science
By: guguizg Date: June 25, 2022, 12:48 am
---------------------------------------------------------
Comparing solo zerg vs duo zerg
This is a hot topic. There is no discussion that if the zerg has
perfect micro (I know it's impossible), it's objectively better
to have a solo zerg compared to a duo zerg. The way to go around
that as duo zerg is eco sharing - one zerg sends all their
minerals to the other so they complete a full supply and then it
goes the other way around, pretty much simulating a solo zerg
experience. Altough that is better for the economy, it takes up
a lot of APM and coordenation which is a great cost, but how
better is it?
Using my simulation code, I made a duo zerg variant. Considering
that the zerg does what is best for the team (supportive), and
not only for himself (individualistic), the results show that in
the long run being solo/sharing eco perfectly can be 18% more
efficient. It's important to note that results on the early game
are a little different, ranging from around 10-15%. I plan to
improve on the what-to-build algorithm, and if I do, I'll remake
this post, as it might impact the results, for now, these are
Heuristic results. Here is the graph to visualize the
difference:
The y axis is the result of the division of the solo zerg income
by the duo zerg income and x is time in seconds
HTML https://imgur.com/rHEhMxh
In case you want to understand more about what I ment by
individualistic, here it goes. When it's 2 zergs, adding a
extractor will only benefit you, but adding a spawner will
benefit both you and your teammate. If you don't consider the
positive externality of building a spawner (increases your
teammate economy), both zergs get way more extractors than it's
optimal to. Here are the results for a individualistic zerg.
HTML https://imgur.com/zSue9Fr
#Post#: 2330--------------------------------------------------
Re: Zerg Hex Science
By: Turb007 Date: June 30, 2022, 1:54 pm
---------------------------------------------------------
[quote author=guguizg link=topic=244.msg2277#msg2277
date=1635645725]
9. How many armor upgrades do you need to survive on the high
ground for each attack level?
[/quote]
Assuming 3 defenders linked to yard and 8 defenders healing wall
(1 healer for each wall/depo), no scv repair.
Terran needs this wall level to counter zerg attack (I am using
roach/rav for now):
Zerg Attack:
gopher.createaforum.com:70 /forums/zerghex/p/244/1:446: port field too long