By the way, is this rule implemented in C or Javascript? Just trying to get a sense for the server scripting system.
Things like this we always try and make JSON settings if we can, as it allows greater general flexibility with the system. Hard coding a setting like that is non-ideal in a lot of ways. In the case of the bot, it's: "can_only_assist_with_buildable_items": true
Sorry, poorly worded question. The real question is: could I as a modder have implemented this feature?
Garat, can you please let me know why I'm only getting 50% or less GPU/CPU utilisation when playing PA?
Dxdiag attached. This happens on all builds. At the start of the match I get about 50% CPU usage and 100% GPU, but after about 10 minutes or so the frame rate drops and my GPU/CPU usage drops too. I thought maybe this was a common problem, that's why I didn't post my specs, but from your comment, it sounds like I should be getting 100% GPU.
From what I have seen that is normal. Basically the client has only 1 thread that uses a lot of CPU and once that has much to do it becomes the limiting factor.
So if I am correct in thinking the game only uses one thread? If that is the case why not split the game to maximise it? I am sure it is coming but something along the lines of 1 thread for most game stuff, 1 for notifications(which seems to be causing a lot of lag), 1 for processing net stuff etc?
Well I *think* the engine of the client uses a single thread. Last time I checked late in the game PA was basically 25% on a quad core. That may have changed. Also the UI is not part of this. The UI has scenes, which are extra processes. So extra threads for sure. In fact the speedup in the PTE for alerts results from putting the alerts display into an extra scene. Splitting the actual client engine into multiple threads isn't as easy as splitting the UI up though.
It would be nice if Garat could confirm this. I've asked this question many times and every time it's just guess work from all the players. It would be nice to get an answer from the devs. Also that might explain why CPU load is low, but why does GPU load drop from 100% to 50%?
Oh I am pretty sure I read a red post about it somewhere at some point, so personally I feel I am not only doing guesswork, but it's not guaranteed to be true, yeah.
Basically the case. Threading the client where we can get the biggest perf wins will start to come online over time, but while the server component is already multi-threaded, the client still is primarily single. For a more detailed analysis of the what's and whyfors, I'd need to get Varrak or William to post about it.