From 2f6dfad2a5a6f9cb3473aa75b1831b943e302e52 Mon Sep 17 00:00:00 2001 From: nearnshaw Date: Thu, 23 Jul 2026 09:33:30 -0300 Subject: [PATCH 1/2] useful resources --- SUMMARY.md | 1 + creator/3d-modeling/3d-models.md | 1 + creator/README.md | 10 +- creator/SUMMARY.md | 1 + creator/scene-editor/build/import-items.md | 18 +--- creator/sdk7/getting-started/dev-workflow.md | 18 +--- creator/sdk7/getting-started/sdk-101.md | 26 +---- .../sdk7/getting-started/useful-resources.md | 95 +++++++++++++++++++ creator/sdk7/getting-started/vibe-coding.md | 1 + .../optimizing/performance-optimization.md | 2 + creator/tutorials/examples.md | 2 + 11 files changed, 109 insertions(+), 66 deletions(-) create mode 100644 creator/sdk7/getting-started/useful-resources.md diff --git a/SUMMARY.md b/SUMMARY.md index 3d44fb90..b41fb764 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -513,6 +513,7 @@ * [Development Workflow](creator/sdk7/getting-started/dev-workflow.md) * [Preview Your Scene](creator/sdk7/getting-started/preview-scene.md) * [SDK Quick Start](creator/sdk7/getting-started/sdk-101.md) + * [Useful Resources](creator/sdk7/getting-started/useful-resources.md) * [Using the CLI](creator/sdk7/getting-started/using-the-cli.md) * [Vibe Coding with AI](creator/sdk7/getting-started/vibe-coding.md) * [Interactivity](creator/sdk7/interactivity/README.md) diff --git a/creator/3d-modeling/3d-models.md b/creator/3d-modeling/3d-models.md index d3dfd4b6..de25621c 100644 --- a/creator/3d-modeling/3d-models.md +++ b/creator/3d-modeling/3d-models.md @@ -143,3 +143,4 @@ The following pages also cover topics related to 3D models for Decentraland: * [Textures](textures.md) * [Colliders](colliders.md) * [Animations](animations.md) +* [Useful Resources](../sdk7/getting-started/useful-resources.md): Blender add-ons, asset libraries, and AI tools to speed up your 3D workflow diff --git a/creator/README.md b/creator/README.md index 6b852181..207663d4 100644 --- a/creator/README.md +++ b/creator/README.md @@ -89,6 +89,7 @@ To make your scene interactive: - [SDK Quick start](sdk7/getting-started/sdk-101.md): follow this mini tutorial for a quick crash course. - [Development workflow](sdk7/getting-started/dev-workflow.md): read this to understand scene creation from end to end. + - [Vibe Coding with AI](sdk7/getting-started/vibe-coding.md): build scenes by describing what you want in plain language, and let an AI coding assistant write the code for you. - [Examples](https://studios.decentraland.org/resources?sdk_version=SDK7): dive right into working example scenes. ![](../.gitbook/assets/sdk-code.png) @@ -108,11 +109,6 @@ See [Kinds of project](sdk7/projects/kinds-of-project.md) to better understand t See [publishing](sdk7/publishing/publishing.md) for details and special options when publishing a scene, to either Genesis City or Worlds. -### Alternative tools +## Useful Resources -There are also some community-built tools that can help you create Decentraland scenes: - -- [**In-World Builder**](https://decentraland.org/play/?realm=https%3A%2F%2Fworlds.dcl-iwb.co%2Fworld%2FBuilderWorld.dcl.eth): Create a scene without leaving the Decentraland explorer. Use various default items or upload your own, without needing to deploy or own land. -- [**Virtual Land Manager**](https://vlm.gg/): Control various aspects of your scene in real time, including highly customized controls. Includes analytics: View historical user activity, track custom interactions, export lists of players in scene, and more. -- [**DCL Edit**](https://dcl-edit.com/): Drag and drop 3d models into your scene. You can then work on adding interactivity to the resulting scene using the SDK. -- [**Unity Exporter Toolkit**](https://github.com/PolygonalMind/dcl-dev-exportersdk7-release): Build in Unity, with a number of pre-built interactive modules. Export a fully-working Decentraland scene. +Check out [Useful Resources](sdk7/getting-started/useful-resources.md) for a curated list of tools, add-ons, asset libraries, and example projects that can speed up your creation workflow. diff --git a/creator/SUMMARY.md b/creator/SUMMARY.md index 67955780..17e56890 100644 --- a/creator/SUMMARY.md +++ b/creator/SUMMARY.md @@ -74,6 +74,7 @@ * [Using the CLI](sdk7/getting-started/using-the-cli.md) * [Coding essentials](sdk7/getting-started/coding-scenes.md) * [Vibe Coding with AI](sdk7/getting-started/vibe-coding.md) + * [Useful Resources](sdk7/getting-started/useful-resources.md) * [Designing the experience](sdk7/design-experience/) * [Design Games](sdk7/design-experience/design-games.md) * [MVP Guidelines](sdk7/design-experience/mvp-guidelines.md) diff --git a/creator/scene-editor/build/import-items.md b/creator/scene-editor/build/import-items.md index a063647a..b06d2225 100644 --- a/creator/scene-editor/build/import-items.md +++ b/creator/scene-editor/build/import-items.md @@ -72,28 +72,12 @@ Each imported file, of any type, must occupy less than 50 MB to be usable in a s **Free libraries for 3D models** -Instead of building your own 3D models, you can also download them from several free or paid libraries. - -To get you started, below is a list of libraries that have free or relatively inexpensive content: - -- [IWB Catalog](https://dcl-iwb.co/) -- [SketchFab](https://sketchfab.com/) -- [Archive3D](https://archive3d.net/) -- [SketchUp 3D Warehouse](https://3dwarehouse.sketchup.com/) -- [Thingiverse](https://www.thingiverse.com/) (3D models made primarily for 3D printing, but adaptable to Virtual Worlds) -- [ShareCG](https://www.sharecg.com/) +Instead of building your own 3D models, you can also download them from several free or paid libraries, or generate them with AI tools. See [Useful Resources](../../sdk7/getting-started/useful-resources.md) for a list of recommended asset libraries and generative AI tools. {% hint style="warning" %} **📔 Note**: Pay attention to the license restrictions that the content you download has. {% endhint %} -You can also use Generative AI tools to generate your own 3D models. Check out: - -- [Meshy](https://www.meshy.ai/) -- [Luma AI](https://lumalabs.ai/genie) -- [TRipo3D](https://www.tripo3d.ai/app) -- [Rodin](https://hyper3d.ai/rodin) - Note that in several of these sites, you can choose what format to download the model in. Always choose _.glTF_ or _.glb_ format if available. If not available, you must convert them to _.glTF_ or _.glb_ before you can use them in a scene. For that, we recommend importing them into Blender and exporting them with one of the available _.glTF_ export add-ons. ### Colliders diff --git a/creator/sdk7/getting-started/dev-workflow.md b/creator/sdk7/getting-started/dev-workflow.md index 323998a2..0f77e28e 100644 --- a/creator/sdk7/getting-started/dev-workflow.md +++ b/creator/sdk7/getting-started/dev-workflow.md @@ -54,23 +54,7 @@ When creating a new scene, choose amongst several base template scenes that incl If you're an experienced artist or you have access to someone who is, you can create custom `.gltf` or `.glb` models for your scene. See [3D model essentials](../../3d-modeling/3d-models.md) for tips on how to create 3D models for Decentraland. -There are many sources to obtain free or paid art assets. For example: - -* [IWB Catalog](https://dcl-iwb.co/) -* [SketchFab](https://sketchfab.com/) -* [Clara.io](https://clara.io/) -* [Archive3D](https://archive3d.net/) -* [SketchUp 3D Warehouse](https://3dwarehouse.sketchup.com/) -* [Thingiverse](https://www.thingiverse.com/) -* [ShareCG](https://www.sharecg.com/) -* [CGTrader](https://cgtrader.com) - -You can also use Generative AI tools to generate your own 3D models. Check out: - -* [Meshy](https://www.meshy.ai/) -* [Luma AI](https://lumalabs.ai/genie) -* [TRipo3D](https://www.tripo3d.ai/app) -* [Rodin](https://hyper3d.ai/rodin) +You don't need to create your own assets, though. See [Useful Resources](useful-resources.md) for asset libraries and generative AI tools you can use to source 3D models, as well as other tools that can speed up your workflow. ## Run a local preview diff --git a/creator/sdk7/getting-started/sdk-101.md b/creator/sdk7/getting-started/sdk-101.md index 6eeca8c8..dcd69796 100644 --- a/creator/sdk7/getting-started/sdk-101.md +++ b/creator/sdk7/getting-started/sdk-101.md @@ -354,31 +354,7 @@ To debug any issues, check the [Troubleshooting](../debugging/troubleshooting.md ## 3D Art Assets -A good experience will have great 3D art to go with it. If you're keen on creating those 3D models yourself, see the [3D Modeling section](../../3d-modeling/3d-models.md). But if you prefer to focus on the coding or game design side of things, you don't need to create your own assets! - -Here are a few sources for 3D models you can use in a Decentraland scene: - -- [IWB Catalog](https://dcl-iwb.co/) -- [Asset Ovi](https://assetovi.com/) -- [SketchFab](https://sketchfab.com/) -- [Clara.io](https://clara.io/) -- [Archive3D](https://archive3d.net/) -- [SketchUp 3D Warehouse](https://3dwarehouse.sketchup.com/) -- [Thingiverse](https://www.thingiverse.com/) -- [ShareCG](https://www.sharecg.com/) -- [CGTrader](https://cgtrader.com) - -You can also use Generative AI tools to generate your own 3D models. Check out: - -- [Blender MCP](https://github.com/ahujasid/blender-mcp) + [Claude Desktop](https://claude.ai/download): connect an AI assistant directly to [Blender](https://www.blender.org/), so you can create and edit 3D models by describing what you want. All free tools. -- [Meshy](https://www.meshy.ai/) -- [Luma AI](https://lumalabs.ai/genie) -- [Tripo3D](https://www.tripo3d.ai/app) -- [Rodin](https://hyper3d.ai/rodin) - -{% hint style="warning" %} -**📔 Note**: Models must be in the supported `.gltf` or `.glb` formats, and must have a number of triangles, textures and materials that adhere to the [scene limitations](../optimizing/scene-limitations.md). If getting models from a third party site, pay attention to the license restrictions of the content you download. -{% endhint %} +A good experience will have great 3D art to go with it. If you're keen on creating those 3D models yourself, see the [3D Modeling section](../../3d-modeling/3d-models.md). But if you prefer to focus on the coding or game design side of things, you don't need to create your own assets! See [Useful Resources](useful-resources.md) for asset libraries and AI tools you can use to source 3D models for your scene. ## Publish your scene diff --git a/creator/sdk7/getting-started/useful-resources.md b/creator/sdk7/getting-started/useful-resources.md new file mode 100644 index 00000000..1b973a5f --- /dev/null +++ b/creator/sdk7/getting-started/useful-resources.md @@ -0,0 +1,95 @@ +--- +title: Useful Resources +description: Tools, add-ons, asset libraries, and example projects that speed up your Decentraland creation workflow. +--- + +# Useful Resources + +This page collects tools, add-ons, asset libraries, and example projects that can speed up your workflow when creating experiences for Decentraland. + +## Decentraland SDK Skills + +Give your AI coding assistant Decentraland-specific guidance to quickly create, iterate, and deploy your experiences. Decentraland SDK Skills work with tools like Claude Code, Cursor, Codex, Cline, and Windsurf, and are kept up to date with the latest SDK changes. + +🔗 [github.com/decentraland/sdk-skills](https://github.com/decentraland/sdk-skills) + +See [Vibe Coding with AI](vibe-coding.md) for tips on using SDK Skills in your AI workflow. + +## Decentraland SDK7 Test Scenes + +Use the Decentraland SDK7 Test Scenes to see working examples of specific SDK features. The repo includes many isolated test scenes, and the live test world lets you try them out before using similar systems in your own experiences. + +🔗 [github.com/decentraland/sdk7-test-scenes](https://github.com/decentraland/sdk7-test-scenes/) + +## Multiplayer Server Leaderboard + +See how Decentraland's Multiplayer server can be used to build a resilient leaderboard. The server owns the game state, validates each score, persists per-player totals, and broadcasts a ranked leaderboard that every Decentraland client can render. + +🔗 [Multiplayer server leaderboard test scene](https://github.com/decentraland/sdk7-test-scenes/tree/main/scenes/90%2C-9-authoritative-server-leaderboard) + +See [Authoritative Servers](../networking/authoritative-servers.md) to learn how to build on the authoritative server. + +## Decentraland Tools for Blender + +Speed up your workflow with this Blender add-on, which handles parcel grids, wearable limits, texture optimization, LOD generation, and GLB export with Decentraland settings built in. + +🔧 [extensions.blender.org/add-ons/decentraland-tools](https://extensions.blender.org/add-ons/decentraland-tools/) + +## 3D Art Assets + +A good experience will have great 3D art to go with it. If you're keen on creating those 3D models yourself, see the [3D Modeling section](../../3d-modeling/3d-models.md). But if you prefer to focus on the coding or game design side of things, you don't need to create your own assets! + +Here are a few sources for 3D models you can use in a Decentraland scene: + +- [IWB Catalog](https://dcl-iwb.co/) +- [Asset Ovi](https://assetovi.com/) +- [SketchFab](https://sketchfab.com/) +- [Clara.io](https://clara.io/) +- [Archive3D](https://archive3d.net/) +- [SketchUp 3D Warehouse](https://3dwarehouse.sketchup.com/) +- [Thingiverse](https://www.thingiverse.com/) +- [ShareCG](https://www.sharecg.com/) +- [CGTrader](https://cgtrader.com) + +You can also use Generative AI tools to generate your own 3D models. Check out: + +- [Blender MCP](https://github.com/ahujasid/blender-mcp) + [Claude Desktop](https://claude.ai/download): connect an AI assistant directly to [Blender](https://www.blender.org/), so you can create and edit 3D models by describing what you want. All free tools. +- [Meshy](https://www.meshy.ai/) +- [Luma AI](https://lumalabs.ai/genie) +- [Tripo3D](https://www.tripo3d.ai/app) +- [Rodin](https://hyper3d.ai/rodin) + +{% hint style="warning" %} +**📔 Note**: Models must be in the supported `.gltf` or `.glb` formats, and must have a number of triangles, textures and materials that adhere to the [scene limitations](../optimizing/scene-limitations.md). If getting models from a third party site, pay attention to the license restrictions of the content you download. +{% endhint %} + +## Blender MCP Server + +Use Blender MCP to connect an AI agent, such as Claude Code, to Blender. It can help create and edit GLTF/GLB models, materials, and textures from simple text prompts. + +🔗 [blender.org/lab/mcp-server](https://www.blender.org/lab/mcp-server/) + +{% hint style="warning" %} +**📔 Note**: Blender recommends using MCP in a safe environment without sensitive files. +{% endhint %} + +## Open Source 3D Assets + +A curated collection of high-quality 3D assets including props, environments, and structures, completely free and open source. Built on GLB and glTF standards. + +🔗 [opensource3dassets.com](https://www.opensource3dassets.com/en) + +## Genesis Plaza Assets + +Reuse any of Genesis Plaza's assets or textures in your own experiences. You can download the .blend file, or use Stom's Blender Asset Library to drag and drop from a repository. You can also download matching procedural landscaping assets such as trees and bushes. + +- 📂 [Download the .blend file](https://drive.google.com/file/d/1beZHX1D8zR9iMCEmcPQU6etxpZXohZ5P/view?usp=sharing) +- 🐈‍âŦ› Find Stom's repository at [github.com/stom66/dcl-genesis-plaza-assets](https://github.com/stom66/dcl-genesis-plaza-assets) +- â„šī¸ [Watch a video on how to use the repo](https://files.catbox.moe/eo5hhb.mp4) +- đŸŒē Match Decentraland's procedural assets [with these trees, bushes, and rocks](https://drive.google.com/drive/folders/1Hxoog-ov_igbNTU3H7EwOX634EVCbhYQ?usp=drive_link) + +## Decentraland Scene Optimizer + +Try this useful tool to extract, deduplicate, and compress textures from GLB files to further optimize your scenes. + +🔗 [github.com/decentraland/SceneOptimizer](https://github.com/decentraland/SceneOptimizer) diff --git a/creator/sdk7/getting-started/vibe-coding.md b/creator/sdk7/getting-started/vibe-coding.md index 7ab1d68e..eae17c7e 100644 --- a/creator/sdk7/getting-started/vibe-coding.md +++ b/creator/sdk7/getting-started/vibe-coding.md @@ -154,3 +154,4 @@ While AI tools are powerful, keep these in mind: - [Combine with Code](../../scene-editor/code/overview.md) — Mix visual editing with code - [Authoritative Servers](../networking/authoritative-servers.md) — Server-authoritative multiplayer - [Scene Examples](https://studios.decentraland.org/resources?sdk_version=SDK7) — Browse example scenes for inspiration +- [Useful Resources](useful-resources.md) — More AI tools, asset libraries, and add-ons to speed up your workflow diff --git a/creator/sdk7/optimizing/performance-optimization.md b/creator/sdk7/optimizing/performance-optimization.md index 7a35c464..c07f4063 100644 --- a/creator/sdk7/optimizing/performance-optimization.md +++ b/creator/sdk7/optimizing/performance-optimization.md @@ -8,6 +8,8 @@ There are several aspects you can optimize in your scenes to ensure the best pos Keep in mind that many players may be visiting Decentraland using hardware that is not built for gaming, via the browser, or from the [mobile app](../building-for-mobile/) on a phone — all of which limit how much processing power is available to your scene. The experience of visiting your scene should be smooth for everyone. +Check out [Useful Resources](../getting-started/useful-resources.md) for tools that can help, like the Decentraland Scene Optimizer, which extracts, deduplicates, and compresses textures from your scene's 3D models. + {% hint style="info" %} **📱 Mobile**: Mobile devices are usually the most resource-constrained client. If your scene targets mobile players, also see [Building for Mobile](../building-for-mobile/) for mobile-specific guidance. {% endhint %} diff --git a/creator/tutorials/examples.md b/creator/tutorials/examples.md index 779d5d50..83bfec07 100644 --- a/creator/tutorials/examples.md +++ b/creator/tutorials/examples.md @@ -15,6 +15,8 @@ On the [SDK 7 example scenes](https://studios.decentraland.org/resources) page, Each example comes with full source code that you can download, study, and modify for your own scenes. They're an excellent way to learn SDK 7 patterns and accelerate your development. +You can find more working examples of specific SDK features, along with tools and asset libraries to speed up your workflow, in [Useful Resources](../sdk7/getting-started/useful-resources.md). + {% hint style="info" %} **💡 Tip**: Browse the examples before starting a new project - you might find a template that's close to what you want to build, saving you significant development time. {% endhint %} From 2d76188297b09396ff868f5a5118c8fca672e5b5 Mon Sep 17 00:00:00 2001 From: nearnshaw Date: Fri, 24 Jul 2026 16:29:09 -0300 Subject: [PATCH 2/2] optimize assets button --- .../scene-editor/get-started/about-editor.md | 1 + creator/sdk7/debugging/troubleshooting.md | 2 ++ creator/sdk7/getting-started/dev-workflow.md | 1 + creator/sdk7/getting-started/preview-scene.md | 28 +++++++++++++++++++ creator/sdk7/getting-started/using-the-cli.md | 6 ++++ .../optimizing/performance-optimization.md | 2 ++ 6 files changed, 40 insertions(+) diff --git a/creator/scene-editor/get-started/about-editor.md b/creator/scene-editor/get-started/about-editor.md index f2ed9f99..a1157c42 100644 --- a/creator/scene-editor/get-started/about-editor.md +++ b/creator/scene-editor/get-started/about-editor.md @@ -75,6 +75,7 @@ Configure different preview options from the dropdown menu next to the **Preview * **Open Debug Console**: Opens a new window with the console output of the scene. This is useful to debug errors in the scene. * **Enable Landscape Terrains**: Toggles the landscape around the scene. This is enabled by default, disable it to lower the scene's memory footprint. +* **Optimize Assets**: Converts the scene's 3D models to asset bundles, an optimized format that loads faster and renders just like the published scene. See [Preview with optimized assets](../../sdk7/getting-started/preview-scene.md#preview-with-optimized-assets). * **Multi-Instance Preview**: Opens a separate preview window each time you click **Preview**, each logged in with its own account. Use this to test multiplayer scenes with multiple accounts. See [Test a multiplayer scene locally](../../sdk7/networking/serverless-multiplayer.md#test-a-multiplayer-scene-locally). * **Show QR Code for Mobile**: Displays a QR code to open the scene preview on the Decentraland mobile app, as long as the phone is on the same network. See [Preview on mobile](../../sdk7/building-for-mobile/preview-on-mobile.md). diff --git a/creator/sdk7/debugging/troubleshooting.md b/creator/sdk7/debugging/troubleshooting.md index fab3723f..bdad4c7c 100644 --- a/creator/sdk7/debugging/troubleshooting.md +++ b/creator/sdk7/debugging/troubleshooting.md @@ -114,6 +114,8 @@ As an alternative, you can run `npm run deploy -- --skip-build` to skip the runn Note that the generation of compressed asset-bundle versions of your models is a process that takes the servers time (about an hour). You can check if the models are being loaded as compressed asset bundles or not by writing the following command into the chat window `/detectabs`. Compressed models are tinted green, non-compressed are tinted red. + You can also reproduce this conversion locally before publishing, by enabling [optimized assets in the preview](../getting-started/preview-scene.md#preview-with-optimized-assets). This lets you catch and debug these issues without having to deploy the scene. + #### Issue: My scene has poor FPS in production, even though it runs smoothly in preview. Your scene's performance could be affected by neighboring scenes that follow bad practices, as they also run in parallel. You can validate that this is the case by opening the settings and setting the line of sight to a minimum, so that only 1 parcel around your current scene is loaded. diff --git a/creator/sdk7/getting-started/dev-workflow.md b/creator/sdk7/getting-started/dev-workflow.md index 0f77e28e..652ed4f4 100644 --- a/creator/sdk7/getting-started/dev-workflow.md +++ b/creator/sdk7/getting-started/dev-workflow.md @@ -62,6 +62,7 @@ To run a preview of your scene, open it in the Creator Hub and click the **Previ * [Preview your scene](preview-scene.md) for more details. * Check the [Debug a scene](preview-scene.md#debug-a-scene) for tips on how to debug any issues. +* Enable **Optimize Assets** in the preview settings (or run `npm run start -- --asset-bundles` from the CLI) to load your 3D models as optimized asset bundles. The preview runs smoother and shows the models just as they'll look once published. See [Preview with optimized assets](preview-scene.md#preview-with-optimized-assets). {% hint style="info" %} **💡 Tip**: When using the Creator Hub, every time you make a change on your scene, the preview is automatically updated. Even while running. diff --git a/creator/sdk7/getting-started/preview-scene.md b/creator/sdk7/getting-started/preview-scene.md index 9f6aad54..ba511e26 100644 --- a/creator/sdk7/getting-started/preview-scene.md +++ b/creator/sdk7/getting-started/preview-scene.md @@ -20,6 +20,7 @@ Configure different preview options from the dropdown menu next to the **Preview - **Open Console Window During Preview**: Opens a new window with the console output of the scene. This is useful to debug errors in the scene. - **Skip Auth Screen**: Skips the account selection screen and automatically logs you in with your currently logged in account. This is disabled by default, enable it if you want to test multiple accounts. - **Landscape Terrain Enabled**: Toggles the landscape around the scene. This is enabled by default, disable it to lower the scene's memory footprint. +- **Optimize Assets**: Converts the scene's 3D models to asset bundles, an optimized format that loads faster and renders just like the published scene. See [Preview with optimized assets](preview-scene.md#preview-with-optimized-assets). - **Show QR Code for Mobile**: Displays a QR code that opens your scene preview in the [Decentraland mobile app](../building-for-mobile/). Scan the code with a phone on the same Wi-Fi network as your computer. See [Preview on mobile](../building-for-mobile/preview-on-mobile.md) for details. {% hint style="info" %} @@ -49,6 +50,7 @@ Every time you make changes to the scene, the preview reloads and updates automa You can add the following flags to the `npm run start` command to change its behavior: - `-- --web3` Connects preview to browser wallet to use the associated avatar and account. +- `-- --asset-bundles` Converts the scene's 3D models to optimized asset bundles and uses them in the preview. See [Preview with optimized assets](preview-scene.md#preview-with-optimized-assets). - `-- --no-debug` (alias `-- -d`) Disable the debug panel, that shows scene and performance stats. - `-- --web-explorer` Launch the scene in the Web Explorer, in a browser tab, instead of the Desktop client. - `-- --bevy-web` Opens the preview using the Bevy Web browser window. @@ -63,6 +65,28 @@ You can add the following flags to the `npm run start` command to change its beh **📔 Note**: Parameters need to be added with two series of dashes, for example `npm run start -- --web3`. {% endhint %} +## Preview with optimized assets + +When you publish a scene, the Decentraland servers convert all of its 3D models to asset bundles, an optimized format that is much lighter to load and render. See [Asset bundle conversion](../optimizing/performance-optimization.md#asset-bundle-conversion). By default, local previews skip this step and load the raw models instead. + +Enable optimized assets to run this same conversion locally when you preview your scene. This has two benefits: + +- The preview loads faster and runs smoother, especially on scenes with heavy 3D models. +- You see the models exactly as players will see them after publishing, so you can catch any issues with the asset compression before you publish. + +This option only affects your local preview. The published scene is always converted on the servers, whether you use this option or not. + +To enable it: + +- **In the Creator Hub**: check **Optimize Assets** in the dropdown menu next to the **Preview** button. The conversion starts right away in the background, and you can follow its progress next to the checkbox. +- **From the CLI**: run `npm run start -- --asset-bundles`. + +The conversion is near instant for most scenes, but the first preview can take longer if the scene has very heavy assets. The converted models are stored in the `.dcl-optimized-assets` folder inside your project, so on later previews only new or modified assets need to be converted. This folder is excluded when you publish, it's never uploaded with your scene. + +{% hint style="info" %} +**💡 Tip**: If the conversion of an asset fails for any reason, the preview falls back to loading the raw 3D models, just like a regular preview. +{% endhint %} + ## Upload a scene to decentraland Once you're happy with your scene, you can upload it and publish it to Decentraland. For this you must own LAND, a Decentraland NAME, or an ETH ENS name, or have permissions given by someone that does. See [publishing](../publishing/publishing.md) for instructions on how to do that. @@ -107,6 +131,10 @@ As an alternative, you can open a second Decentraland explorer window by writing ### Advanced: Fast iteration with remote asset bundles +{% hint style="info" %} +**💡 Tip**: For most scenes, the simplest way to preview with asset bundles is to enable [optimized assets](preview-scene.md#preview-with-optimized-assets), which converts your models locally and always reflects their latest version. The mode below is an alternative that reuses the bundles already published on the servers. +{% endhint %} + For heavy scenes with many 3D models, you can speed up scene loading and reloading by reusing the [asset bundles](../optimizing/performance-optimization.md#asset-bundle-conversion) that are already published on Decentraland's servers, instead of loading the raw unoptimized 3D models. This is especially useful when iterating on code-only changes. To enable this mode, launch the Decentraland Desktop client with the following arguments: diff --git a/creator/sdk7/getting-started/using-the-cli.md b/creator/sdk7/getting-started/using-the-cli.md index 7bb09f21..dfccf804 100644 --- a/creator/sdk7/getting-started/using-the-cli.md +++ b/creator/sdk7/getting-started/using-the-cli.md @@ -63,6 +63,12 @@ To preview your scene on the [Decentraland mobile app](../building-for-mobile/) npm run start -- --mobile ``` +To make the preview run smoother and render 3D models just as they'll look once published, add the `--asset-bundles` flag. See [Preview with optimized assets](preview-scene.md#preview-with-optimized-assets). + +```bash +npm run start -- --asset-bundles +``` + See [preview scenes](preview-scene.md) for details and special options when running a preview. ## Build diff --git a/creator/sdk7/optimizing/performance-optimization.md b/creator/sdk7/optimizing/performance-optimization.md index c07f4063..2aff3fbf 100644 --- a/creator/sdk7/optimizing/performance-optimization.md +++ b/creator/sdk7/optimizing/performance-optimization.md @@ -136,6 +136,8 @@ To verify if a scene has material Backface Culling issues, follow these steps: About once a day, the Decentraland content servers run a process to compress every _.gltf_ and _.glb_ model in every newly deployed scene to asset bundle format. This format is _significantly_ lighter, making scenes a lot faster to load and smoother to run on the browser. +You can also run this same conversion locally while developing your scene. This makes your preview smoother and lets you check for any issues with the compressed models before publishing. See [Preview with optimized assets](../getting-started/preview-scene.md#preview-with-optimized-assets). + {% hint style="info" %} **💡 Tip**: When planning an event in Decentraland, make sure you deploy your scene a day in advance, so that the models are all converted to asset bundles by then. If you don't want to spoil the surprize before the event, you can deploy a version of your scene that includes all the final 3D models in the project folder, but where these are not visible or where their size is set to 0. {% endhint %}