# Final Things (Version control, optimizations)

#### [Occlusion Culling](https://docs.unity3d.com/Manual/OcclusionCulling.html)<span class="bb_link_host" data-darkreader-inline-color="" style="font-size: 10px; color: #7e8391; padding: 4px; top: -1px;">\[docs.unity3d.com\]</span>

<span data-darkreader-inline-color="" style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"><span data-darkreader-inline-color="" style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Set your static GameObjects to static \[this will set the sub-parameters, occlusion and occludee static to true\]. Then go to Windows&gt;Rendering&gt;Occlusion Culling, and hit bake before uploading your world.</span>  
</span>

<p class="callout info"><span data-darkreader-inline-color="" style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"><span data-darkreader-inline-color="" style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Unity won’t render avatars the player can’t see; since rendering avatars is what tanks performance the most, good VRChat level design should subconsciously guide the player to look only at the other players they are interacting with, without rendering a bunch of poorly performing avatars in the background that they don’t care about.</span></span></p>

#### Version Control

<span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">If you are putting a lot of time and effort into a world, version control is a must (lest you end up like me and lose your work). Version control tracks the changes you make to your project and allows you to revert your project to previous states (indispensable if something goes wrong).</span>  
  
<span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Working on a world, you are most likely going to be one person on a single computer, so I would simply recommend using </span>[Sourcetree](https://www.sourcetreeapp.com)<span class="bb_link_host" style="font-size: 10px; color: #7e8391; padding: 4px; top: -1px; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">\[www.sourcetreeapp.com\]</span><span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">.</span>

<span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #1b2838; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"><iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/TbdWXbRlPo0" width="560"></iframe>

</span>

<span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #1b2838; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"><iframe allowfullscreen="allowfullscreen" height="314" src="//www.youtube.com/embed/16clYZU0Soo" width="560"></iframe>

</span>

#### Optimization (Review)

<span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">[World Creation, Optimization, and Community Labs Tips](https://docs.vrchat.com/docs/submitting-a-world-to-be-made-public)<span class="bb_link_host" style="font-size: 10px; color: #7e8391; padding: 4px; top: -1px; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">\[docs.vrchat.com\]</span>  
[Quest Content Optimization](https://docs.vrchat.com/docs/quest-content-optimization)<span class="bb_link_host" style="font-size: 10px; color: #7e8391; padding: 4px; top: -1px; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">\[docs.vrchat.com\]</span>  
</span>

- <span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Set everything that is static to static \[will allow for lighting and occlusion culling to be baked\]</span>
- <span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Set all lights to baked</span>
- <span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">bake the lighting  
    </span>
- <span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Bake occlusion culling</span>

<span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Remember, occlusion culling only affects the *visual* rendering of objects! Objects out of view will still be processed and affect performance!</span>

<span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Make sure to include toggles on performance heavy gameobjects, for example:</span>

- <span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">toggles for physics objects</span>
- <span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">toggles to turn off shadows for realtime lights (if you have a realtime light with shadows enabled in your scene)</span>
- <span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">MIRRORS!!! This should be obvious but they should have toggles and be off by default!</span>

<span style="color: #969696; font-family: 'Motiva Sans', Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">Use the Unity profiler! It will help you find things in your world that are causing performance to drop the most! This is especially useful for figuring out how to optimize scripts!</span>

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/sBpXiJ9G3OY" width="560"></iframe>