Questions about performance

Fafdevelop contains all the bugfixes and updates and optimizations since September 12 2020 which was the day of the last game patch.

It shouldn't include any balance changes.

Jip might best know the full change log

It includes no balance changes. Keyser and I will be working on the full changelog in a few days.

A work of art is never finished, merely abandoned

Nice work Jip and the rest of the folks working on it!

To key in on this performance and development large phase that faf is currently going through. I am working on really improving functionality and performance of ALL core AI code on faf so helpfully for you AI Players you'll get even more benefit once these patches come out.

Very exciting stuff that jip has allowed us to do 🙂

Developer for LOUD Project | https://discord.gg/DfWXMg9
AI Development FAF Discord | https://discord.gg/ChRfhB3
AI Developer for FAF

Community Manager for FAF
Member of the FAF Association
FAF Developer

@jip game_15187368.log
Hey, I just played this game and got a memory access violation crash after one of the AI players died. This is the full log which FA gave me afterwards. The only sim mods active were AI-Uveso and AI-RNG. All else is just UI stuff like SSB.

@utopian Thanks for your report, looking into it now.

Do you happen to have the exact exception code that occured?

edit: after inspecting the log I suspect this crash is not related to the develop branch, but to something else. If you happen to have the exact exception code then I can compare it with exception codes that we've found previously.

A work of art is never finished, merely abandoned

@jip

Here's the specific error message. Don't know if it's related to develop after all, but might be worth a gander.

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at address 0x0050dfd8
attempted to read memory at 0x0000005c

Program : C:\ProgramData\FAForever\bin\ForgedAlliance.exe
Cmd line arguments : /init init.lua /nobugreport /log C:\ProgramData\FAForever\logs\game_15187368.log /gpgnet 127.0.0.1:34600 /mean 1333.36 /deviation 222.314 /savereplay gpgnet://127.0.0.1:52527/15187368/Utopian.SCFAreplay /country HU /numgames 28

Callstack:
Unknown symbol (address 0x0050dfd8)
Unknown symbol (address 0x0068af40)
Unknown symbol (address 0x1d1ed9fb)
Unknown symbol (address 0x1d1ed9fb)

EDIT: if you need system specs or anything, just tell me.

I've added yours to the tracker: https://github.com/FAForever/fa/issues/2045

I don't think there is need for system specs. I hope we don't see it more often because then we did something silly 🙂 .

edit: and thanks again for reporting!

A work of art is never finished, merely abandoned

@Jip

Playing a setons right now. Performance is great so far. Just a couple things

  1. I can't ping after my ACU was killed. Is this a bug or new feature?
  2. Cybran hive drones are completely MIA. I only see the beams.
    alt text

Edit: I'm loving the changes. 45 minute setons game, only went -1 towards the end for a little bit because of one person. Everyone else was still +1 or higher.

@snagglefox Great to hear!

I can't ping after my ACU was killed. Is this a bug or new feature?
Sadly this is neither a bug nor a feature. Pinging after dying is disabled because of a potential exploit. For more information, read this PR: https://github.com/FAForever/fa/issues/2259

Cybran hive drones are completely MIA. I only see the beams.
🤔 , the drones being missing is a bug - not sure what causes it yet. I'll make sure to investigate it before the patch hits in September.

edit: about the drones missing, could you describe what you did right before it happened? I have a hard time re-producing it.

A work of art is never finished, merely abandoned

@jip

Sadly this is neither a bug nor a feature. Pinging after dying is disabled because of a potential exploit. For more information, read this PR: https://github.com/FAForever/fa/issues/2259

Ah ok. Thanks for the info!

🤔 , the drones being missing is a bug - not sure what causes it yet. I'll make sure to investigate it before the patch hits in September.

edit: about the drones missing, could you describe what you did right before it happened? I have a hard time re-producing it.

I probably should have mentioned those were allied hives. I was already dead. So maybe being dead or them being an ally's has something to do with it?

@snagglefox Sadly this is neither a bug nor a feature. Pinging after dying is disabled because of a potential exploit. For more information, read this PR: https://github.com/FAForever/fa/issues/2259

This is not a good reason to take away everyone's ability to ping after death.

1 - nobody is forced to allow observers in a match

2 - observers can cheat anyway if they're on voice chat with a player

If people want to cheat they can cheat. Observers using a console command to place markers in the game in real-time would leave evidence of cheating in everyone's replay file. Doing it through voice chat would be basically undetectable.

Nobody is going to cheat in a way that leaves evidence so blatantly. And if they did, we would catch them.

This is NOT A PROBLEM but taking away the ability of dead players to participate in the game is a BIG PROBLEM.

I can't even queue for ladder or TMM while a game is going on, and now you're telling me I can't even ping my teammates while I wait for the match to end? That's nonsense. Total nonsense. "Fixing" something that was never a problem in the first place. UN-FIX this!

Yeah, either this is described poorly and it's not just observers that can do it but anyone who died, or it's really not a problem at all, because observers always could cheat in many ways (like VC) and they really never did that by using pings.

The decision to disable the markers was made by two council members (if I recall correct) last year December, see also the PR where the change was made from that time:

If you do not agree with this change, please make a new topic. It is unrelated to this topic about performance (and stability).

If people want to cheat they can cheat. Observers using a console command to place markers in the game in real-time would leave evidence of cheating in everyone's replay file. Doing it through voice chat would be basically undetectable.
This is not the consequence of the exploit. I'm leaving it vague on purpose because I do not want to give it more attention than it has to have.

A work of art is never finished, merely abandoned

Played a fafdevelop game where ACU upgrade after it should finish got stuck and acu was constantly -7 mass.

(I was assisting ACU with cybran t1 assault bot)

This error popped up in the log:

warning: Error running OnStartBuild script in Entity url0107 at 25034d08: ...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(901): attempt to call method IsUnitState' (a nil value) stack traceback: ...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(901): in function UpdateAssistersConsumption'
...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(971): in function UpdateConsumptionValues' ...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(852): in function SetActiveConsumptionActive'
...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(2570): in function <...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua:2533>

@crotalus said in Questions about performance:

Played a fafdevelop game where ACU upgrade after it should finish got stuck and acu was constantly -7 mass.

(I was assisting ACU with cybran t1 assault bot)

This error popped up in the log:

warning: Error running OnStartBuild script in Entity url0107 at 25034d08: ...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(901): attempt to call method IsUnitState' (a nil value) stack traceback: ...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(901): in function UpdateAssistersConsumption'
...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(971): in function UpdateConsumptionValues' ...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(852): in function SetActiveConsumptionActive'
...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua(2570): in function <...gramdata\faforever\gamedata\lua.nx5\lua\sim\unit.lua:2533>

Hi Crotalus, can you share the entire log and the replay ID?

edit: the error you provided is from a Mantis.

A work of art is never finished, merely abandoned

And timestamp as to when it roughly happened? And to what player?

A work of art is never finished, merely abandoned

Ah, I think I understand what happened here. Thank you for sharing.

edit: found and understood the issue.

A work of art is never finished, merely abandoned

I'm still not sure if this applies to games with observers off (i.e. most of the games) at all.

Edit: woops, meant to post this in the other thread, sorry