Questions about performance: Cybran build drones

@Morax use ren_ShowNetWorkStats in the console. Spawn in 150 hives and make them assist a quantum gateway while you have essentially no income.

A work of art is never finished, merely abandoned

@jip Figured that would be the case, thanks! I like the ideas

In order to push the conversation to a conclusion I'd like to sit down with people. I'd like to take out potential ambiguity. I assume that the people who upvoted the original post are positive to the changes.

I'll be on the FAF discord channel on Thursday 21:00 GMT+2 and on Friday 21:00 GMT+2 - please be there if you have questions. I intent to implement the changes this weekend - that way it can be inspected on the Dev branch starting next week and hopefully be live when September starts.

A work of art is never finished, merely abandoned

How hard would it be to make a SIM mod that does this? So we could test it for ourselves. We could test for performance or look at how it affects aesthetics so we can decide evaluate the trade-offs involved.

Also I assume that you would have to basically do the same work to prepare the SIM mod as to make these changes to the main branch of FAF itself. So there is essentially zero wasted effort in taking the time to make this SIM mod.

If you just plug the changes directly into the dev branch, it would be a lot harder to compare with/without the changes, because there may be other differences in the dev branch. And every time we load up a game with the dev branch, doesn't it have to download lots of files? Like if we wanted to go back and forth between regular FAF and the dev branch to test it, it would be a pain. But if you just make a SIM mod it would be easier for us to see the difference.

Alternatively: make a SIM mod that adds new units: a new hive with the changed animations. Then we could run a single game, cheat in some units/buildings, and put regular hives on one side and new hives on the other side. And then we could watch them work at the same time. So we could do a side-by-side splitscreen comparison of the aesthetics with both running. And then run only one side at a time to check performance with the other side hives paused.

The problem is time. I can spent all week on fixing this one performance issue and find something that we can all agree on, make a sample version, etc - or, I can spent a day on it and spent the other six days on other issues. There are hundreds of things that need to be looked at from a performance perspective - this is just one of them 😞 .

If I understood correct then due to recent changes only the changed files need to be downloaded. Therefore there is no large download anymore. But don't quote me on that, as it may not be 100% stable yet.

If you want to compare it side-by-side, launch the game with the FAF Develop version and then directly launch the executable of FAF found in the bin folder (Program Data/ForgedAllianceForever/Bin). The latter should use the default init file where as the former is running FAF develop. Then you can view the changes side-by-side.

edit: the purpose of this topic is to make sure the aesthetical change (which is, again - minor in my opinion) is accepted before I do the work. As I do not want to see my time go to the bin.

A work of art is never finished, merely abandoned

@arma473 if you enable caching in the client settings the download will only need to happen once. Also I think it won't need to happen multiple times without that because they are actually different files. But turn it on just to be safe.

We limit the number of unique targets. Instead of having each drone (and the engineer build arms) all have their own unique target, they all share the same target (as the engineers). With that we limit the number of entities (to 1 / builder) and the number of emitters (just 1 sparkle emitter / builder).

Do I understand this correctly, that this would make all the drones do their laser "welding" at the same spot?

@blackyps Yes - for each engineer / hive. Two engineers would have two unique welding points, ten engineers would have ten unique welding points - etc. But not each drone and each build arm having a unique welding point.

A work of art is never finished, merely abandoned

if you can increase the size or modify the look of the flying drones if function of their tech, then i'm all for reducing their number

@MadMax ?

A work of art is never finished, merely abandoned

I'd accept less drones moving less chaotically if you make the build beams teamcolored 😛

put the xbox units in the game pls u_u

@jip said in Questions about performance: Cybran build drones:

@MadMax ?

you rang what's up are you looking for a model from what little I read

Vault Admin / Creative Team / Map Guru

Essentially this from Keyser:
if you can increase the size or modify the look of the flying drones if function of their tech, then i'm all for reducing their number

Not sure if having t1 / t2 / t3 drones is visually possible without introducing additional emitters (defeating the purpose of the idea). Would you be interested in making two additional drones?

A work of art is never finished, merely abandoned

yeah I can look into it any ideas on how to differentiate them they are quite small so changes may not be to obvious

Vault Admin / Creative Team / Map Guru

also do you know the unit name for the drone?

Vault Admin / Creative Team / Map Guru

@jip said in Questions about performance: Cybran build drones:

My question to you all is - what do you think, and do you think it is worth changing for the more sim speed?

I don't usually post in these threads as my FAF experience is purely me and a couple of friends doing comp stomps on the weekend. We're filthy casuals, so not exactly uhh... involved members of the community.

But since you asked: Yes I think it is worth it. I am always keen on anything that has the potential to increase sim speed, as that's the number one drag on my games. One of my friends is always playing Cybran.

I'll be on the FAF discord channel on Thursday 21:00 GMT+2 and on Friday 21:00 GMT+2 - please be there if you have questions. I intent to implement the changes this weekend - that way it can be inspected on the Dev branch starting next week and hopefully be live when September starts.

There was no interest last night and tonight I intent to go to the gym, therefore I'm cancelling tonights meeting. I'm going to make the PR this weekend - received the drones from Madmax.

A work of art is never finished, merely abandoned

I do not know if it is possible to delve this far into the code, but would it be possible to just make 50 builder drones, then just have them allocated to whatever is on screen, then if anything beyond that needs them to just ignore them. So an object pool of only 50 or something.

Also, what files and such is the code for this all contained in? I have some free time coming up and could look at it.

You must deceive the enemy, sometimes your allies, but you must always deceive yourself!

The problem with caching units is that they still take part in the sim calculations - slowing it down. The allocation / de-allocation of the units only cause a stutter - their existence cause a slow down.

I am working on it as I am writing this and currently managed to get 150 t3 engineers down to 'just' 6 - 7 ms increase when building. I'm aiming for this to be a lot lower than that. I'm in the Discord channel (soon - after finishing dinner) if you're interested in seeing the approach.

cf31e313-6106-446d-9446-ee2b00928d7d-image.png

A work of art is never finished, merely abandoned

@jip Sure. Ill take a look. I have the same name there.

You must deceive the enemy, sometimes your allies, but you must always deceive yourself!