Publicação
Como publicar meu projeto?
Antes de começar
Certifique-se do seguinte:
Sua cena cumpre todas as limitações da cena. A maioria delas é validada cada vez que você executa uma pré-visualização da sua cena.
Você tem uma Metamask conta, com seus lotes de LAND atribuídos a ela.
❗Aviso: Ao planejar eventos ao vivo, certifique-se de não fazer alterações de última hora na cena imediatamente antes do evento.
Após cada publicação, um processo interno otimiza todos os modelos 3D antes que possam ser renderizados. Isso leva cerca de 15 minutos. Se você visitar a cena antes que isso seja concluído, a cena pode parecer quebrada. Esse processo é executado mesmo se os modelos 3D já tiverem sido publicados anteriormente.
Verificar os dados da cena
Ao implantar, o CLI lê informações do scene.json arquivo para determinar onde implantar sua cena.
Abra o scene.json arquivo da sua cena e preencha os seguintes dados:
title: O título é exibido na UI sob o mini-mapa, sempre que jogadores entram na sua cena. Também aparece no popup de teleporte.
description: Uma descrição do que os jogadores encontrarão na sua cena. Isso é exibido no popup de teleporte.
navmapThumbnail: Uma imagem que representa sua cena. Isso é exibido no popup de teleporte. A imagem deve ser um .png ou .jpg imagem de tamanho recomendado de 228x160 pixels.
Parcels: As coordenadas dos parcels que serão ocupados pela sua cena
Base: As coordenadas do parcel que será considerado a coordenada [0,0] da cena. Se sua cena tiver múltiplos parcels, deve ser o parcel inferior-esquerdo (Sudoeste).
spawnPoints: Um conjunto de coordenadas dentro da cena (relativas ao parcel base da cena) onde os jogadores aparecem. Por padrão, os jogadores aparecem na 0,0,0 localização da cena (canto inferior esquerdo). Use isso para iniciar jogadores em uma localização específica, ou definir uma região para impedir que jogadores se sobreponham quando aparecem pela primeira vez.
tags: Um conjunto de tags que descrevem sua cena. Elas ajudam os jogadores a explorar Decentraland tornando mais fácil encontrar conteúdos de seu interesse. Veja a lista de tags disponíveis.
rating: Isso é usado para classificar o conteúdo da sua cena com base em sua adequação para diferentes faixas etárias (
Tpara Teens ouApara Adults). Isso ajuda na filtragem de conteúdo para os jogadores.
📔 Observação: Veja scene metadata para mais detalhes sobre como definir esses parâmetros.
Para publicar a cena
Usando o Scene Editor no Creator Hub
O Scene Editor no Creator Hub fornece uma maneira fácil de publicar suas cenas. Certifique-se de que você instalou o Creator Hub.
Abra o projeto da sua cena.
Clique no Publish botão no canto superior direito.
Um prompt perguntará se você quer publicar em um WORLD ou em LAND.
Selecione PUBLISH TO WORLD para tornar sua cena disponível em um dos seus WORLDs. Então selecione em qual dos seus NAMEs ou domínios ENS publicar.
Selecione PUBLISH TO LAND se você possui LAND, ou recebeu permissões de deploy por um proprietário. Então selecione os parcels onde deseja implantar no mapa. Parcels onde você está autorizado a implantar são mostrados em rosa.
Selecione Servidores alternativos para publicar no test server ou em um custom server.

Isso abre uma nova aba no seu navegador, mostrando detalhes sobre o upload. Aprove a transação.
Para LAND em uma conta Metamask do navegador, confirme a implantação. Em seguida, aprove a transação na extensão Metamask do navegador.
Para LAND vinculado a uma carteira que você pode usar via Wallet Connect, clique Connect wallet, então escaneie o código QR com seu dispositivo móvel e siga os passos no Wallet Connect.
Via o CLI
Faça login na sua conta Metamask com o mesmo endereço público associado aos seus parcels em Decentraland.
Execute
npm run deployna pasta da cena.
**💡 Dica**: Se houver arquivos na pasta do seu projeto que você não quer implantar, liste-os no arquivo _.dclignore_ antes de implantar.
Uma aba do navegador será aberta, mostrando em quais parcels você está implantando. Clique em Sign and Deploy.
Metamask abre, notificando que sua assinatura foi solicitada. Clique em Sign para confirmar esta ação.
💡 Dica: Se você está implementando um fluxo de integração contínua, onde alterações na sua cena são implantadas automaticamente, então você pode definir a variável de ambiente export DCL_PRIVATE_KEY para a chave privada de uma conta que tenha permissões de deploy.
💡 Dica: npm run deploy executa um npm run build, que verifica a cena por erros de tipo de forma mais rigorosa do que executar npm run start. Se esses erros não puderem ser evitados (por exemplo: acontecem em uma biblioteca externa) e não impactarem a cena, você pode usar npm run deploy --skip-build para pular a etapa de npm run build e implantar a cena como está.
Publicando em Worlds
Para publicar sua cena em um Decentraland World, você precisa possuir um Decentraland NAME ou domínio ENS. Veja Publishing Options para informações sobre como obter um.
Configurar scene.json
Você precisa especificar sob qual name seu deploy deve ser feito. Adicione a seguinte seção no seu scene.json:
O name especificado no scene.json pode ser tanto um Decentraland NAME quanto um domínio ENS. Deve ser propriedade da carteira que assina o deploy, ou de qualquer carteira que tenha recebido permissão via Access Control Lists (ACL).
Tenha o seguinte em mente:
A carteira que assina o deploy deve possuir o NAME especificado no
scene.jsonarquivoA cena não tem limitações de parcela (desde janeiro de 2023)
Todos os Worlds são automaticamente listados na página Places, a menos que você opte por não participar conforme detalhado abaixo
Opt-out da listagem em Places
Se você desejar optar por não indexar seus Worlds em Places, você pode adicionar a seguinte seção no seu scene.json:
Usando o Scene Editor no Creator Hub
Abra o projeto da sua cena.
Clique no Publish botão no canto superior direito.
Selecione PUBLISH TO WORLD.
Selecione em qual dos seus NAMEs ou domínios ENS publicar.
Via o CLI
Use o seguinte comando:
Uma vez que você execute o comando, será solicitado que você assine o deploy com sua carteira e um conjunto de validações será executado para permitir ou rejeitar a cena.
Acessando um World
Uma vez que uma cena é enviada para o servidor Worlds, você pode acessá-la usando o Decentraland Explorer com a seguinte URL: decentraland://?realm=NAME.dcl.eth, onde NAME deve ser substituído pelo Decentraland NAME ou domínio ENS para o qual você publicou.
Com o Decentraland já aberto, você também pode ir para um world digitando o /goto NAME.dcl.eth comando na caixa de chat.
Veja Make discoverable para mais informações sobre como tornar seu World descobrível.
Migrando um World para Genesis City
Se você é proprietário de LAND e deseja implantar uma cena World em Genesis City, você pode fazê-lo reimplantando sua cena na rede descentralizada Catalyst, que é o servidor de conteúdo para Genesis City.
Coisas a lembrar:
Remova a
worldConfigurationseção descene.jsonA limitação de tamanho para Worlds (dinâmica, baseada em holdings) é diferente da das parcelas de LAND (15MB por parcel), então certifique-se de que sua cena esteja dimensionada corretamente para implantações em Genesis City!
Publicar a partir de uma hardware wallet
Ao invés de armazenar seus tokens de LAND em uma conta Metamask, você pode achar mais seguro armazená-los em um dispositivo de hardware wallet, como um Ledger ou em um Trezor, que esteja fisicamente conectado ao seu computador.
Se você estiver usando um desses dispositivos, você pode vincular a hardware wallet ao Metamask para permitir assinar mensagens, mantendo os tokens mais seguros. Veja this article from Metamask para instruções de como conectar sua conta.
Uma vez que sua hardware wallet possa ser usada via Metamask, você pode implantar seguindo os mesmos passos como se seus tokens estivessem em uma conta Metamask.
Sobrescrita de cena
Quando uma nova cena é implantada, ela sobrescreve conteúdo anterior que existia nos parcels que ocupa.
Se uma cena que ocupa múltiplos parcels for apenas parcialmente sobrescrita por outra, todos os seus parcels são ou sobrescritos ou apagados.
Suponha que você implantou sua cena A em duas parcelas [100, 100] e [100, 101]. Então você vende o parcel [100, 101] para um usuário que possui terra adjacente e que implanta uma cena grande (B) em vários parcels, incluindo [100, 101].
Sua cena A não pode ser renderizada parcialmente em apenas um parcel, então [100, 100] não exibirá nenhum conteúdo. Você deve construir uma nova versão da cena A que ocupe apenas um parcel e implantá-la apenas no parcel [100, 100].
O que são os content servers
Os content servers são uma rede de servidores de propriedade da comunidade com um sistema de arquivos que é addressado por conteúdo, significando que cada arquivo é identificado pelo seu conteúdo, não por um nome de arquivo arbitrário.
Usamos os content servers para hospedar e distribuir todo o conteúdo da cena de maneira semelhante ao BitTorrent, mantendo a rede Decentraland distribuída.
Os content servers armazenam e distribuem todos os assets necessários para renderizar suas cenas.
O
npm run deployo comando vincula esses assets ao parcel de LAND especificado no seu scene.json arquivo. Sempre que você reimplanta sua cena, o CLI atualizará seu smart contract de LAND, se necessário, para apontar ao conteúdo mais recente disponível nos content servers.
A informação em cada cópia do servidor é verificável, pois cada cena é assinada pelo hash do dono do LAND. Isso significa que alguém hospedando uma cópia do servidor não poderá adulterar o conteúdo para exibir algo ilegítimo. A comunidade também pode votar para aprovar ou remover quaisquer desses servidores usando a DAO.
O test server
Você pode implantar conteúdo no test catalyst server para executar testes completos com múltiplos usuários, as cenas ao redor, 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 implantado neste servidor não é propagado para os outros. No entanto, conteúdo implantado em outros servidores é propagado para este servidor, então as cenas ao redor devem parecer como estarão em produção.
📔 Observação: Para implantar em parcels no test server, você deve ter as mesmas permissões exigidas para implantar nesses parcels na rede principal.
Jogadores nunca são direcionados a este servidor; a única forma de acessá-lo é fornecendo explicitamente um parâmetro URL para conectar-se a ele.
Se você está trabalhando em um projeto confidencial que não quer revelar até o lançamento, note que o test server é relativamente oculto para os jogadores, mas qualquer pessoa que usar explicitamente a URL do test server pode potencialmente acessá-lo.
Via o CLI
Para implantar no test server, execute:
npm run deploy -- --target peer-testing.decentraland.org
Para entrar no content server, adicione &CATALYST=peer-testing.decentraland.org à URL do Decentraland
https://play.decentraland.org/?CATALYST=peer-testing.decentraland.org
Custom servers
Você pode implantar conteúdo em um custom server que não pertença à rede oficial de catalyst servers mantida pela DAO. Para isso, você não precisa possuir quaisquer tokens de LAND ou NAME, pois pode configurar o servidor para usar qualquer lógica de validação que preferir para controlar quem pode implantar onde. Custom servers podem optar por incluir conteúdo dos servidores oficiais (o qual você pode sobrescrever), ou começar do zero e publicar conteúdo totalmente novo.
Veja Como executar seu próprio Catalyst Node para mais informações sobre o que você pode fazer com seu próprio servidor e como configurá-lo.
📔 Observação: Jogadores precisarão digitar manualmente uma URL para acessar seu custom server. Certas validações de serviços como o rewards server ou o quests server podem falhar nesses contextos, pois muitas vezes esses serviços requerem que a requisição venha de um servidor oficial.
Jogadores nunca são direcionados a este servidor; a única forma de acessá-lo é digitar explicitamente a URL para conectar-se a ele.
Via o CLI
Para implantar em um custom server, execute:
npm run deploy -- --target <CUSTOM SERVER DOMAIN>
A URL para entrar na sua cena implantada no seu custom server dependerá do domínio onde está hospedada.
Verificar sucesso da implantação
Uma vez que você implantou sua cena, essas mudanças levarão alguns minutos para serem propagadas através dos diversos content servers na rede. Se você entrar no Decentraland logo após implantar, talvez ainda veja a versão anterior do seu conteúdo, dependendo do realm que você acessar.
Após você assinar para autorizar a implantação da sua cena, o dapp de assinatura começará a exibir confirmações de que a nova versão do seu conteúdo foi propagada por todos os servidores da rede.
Você verá uma lista de cada um dos servidores que compõem a rede de conteúdo da Decentraland. Para cada servidor, é especificado o timestamp da última alteração enviada naquele parcel. Cada servidor se refere a um realm diferente. Você pode ver como esses nomes de servidor mapeiam para nomes de realm na catalyst monitor screen.
Você também pode obter essa informação a qualquer momento executando o seguinte comando no console de linha de comando:
npx @dcl/opscli pointer-consistency --pointer 0,0
📔 Observação: Use as coordenadas da sua cena ao invés de 0,0. Se sua cena tem múltiplos parcels, qualquer um de seus parcels produzirá a mesma saída. Se as coordenadas começarem com um número negativo, adicione uma \ no início das coordenadas para evitar que o caractere - seja interpretado incorretamente pela linha de comando.
Implantações automáticas
Se você regularmente faz alterações no conteúdo da sua cena e quer implementar um pipeline de publicação simplificado, você pode automatizar a implantação da sua cena via uma GitHub action.
Para isso, você deve primeiro armazenar sua cena em um projeto GitHub. Você pode então configurar uma GitHub action com o seguinte script, que roda toda vez que há um merge para a main branch. O script instala quaisquer dependências, constrói o projeto e então o implanta no Decentraland.
Importante: Para que esse processo seja executado, você deve definir a chave privada de uma carteira como uma variável de ambiente no GitHub, a qual é usada para assinar o deploy. Como sempre, tenha muito cuidado em manter chaves privadas seguras. NÃO use a chave privada da conta que realmente possui os tokens de land, pois isso representaria riscos significativos de segurança. Em vez disso, delegue direitos de operador a uma carteira descartável que não possua tokens valiosos. Se essa chave privada vazar, você pode facilmente revogar esses direitos de operador da conta e configurar uma nova carteira.
Atualizado