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