From 7f4759e41caf214ed2cc8d49ceb2cf47b8c09bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Wed, 27 Nov 2024 10:44:05 +0100 Subject: [PATCH 01/11] Linked to application lifecycle --- docs/en/manuals/script.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/manuals/script.md b/docs/en/manuals/script.md index 765f573f..8162d3ab 100644 --- a/docs/en/manuals/script.md +++ b/docs/en/manuals/script.md @@ -21,7 +21,7 @@ GUI scripts Render scripts -: Extension _.render_script_. Run by the rendering pipeline and containing the logic required to render all app/game graphics each frame. Defold will execute the Lua code as part of the engine lifecycle functions. Render scripts have access to the [Render](/ref/render) functions and all Defold library functions except the [GO](/ref/go) and [GUI](/ref/gui) functions. +: Extension _.render_script_. Run by the rendering pipeline and containing the logic required to render all app/game graphics each frame. The render script has a special place in the lifecycle of your game. Details can be found in the [Application lifecycle documentation](/manuals/application-lifecycle). Render scripts have access to the [Render](/ref/render) functions and all Defold library functions except the [GO](/ref/go) and [GUI](/ref/gui) functions. ## Script execution, callbacks and self From 54967253d3e7a36988a521372f7efd483b9bacc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Wed, 27 Nov 2024 10:44:17 +0100 Subject: [PATCH 02/11] Removed specific mentions of OpenGL --- docs/en/manuals/render.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/manuals/render.md b/docs/en/manuals/render.md index 415a5bb5..5c367982 100644 --- a/docs/en/manuals/render.md +++ b/docs/en/manuals/render.md @@ -16,7 +16,7 @@ The render pipeline controls what to render, when to render it and also where to The render file contains a reference to the current render script as well as custom materials that should be made available in the render script (use with [`render.enable_material()`](/ref/render/#render.enable_material)) -At the heart of the rendering pipeline is the _render script_. This is a Lua script with the functions `init()`, `update()` and `on_message()` and it is primarily used to interact with the underlying OpenGL rendering API. The render script has a special place in the lifecycle of your game. Details can be found in the [Application lifecycle documentation](/manuals/application-lifecycle). +At the heart of the rendering pipeline is the _render script_. This is a Lua script with the functions `init()`, `update()` and `on_message()` and it is primarily used to interact with the underlying graphics API. The render script has a special place in the lifecycle of your game. Details can be found in the [Application lifecycle documentation](/manuals/application-lifecycle). In the "Builtins" folder of your projects you can find the default render resource ("default.render") and the default render script ("default.render_script"). @@ -24,7 +24,7 @@ In the "Builtins" folder of your projects you can find the default render resour To set up a custom renderer: -1. Copy the files "default.render" and "default.render_script" to a location in your project hierarchy. You can, of course, create a render script from scratch but it is a good idea to start with a copy of the default script, especially if you are new to Defold and/or OpenGL ES rendering. +1. Copy the files "default.render" and "default.render_script" to a location in your project hierarchy. You can, of course, create a render script from scratch but it is a good idea to start with a copy of the default script, especially if you are new to Defold and/or graphics programming. 2. Edit your copy of the "default.render" file and change the *Script* property to refer to your copy of the render script. From 30ce3849b8c5ff5f61de4ceb1965e23af4913b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jhonny=20G=C3=B6ransson?= Date: Wed, 27 Nov 2024 12:08:06 +0100 Subject: [PATCH 03/11] Misc info (#495) --- docs/en/manuals/project-settings.md | 9 ++++----- docs/en/shared/graphics-api.md | 10 +++++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/docs/en/manuals/project-settings.md b/docs/en/manuals/project-settings.md index b835e9f2..b6b15435 100644 --- a/docs/en/manuals/project-settings.md +++ b/docs/en/manuals/project-settings.md @@ -221,12 +221,11 @@ The texture profiles file to use for this project, `/builtins/graphics/default.t #### Verify Graphics Calls Verify the return value after each graphics call and report any errors in the log. ---- - -### Shader +#### OpenGL Version Hint +OpenGL context version hint. If a specific version is selected, this will used as the minimum version required (does not apply to OpenGL ES). Defaults to OpenGL 3.3. -#### Output SPIR-V -Compile and output SPIR-V shaders for use with Metal or Vulkan. +#### OpenGL Core Profile Hint +Set the 'core' OpenGL profile hint when creating the context. The core profile removes all deprecated features from OpenGL, such as immediate mode rendering. Does not apply to OpenGL ES. `true` by default. --- diff --git a/docs/en/shared/graphics-api.md b/docs/en/shared/graphics-api.md index d7836aa5..0d715b03 100644 --- a/docs/en/shared/graphics-api.md +++ b/docs/en/shared/graphics-api.md @@ -1,8 +1,8 @@ | System | Graphics API | Note | |----------|----------------------------|--------------------------| -| macOS | Metal (via MoltenVK) | | -| Windows | OpenGL 3.1 or Vulkan 1.1 | | -| Linux | OpenGL 3.1 or Vulkan 1.1 | | +| macOS | OpenGL 3.3 or Metal | Vulkan via MoltenVK | +| Windows | OpenGL 3.3 or Vulkan 1.1 | | +| Linux | OpenGL 3.3 or Vulkan 1.1 | | | Android | OpenGLES 3.0 or Vulkan 1.1 | Fallback to OpenGLES 2.0 | -| iOS | Metal (via MoltenVK) | | -| HTML5 | WebGL 2.0 | Fallback to WebGL 1.0 | +| iOS | OpenGLES 3.0 or Metal | Vulkan via MoltenVK | +| HTML5 | WebGL 2.0 or WebGPU | Fallback to WebGL 1.0 | From 23e8177fdd9f83b2f9c03185a120483bf9a18183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Thu, 28 Nov 2024 10:08:32 +0100 Subject: [PATCH 04/11] Added cocoapods and gradle docs --- docs/en/en.json | 8 +++++++ docs/en/manuals/extensions-cocoapods.md | 27 +++++++++++++++++++++ docs/en/manuals/extensions-gradle.md | 31 +++++++++++++++++++++++++ docs/en/manuals/extensions.md | 5 +++- 4 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 docs/en/manuals/extensions-cocoapods.md create mode 100644 docs/en/manuals/extensions-gradle.md diff --git a/docs/en/en.json b/docs/en/en.json index 0ae6baf5..9feac90e 100644 --- a/docs/en/en.json +++ b/docs/en/en.json @@ -1654,6 +1654,14 @@ "path": "/manuals/extensions-defold-sdk", "name": "Defold SDK" }, + { + "path": "/manuals/extensions-gradle", + "name": "Gradle dependencies" + }, + { + "path": "/manuals/extensions-cocoapods", + "name": "Cocoapod dependencies" + }, { "path": "/manuals/extensions-script-api", "name": "Adding auto-complete definition" diff --git a/docs/en/manuals/extensions-cocoapods.md b/docs/en/manuals/extensions-cocoapods.md new file mode 100644 index 00000000..9c81224c --- /dev/null +++ b/docs/en/manuals/extensions-cocoapods.md @@ -0,0 +1,27 @@ +--- +title: Using CocoaPods dependencies in iOS and macOS builds +brief: This manual explains how to use CocoaPods to resolve dependencies in iOS and macOS builds. +--- + +# CocoaPods + +[CocoaPods](https://cocoapods.org/) is a dependency manager for Swift and Objective-C Cocoa projects. CocoaPods is typically used to manage and integrate dependencies in Xcode projects. Defold does not use Xcode when building for iOS and macOS, but it still uses Cocoapods to resolve dependencies on the build server. + + +## Resolving dependencies + +Native extensions can include a `Podfile` file in the `manifests/ios` and `manifests/osx` folders to specify the extension dependencies. Example: + +``` +platform :ios '11.0' + +pod 'FirebaseCore', '10.22.0' +pod 'FirebaseInstallations', '10.22.0' +``` + +The build server will collect the `Podfile` files from all the extensions and use these to resolve all dependencies and include them when building the native code. + +Examples: + +* https://github.com/defold/extension-firebase/blob/master/firebase/manifests/ios/Podfile +* https://github.com/defold/extension-facebook/blob/master/facebook/manifests/ios/Podfile \ No newline at end of file diff --git a/docs/en/manuals/extensions-gradle.md b/docs/en/manuals/extensions-gradle.md new file mode 100644 index 00000000..d5697540 --- /dev/null +++ b/docs/en/manuals/extensions-gradle.md @@ -0,0 +1,31 @@ +--- +title: Using Gradle dependencies in Android builds +brief: This manual explains how to use Gradle to resolve dependencies in Android builds. +--- + +# Gradle for Android + +Contrary to how Android applications are typically built, Defold does not use [Gradle](https://gradle.org/) for the entire build process. Instead Defold uses Android command line tools such as `aapt2` and `bundletool` directly in the local build and only leverages Gradle while resolving dependencies on the build server. + + +## Resolving dependencies + +Native extensions can include a `build.gradle` file in the `manifests/android` folder to specify the extension dependencies. Example: + +``` +repositories { + mavenCentral() +} + +dependencies { + implementation 'com.google.firebase:firebase-installations:17.2.0' + implementation 'com.google.android.gms:play-services-base:18.2.0' +} +``` + +The build server will collect the `build.gradle` files from all the extensions and use these to resolve all dependencies and include them when building the native code. + +Examples: + +* https://github.com/defold/extension-firebase/blob/master/firebase/manifests/android/build.gradle +* https://github.com/defold/extension-facebook/blob/master/facebook/manifests/android/build.gradle \ No newline at end of file diff --git a/docs/en/manuals/extensions.md b/docs/en/manuals/extensions.md index 44af0958..1937a995 100644 --- a/docs/en/manuals/extensions.md +++ b/docs/en/manuals/extensions.md @@ -66,8 +66,11 @@ To create a new extension, create a folder in the project root. This folder will The optional *manifests* folder of an extension contains additional files used in the build and bundling process. Files should be placed in subfolders named by `platform`: -* `android` - This folder accepts a manifest stub file to be merged into the main application ([as described here](/manuals/extensions-manifest-merge-tool)). The folder can also contain a `build.gradle` file with dependencies to be resolved by Gradle ([example](https://github.com/defold/extension-facebook/blob/master/facebook/manifests/android/build.gradle)). Finally the folder can also contain zero or more ProGuard files (experimental). +* `android` - This folder accepts a manifest stub file to be merged into the main application ([as described here](/manuals/extensions-manifest-merge-tool)). + * The folder can also contain a `build.gradle` file with dependencies to be [resolved by Gradle](/manuals/extensions-gradle). + * Finally the folder can also contain zero or more ProGuard files (experimental). * `ios` - This folder accepts a manifest stub file to be merged into the main application ([as described here](/manuals/extensions-manifest-merge-tool)). + * The folder can also contain a `Podfile` file with dependencies to be [resolved by Cocoapods](/manuals/extensions-cocoapods). * `osx` - This folder accepts a manifest stub file to be merged into the main application ([as described here](/manuals/extensions-manifest-merge-tool)). * `web` - This folder accepts a manifest stub file to be merged into the main application ([as described here](/manuals/extensions-manifest-merge-tool)). From 92ca5ce2b06c8b68e85feb5c58b5c0501df58bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Thu, 28 Nov 2024 11:34:08 +0100 Subject: [PATCH 05/11] Fixed links --- docs/en/manuals/extensions-cocoapods.md | 4 ++-- docs/en/manuals/extensions-gradle.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/manuals/extensions-cocoapods.md b/docs/en/manuals/extensions-cocoapods.md index 9c81224c..18e9fd7d 100644 --- a/docs/en/manuals/extensions-cocoapods.md +++ b/docs/en/manuals/extensions-cocoapods.md @@ -23,5 +23,5 @@ The build server will collect the `Podfile` files from all the extensions and us Examples: -* https://github.com/defold/extension-firebase/blob/master/firebase/manifests/ios/Podfile -* https://github.com/defold/extension-facebook/blob/master/facebook/manifests/ios/Podfile \ No newline at end of file +* [Firebase](https://github.com/defold/extension-firebase/blob/master/firebase/manifests/ios/Podfile) +* [Facebook](https://github.com/defold/extension-facebook/blob/master/facebook/manifests/ios/Podfile) \ No newline at end of file diff --git a/docs/en/manuals/extensions-gradle.md b/docs/en/manuals/extensions-gradle.md index d5697540..909582a1 100644 --- a/docs/en/manuals/extensions-gradle.md +++ b/docs/en/manuals/extensions-gradle.md @@ -27,5 +27,5 @@ The build server will collect the `build.gradle` files from all the extensions a Examples: -* https://github.com/defold/extension-firebase/blob/master/firebase/manifests/android/build.gradle -* https://github.com/defold/extension-facebook/blob/master/facebook/manifests/android/build.gradle \ No newline at end of file +* [Firebase](https://github.com/defold/extension-firebase/blob/master/firebase/manifests/android/)build.gradle +* [Facebook](https://github.com/defold/extension-facebook/blob/master/facebook/manifests/android/build.gradle) \ No newline at end of file From 338744c2e9bcba1db355b921c8bf262441e29872 Mon Sep 17 00:00:00 2001 From: Kharkunov Eugene Date: Thu, 5 Dec 2024 12:57:01 +0200 Subject: [PATCH 06/11] Fix typo in URL. (#497) --- docs/en/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/en.json b/docs/en/en.json index 9feac90e..f4c7f1aa 100644 --- a/docs/en/en.json +++ b/docs/en/en.json @@ -1695,7 +1695,7 @@ "name": "Setup local build server" }, { - "path": "/manuals/extender-docker-iamges", + "path": "/manuals/extender-docker-images", "name": "Avaialble Docker images to run Extender" } ] From 8cc90023f77fe927838de06095865121cc0740eb Mon Sep 17 00:00:00 2001 From: Alexey Gulev Date: Thu, 5 Dec 2024 19:26:42 +0100 Subject: [PATCH 07/11] add templates documentation info (#498) --- docs/en/manuals/editor.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/en/manuals/editor.md b/docs/en/manuals/editor.md index c55a0493..a17c3c8a 100644 --- a/docs/en/manuals/editor.md +++ b/docs/en/manuals/editor.md @@ -138,6 +138,8 @@ Type a suitable name for the new file. The full file name including the file typ ![create file name](images/editor/create_file_name.png){srcset="images/editor/create_file_name@2x.png 2x"} +It is possible to specify custom templates for each project. To do so, create a new folder named `templates` in the project’s root directory, and add new files named `default.*` with the desired extensions, such as `/templates/default.gui` or `/templates/default.script`. Additionally, if the `{{NAME}}` token is used in these files, it will be replaced with the filename specified in the file creation window. + ## Importing files to your project To add asset files (images, sounds, models etc) to your project, simply drag and drop them to the correct position in the *Assets* browser. This will make _copies_ of the files at the selected location in the project file structure. Read more about [how to import assets in our manual](/manuals/importing-assets/). From 36490a2a0a2958f16edc58870f26a40637c0bf94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Mon, 9 Dec 2024 22:28:40 +0100 Subject: [PATCH 08/11] Updated optimization pages --- docs/en/en.json | 16 ++ docs/en/manuals/html5.md | 6 + docs/en/manuals/images/gui/new_gui.png | Bin 19062 -> 60350 bytes docs/en/manuals/images/gui/new_gui@2x.png | Bin 40549 -> 74300 bytes docs/en/manuals/optimization-battery.md | 12 ++ docs/en/manuals/optimization-memory.md | 28 +++ docs/en/manuals/optimization-size.md | 90 ++++++++++ docs/en/manuals/optimization-speed.md | 84 +++++++++ docs/en/manuals/optimization.md | 178 +------------------- docs/en/shared/optimization-memory-html5.md | 21 +++ 10 files changed, 263 insertions(+), 172 deletions(-) create mode 100644 docs/en/manuals/optimization-battery.md create mode 100644 docs/en/manuals/optimization-memory.md create mode 100644 docs/en/manuals/optimization-size.md create mode 100644 docs/en/manuals/optimization-speed.md create mode 100644 docs/en/shared/optimization-memory-html5.md diff --git a/docs/en/en.json b/docs/en/en.json index 9feac90e..c17de62f 100644 --- a/docs/en/en.json +++ b/docs/en/en.json @@ -1429,6 +1429,22 @@ "path": "/manuals/optimization", "name": "Optimizing an application" }, + { + "path": "/manuals/optimization-size", + "name": "Optimize game size" + }, + { + "path": "/manuals/optimization-speed", + "name": "Optimize runtime performance" + }, + { + "path": "/manuals/optimization-battery", + "name": "Optimize battery usage" + }, + { + "path": "/manuals/optimization-memory", + "name": "Optimize memory usage" + }, { "path": "/manuals/profiling", "name": "Profiling" diff --git a/docs/en/manuals/html5.md b/docs/en/manuals/html5.md index c4d568fb..035454f4 100644 --- a/docs/en/manuals/html5.md +++ b/docs/en/manuals/html5.md @@ -305,6 +305,12 @@ function init(self) end ``` +## Optimizations +HTML5 games usually have strict requirements on initial download size, startup time and memory usage to ensure that games load fast and run well on low end devices and slow internet connections. To optimize an HTML5 game it is recommended to focus on the following areas: + +* [Memory usage](/manuals/optimization-memory) +* [Engine size](/manuals/optimization-size) +* [Game size](/manuals/optimization-size) ## FAQ :[HTML5 FAQ](../shared/html5-faq.md) diff --git a/docs/en/manuals/images/gui/new_gui.png b/docs/en/manuals/images/gui/new_gui.png index aef104a0973c304e8630aeb19e31768b3d5502a7..9889beb62dbd186df62f06f48a5033c292fa698f 100644 GIT binary patch literal 60350 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

%)?(8Neup9DDBZd5VcKM-gX=n}wHVxU9a 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 sFVdQ&MBb@01v{jVE_OC diff --git a/docs/en/manuals/images/gui/new_gui@2x.png b/docs/en/manuals/images/gui/new_gui@2x.png index 87ea3c24a92f6f47404a359b6d15653cbe47dbca..bd2fdbf665a453d37744535edd744454cd4ba4e0 100644 GIT binary patch literal 74300 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

&Nd}CJCp@2ZlM&kZqf{K<{k8^P?O1a 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 literal 40549 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 diff --git a/docs/en/manuals/optimization-battery.md b/docs/en/manuals/optimization-battery.md new file mode 100644 index 00000000..c0e48294 --- /dev/null +++ b/docs/en/manuals/optimization-battery.md @@ -0,0 +1,12 @@ +--- +title: Optimizing battery usage of a Defold game +brief: This manual describes how to optimize battery usage a Defold game. +--- + +# Optimize battery usage +Battery usage is mainly a concern if you are targeting mobile/handheld devices. High CPU or GPU usage will quickly drain battery and overheat the device. + +Refer to the manuals on how to [optimize runtime performance](/manuals/optimization-speed) of a game to learn how to reduce CPU and GPU usage. + +## Disable accelerometer +If you are creating a mobile game which doesn't make use of the device accelerometer it is recommended to [disable it in *game.project*](/manuals/project-settings/#use-accelerometer) to reduce the number of generated input events. diff --git a/docs/en/manuals/optimization-memory.md b/docs/en/manuals/optimization-memory.md new file mode 100644 index 00000000..d373fc74 --- /dev/null +++ b/docs/en/manuals/optimization-memory.md @@ -0,0 +1,28 @@ +--- +title: Optimizing memory usage of a Defold game +brief: This manual describes how to optimize memory usage of a Defold game. +--- + +# Optimizing memory usage + +## Texture compression +The use of texture compression will not only reduce the size of resources within your game archive, but compressed textures may also reduce the amount of GPU memory required. + +## Dynamic loading +Most game have at least some content that is used infrequently. From a memory usage stand point it does not make sense to have such content loaded in memory at all times, but rather load and unload it when it is neded. This will obviously be a trade-off between having something readily accessible at the cost of runtime memory and loading something at the cost of loading time. + +Defold has several different ways of loading content dynamically: + +* [Collection proxies](/manuals/collection-proxy/) +* [Dynamic collection factories](/manuals/collection-factory/#dynamic-loading-of-factory-resources) +* [Dynamic factories](/manuals/factory/#dynamic-loading-of-factory-resources) +* [Live Update](/manuals/live-update/) + +## Optimize component counters +Defold will allocate memory for components and resources once when a collection is created, to reduce memory fragmentation. The amount of memory that is allocated depends on the configuration of various components counters in *game.project*. Use the [profiler](/manuals/profiling/) to get accurate component and resource usage and configure your game to use max values that are closer to the real count of components and resources. This will reduce the amount of memory your game is using (refer to information about component [max count optimizations](/manuals/project-settings/#component-max-count-optimizations)). + +## Optimize GUI node count +Optimize GUI node counts by setting the max number of nodes in the GUI file to only what is needed. The `Current Nodes` field of the [GUI component properties](https://defold.com/manuals/gui/#gui-properties) will show the number of nodes used by the GUI component. + +:[HTML5 Optimizations](../shared/optimization-memory-html5) + diff --git a/docs/en/manuals/optimization-size.md b/docs/en/manuals/optimization-size.md new file mode 100644 index 00000000..4c7cae81 --- /dev/null +++ b/docs/en/manuals/optimization-size.md @@ -0,0 +1,90 @@ +--- +title: Optimizing size of a Defold game +brief: This manual describes how to optimize the size of a Defold game. +--- + +# Optimizing game size + +The size of your game can be a critical success factor for platforms such as web and mobile, while it is of less importance on desktop and consoles where disk space is cheap and often plentiful. + +* Apple and Google has defined application size limits when downloading over mobile networks (as opposed to downloading over Wifi). + * In the summer of 2019 these limits were 100 MB for Google Play and 150 MB for the Apple App Store. +* Poki and many other web game platforms recommend that the initial download should be no larger than 5 MB. +* Facebook has a recommendation that a Facebook Instant Game should start in less than 5 seconds and preferably less than 3 seconds. + * What this means for actual application size is not clearly defined but we are talking size in the range of up to 20 MB. +* Playable ads are usually limited to between 2 and 5 MB depending on the ad network. + +::: sidenote +According to a 2017 study it was shown that "For every 6 MB increase to an APK’s size, we see a decrease in the install conversion rate of 1%." ([source](https://medium.com/googleplaydev/shrinking-apks-growing-installs-5d3fcba23ce2)) +::: + +You can optimize the application size in two ways; by reducing the size of the engine and/or by reducing the size of the game assets. + +To get a better understanding of what makes up the size of your application you can [generate a build report](/manuals/bundling/#build-reports) when bundling. It is quite common that sounds and graphics is what takes up the bulk of the size of any game. + +::: important +Defold will create a dependency tree when building and bundling your application. The build system will start from the bootstrap collection specified in the *game.project* file and inspect every referenced collection, game object and component to build a list of the assets that are in use. It is only these assets that will get included in the final application bundle. Anything not directly referenced will get excluded. While it is good to know that unused assets will not be included you as a developer still needs to consider what goes into the final application and the size of the individual assets and the total size of the application bundle. +::: + + +## Optimize engine size +A quick way to reduce the engine size is to remove functionality in the engine that you do not use. This is done [application manifest file](https://defold.com/manuals/app-manifest/) where it is possible to remove engine components that you do not need. Examples: + +* Physics - If your game does not make use of Box2D or Bullet3D physics then it is strongly advised to remove the physics engines +* LiveUpdate - If your game does not use LiveUpdate it can be removed +* Image loaded - If your game does not manually load and decode images using `image.load()` +* BasisU - If your game has few textures, compare the build size without BasisU (removed via app manifest) and without texture compression versus a build with BasisU and compressed textures. For games with limited textures, it might be more beneficial to reduce the binary size and skip texture compression. Additionally, not using the transcoder can lower the amount of memory required to run your game. + + +## Optimize asset size +The biggest wins in terms of asset size optimizations are usually gained by reducing the size of sounds and textures. + +### Optimize sounds +Defold supports .ogg and .wav files where .ogg is typically used for music and .wav for sound effects. Sounds must be 16-bit with a sampling rate of 44100 so any optimizations must be done on the sounds before encoding them. You can edit the sounds in an external sound editor software to reduce the quality or convert from .wav to .ogg. Also consider converting sounds from stereo to mono. + +### Optimize textures +You have several options when it comes to optimizing the textures used by your game, but the first thing to do is to check the size of the images that gets added to an atlas or used as a tilesource. You should never use a larger size on the images than is actually needed in your game. Importing large images and scaling them down to the appropriate size is a waste of texture memory and should be avoided. Start by adjusting the size of the images using external image editing software to the actual size needed in your game. For things such as background images it might also be ok to use a small image and scale it up to the desired size. Once you have the images down to the correct size and added to atlases or used in tilesources you also need to consider the size of the atlases themselves. The maximum atlas size that can be used varies between platforms and graphics hardware. + +::: sidenote +[This forum posts](https://forum.defold.com/t/texture-management-in-defold/8921/17?u=britzl) suggests several tips on how to resize multiple images using scripts or third party software. +::: + +* Max texture size on HTML5: https://webglstats.com/webgl/parameter/MAX_TEXTURE_SIZE +* Max texture size on iOS: + * iPad: 2048x2048 + * iPhone 4: 2048x2048 + * iPad 2, 3, Mini, Air, Pro: 4096x4096 + * iPhone 4s, 5, 6+, 6s: 4096x4096 +* Max texture size on Android varies greatly but in general all reasonably new devices support at least 4096x4096. + +If an atlas is too large you need to either split it into several smaller atlases, use multi-page atlases or scale the entire atlas using a texture profile. The texture profile system in Defold allows you to not only scale entire atlases but also to apply compression algorithms to reduce the size of the atlas on disk. You can [read more about texture profiles in the manual](/manuals/texture-profiles/). If you don’t know what to use, try to start with these settings as a starting point for further customizations: + +* mipmaps: false +* premultiply_alpha: true +* format: TEXTURE_FORMAT_RGBA +* compression_level: NORMAL +* compression_type: COMPRESSION_TYPE_BASIS_UASTC + +::: sidenote +You can read more about how to optimize and manage textures in [this forum post](https://forum.defold.com/t/texture-management-in-defold/8921). +::: + +### Optimize fonts +The size of your fonts will be smaller if you specify what symbols you are going to use and set this in [Characters](/manuals/font/#properties) instead of using the All Chars checkbox. + + +### Exclude content for download on demand +Another way of reducing initial application size is to exclude parts of the game content from the application bundle and download it on demand. Defold provides a system called Live Update for excluding content for download on demand. + +Excluded content can be anything from entire levels to unlockable characters, skins, weapons or vehicles. If your game has a lot of content, organize the loading process so that the bootstrap collection and the first level collection include the bare minimum resources required for that level. You achieve this by using collection proxies or factories with the "Exclude" checkbox enabled. Split resources according to the player's progress. This approach ensures efficient resource loading and keeps initial memory usage low. Learn more in the [Live Update manual](/manuals/live-update/). + + + +## Android specific size optimizations +Android builds must support both 32-bit and 64-bit CPU architectures. When you [bundle for Android](/manuals/android) you can specify which CPU architectures to include: + +![Signing Android bundle](images/android/sign_bundle.png) + +Google Play has support for [multiple APKs](https://developer.android.com/google/play/publishing/multiple-apks) per release of a game, which means that you can reduce the application size by generating two APKs, one per CPU architecture, and uploading both to Google Play. + +You can also make use of a combination of [APK Expansion Files](https://developer.android.com/google/play/expansion-files) and [Live Update content](/manuals/live-update) thanks to the [APKX extension in the Asset Portal](https://defold.com/assets/apkx/). diff --git a/docs/en/manuals/optimization-speed.md b/docs/en/manuals/optimization-speed.md new file mode 100644 index 00000000..cc354eec --- /dev/null +++ b/docs/en/manuals/optimization-speed.md @@ -0,0 +1,84 @@ +--- +title: Optimizing runtime performance of a Defold game +brief: This manual describes how to optimize a Defold game to run at a stable high frame rate. +--- + +# Optimizing runtime speed +Before trying to optimize a game with the goal to make it run at a stable high frame rate you need to know where your bottlenecks are. What is actually taking up most of the time in a frame of your game? Is it the rendering? Is it your game logic? Is it the scene graph? To figure this out it is recommended to use the built-in profiling tools. Use the [on-screen or web profiler](/manuals/profiling/) to sample the performance of your game and then make a decision if and what to optimize. Once you have a better understanding of what takes time you can start addressing the problems. + +## Reduce script execution time +Reducing script execution time is needed if the profiler shows high values for the `Script` scope. As a general rule of thumb you should of course try to run as little code as possible every frame. Running a lot of code in `update()` and `on_input()` every frame is likely to have an impact on your game's performance, especially on low end devices. Some guidelines are: + +### Use reactive code patterns +Don't poll for changes if you can get a callback. Don't manually animate something or perform a task that can be handed over to the engine (eg go.animate vs manually animating something). + +### Reduce garbage collection +If you create loads of short lived objects such as Lua tables every frame this will eventually trigger the garbage collector of Lua. When this happens it can manifest itself as small hitches/spikes in frame time. Re-use tables where you can and really try to avoid creating Lua tables inside loops and similar constructs if possible. + +### Pre-hash message and action ids +If you do a lot of message handling or have many input events to deal with it is recommended to pre-hash the strings. Consider this piece of code: + +``` +function on_message(self, message_id, message, sender) + if message_id == hash("message1") then + msg.post(sender, hash("message3")) + elseif message_id == hash("message2") then + msg.post(sender, hash("message4")) + end +end +``` + +In the above scenario the hashed string would be recreated every time a message is received. This can be improved by creating the hashed strings once and use the hashed versions when handling messages: + +``` +local MESSAGE1 = hash("message1") +local MESSAGE2 = hash("message2") +local MESSAGE3 = hash("message3") +local MESSAGE4 = hash("message4") + +function on_message(self, message_id, message, sender) + if message_id == MESSAGE1 then + msg.post(sender, MESSAGE3) + elseif message_id == MESSAGE2 then + msg.post(sender, MESSAGE4) + end +end +``` + +### Prefer and cache URLs +Message passing or in other ways addressing a game object or component can be done both by providing an id as a string or hash or as a URL. If a string or hash is used it will internally be translated into a URL. It is therefore recommended to cache URLs that are used often, to get the best possible performance out of the system. Consider the following: + +``` + local pos = go.get_position("enemy") + local pos = go.get_position(hash("enemy")) + local pos = go.get_position(msg.url("enemy")) + -- do something with pos +``` + +In all three cases the position of a game object with id `enemy` would be retrieved. In the first and second case the id (string or hash) would be converted into a URL before being used. This tells us that it's better to cache URLs and use the cached version for the best possible performance: + +``` + function init(self) + self.enemy_url = msg.url("enemy") + end + + function update(self, dt) + local pos = go.get_position(self.enemy_url) + -- do something with pos + end +``` + +## Reduce time it takes to render a frame +Reducing the time it takes to render a frame is needed if the profiler shows high values in the `Render` and `Render Script` scopes. There are several things to consider when trying to increase reduce the time it takes to render a frame: + +* Reduce draw calls - Read more about reducing draw calls in [this forum post](https://forum.defold.com/t/draw-calls-and-defold/4674) +* Reduce overdraw +* Reduce shader complexity - Read up on GLSL optimizations in [this Kronos article](https://www.khronos.org/opengl/wiki/GLSL_Optimizations). You can also modify the default shaders used by Defold (found in `builtins/materials`) and reduce shader precision to gain some speed on low end devices. All shaders are using `highp` precision and a change to for instance `mediump` can in some cases improve performance slightly. + +## Reduce scene graph complexity +Reducing the scene graph complexity is needed if the profiler shows high values in the `GameObject` scope and more specifically for the `UpdateTransform` sample. Some actions to take: + +* Culling - Disable game objects (and their components) if they aren't currently visible. How this is determined depends very much on the type of game. For a 2D game it can be as easy as always disabling game objects that are outside of a rectangular area. You can use a physics trigger to detect this or by partitioning your objects into buckets. Once you know which objects to disable or enable you do this by sending a `disable` or `enable` message to each game object. + +## Frustum culling +The render script can automatically ignore rendering of game object component that are outside of a defined bounding box (frustum). Learn more about Frustum Culling in the [Render Pipeline manual](/manuals/render/#frustum-culling). \ No newline at end of file diff --git a/docs/en/manuals/optimization.md b/docs/en/manuals/optimization.md index 9febc97f..106acdfd 100644 --- a/docs/en/manuals/optimization.md +++ b/docs/en/manuals/optimization.md @@ -1,178 +1,12 @@ --- title: Optimizing a Defold game -brief: This manual describes how to optimize a Defold app for size and performance. +brief: This manual describes how to optimize a Defold game for size and performance. --- # Optimizing a Defold game -It is important to understand the technical constraints of the platform(s) where your game is supposed to run and to optimize your game for the platform(s) while developing your game. There are several aspects to consider: +It is important to understand the technical constraints of your target platforms and to design, implement and optimize your game to meet these requirements. For most platforms there are several aspects to consider: -* Application size -* Speed -* Memory usage -* Battery usage - -## Optimize application size -Defold will create a dependency tree when building and bundling your application. The build system will start from the bootstrap collection specified in the *game.project* file and inspect every referenced collection, game object and component to build a list of the assets that are in use. It is only these assets that will get included in the final application bundle. Anything not directly referenced will get excluded. While it is good to know that unused assets will not be included you as a developer still needs to consider what goes into the final application and the size of the individual assets and the total size of the application bundle. Some target platforms and distribution channels have limitations on application size: - -* Apple and Google has defined application size limits when downloading over mobile networks (as opposed to downloading over Wifi). - * In the summer of 2019 these limits were 100 MB for Google Play and 150 MB for the Apple App Store. -* Facebook has a recommendation that a Facebook Instant Game should start in less than 5 seconds and preferably less than 3 seconds. - * What this means for actual application size is not clearly defined but we are talking size in the range of up to 20 MB. -* Playable ads are usually limited to between 2 and 5 MB depending on the ad network. - -::: sidenote -According to a 2017 study it was shown that "For every 6 MB increase to an APK’s size, we see a decrease in the install conversion rate of 1%." ([source](https://medium.com/googleplaydev/shrinking-apks-growing-installs-5d3fcba23ce2)) -::: - -To get a better understanding of what makes up the size of your application you can [generate a build report](/manuals/bundling/#build-reports) when bundling. It is quite common that sounds and graphics is what takes up the bulk of the size of any game. - -### Reducing engine size -You can use an [application manifest file](https://defold.com/manuals/project-settings/#app-manifest) to remove engine components that you do not need. You can for instance remove the included physics engines if your game doesn't use physics. - -### Optimize sounds -Defold supports .ogg and .wav files where .ogg is typically used for music and .wav for sound effects. Sounds must be 16-bit with a sampling rate of 44100 so any optimizations must be done on the sounds before encoding them. You can edit the sounds in an external sound editor software to reduce the quality or convert from .wav to .ogg. - -### Optimize graphics -You have several options when it comes to optimizing the graphics used by your game but the first thing to do is to check the size of the graphics that gets added to an atlas or used as a tilesource. You should never use a larger size on the graphics than is actually needed in your game. Importing large images and scaling them down to the appropriate size is a waste of texture memory and should be avoided. Start by adjusting the size of the images using external image editing software to the actual size needed in your game. For things such as background images it might also be ok to use a small image and scale it up to the desired size. Once you have the images down to the correct size and added to atlases or used in tilesources you also need to consider the size of the atlases themselves. The maximum atlas size that can be used varies between platforms and graphics hardware. - -::: sidenote -[This forum posts](https://forum.defold.com/t/texture-management-in-defold/8921/17?u=britzl) suggests several tips on how to resize multiple images using scripts or third party software. -::: - -* Max texture size on HTML5: https://webglstats.com/webgl/parameter/MAX_TEXTURE_SIZE -* Max texture size on iOS: - * iPad: 2048x2048 - * iPhone 4: 2048x2048 - * iPad 2, 3, Mini, Air, Pro: 4096x4096 - * iPhone 4s, 5, 6+, 6s: 4096x4096 -* Max texture size on Android varies greatly but in general all reasonably new devices support 4096x4096. - -If an atlas is too large you need to either split it into several smaller atlases or scale the entire atlas using a texture profile. The texture profile system in Defold allows you to not only scale entire atlases but also to apply compression algorithms to reduce the size of the atlas on disk. You can [read more about texture profiles in the manual](/manuals/texture-profiles/). If you don’t know what to use, try to start with these settings as a starting point for further customizations: - -* mipmaps: false -* premultiply_alpha: true -* format: TEXTURE_FORMAT_RGBA -* compression_level: NORMAL -* compression_type: COMPRESSION_TYPE_BASIS_UASTC - -::: sidenote -You can read more about how to optimize and manage textures in [this forum post](https://forum.defold.com/t/texture-management-in-defold/8921). -::: - -### Optimize fonts -The size of your fonts will be smaller if you specify what symbols you are going to use and set this in [Extra Characters](/manuals/font/#properties) instead of using the All Chars checkbox. - - -### Exclude content for download on demand -Another way of reducing initial application size is to exclude parts of the game content from the application bundle and make this content downloadable on demand. Excluded content can be anything from entire levels to unlockable characters, skins, weapons or vehicles. Defold provides a system called Live Update for excluding content for download on demand. Learn more in the [Live Update manual](/manuals/live-update/). - -### Android specific size optimizations -Android builds must support both 32-bit and 64-bit CPU architectures. When you [bundle for Android](/manuals/android) you can specify which CPU architectures to include: - -![Signing Android bundle](images/android/sign_bundle.png) - -Google Play has support for [multiple APKs](https://developer.android.com/google/play/publishing/multiple-apks) per release of a game, which means that you can reduce the application size by generating two APKs, one per CPU architecture, and uploading both to Google Play. - -You can also make use of a combination of [APK Expansion Files](https://developer.android.com/google/play/expansion-files) and [Live Update content](/manuals/live-update) thanks to the [APKX extension in the Asset Portal](https://defold.com/assets/apkx/). - - -## Optimize for application speed -Before trying to optimize a game with the goal to increase the speed at which the game runs you need to know where your bottlenecks are. What is actually taking up most of the time in a frame of your game? Is it the rendering? Is it your game logic? Is it the scene graph? To figure this out it is recommended to use the built-in profiling tools. Use the [on-screen or web profiler](/manuals/profiling/) to sample the performance of your game and then make a decision if and what to optimize. Once you have a better understanding of what takes time you can start addressing the problems. - -### Reduce script execution time -Reducing script execution time is needed if the profiler shows high values for the `Script` scope. As a general rule of thumb you should of course try to run as little code as possible every frame. Running a lot of code in `update()` and `on_input()` every frame is likely to have an impact on your game's performance, especially on low end devices. Some guidelines are: - -#### Use reactive code patterns -Don't poll for changes if you can get a callback. Don't manually animate something or perform a task that can be handed over to the engine (eg go.animate vs manually animating something). - -#### Reduce garbage collection -If you create loads of short lived objects such as Lua tables every frame this will eventually trigger the garbage collector of Lua. When this happens it can manifest itself as small hitches/spikes in frame time. Re-use tables where you can and really try to avoid creating Lua tables inside loops and similar constructs if possible. - -#### Pre-hash message and action ids -If you do a lot of message handling or have many input events to deal with it is recommended to pre-hash the strings. Consider this piece of code: - -``` -function on_message(self, message_id, message, sender) - if message_id == hash("message1") then - msg.post(sender, hash("message3")) - elseif message_id == hash("message2") then - msg.post(sender, hash("message4")) - end -end -``` - -In the above scenario the hashed string would be recreated every time a message is received. This can be improved by creating the hashed strings once and use the hashed versions when handling messages: - -``` -local MESSAGE1 = hash("message1") -local MESSAGE2 = hash("message2") -local MESSAGE3 = hash("message3") -local MESSAGE4 = hash("message4") - -function on_message(self, message_id, message, sender) - if message_id == MESSAGE1 then - msg.post(sender, MESSAGE3) - elseif message_id == MESSAGE2 then - msg.post(sender, MESSAGE4) - end -end -``` - -#### Prefer and cache URLs -Message passing or in other ways addressing a game object or component can be done both by providing an id as a string or hash or as a URL. If a string or hash is used it will internally be translated into a URL. It is therefore recommended to cache URLs that are used often, to get the best possible performance out of the system. Consider the following: - -``` - local pos = go.get_position("enemy") - local pos = go.get_position(hash("enemy")) - local pos = go.get_position(msg.url("enemy")) - -- do something with pos -``` - -In all three cases the position of a game object with id `enemy` would be retrieved. In the first and second case the id (string or hash) would be converted into a URL before being used. This tells us that it's better to cache URLs and use the cached version for the best possible performance: - -``` - function init(self) - self.enemy_url = msg.url("enemy") - end - - function update(self, dt) - local pos = go.get_position(self.enemy_url) - -- do something with pos - end -``` - -### Reduce time it takes to render a frame -Reducing the time it takes to render a frame is needed if the profiler shows high values in the `Render` and `Render Script` scopes. There are several things to consider when trying to increase reduce the time it takes to render a frame: - -* Reduce draw calls - Read more about reducing draw calls in [this forum post](https://forum.defold.com/t/draw-calls-and-defold/4674) -* Reduce overdraw -* Reduce shader complexity - Read up on GLSL optimizations in [this Kronos article](https://www.khronos.org/opengl/wiki/GLSL_Optimizations). You can also modify the default shaders used by Defold (found in `builtins/materials`) and reduce shader precision to gain some speed on low end devices. All shaders are using `highp` precision and a change to for instance `mediump` can in some cases improve performance slightly. - -### Reduce scene graph complexity -Reducing the scene graph complexity is needed if the profiler shows high values in the `GameObject` scope and more specifically for the `UpdateTransform` sample. Some actions to take: - -* Culling - Disable game objects (and their components) if they aren't currently visible. How this is determined depends very much on the type of game. For a 2D game it can be as easy as always disabling game objects that are outside of a rectangular area. You can use a physics trigger to detect this or by partitioning your objects into buckets. Once you know which objects to disable or enable you do this by sending a `disable` or `enable` message to each game object. - - -## Optimize memory usage -This section is not yet finished. Topics that will be covered: - -* [Texture compression](/manuals/texture-profiles/) -* [Dynamic loading of collections](https://www.defold.com/manuals/collection-proxy/) -* [Dynamic loading of factories](https://www.defold.com/manuals/collection-factory/#dynamic-loading-of-factory-resources) -* [Profiling](/manuals/profiling/) - - -### Tweak component counters -Check counters for components in `game.project`. Use the [profiler](/manuals/profiling/) to get accurate component and resource usage and configure your game to use max values that are closer to the real count of components and resources. This will reduce the amount of memory your game is using (refer to information about component [max count optimizations](/manuals/project-settings/#component-max-count-optimizations)). - -### Heap size (HTML5 only) -Make sure you set a minimal heap size for your game. Launch your game and play the game in the most "resource heavy" level or section. Open the developer tools of your browser and write `HEAP8.length / 1024 / 1024` in the console. Take this number add 10-15% and set it as your [Heap Size](/manuals/project-settings/#heap-size) in `game.project`. - - -## Optimize battery usage -This section is not yet finished. Topics that will be covered: - -* Running code every frame -* Accelerometer on mobile -* [Profiling](/manuals/profiling/) +* [Game size](/manuals/optimization-size) - What is the maximum acceptable size of the game bundle and how can you make the game as small as possible without compromising on quality? +* [Runtime speed](/manuals/optimization-speed) - What is the performance of the target platform and how can you make the game run with a stable frame rate at minimal CPU and/or GPU usage? +* [Memory usage](/manuals/optimization-memory) - What are the memory constraints of the target platform and how can you reduce memory usage? +* [Battery usage](/manuals/optimization-battery) - This is mainly a focus area if you are targeting mobile/handheld devices. diff --git a/docs/en/shared/optimization-memory-html5.md b/docs/en/shared/optimization-memory-html5.md new file mode 100644 index 00000000..0da409ee --- /dev/null +++ b/docs/en/shared/optimization-memory-html5.md @@ -0,0 +1,21 @@ +## Heap size +The heap size of a Defold HTML5 game can be configured from the [`heap_size` field](/manuals/project-settings/#heap-size) in *game.project*. Make sure to optimize memory usage of your game and set a minimal heap size. + +For small games, 32 MB is an achievable heap size. For larger games, aim for 64–128 MB. If, for example, you're at 58 MB and further optimization isn't feasible, you can settle on 64 MB without overthinking it. There’s no strict target size — it depends on the game. Just aim for smaller sizes, ideally in steps of powers of two. + +To check current heap usage you can launch your game and play the game in the most "resource heavy" level or section and monitor memory usage: + +```lua +if html5 then + local mem = tonumber(html5.run("HEAP8.length") / 1024 / 1024) + print(mem) +end +``` + +You can also open the developer tools of your browser and write the following in the console: + +```js +HEAP8.length / 1024 / 1024 +``` + +If the memory usage remains at 32 MB, that's great! If not, follow the steps to [optimize memory usage](/manuals/optimization-memory). \ No newline at end of file From 3ffb52d1ec36bd88430bbe4b800602ba42eaaa15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Tue, 10 Dec 2024 07:56:22 +0100 Subject: [PATCH 09/11] Update optimization-memory.md --- docs/en/manuals/optimization-memory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/manuals/optimization-memory.md b/docs/en/manuals/optimization-memory.md index d373fc74..044c4763 100644 --- a/docs/en/manuals/optimization-memory.md +++ b/docs/en/manuals/optimization-memory.md @@ -24,5 +24,5 @@ Defold will allocate memory for components and resources once when a collection ## Optimize GUI node count Optimize GUI node counts by setting the max number of nodes in the GUI file to only what is needed. The `Current Nodes` field of the [GUI component properties](https://defold.com/manuals/gui/#gui-properties) will show the number of nodes used by the GUI component. -:[HTML5 Optimizations](../shared/optimization-memory-html5) +:[HTML5 Optimizations](../shared/optimization-memory-html5.md) From b66c398d7d4a404db98767a2265befc1d83523c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Tue, 10 Dec 2024 08:14:09 +0100 Subject: [PATCH 10/11] Update optimization-size.md --- docs/en/manuals/optimization-size.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/en/manuals/optimization-size.md b/docs/en/manuals/optimization-size.md index 4c7cae81..63614163 100644 --- a/docs/en/manuals/optimization-size.md +++ b/docs/en/manuals/optimization-size.md @@ -7,17 +7,22 @@ brief: This manual describes how to optimize the size of a Defold game. The size of your game can be a critical success factor for platforms such as web and mobile, while it is of less importance on desktop and consoles where disk space is cheap and often plentiful. -* Apple and Google has defined application size limits when downloading over mobile networks (as opposed to downloading over Wifi). - * In the summer of 2019 these limits were 100 MB for Google Play and 150 MB for the Apple App Store. -* Poki and many other web game platforms recommend that the initial download should be no larger than 5 MB. -* Facebook has a recommendation that a Facebook Instant Game should start in less than 5 seconds and preferably less than 3 seconds. - * What this means for actual application size is not clearly defined but we are talking size in the range of up to 20 MB. -* Playable ads are usually limited to between 2 and 5 MB depending on the ad network. +### iOS and Android +Apple and Google has defined application size limits when downloading over mobile networks (as opposed to downloading over Wifi). For Android this limit is 200 MB for apps published with [app bundles](https://developer.android.com/guide/app-bundle#size_restrictions). For iOS users will get a warning if the application is larger than 200 MB, but can still proceed to download it. ::: sidenote According to a 2017 study it was shown that "For every 6 MB increase to an APK’s size, we see a decrease in the install conversion rate of 1%." ([source](https://medium.com/googleplaydev/shrinking-apks-growing-installs-5d3fcba23ce2)) ::: +### HTML5 +Poki and many other web game platforms recommend that the initial download should be no larger than 5 MB. + +Facebook has a recommendation that a Facebook Instant Game should start in less than 5 seconds and preferably less than 3 seconds. What this means for actual application size is not clearly defined but we are talking size in the range of up to 20 MB. + +Playable ads are usually limited to between 2 and 5 MB depending on the ad network. + + +## Size optimization strategies You can optimize the application size in two ways; by reducing the size of the engine and/or by reducing the size of the game assets. To get a better understanding of what makes up the size of your application you can [generate a build report](/manuals/bundling/#build-reports) when bundling. It is quite common that sounds and graphics is what takes up the bulk of the size of any game. From ee88cf07413a4ea64b05444959c9c3d822bfb7d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Tue, 10 Dec 2024 08:17:36 +0100 Subject: [PATCH 11/11] Update optimization-memory-html5.md --- docs/en/shared/optimization-memory-html5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/shared/optimization-memory-html5.md b/docs/en/shared/optimization-memory-html5.md index 0da409ee..b1e3fdd4 100644 --- a/docs/en/shared/optimization-memory-html5.md +++ b/docs/en/shared/optimization-memory-html5.md @@ -1,4 +1,4 @@ -## Heap size +## Heap size (HTML5) The heap size of a Defold HTML5 game can be configured from the [`heap_size` field](/manuals/project-settings/#heap-size) in *game.project*. Make sure to optimize memory usage of your game and set a minimal heap size. For small games, 32 MB is an achievable heap size. For larger games, aim for 64–128 MB. If, for example, you're at 58 MB and further optimization isn't feasible, you can settle on 64 MB without overthinking it. There’s no strict target size — it depends on the game. Just aim for smaller sizes, ideally in steps of powers of two.