Hi, I'm new to godot engine. Previously I worked in GM:S and Construct Classic. And I'm curious about optimization techniques in GE, how achieve better performence, smaller game size (MB or GB) etc. I know how to get this in GM and Construct. I ask here 'coz I didn't find any info on the net.&lt;br /&gt;&lt;br /&gt;I would be grateful for eplaining everything from total noob to pro so we could post these info in wiki later <img src="https://godotdevelopers.org/forum/resources/emoji/wink.png" alt="" height="20">

Welcome! There are many ways of optimizing one&#039;s game in Godot. To ensure smaller sizes for final products, I would recommend using smaller media files to begin with. There are many lossless ways to compress image and sound files, in particular. Performance wise, there are so many different techniques in scripting and other functionality, it&#039;s a bit too in-depth to get into with a post.Is there anything in particular you have a question about?

As BinaryOrange said there is a lot which makes a game perform good/bad.Performance is such a hard topic because you usually every piece of code can be improved in a different way. The thing which is easy it to keep the fiel size small. Just use smaller assets (textures) and lower res meshes... The engine itself always needs to be part of a game so you can access all the features of the engine in your game. As a consequence games made with Godot usually are bigger than 10mb.Just always ask yourself the questions if any calculations you do is really necessary or if you can reduce the amount of a calculation... than you should be fine and your game needs as much performance to be as great as it is.Here is a link about some more specific tips for the 3D performance:http://docs.godotengine.org/en/latest/tutorials/3d/3d_performance_and_limitations.html

On a general programming aspect, I&#039;d recommand to organize, reuse, extend and pool objects as much as possible. Do clean code. Usually clean code also means optimized code. And if not, it&#039;s much easier to find the bottleneck and fix it.

Another thing for performance. Use the built-in nodes along with their respective callbacks for as much logic as possible (for instance, using the [i]body_enter[/i] callback for collision checking is much faster than the use of [i]get_overlapping_bodies[/i] in the fixed_process loop).A second example is using the timer node instead of adding to a value for simple time-dependent logic (which I think may speed up logic processing if there&#039;s a large number of objects that use such a thing).[hr]A second tip from me would be something I found at the Godot Q&amp;A site, and that is how using the normal process loop is generally faster as executing logic than the fixed_process loop (for a physics object for instance, you can use both loop types in the same script and have the process loop do things that do not require a perfect synchronization with the physics).[hr]Thirdly, if you don&#039;t need the object to do any logic for a while, you can simply turn off the process and/or the fixed process loop by doing [i]set_process(false)[/i] (turning it back on with a callback or from the script of another object if needed).[hr]Finally, for 3D games at least, some types of geometry like terrains may allow you to get away with not having them cast any shadows (which could bump up the FPS a bit). You can also divide very large pieces of level geometry into chunks so not all are being rendered at once (due to Godot&#039;s frustum culling).

7 years later