Skip to content

Commit

Permalink
fix: sdk7 deploy command doc
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoecheza committed Jul 13, 2023
1 parent 3f57bb4 commit 0225e19
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 30 deletions.
18 changes: 9 additions & 9 deletions content/creator/sdk7/debugging/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ Make sure your Node version is up to date. It must be 16 or newer.

These refer to files in your scene that reference each other mutually. This is not necessarily a problem, but is not a recommendable pattern for writing software, as it can lead to hard to debug race conditions and other issues. Your scene is likely to work well in spite of these warnings.

Ideally, the loading of the code in your scene should follow a clear sequential order. Code that has cyclic dependencies might suffer a chicken & the egg problem, where the compiler doesn't know which to initiate first. Often this is resolved without issues, but it's a good practice to avoid.
Ideally, the loading of the code in your scene should follow a clear sequential order. Code that has cyclic dependencies might suffer a chicken & the egg problem, where the compiler doesn't know which to initiate first. Often this is resolved without issues, but it's a good practice to avoid.

To fix these dependencies, you often must resort to calling functions or object constructors passing references to already instanced entities/objects in the function arguments; Instead of hard-coding references to these entities/objects in the function, which may or may not already be instanced.
To fix these dependencies, you often must resort to calling functions or object constructors passing references to already instanced entities/objects in the function arguments; Instead of hard-coding references to these entities/objects in the function, which may or may not already be instanced.

## Issues when running the Editor Inspector

Expand All @@ -60,7 +60,7 @@ Make sure your Node version is up to date. It must be 16 or newer.

### Issue: Running `npm run deploy` fails

- Check the spawn points of your scene, all three x,y,z coordinates of a spawn point must either be a number or a range. Either all three are numbers or all three are ranges. It's not supported to have ranges for some but numbers for others.
- Check the spawn points of your scene, all three x,y,z coordinates of a spawn point must either be a number or a range. Either all three are numbers or all three are ranges. It's not supported to have ranges for some but numbers for others.

For example this is not supported:

Expand All @@ -71,26 +71,26 @@ Make sure your Node version is up to date. It must be 16 or newer.
`"position": {"x": [1,4], "y": [0,0], "z": [1,4]}`


- The default catalyst server that you're assigned to deploy to might be down or having issues. You can force the `npm run deploy` command to deploy to a specific catalyst server instead. To deploy to a specific server, on the Decentraland Editor:
- The default catalyst server that you're assigned to deploy to might be down or having issues. You can force the `npm run deploy` command to deploy to a specific catalyst server instead. To deploy to a specific server, on the Decentraland Editor:
1. Click on the three dot menu at the top right of the sidebar, next to the green reload arrow button, select `Deploy Scene To Custom Catalyst`
2. Enter the address of the server, for example `peer-testing.decentraland.org`
3. Approve the transaction


To do this via the CLI:

`npm run deploy --target-content <server-name>`
`npm run deploy -- --target-content <server-name>`

For example:

`npm run deploy --target-content peer-ec1.decentraland.org`
`npm run deploy -- --target-content peer-ec1.decentraland.org`

See [catalyst-monitor](https://decentraland.github.io/catalyst-monitor/) for a status check of all the servers in the catalyst network. You can also copy the addresses of each one, from the top of each card.

- Check your scene's `package.json`. A common problem is that there's a `bundleDependencies` and also a `bundledDependencies` (extra d) section. This can sometimes result from running different Node versions on the same project at different times, or from sharing the project between people that ran it with different Node versions installed. Delete `bundleDependencies`, which relates to older Node versions.
- Check your scene's `package.json`. A common problem is that there's a `bundleDependencies` and also a `bundledDependencies` (extra d) section. This can sometimes result from running different Node versions on the same project at different times, or from sharing the project between people that ran it with different Node versions installed. Delete `bundleDependencies`, which relates to older Node versions.

Also ensure you have your Node version up to date, at least version 16.

### Issue: Running `npm run deploy` or `npm run build` reports type errors

Your scene might have type errors reported by TypeScript, for example stating that a certain variable might be type `any` or that `undefined` or `null` are not allowed. When running `npm run deploy`, it also runs `npm run build`, which is a bit more strict with these checks than `npm run start`.
Expand All @@ -116,7 +116,7 @@ As an alternative, you can run `npm run deploy --skip-build` to skip the running

- If the textures look different, keep in mind that textures in 3D models are capped to a maximum size of 512x512 pixels. This conversion is carried out to ensure that Decentraland runs smoothly for everyone.

- If models look different, there could be an issue with the conversion of the models to asset bundles. Read more about asset bundle compression [here]({{< ref "/content/creator/sdk7/optimizing/performance-optimization.md#asset-bundle-conversion">}}).
- If models look different, there could be an issue with the conversion of the models to asset bundles. Read more about asset bundle compression [here]({{< ref "/content/creator/sdk7/optimizing/performance-optimization.md#asset-bundle-conversion">}}).

To validate this, try running the scene with the URL parameter `&DISABLE_ASSET_BUNDLES`. If the models look fine with this flag, the issue must be related to a bug in the conversion of the model.

Expand Down
9 changes: 4 additions & 5 deletions content/creator/sdk7/publishing/publishing.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Open your scene's _scene.json_ file and complete the following data:

Make sure you've [installed the Decentraland editor]({{< ref "/content/creator/sdk7/getting-started/installation-guide.md#the-decentraland-editor" >}}).

1) Open your scene's folder using Visual Studio Code.
1) Open your scene's folder using Visual Studio Code.

{{< hint warning >}}
**📔 Note**: The Visual Studio window must be at the root folder of the scene project.
Expand Down Expand Up @@ -127,7 +127,7 @@ You can deploy content to the test catalyst server to run full tests with multip
{{< /hint >}}


Players are never directed to this server, the only way to access it is to explicitly provide a URL parameter to connect to it.
Players are never directed to this server, the only way to access it is to explicitly provide a URL parameter to connect to it.

If you're working in a confidential project that you don't want to unveil until launch, note that the test server is relatively hidden from players, but anyone explicitly using the test server's URL could potentially run into it.

Expand All @@ -153,7 +153,7 @@ _play.decentraland.org/&CATALYST=peer-testing.decentraland.org_

To deploy to the test server, run:

`npm run deploy --target peer-testing.decentraland.org`
`npm run deploy -- --target peer-testing.decentraland.org`


To enter the content server, add `&CATALYST=peer-testing.decentraland.org` to the Decentraland URL
Expand All @@ -166,7 +166,7 @@ _https://play.decentraland.org/?CATALYST=peer-testing.decentraland.org_

Once you deployed your scene, these changes will take a few minutes to be propagated throughout the various content servers in the network. If you enter Decentraland right after deploying, you might still see the previous version of your content, depending of what realm you enter.

After you sign to authorize the deployment of your scene, the signing dapp will start displaying confirmations that the new version of your content has been propagated throughout all of the servers in the network,
After you sign to authorize the deployment of your scene, the signing dapp will start displaying confirmations that the new version of your content has been propagated throughout all of the servers in the network,

You'll see a list of each of the servers that make up Decentraland's content network. For each server, it specifies the timestamp of the last uploaded change on that parcel. Each one of these servers refers to a different realm, you can reference how these server names map to realm names in the [catalyst monitor screen](https://decentraland.github.io/catalyst-monitor/).

Expand Down Expand Up @@ -216,4 +216,3 @@ jobs:
```
> Important: For this process to run, you must set a wallet's private key as an environment variable in GitHub, this is used to sign the deployment. As always, be very careful with keeping public keys secure. Do NOT use the public key of the account that actually owns the land tokens, as that would have very big risks. Instead, delegate operator rights to a disposable wallet that owns no valuable tokens. If this private key is ever leaked somehow, you can easily revoke those operator rights from the account and set up a new wallet.
32 changes: 16 additions & 16 deletions content/creator/worlds/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,31 @@ Welcome to Decentraland Worlds! Here, you will discover everything about this se

The term **Worlds** refers to scenes located beyond the boundaries of Genesis City. These Worlds serve various purposes, such as conducting experiments, creating new experiences, building a portfolio of scenes, or even serving as a Scene Preview Service for testing content before uploading it to Genesis City. Worlds scenes are associated with [Decentraland NAMEs](https://builder.decentraland.org/names), which are NAME NFTs within the DCL ecosystem. Acquiring a NAME requires 100 MANA and can be assigned to your avatar or LAND. Alternatively, you can purchase a NAME from a previous owner in the [Marketplace](https://market.decentraland.org/). These NAMEs are then utilized by the Decentraland Explorer to load the designated World.

Worlds serve as a gateway for aspiring content creators, providing an accessible entry point to the platform and the freedom to experiment with scene creation. These isolated experiences come with certain limitations to ensure scalable growth:
Worlds serve as a gateway for aspiring content creators, providing an accessible entry point to the platform and the freedom to experiment with scene creation. These isolated experiences come with certain limitations to ensure scalable growth:

- Scene Deployment Size: The maximum size allowed for scene deployment is 100 MB.
- Concurrent User Limit: Each World scene can accommodate up to 100 users simultaneously.

## Publish a World
## Publish a World

Users have various options to publish content on their World:
Users have various options to publish content on their World:

* [Builder dApp](https://builder.decentraland.org/scenes): web app and no coding skills needed.
* Decentraland Editor: IDE for developing Decentraland scenes.
* CLI: Advanced users can leverage the CLI for efficient content publishing.

## Using the Builder dApp (no-code)

The Builder is the go-to option for non-developers. Scenes can be created from scratch using the Scene Builder by dragging and dropping items into the scene. Smart Items can also be used for player interaction once the scene is deployed.
The Builder is the go-to option for non-developers. Scenes can be created from scratch using the Scene Builder by dragging and dropping items into the scene. Smart Items can also be used for player interaction once the scene is deployed.

Creators can also use Templates, edit them, and then deploy them to their World. More templates from the Foundation will be uploaded over time.
Another way is to use a scene from the Scene Pool. Anyone can get a scene from the pool, download it, and then Import it in the Builder to edit it, or deploy it to a World as it is.
Creators can also use Templates, edit them, and then deploy them to their World. More templates from the Foundation will be uploaded over time.
Another way is to use a scene from the Scene Pool. Anyone can get a scene from the pool, download it, and then Import it in the Builder to edit it, or deploy it to a World as it is.

## Using the SDK and Editor

The starting point for this product is having a scene that meets the size requirements mentioned above. If you wish to know more about how to create a scene, check out the [Decentraland SDK]({{< ref "/content/creator/scenes/getting-started/sdk-101.md" >}}) documentation.

If you are a Content Creator, you may be already familiar with how the [publishing of a scene]({{< ref "/content/creator/scenes/publishing/publishing.md" >}}) works, the experience is quite similar, but with a small caveat:
If you are a Content Creator, you may be already familiar with how the [publishing of a scene]({{< ref "/content/creator/scenes/publishing/publishing.md" >}}) works, the experience is quite similar, but with a small caveat:

You need to specify under what **name** your deployment is to be made. Add the following section in your
`scene.json`:
Expand All @@ -48,11 +48,11 @@ You need to specify under what **name** your deployment is to be made. Add the f
Of course, the **name** specified there needs to be owned as a Decentraland NAME token by the wallet signing the deployment (or by any wallet that has been given permission explicitly via Access Control Lists (ACL), as explained further down).

Keep the following in mind:
- The wallet signing the deployment must own the Decentraland NAME specified in the `scene.json` file
- The wallet signing the deployment must own the Decentraland NAME specified in the `scene.json` file
- The total size of the scene must be less or equal to 100 MB
- The scene has no parcel limitations (since January 2023)

Some of the Worlds deployed to the Foundation's Worlds Content Server may be eligible for being listed in Decentraland Places. See [eligibility criteria]({{< ref "/content/creator/places/faq.md#worlds" >}}) for more details.
Some of the Worlds deployed to the Foundation's Worlds Content Server may be eligible for being listed in Decentraland Places. See [eligibility criteria]({{< ref "/content/creator/places/faq.md#worlds" >}}) for more details.

If you wish to opt-out from your Worlds being indexed in Places, you can add the following section in your `scene.json`:

Expand Down Expand Up @@ -88,28 +88,28 @@ dcl deploy --target-content https://worlds-content-server.decentraland.org
For SDK7 scenes, use the following command:

```bash
npm run deploy --target-content https://worlds-content-server.decentraland.org
npm run deploy -- --target-content https://worlds-content-server.decentraland.org
```


Once you run the command, you will be prompted to sign the deployment with your wallet and a set of validations will be executed to allow or reject the scene.

## Joining a World
## Joining a World

Once a scene is uploaded to the Worlds server you can access it by using the
Once a scene is uploaded to the Worlds server you can access it by using the
Decentraland Explorer with the following friendly URL `https://play.decentraland.org/world/NAME`, where `NAME` should be replaced by the Decentraland NAME to which the deployment was done to. You may use the NAME with or without the `.dcl.eth` suffix.

On the other hand, NAMEs also work as realms, so you can leverage the existing change realm mechanisms to access a world. One way would be by typing the `/changerealm NAME.dcl.eth` command in the chatbox and another possibility is by changing the query parameter in the Explorer URL: if your NAME is `my-name.dcl.eth` you can use the following URL to access the world: `https://play.decentraland.org/?realm=my-name.dcl.eth`
On the other hand, NAMEs also work as realms, so you can leverage the existing change realm mechanisms to access a world. One way would be by typing the `/changerealm NAME.dcl.eth` command in the chatbox and another possibility is by changing the query parameter in the Explorer URL: if your NAME is `my-name.dcl.eth` you can use the following URL to access the world: `https://play.decentraland.org/?realm=my-name.dcl.eth`

## Migrating a World to the Genesis City
## Migrating a World to the Genesis City

If you are a LAND owner and you wish to deploy a World scene to the Genesis City, it is completely possible. You just need to re-deploy your scene to the decentralized Catalyst network, the targeted content server for Genesis City

Things to remember:
* remove the `worldConfiguration` section from `scene.json`
* the size limitation for Worlds (100 MB total size) is different from that for LAND parcels (15MB per parcel), so make sure your scene is sized correctly for deployments to Genesis City!

## World defaults
## World defaults

A couple of optional custom settings can be specified in the `scene.json` when deploying a world scene:

Expand All @@ -136,7 +136,7 @@ So the concept of Access Control List (or ACL for short) was introduced. The ide

This ACL is stored in the World Content Server where the world is deployed. It is not stored on the blockchain. This makes it much more flexible, giving more granular control. For e.g. if you want to deploy a scene under the same NAME in two different World Content Server hosting providers, then you can have different sets of permissions in each server. And also, there is no transaction fees involved in maintaining the ACL (granting or revoking permissions).

A new command has been added to Decentraland CLI that allows to show the current ACL stored in the Worlds Content Server for a given NAME, and it also allows granting access to more wallets or revoking access to wallets that are already in the ACL.
A new command has been added to Decentraland CLI that allows to show the current ACL stored in the Worlds Content Server for a given NAME, and it also allows granting access to more wallets or revoking access to wallets that are already in the ACL.

![world-acl help screen](/images/worlds/world-acl-help.png)

Expand Down

0 comments on commit 0225e19

Please sign in to comment.