<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Data driven balance with automated replay watching]]></title><description><![CDATA[<p dir="auto">Data driven balance</p>
<p dir="auto">What units, built when, actually win you the game when you automatically review hundreds of replays with a python CLI program running 5 games at once on a linux server?. See <a href="https://forum.faforever.com/topic/7746/unit-logger-mod/2?_=1756499882452">https://forum.faforever.com/topic/7746/unit-logger-mod/2?_=1756499882452</a></p>
<p dir="auto">I now have a few gigabytes from 1400 games of 1v1 ranked and sentons of structured data. If you would like this data just PM me.  The data format is below:</p>
<p dir="auto">An index file is created that shows all the replays, this is created from the replay file</p>
<pre><code>replay_id	scfa_version	replay_version	has_mods	has_ai	has_unit_restrictions	cheats_enabled	ranked	game_start_epoch	game_end_epoch	no_players	no_teams	scenario_type	victory_condition	teams_locked	unranked	map_folder_name	sim_ticks	desync_tick	share	average_rating
21013072	3770	Replay v1.9	False	False	False	False	False	1697735541	1697737795	8	2	skirmish	demoralization	True	False	SCMP_009	19991	0	FullShare	1883
21013451	3770	Replay v1.9	False	False	False	False	True	1697737205	1697738254	2	2	skirmish	demoralization	True	False	frithen.v0004	715	0	FullShare	1853
21021738	3770	Replay v1.9	False	False	False	False	False	1697830981	1697834029	8	2	skirmish	demoralization	True	False	SCMP_009	24578	0	FullShare	977
21029660	3770	Replay v1.9	False	False	False	False	True	1697906403	1697906892	2	2	skirmish	demoralization	True	False	neroxis_map_generator_1.9.0_aj5umyuf4xuk6_aqea	4512	0	FullShare	1456
</code></pre>
<p dir="auto">an index file is created for all the games that have been simulated</p>
<pre><code>replay_id	desync	end_of_replay_reached	sim_time_seconds
21013072	False	True	3868
21013451	False	True	162
21021738	False	True	4460
21029660	False	True	558
21029783	False	True	6580
</code></pre>
<p dir="auto">each game has an armies file generated directly from the replay file</p>
<pre><code>army_name	player_id	player_name	rating_mean	rating_deviation	faction	team	start_spot	player_color	human	ai_personality
ARMY_2	413862	cZARJc	2048	95	4	3	2	6	True	
ARMY_4	420129	HorohLoxMato	2123	94	4	3	4	19	True	
ARMY_8	145	ZLO	2359	71	1	3	8	17	True	
ARMY_3	393899	GULMO	2242	94	1	2	3	9	True	
ARMY_7	372109	Terarii	2543	95	1	2	7	7	True	
ARMY_6	304809	ZmeiGorinich	2099	94	1	3	6	1	True	
ARMY_5	486930	el_PISTOLERO	2027	97	2	2	5	2	True	
ARMY_1	278651	ERROR_4O4	1831	94	2	2	1	3	True	
</code></pre>
<p dir="auto">each game has an armies result file generated after simulation is complete</p>
<pre><code>army_index	army_name	result
1	ARMY_1	won
2	ARMY_2	defeated
3	ARMY_3	won
4	ARMY_4	defeated
5	ARMY_5	defeated
6	ARMY_6	defeated
7	ARMY_7	won
8	ARMY_8	defeated
</code></pre>
<p dir="auto">Each game has a economy.tsv file generated after simulation is complete</p>
<pre><code>GameTick	Army	lastUseRequested.MASS	lastUseRequested.ENERGY	lastUseActual.MASS	lastUseActual.ENERGY	stored.MASS	stored.ENERGY	income.MASS	income.ENERGY	maxStorage.MASS	maxStorage.ENERGY	reclaimed.MASS	reclaimed.ENERGY
13	1	0.00	0.00	0.00	0.00	650.00	3924.00	0.10	2.00	650.00	4000.00	0.00	0.00
20	1	0.00	0.00	0.00	0.00	650.00	3938.00	0.10	2.00	650.00	4000.00	0.00	0.00
27	1	0.00	0.00	0.00	0.00	650.00	3952.00	0.10	2.00	650.00	4000.00	0.00	0.00
34	1	0.00	0.00	0.00	0.00	650.00	3966.00	0.10	2.00	650.00	4000.00	0.00	0.00
46	2	0.00	0.00	0.00	0.00	650.00	3990.00	0.10	2.00	650.00	4000.00	0.00	0.00
52	3	0.00	0.00	0.00	0.00	650.00	4000.00	0.10	2.00	650.00	4000.00	0.00	0.00
59	3	0.00	0.00	0.00	0.00	650.00	4000.00	0.10	2.00	650.00	4000.00	0.00	0.00
66	3	0.00	0.00	0.00	0.00	650.00	4000.00	0.10	2.00	650.00	4000.00	0.00	0.00
</code></pre>
<p dir="auto">each game has a units.tsv file. FractionComplete	 is % built, generated after simulation is complete</p>
<pre><code>GameTick	Army	EntityId	UnitId	FractionComplete	Position.x	Position.y	Position.z	MaxHealth	Health	ShieldRatio	IsIdle	MassKilled
13	1	0	uel0001	1	63.50	25.53	468.50	12000	12000	0	1	0
19	2	1048576	xsl0001	1	448.50	25.53	43.50	11500	11500	0	1	0
67	1	0	uel0001	1	63.50	25.53	468.50	12000	12000	0	1	0
67	1	1	ueb0101	0.04	67.50	25.56	454.50	4000	148	0	1	0
73	2	1048577	xsb0101	0.06	440.50	25.58	46.50	3500	199	0	1	0
73	2	1048576	xsl0001	1	448.50	25.53	43.50	11500	11500	0	1	0
109	1	0	uel0001	1	63.50	25.53	468.50	12000	12000	0	1	0
109	1	1	ueb0101	0.18	67.50	25.56	454.50	4000	708	0	1	0
</code></pre>
<p dir="auto">I simulated 1436 sentons and raned 1v1 replays with this tool.</p>
<p dir="auto">you can determine if the first team to make a stratiegic bomber actually has an increased chance of winning</p>
<p dir="auto">You can determine the average mass killed of a novax after 10 mins of it being built</p>
<p dir="auto">you can see if a t1 frigate rush is a good stratergy to win an ocean against players rated 200 less points than the oponent, and you can see what factions are best in the beech position and win that ocean, with unit position data.</p>
<p dir="auto">You can see how long it takes each game ender, on average to end the game and chance of winning after it has been up for 5 mins.</p>
<p dir="auto">If you would like the raw unit data please message me, its a few hundred mb. I would like some people to go over it and try and pick out these correlations</p>
]]></description><link>https://forum.faforever.com/topic/9453/data-driven-balance-with-automated-replay-watching</link><generator>RSS for Node</generator><lastBuildDate>Fri, 05 Jun 2026 03:28:55 GMT</lastBuildDate><atom:link href="https://forum.faforever.com/topic/9453.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 29 Aug 2025 21:17:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Data driven balance with automated replay watching on Tue, 16 Sep 2025 21:19:51 GMT]]></title><description><![CDATA[<p dir="auto">I now have 1400 ranked 1v1 and sentons games simulated of average ratings &gt; 800</p>
<p dir="auto"><a href="https://forum.faforever.com/post/69369">https://forum.faforever.com/post/69369</a></p>
<p dir="auto">This is well structured dataset with an example of contents shown in above link and I am sure some good balance analysis can be done on some of this data now</p>
<p dir="auto">Please pm me for the full dataset, and I will continue to grow it</p>
]]></description><link>https://forum.faforever.com/post/69370</link><guid isPermaLink="true">https://forum.faforever.com/post/69370</guid><dc:creator><![CDATA[Nooby]]></dc:creator><pubDate>Tue, 16 Sep 2025 21:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to Data driven balance with automated replay watching on Mon, 08 Sep 2025 13:22:21 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/ftxcommando" aria-label="Profile: FtXCommando">@<bdi>FtXCommando</bdi></a> said in <a href="/post/69217">Data driven balance with automated replay watching</a>:</p>
<blockquote>
<p dir="auto">I'm unsure if you're serious about this percy nerf,</p>
</blockquote>
<p dir="auto">Not very serious <img src="https://forum.faforever.com/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=30176cb40ac" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /> two numbers are not enough to draw any conclusion, hence "plausible" aka "something to think about" (+I'm a Cybran player, okay).</p>
<p dir="auto">Timing is an interesting point; should include that dimension as well. Do UEF spam Percies more than Cybran spam Bricks? If so - what's the optimal timing-rating-eco vs units-per-minute?</p>
<p dir="auto">You are right, I need a more thorough analysis - that is what I will do.</p>
]]></description><link>https://forum.faforever.com/post/69223</link><guid isPermaLink="true">https://forum.faforever.com/post/69223</guid><dc:creator><![CDATA[rampeer]]></dc:creator><pubDate>Mon, 08 Sep 2025 13:22:21 GMT</pubDate></item><item><title><![CDATA[Reply to Data driven balance with automated replay watching on Sun, 07 Sep 2025 19:32:06 GMT]]></title><description><![CDATA[<p dir="auto">Couple things here</p>
<p dir="auto">Brick is considered the superior drop unit due to the superior versatility attached to the unit. If there is a swarm of t1 or t2 ready to respond, a brick can easily kite it away while continuing to raid. Percies are strictly there to kill mexes and pgens and that's about it, they aren't going to be surviving much of any response.  To reinforce this, dropping a percy on rock is going to be way less successful than a brick or a harb because you won't be able to efficiently deal with the bp available on the island. Your percy will die and it will immediately be reclaimed and the mexes you did manage to kill will be rebuilt. In some situations, it might have been a net loss in value.</p>
<p dir="auto">Your data here isn't actually supporting just this conclusion either. There are a litany of reasons why percies are dropped more such as UEF being in more games, UEF being predisposed to more late games than Cybran, UEF having to make percies more often because of a lack of viable late game direct fire options and therefore more being available to drop, and so on. It's a POTENTIAL explanation, but I'd disagree with it being the most likely one because it goes against the common wisdom about the two in terms of drops.</p>
<p dir="auto">I'm unsure if you're serious about this percy nerf, but it's not even a good unit. You shouldn't be relying on percies if you're playing lategame UEF.</p>
]]></description><link>https://forum.faforever.com/post/69217</link><guid isPermaLink="true">https://forum.faforever.com/post/69217</guid><dc:creator><![CDATA[FtXCommando]]></dc:creator><pubDate>Sun, 07 Sep 2025 19:32:06 GMT</pubDate></item><item><title><![CDATA[Reply to Data driven balance with automated replay watching on Sun, 07 Sep 2025 18:38:07 GMT]]></title><description><![CDATA[<p dir="auto">rampeer said in <a href="/post/69190">Data driven balance with automated replay watching</a>:</p>
<blockquote>
<p dir="auto">nerf Percies</p>
</blockquote>
<p dir="auto">plz no</p>
]]></description><link>https://forum.faforever.com/post/69216</link><guid isPermaLink="true">https://forum.faforever.com/post/69216</guid><dc:creator><![CDATA[waffelzNoob]]></dc:creator><pubDate>Sun, 07 Sep 2025 18:38:07 GMT</pubDate></item><item><title><![CDATA[Reply to Data driven balance with automated replay watching on Mon, 08 Sep 2025 11:13:48 GMT]]></title><description><![CDATA[<p dir="auto">Looks like no FAF games for me this week <img src="https://forum.faforever.com/assets/plugins/nodebb-plugin-emoji/emoji/android/1f61e.png?v=30176cb40ac" class="not-responsive emoji emoji-android emoji--disappointed" style="height:23px;width:auto;vertical-align:middle" title=":(" alt="😞" /> . Anyways, some time freed for analytics. I decided to start with my little hunch: Bricks and Percies are quite similar in tech/cost/stats/function, but Percies have huge alpha-strike and better DPS (and UEF has T3 transport, but unit-sharing is a thing); so they are much better fit for T3 drops. They are guaranteed to one-shot your T3 mexes if get dropped (even if your army is near).</p>
<p dir="auto">I extracted drops (too-quickly moving units), and found 186 cases. Among them:<br />
<strong>Brick: 59<br />
Percival: 127</strong><br />
So my hypothesis looks plausible; will dig into that.</p>
<p dir="auto">Another one was that higher-rated players are more prone to try to drop. This turned out incorrect, see the image. I'll look up the replays manually to check whether there is something off (for example, Bricks/Percies being grabbed by GCs are 'moving too fast' and trigger drop detection system).<br />
<img src="/assets/uploads/files/1757174171454-rating_hist.png" alt="rating_hist.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Another one: I wanted to visualize brick and percy drops. I could not get map coordinates right, so the lines are scuffed.<br />
<img src="/assets/uploads/files/1757174209505-drop_arrows.png" alt="drop_arrows.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">I look forward to presenting arguments to nerf Percies (as a Cybran player, yeah <img src="https://forum.faforever.com/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=30176cb40ac" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /> ).</p>
<p dir="auto">P.S. about 1/3 of the replays were too short or empty. Looking for an answer from <a class="plugin-mentions-user plugin-mentions-a" href="/user/nooby" aria-label="Profile: Nooby">@<bdi>Nooby</bdi></a> about data collection, especially tick registration - maybe we should implement stuff suggested by <a class="plugin-mentions-user plugin-mentions-a" href="/user/caliber" aria-label="Profile: Caliber">@<bdi>Caliber</bdi></a> . Thank you guys, that's getting epic!</p>
<p dir="auto">P.S.S. I am happy to apply my expertise to my favourite game! Suggestions / hypotheses are welcome</p>
]]></description><link>https://forum.faforever.com/post/69190</link><guid isPermaLink="true">https://forum.faforever.com/post/69190</guid><dc:creator><![CDATA[rampeer]]></dc:creator><pubDate>Mon, 08 Sep 2025 11:13:48 GMT</pubDate></item><item><title><![CDATA[Reply to Data driven balance with automated replay watching on Sun, 31 Aug 2025 00:04:24 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rampeer" aria-label="Profile: rampeer">@<bdi>rampeer</bdi></a> You’re downloading random replays without checking their validity. I can help you with downloading only valid replays (rated). You can additionally filter by game type, league, etc. If you’re interested pm me in Discord</p>
]]></description><link>https://forum.faforever.com/post/69044</link><guid isPermaLink="true">https://forum.faforever.com/post/69044</guid><dc:creator><![CDATA[Sainse]]></dc:creator><pubDate>Sun, 31 Aug 2025 00:04:24 GMT</pubDate></item><item><title><![CDATA[Reply to Data driven balance with automated replay watching on Sat, 30 Aug 2025 20:24:04 GMT]]></title><description><![CDATA[<p dir="auto">I would like to see the stats/chances of winning late game for UEF, my hunch would be much higher rate of winning late game with UEF.</p>
]]></description><link>https://forum.faforever.com/post/69039</link><guid isPermaLink="true">https://forum.faforever.com/post/69039</guid><dc:creator><![CDATA[Caliber]]></dc:creator><pubDate>Sat, 30 Aug 2025 20:24:04 GMT</pubDate></item><item><title><![CDATA[Reply to Data driven balance with automated replay watching on Sat, 30 Aug 2025 13:31:53 GMT]]></title><description><![CDATA[<p dir="auto">Hi, that's pretty rad!</p>
<p dir="auto">I had a similar idea a while back - to settle the Bricks vs Percy/Loyalists vs Titans debate, and analyze the effectiveness of unit/experimental compositions on certain maps.</p>
<p dir="auto">But I quickly discovered (after painfully patching available FAF replays parsers, yes) that the replays only had some basic stats and chat logs (including experimental build start/end times, and that's it). I had to simulate and log the game itself, which I found cumbersome (even with some outside help with Lua on Discord); and running FAF with log mods on machines are beyond my skill level.</p>
<p dir="auto">So I gave up and focused on basic analytics, such as drawing a large graph of who-plays-with-who: <a href="https://github.com/rampeer/faf-advanced-analytics" rel="nofollow ugc">https://github.com/rampeer/faf-advanced-analytics</a><br />
. That was not my original plan, but at least I could do it. It looks like I've lost a few last commits, will look into that.</p>
<p dir="auto">You managed to overcome all these difficulties, which I am very excited about. So I am happy to receive the dataset (the sample file seems to contain exactly the unit data I need).</p>
<p dir="auto">Also, if you are willing to share the settings/scripts for extracting the data (which I had trouble with), I am willing to run it on replays of other maps (dualgap + mapgen) and then share the data, as I don't play seton's much.</p>
<p dir="auto">Thanks in advance!</p>
]]></description><link>https://forum.faforever.com/post/69024</link><guid isPermaLink="true">https://forum.faforever.com/post/69024</guid><dc:creator><![CDATA[rampeer]]></dc:creator><pubDate>Sat, 30 Aug 2025 13:31:53 GMT</pubDate></item></channel></rss>