mcpField
D
deploy-scene

deploy-scene

github.com/dcl-regenesislabs云与 DevOps1737 次安装21 周前更新
代码仓库

关于 deploy-scene

面向 Decentraland Genesis City 场景创作者的部署技能,说明如何检查场景配置并将场景发布到有权限的地块。内容涵盖命令行和 Creator Hub 流程、部署前检查及常见故障处理。

主要功能

  1. 01检查 scene.json 配置
  2. 02验证代码与场景预览
  3. 03通过命令行部署
  4. 04使用 Creator Hub 发布
  5. 05排查部署错误

适用场景

  1. 01将场景发布到 Genesis City 地块
  2. 02部署前核对场景配置和资源
  3. 03处理钱包权限或部署失败

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dcl-regenesislabs/opendcl --skill deploy-scene

安装后在 Claude Code 中输入/deploy-scene确认已加载。

详细介绍

部署到 Genesis City

部署到你拥有或获准部署的特定地块。

使用 /deploy 命令进行部署。它会运行 npx @dcl/sdk-commands deploy 并处理整个流程:

  1. 构建场景
  2. 将资源上传到 IPFS
  3. 部署到指定地块
  4. 需要拥有 LAND 或部署权限的钱包

要部署到 World? 查看 deploy-worlds 技能,了解 Worlds 部署(使用 DCL NAME 或 ENS 域名的个人空间)。

部署前检查清单

部署前,请确认:

  1. scene.json 有效:

    • ecs7: true 且 runtimeVersion: "7"
    • parcels 与你的 LAND 相符(针对 Genesis City)
    • base 地块有效
    • main: "bin/index.js"
  2. 代码可编译:

    npx tsc --noEmit
    
  3. 场景预览正常: 使用 preview 工具验证场景是否正常运行(或手动运行 npx @dcl/sdk-commands start --bevy-web)

  4. 已安装依赖:

    npm install
    
  5. 资源符合限制——请参阅 optimize-scene 技能,了解按地块数量计算的完整限制公式(三角形、实体、材质、纹理、高度)

部署流程

使用 CLI
# Build first
npx @dcl/sdk-commands build

# Deploy (will open browser for wallet connection)
npx @dcl/sdk-commands deploy
使用 Creator Hub
  1. 打开 Creator Hub
  2. 选择你的场景
  3. 点击“Publish”
  4. 连接钱包
  5. 确认交易

用于部署的 scene.json

{
  "ecs7": true,
  "runtimeVersion": "7",
  "display": {
    "title": "My Awesome Scene",
    "description": "A description for the marketplace",
    "navmapThumbnail": "images/thumbnail.png"
  },
  "scene": {
    "parcels": ["0,0", "0,1"],
    "base": "0,0"
  },
  "main": "bin/index.js"
}
场景打赏(creator)

允许访客向场景创建者打赏 MANA。添加 creator 字段并填入收款方的钱包地址:

{
  "creator": "0x1234567890123456789012345678901234567890"
}

设置后,访客会在左上角看到存钱罐图标。点击后会打开 MANA 打赏窗口。如果该地址关联了 Decentraland NAME,窗口中会显示此名称。每收到一笔打赏,创建者都会收到应用内通知。也可以通过 Creator Hub → 场景 Settings → Details → Creator wallet address 配置。

出生点

配置玩家进入场景时出现的位置:

{
  "spawnPoints": [
    {
      "name": "spawn1",
      "default": true,
      "position": { "x": [1, 5], "y": [0, 0], "z": [2, 4] },
      "cameraTarget": { "x": 8, "y": 1, "z": 8 }
    }
  ]
}

位置范围(例如 [1, 5])会让玩家在该范围内随机出生。使用 cameraTarget 设置玩家出生时摄像头的朝向。

故障排除

错误原因解决方案
"You don't have permission to deploy"钱包不拥有目标 LAND/地块在市场确认 LAND 所有权,或向 LAND 所有者获取部署权限
"Scene is too large"资源超出地块大小限制对照上方限制表检查三角形数量、文件大小和纹理数量。请参阅 optimize-scene 技能
钱包连接失败浏览器弹窗被拦截或 MetaMask 已锁定允许弹窗、解锁 MetaMask,刷新后重试
"Invalid scene.json"缺少必填字段或 JSON 格式错误确认 ecs7: true、runtimeVersion: "7"、parcels 数组有效,且 main: "bin/index.js"
部署成功但场景为空main 字段未指向编译输出确保 main 为 "bin/index.js",并先运行 npx @dcl/sdk-commands build
Catalyst 拒绝部署内容违反 Decentraland 内容政策在 docs.decentraland.org 查看内容指南
Genesis City 与 Worlds
Genesis CityWorlds
要求拥有 LAND 地块拥有 DCL NAME 或 ENS 域名
地块限制强制执行(每个地块有实体/三角形预算)不受 LAND 限制
可见性显示在 Genesis City 地图上列于 Places 页面(可选择退出)
部署目标默认 Catalyst 网络--target-content https://worlds-content-server.decentraland.org
适用场景永久装置、高流量场景测试、个人空间、活动

要部署到 World? 请参阅 deploy-worlds 技能。

最佳实践

  • 部署前务必在本地预览
  • 使用缩略图(navmapThumbnail)显示在 Genesis City 地图上
  • 编写清晰的描述,便于用户发现
  • 使用多个浏览器标签页进行测试,以验证多人游戏行为
  • 将场景加载时间控制在 15 秒以内(优化资源)

评论

支持 Markdown