September 1st, 2020 Livestream Q&A: What is your optimisation process?

September 1st, 2020 Livestream

Q&A: What is your optimisation process?

https://youtu.be/ZSg4IW4ybgM

This question has 2 related videos
Suggested Wiki Reference Code <ref name="yt-ZSg4IW4ybgM">[https://youtu.be/ZSg4IW4ybgM YouTube - September 1st, 2020 Livestream - Q&A: What is your optimisation process?]</ref>

Transcript

what is your optimization process do you research our profiler first did you know key areas are required optimization also when it comes to writing code that needs more time to be optimized how do you handle that do you delay and update until the company button probably that's a good question, I'm going to try and have some of it, we have a optimization process, it's it's kind of like different, from people to people or like it's it's we have we have like our technical artists work almost solely on optimizing the game because that's part of like their technical art aspect, sometimes like what for those who don't know what a technical artist is by the way it's kind of like the bridge between someone who's a programmer slash coder or you know implementing something technically, or someone who's an artist so like the technical artist kind of bridges those two so technically like a technical artist tends to be someone who's like well versed in both kind of worlds so what they sometimes do is they make like tools for artists because like artists don't know how to make tools themselves or they look at like stuff that's like oh this was implemented by an artist and a programmer doesn't have time to look at it so I'll fix it up and and so our technical artists do a lot of like optimization work, and it's like almost everything he does, but he does do a lot of like stuff in in general that ties into like making tools and making sure that you know artists can do what they what they want to do so we have a profiling build that's run every day we showcase that in our studio tour we have like a dedicated, set of computers that run profiling tests, and they run like they do different things like sometimes they do like a run through the map and that's more for like the artists like hey there's a bit of a performance issue in this section of the map that's when we detect in that we also have like big factory saves that we like just run and see like what's the average frame rate of that, what's the other frame rate if the player is looking here versus if they're looking over here to like differentiate like stuff like that, and and that but that just gives us clues as to like we just see like how how we're progressing so like let me see if I can boot I just want to look at it while I talk about it so we have like an automated like profiling data system that's running that's like checking like okay today the average frame rate for the gpu was 16 milliseconds the average for the like the the draw calls were eight milliseconds factory calls or four in this particular situation yesterday it was this which means this difference bla blah so they do that we also have sections of the code where no like this is so poorly written we also know sections like this can be improved, so it's kind of like all over the place in that regard sometimes we'll like look at saves we get from community when we look like okay so this is a big save with a lot of conveyor belts like okay what is expensive in the frame here it's like oh it's cpu bound and it's because of this thing and then like our technicals can be like I can go to a program and be like hey, this thing is pretty slow is there something I can do with that sometimes the programmers that just know like we just have to optimize this stuff but it's really up to everyone to optimize all the time, so we don't like I guess that's the process and yeah we don't really like it depends sometimes we delay because things are running well, it's the the thing is like it's really tricky to know, when something is is well enough I think that's one of the reasons why we didn't release like all the mark loss for pipes because it didn't run well in faster speeds or was buggy or something that's something that we optimized away while we were in experimental so hopefully that answers your question