For the complete documentation index, see llms.txt. This page is also available as Markdown.

Publicação

Como publicar meu projeto?

Antes de começar

Certifique-se do seguinte:

  • A sua scene cumpre todas as limitações da scene. A maioria destas é validada sempre que você executa uma preview da sua scene.

  • Se quiser que a sua scene funcione bem para jogadores em dispositivos móveis, faça primeiro a preview e teste-a num dispositivo real — veja Building for Mobile e Preview on mobile. Depois de publicada, a sua scene fica acessível a partir da app móvel da Decentraland da mesma forma que no desktop.

  • Você tem uma Metamask account, com os seus parcels de LAND atribuídos a ela.

  • Você possui a quantidade necessária de parcels de LAND adjacentes ou um Decentraland NAME. Caso contrário, você pode comprar LAND no Market ou um NAME no Builder.

Verificar dados da scene

Ao fazer deploy, a CLI lê informações do scene.json file para determinar onde fazer deploy da sua scene.

Abra o scene.json file da sua scene e preencha os seguintes dados:

  • title: O título é exibido na UI por baixo do mini-map, sempre que os jogadores entram na sua scene. Também é apresentado no popup de teleport.

  • description: Uma descrição do que os jogadores encontrarão na sua scene. Isto é exibido no popup de teleport.

  • navmapThumbnail: Uma imagem que representa a sua scene. Isto é exibido no popup de teleport. A imagem deve ser um .png ou .jpg imagem com um tamanho recomendado de 228x160 pixels.

  • Parcels: As coordenadas dos parcels que serão ocupados pela sua scene

  • Base: As coordenadas do parcel que será considerado a coordenada [0,0] da scene. Se a sua scene tiver vários parcels, deve ser o parcel inferior esquerdo (Sudoeste).

  • spawnPoints: Um conjunto de coordenadas dentro da scene (relativas ao parcel base da scene) onde os jogadores aparecem. Por predefinição, os jogadores aparecem na 0,0,0 localização da scene (canto inferior esquerdo). Use isto para iniciar os jogadores num local específico, ou defina uma região para evitar que os jogadores se sobreponham uns aos outros quando aparecem pela primeira vez.

  • tags: Um conjunto de tags que descrevem a sua scene. Estas ajudam os jogadores a explorar a Decentraland, facilitando encontrar conteúdo de que tenham interesse. Veja a lista de tags disponíveis.

  • rating: Isto é usado para classificar o conteúdo da sua scene com base na sua adequação a diferentes faixas etárias (T para Teens ou A para Adults). Ajuda a filtrar conteúdo para os jogadores.

Para publicar a scene

Usando o Scene Editor no Creator Hub

O Scene Editor no Creator Hub oferece uma forma fácil de publicar as suas scenes. Certifique-se de que já instalado o Creator Hub.

  1. Abra o projeto da sua scene.

  2. Clique no Publish button no canto superior direito.

  3. será apresentada uma mensagem a perguntar se pretende publicar num WORLD ou num LAND.

    • Selecione PUBLISH TO WORLD para disponibilizar a sua scene num dos seus WORLDs. Em seguida, selecione em qual dos seus NAMEs ou ENS Domains pretende publicar.

    • Selecione PUBLISH TO LAND se for proprietário do land, ou se lhe tiverem sido concedidas permissões de deploy pelo proprietário. Em seguida, selecione os parcels onde pretende fazer o deploy no mapa. Os parcels onde lhe é permitido fazer deploy aparecem a cor-de-rosa.

    • Selecione Servidores alternativos para publicar no test server ou um custom server.


  1. Isto abre um novo separador no seu browser, mostrando os detalhes do upload. Aprove a transação.

    • Para LAND numa conta do Metamask no browser, confirme o deploy. Depois aprove a transação na extensão do Metamask no browser.

    • Para LAND ligado a uma wallet que pode usar via Wallet Connect, clique em Connect wallet, depois leia o código QR com o seu dispositivo móvel e siga os passos no Wallet Connect.

Via a CLI

  1. Inicie sessão na sua conta do Metamask com o mesmo endereço público associado aos seus parcels na Decentraland.

  2. Execute npm run deploy a partir da pasta da scene.

**💡 Dica**: Se existirem ficheiros na pasta do seu projeto que não quer fazer deploy, liste-os no ficheiro _.dclignore_ antes de fazer deploy.

  1. Abrirá um separador no browser, mostrando para quais parcels está a fazer deploy. Clique em Sign and Deploy.

  2. O Metamask abre, notificando que a sua assinatura foi solicitada. Clique em Sign para confirmar esta ação.

💡 Dica: Se estiver a implementar um fluxo de integração contínua, em que as alterações à sua scene são feitas deploy automaticamente, então pode definir a variável de ambiente export DCL_PRIVATE_KEY para a private key de uma conta que tenha permissões de deploy.

💡 Dica: npm run deploy executa um npm run build, que verifica a scene quanto a erros de tipo de forma mais rigorosa do que executar npm run start. Se estes erros não puderem ser evitados (por exemplo: acontecem numa biblioteca externa) e não afetarem a scene, pode usar npm run deploy --skip-build para ignorar o passo npm run build e fazer deploy da scene tal como está.

Publicar em Worlds

Para publicar a sua scene numa Decentraland World, precisa de ser proprietário de um Decentraland NAME ou de um domínio ENS. Veja Publishing Options para informações sobre como obter um.

Configurar scene.json

Tem de especificar sob que name o seu deploy será feito. Adicione a seguinte secção no seu scene.json:

O name especificado no scene.json pode ser um Decentraland NAME ou um ENS Domain. Tem de ser propriedade da wallet que assina o deploy, ou de qualquer wallet à qual tenha sido concedida permissão através de Access Control Lists (ACL).

Tenha em conta o seguinte:

  • A wallet que assina o deploy tem de ser proprietária do NAME especificado no scene.json file

  • A scene não tem limitações de parcel (desde janeiro de 2023)

  • Todos os Worlds são automaticamente listados na página Places, a menos que opte por não o fazer, como detalhado abaixo

Worlds com várias scenes

Por predefinição, ao fazer deploy para um world via a CLI, a sua scene será tratada como um world de uma única scene. Se o seu world já contiver uma scene, fazer deploy de uma nova scene substituirá essa scene mais antiga, mesmo que as coordenadas sejam diferentes.

Para fazer deploy como um world com várias scenes, adicione o parâmetro --multi-scene ao comando de deploy:

npm run deploy -- --multi-scene --target-content https://worlds-content-server.decentraland.org

Ao usar este parâmetro, se a scene que está a publicar tiver coordenadas diferentes das scenes existentes nesse world, estas scenes existirão todas em conjunto.

Optar por não aparecer na listagem de Places

Se quiser optar por não ter os seus Worlds indexados em Places, pode adicionar a seguinte secção no seu scene.json:

Usando o Scene Editor no Creator Hub

  1. Abra o projeto da sua scene.

  2. Clique no Publish button no canto superior direito.

  3. Selecione PUBLISH TO WORLD.

  4. Selecione em qual dos seus NAMEs ou ENS Domains pretende publicar.

Via a CLI

Use o seguinte comando:

Assim que executar o comando, será solicitado que assine o deploy com a sua wallet e será executado um conjunto de validações para permitir ou rejeitar a scene.

Aceder a um World

Assim que uma scene é carregada para o servidor Worlds, pode aceder-lhe usando o Decentraland Explorer com o seguinte URL: decentraland://?realm=NAME.dcl.eth, em que NAME deve ser substituído pelo Decentraland NAME ou ENS Domain para o qual fez deploy.

Com a Decentraland já aberta, também pode ir para um world escrevendo o comando /goto NAME.dcl.eth na caixa de chat.

Veja Tornar descobrível para mais informações sobre como tornar o seu World descobrível.

Migrar um World para Genesis City

Se for proprietário de um LAND e quiser fazer deploy de uma scene de World para a Genesis City, pode fazê-lo ao voltar a fazer deploy da sua scene para a rede descentralizada Catalyst, que é o content server da Genesis City.

Lembre-se do seguinte:

  • Remova a worldConfiguration secção de scene.json

  • A limitação de tamanho para Worlds (dinâmica com base nas holdings) é diferente da dos parcels de LAND (15 MB por parcel), por isso certifique-se de que a sua scene tem o tamanho correto para deploys para a Genesis City!

Publicar a partir de uma hardware wallet

Em vez de armazenar os seus tokens LAND numa conta Metamask, pode achar mais seguro guardá-los num dispositivo hardware wallet, como um Ledger ou um Trezor, ligado fisicamente ao seu computador.

Se estiver a usar um destes dispositivos, pode ligar a hardware wallet à Metamask para permitir a assinatura de mensagens, mantendo os tokens mais seguros. Veja este artigo da Metamask para instruções sobre como ligar a sua conta.

Assim que a sua hardware wallet puder ser usada via Metamask, você pode fazer deploy seguindo os mesmos passos como se os seus tokens estivessem numa conta Metamask.

Sobrescrita de scene

Quando uma nova scene é deployed, ela sobrescreve o conteúdo mais antigo que existia nos parcels que ocupa.

Se uma scene que ocupa vários parcels for apenas parcialmente sobrescrita por outra, todos os seus parcels são ou sobrescritos ou apagados.

Suponha que você fez deploy da sua scene A em dois parcels [100, 100] e [100, 101]. Depois você vende o parcel [100, 101] a um utilizador que possui land adjacente e que faz deploy de uma scene grande (B) em vários parcels, incluindo [100, 101].

A sua scene A não pode ser renderizada parcialmente em apenas um parcel, por isso [100, 100] não mostrará qualquer conteúdo. Você deve construir uma nova versão da scene A que ocupe apenas um parcel e fazer deploy apenas no parcel [100, 100].

O que são os content servers

Os content servers são uma rede de servidores pertencentes à comunidade com um filesystem baseado em content-addressed, o que significa que cada ficheiro é identificado pelo seu conteúdo, e não por um nome de ficheiro arbitrário.

Usamos os content servers para alojar e distribuir todo o conteúdo da scene de uma forma semelhante ao BitTorrent, mantendo a rede da Decentraland distribuída.

  1. Os content servers armazenam e distribuem todos os assets necessários para render as suas scenes.

  2. O npm run deploy o comando associa estes assets ao parcel de LAND especificado no seu scene.json file. Sempre que voltar a fazer deploy da sua scene, a CLI atualizará o seu smart contract de LAND, se necessário, para apontar para o conteúdo mais recente disponível nos content servers.

A informação em cada cópia do servidor é verificável, pois cada scene é assinada pelo hash do proprietário do LAND. Isto significa que alguém que aloje uma cópia do servidor não conseguirá adulterar o conteúdo para mostrar algo ilegítimo. A comunidade também pode votar para aprovar ou remover qualquer um destes servidores usando o DAO.

O servidor de teste

Pode fazer deploy de conteúdo para o test catalyst server para executar testes completos com vários utilizadores, as scenes circundantes e um ambiente idêntico ao de produção. O test server é idêntico a todos os outros catalyst servers. A diferença é que o conteúdo feito deploy para este servidor não é propagado para os outros. No entanto, o conteúdo feito deploy para outros servidores é propagado para este servidor, por isso as scenes circundantes devem parecer como irão parecer em produção.

Os jogadores nunca são direcionados para este servidor; a única forma de aceder é fornecer explicitamente um parâmetro URL para se ligar a ele.

Se estiver a trabalhar num projeto confidencial que não quer revelar até ao lançamento, note que o servidor de teste está relativamente escondido dos jogadores, mas qualquer pessoa a usar explicitamente a URL do servidor de teste poderia potencialmente entrar nele.

Via a CLI

Para fazer deploy para o test server, execute:

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

Para entrar no content server, adicione &CATALYST=peer-testing.decentraland.org ao URL da Decentraland

https://play.decentraland.org/?CATALYST=peer-testing.decentraland.org

Servidores personalizados

Pode fazer deploy de conteúdo para um custom server que não pertence à rede oficial de catalyst servers gerida pelo DAO. Para isso, não precisa de possuir quaisquer tokens LAND ou NAME, pois pode configurar o servidor para usar qualquer lógica de validação que preferir para controlar quem pode fazer deploy e onde. Os custom servers podem optar por incluir conteúdo dos servidores oficiais (que pode substituir), ou começar do zero e publicar conteúdo totalmente novo.

Veja Como executar o seu próprio Catalyst Node para mais informações sobre o que pode fazer com o seu próprio servidor e como configurá-lo.

Os jogadores nunca são direcionados para este servidor; a única forma de aceder é escrever explicitamente o URL para se ligar a ele.

Via a CLI

Para fazer deploy para um custom server, execute:

npm run deploy -- --target <CUSTOM SERVER DOMAIN>

O URL para entrar na sua scene feita deploy no seu custom server dependerá do domínio onde está alojada.

Verifique o sucesso do deployment

Assim que fizer deploy da sua scene, estas alterações levarão alguns minutos a propagar-se pelos vários content servers da rede. Se entrar na Decentraland logo após fazer deploy, poderá ainda ver a versão anterior do seu conteúdo, dependendo do realm em que entrar.

Depois de assinar para autorizar o deploy da sua scene, a dapp de assinatura começará a mostrar confirmações de que a nova versão do seu conteúdo foi propagada por todos os servidores da rede.

Verá uma lista de cada um dos servidores que compõem a content network da Decentraland. Para cada servidor, é indicado o timestamp da última alteração carregada nesse parcel. Cada servidor refere-se a um realm diferente. Pode ver como estes nomes de servidor correspondem aos nomes de realm no ecrã de monitorização do catalyst.

Também pode obter esta informação a qualquer momento executando o seguinte comando na consola da linha de comandos:

npx @dcl/opscli pointer-consistency --pointer 0,0

Deploys automáticos

Se fizer alterações regularmente ao conteúdo da sua scene e quiser implementar um pipeline de publicação simplificado, pode automatizar o deploy da sua scene através de uma ação do GitHub.

Para isso, primeiro tem de armazenar a sua scene num projeto do GitHub. Depois pode definir uma ação do GitHub com o seguinte script, que é executado sempre que há um merge para a main branch. O script instala quaisquer dependências, faz build do projeto e depois faz deploy para a Decentraland.

Importante: Para este processo funcionar, tem de definir a private key de uma wallet como variável de ambiente no GitHub, que será usada para assinar o deploy. Como sempre, tenha muito cuidado para manter as private keys seguras. NÃO use a private key da conta que realmente possui os tokens de land, pois isso representaria riscos de segurança significativos. Em vez disso, delegue os direitos de operador a uma wallet descartável que não possua tokens valiosos. Se esta private key alguma vez for exposta, pode revogar facilmente esses direitos de operador da conta e configurar uma nova wallet.

Atualizado