7 months
ago -
Coffee Stain Studios
-
Direct link
Transcript (by Youtube)
5s | hey it's been a while remember me cuz I |
---|---|
8s | barely do uh anyways welcome back to yet |
10s | another video it's been a while I missed |
12s | you you know it's it's a long time since |
15s | we since we got to hang out like this |
17s | you know so uh uh you know I constantly |
20s | get the question when we're going to |
21s | release optimization updates and the |
23s | truth is that almost every single patch |
25s | we make contains some form of |
27s | optimization it's sort of a never-ending |
29s | battle but some changing have a bigger |
31s | impact than others and today I'd like to |
33s | share some of the work that's gone into |
34s | improving the performance for the game |
37s | coming in |
39s | 1.0 before we dive into the topic at |
41s | hand there are two things that I want to |
43s | address first thing is that you may have |
45s | heard news that our parent company |
46s | embracer has sort of released a press |
48s | release where they're saying they're |
50s | planning to like transform into like |
52s | sort of three Standalone publicly listed |
54s | entities of which uh coffee stain and |
57s | Friends uh working name uh uh the parent |
61s | company for coffee s Studios is one of |
63s | those uh I'm not going to go into detail |
65s | about like this press release honestly |
67s | because it's a little bit above above my |
69s | pay grade uh you can find a link into |
71s | the description if you want to read more |
72s | on the on the press release uh if you're |
75s | interested in that kind of stuff uh but |
77s | there's been a bunch of speculation as |
78s | to how this affects satisfactory and I |
80s | just wanted to sort of come on here and |
81s | sort of set the record straight on these |
83s | things so so these changes to the |
85s | company structure will not affect our |
87s | plans of satisfactory at all we're still |
88s | going to release the game this year year |
91s | 2024 it hasn't changed the scope for 1.0 |
94s | at all and we also plan to keep working |
96s | on satisfactory after 1.0 is out whether |
99s | that's in the form of DLC or you know |
101s | free updates to the game is yet to be |
102s | decided uh it might be either it might |
104s | be both actually so so we'll sort of see |
106s | but development for satisfactory is |
108s | still going strong and actually speaking |
110s | of which uh that's sort of the second |
112s | thing I wanted to address here uh and |
114s | it's sort of you know give you a little |
115s | bit of a state of development because |
116s | it's been a while since we published a |
118s | video here on YouTube channel so um yeah |
120s | we've been very busy behind the scenes |
122s | managing the Clos beta for the select |
124s | few that managed to get picked around a |
126s | thousand is people have been playing the |
128s | Clos beta now for a couple of weeks and |
130s | the general feedback that we've gotten |
132s | has been pretty positive actually and uh |
134s | it's been a it's been really refreshing |
136s | to hear all the nice things that people |
138s | have said there's obviously a few |
139s | technical things we all already knew |
141s | that and there's going to be more of |
142s | that down the line but so far |
145s | everything's looking peachy actually so |
146s | with this last bit of feedback we're now |
148s | gearing up for the final push and you |
151s | know hopefully it won't be long until we |
152s | can maybe announce sort of a release de |
154s | or something like that who knows |
156s | exciting times anyways with that out of |
159s | the way let's get to the main course and |
161s | talk about |
162s | optimization my favorite thing one big |
164s | disclaimer is that performance is sort |
166s | of tied directly to your hardware and |
168s | configurations so some of these changes |
170s | may be significantly more notable for |
172s | some people rather than others so yeah |
175s | just bear that in mind that performance |
177s | is very varies a lot for from person to |
180s | person uh also worth noting is that I'll |
183s | put uh as much of this into layman's |
185s | terms but there might be some technical |
187s | jargon going on here and there as we go |
189s | into details so just bear with me let's |
191s | start talking about foliage my favorite |
194s | subject everybody loves foliage so right |
197s | now there are colliders for the vehicles |
199s | which allow them to sort of detect |
201s | contact with with any foliage and sort |
203s | of destroy it as you're driving this |
205s | results in pretty huge performances as |
208s | like when you're driving through |
209s | especially f dense areas but also in |
211s | places where foliage is nearby but not |
213s | necessarily in your path thanks to like |
215s | wonky hitbox detection that we have uh |
218s | in 1.0 most folage colliders are going |
220s | to be completely removed from Vehicles |
222s | actually uh which means that going |
223s | forwards you can't destroy smaller |
225s | foliage by driving it will simply just |
227s | persist in the world uh which honestly |
230s | also looks a bit better than when it |
232s | just like vanishes into thin air when |
233s | like the first pixel of your vehicle |
235s | hits it so we we thought at first this |
238s | was going to be a strange change but |
239s | actually testing it out we felt like |
241s | this kind of actually makes sense most |
243s | noteworthy for dedicated servers folage |
245s | has been like a huge culprit of Ram uh |
247s | where sometimes it reached over like 12 |
249s | gigs on like just a fresh safe file so |
252s | not having Collision on foliage will |
254s | reduce it down to like somewhere around |
256s | like 5 and 1/2 gigs which is a huge |
258s | Improvement relaxing folage Collision |
260s | will also help greatly with level |
261s | streaming and reduce overall stuttering |
264s | because uh you're not trying to like |
266s | demolish like dozens of objects within a |
268s | second many times in a row all the time |
271s | constantly so that's great but Vehicles |
273s | will still be able to destroy almost all |
275s | folage that requires at least the |
277s | chainsaw to get rid of so like it's not |
279s | gone totally but it's gone for like the |
281s | majority of like the smaller folage |
283s | types where the fine line goes between |
284s | like exactly what folage is destructible |
286s | or not is something that we're still |
288s | sort of like figuring out and fine |
289s | tuning so if you ever use belts then |
291s | you'll be happy to know that we've |
293s | optimized those significantly belts and |
295s | pipes currently exist within like sort |
297s | of unique instance groups in updated |
298s | meaning that like each length of belts |
301s | between connection points was sort of |
302s | managed by themselves but in 1.0 they're |
304s | going to be pulled together instead this |
306s | is a big computational relief for your |
308s | CPU as it won't have to work through as |
311s | many instances of belts and pipes as it |
313s | currently does so now instead belts and |
315s | pipes uh belong to like fewer but bigger |
317s | pools and now instead we're relying on |
319s | the GPU to do the heavy lifting gpus can |
322s | work extremely fast even when |
324s | computations are chunky in size which is |
326s | why for settled for this like fewer but |
328s | bigger approach this helps stuff like |
330s | Shadow rendering a lot since shadows |
331s | will also belong to massive pools being |
333s | calculated and drawn rather than like |
335s | many individual objects or like smaller |
338s | groups it's also great for instances |
340s | where many small belts occur frequently |
342s | which tends to happen a lot a prime |
344s | example of this is manifolds where you |
346s | know belts currently have to be computed |
349s | per belt no matter how small they are uh |
352s | which they tend to be in manifolds uh |
354s | after this change again they're pulled |
356s | together and the DPO will just like show |
359s | it all through one thing that a lot of |
360s | people ask us about is is whether we're |
362s | going to use nanite for conveyor belts |
364s | and we did play around a bit with nanite |
366s | splines to try and like optimize the |
368s | belt but in the end we sort of ended up |
370s | settling on our own instancing solution |
371s | because we found that it worked better |
373s | for our game speaking of objects that |
374s | may occur frequently everywhere we've |
376s | now introduced a system that sort of |
377s | converts several architectural |
379s | buildables that players don't interact |
381s | with uh or you know don't produce |
383s | anything into Data only objects uh |
386s | currently these buildables are what's |
387s | referred to as heavy actors in a real |
390s | like buildings that have like logic and |
393s | actually do stuff uh the most common |
395s | examples going data only would be you |
397s | know foundations walls or architectural |
399s | buildables like railings or stairs and |
401s | such what changing the fancy term means |
404s | is that we're basically cutting a lot of |
406s | fat from a massive amount of stuff |
407s | present in almost all factories so now |
410s | we only store The crucial data for these |
412s | things like locations the mesh that's |
414s | using customization data such as like |
416s | the colors and the recipe that we built |
418s | with and the cool thing with all this |
419s | like light data stored in a pre-prepared |
421s | location in memory is that writing it to |
424s | save data will be much faster so |
426s | hopefully this will reduce the time the |
428s | game stalls uh when saving when you have |
430s | like a big old factory we're also |
432s | skipping a bunch of steps when Gathering |
434s | save data for these lightwe buildables |
436s | uh related to production which also |
438s | saves a bunch of uh time on that note uh |
440s | lad times could also be a lot faster |
442s | than 1.0 and and actually quite |
444s | substantially faster uh because when all |
447s | objects were heavy actors spawning them |
449s | was costly because because we had a |
450s | bunch of code that was like running |
451s | through everything uh loading it all no |
454s | matter if it was a foundation piece or |
455s | if it was an assembler being spawned so |
457s | having nonproduction build be |
459s | lightweight allows us to skip a bunch of |
461s | this code and you know set your files up |
463s | faster and the actual safe files will |
465s | also be a lot smaller non-production |
466s | buildables being lightweight |
469s | lightweight uh by the way I just |
471s | realized I probably haven't pronounced |
472s | lightweight properly but it's too late |
474s | we're too deep into we got to keep going |
476s | non- production buildable being |
477s | lightweight also helps decrease runtime |
479s | memory consumption you know actors are |
482s | huge in unreal and with so many heavy |
484s | actors turned lightweight uh enjoy not |
487s | having like every inch of your RAM being |
489s | you know used up by satisfactory this |
490s | also connects to multiplayer because |
492s | when actors are replicated to clients in |
494s | Unreal Engine it requires that those |
496s | clients allocate memory to track the |
498s | state of the actors lightweight |
499s | buildables means that this extra data is |
501s | no longer needed so yeah tldr |
503s | lightweight system makes stuff that |
505s | don't have logic a lot smaller and |
508s | easier to load and good and on the |
511s | client side when playing multiplayer |
513s | joining a game is also much faster now |
515s | because processing those lightweights is |
516s | so much faster than plowing through all |
518s | these like heavy actors that existed |
520s | before there's also a ton of General |
522s | tweaks here and there that by themselves |
524s | don't really amount to much but |
525s | altogether add up stuff like reducing |
528s | unnecessarily large texture sizes uh |
530s | sorting stuff that was thrown together |
532s | quickly for testing and then forgotten |
535s | uh and fixing you know straight up |
536s | broken in the world and and this |
538s | means that vrm require IR ments are now |
540s | a lot lower across the board scalability |
543s | settings have also been looked at and |
544s | adjusted so that people can expect you |
546s | know a more reasonable result from their |
547s | settings uh for example the performance |
549s | hit going from medium to high in |
552s | specifically sh Shadow quality settings |
554s | was pretty weird so we've adjusted that |
556s | and since the last update we've also |
558s | upgraded Onre engine to 5.3 uh this will |
561s | give the game a general sort of |
562s | performance boost since you know epic |
564s | has fixed a bunch of stuff on their end |
566s | uh it also resolves a couple of crashes |
568s | some people were running into and look |
570s | okay I know what you're thinking okay 5 |
572s | four just came out are you are you gonna |
574s | upgrade to that one uh why aren't you |
576s | upgrading uh well okay so there's a |
579s | couple reasons why we're not going to |
581s | upgrade to 5.4 uh it just isn't viable |
583s | for 1.0 uh we might do it in the future |
586s | but this is the version we're going to |
588s | ship 1.0 with and for all you upscaler |
590s | enjoyers out there you'll be happy to |
592s | learn that we've updated dlss and FSR to |
595s | their respective latest versions so if |
597s | you're using those upscaling options you |
600s | should also see a bit of an improvement |
602s | there and finally in the last video we |
604s | talked about new features coming to |
606s | Dedicated servers well in the land of |
608s | optimization dedicated service I've also |
610s | seen some pretty massive improvements |
612s | thanks to stuff like the foliage Collis |
614s | thing and the pooling of belts and pipes |
616s | however we're also experimenting with |
618s | dedicated service to enable streaming up |
620s | until now the way dedicated service has |
622s | worked is that like it loads everything |
624s | in the game so it loads the entire map |
626s | and everything on it um and by enabling |
629s | streaming for dedicated servers this |
630s | means that everything on your server |
632s | doesn't have to be loaded all the time |
633s | so if you have like a bunch of people |
635s | hanging out in like the same area uh you |
637s | know loading that space should be enough |
639s | until you start using the map more which |
642s | obviously will sort of require much less |
644s | memory when you do start exploring and |
646s | building far away from each other uh |
648s | then the stress of the server will sort |
649s | of scale appropriately instead so those |
651s | are some of the improvements coming in |
653s | satisfactory 1.0 I'm sure there's going |
654s | to be even further optimizations between |
656s | now and final release but this is where |
658s | we are right right now you may have |
660s | noticed that there was a bit of a gap |
662s | between this video and the last one you |
663s | know there's like I said before there's |
665s | a ton of stuff going on my scenes uh it |
667s | just makes it really hard to push out |
668s | these videos continuously right now uh |
670s | but we will be back on track soon enough |
672s | so please bear with us and until then I |
675s | hope you have a lovely day stay |
677s | optimized and take care yay optimization |
681s | hooray |
690s | oh I forgot to put on the beanie oh |
692s | no did I record the entire video without |
694s | the beanie oh no oh will people even |
698s | recognize me oh |
700s | man a bummer |