dojo-init

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Dojo Project Initialization

Dojo项目初始化

Initialize new Dojo projects with the complete directory structure, configuration files, and dependencies.
为新的Dojo项目创建完整的目录结构、配置文件及依赖项。

When to Use This Skill

何时使用该技能

  • "Create a new Dojo project"
  • "Initialize a Dojo game called [name]"
  • "Set up a new Dojo application"
  • "Start a new provable game project"
  • "创建新的Dojo项目"
  • "初始化名为[name]的Dojo游戏"
  • "搭建新的Dojo应用"
  • "启动新的可证明游戏项目"

What This Skill Does

该技能的功能

Creates a complete Dojo project with:
  • Scarb.toml
    with Dojo dependencies
  • dojo_dev.toml
    for local development
  • Source directory structure
  • Example models and systems
  • Test files
创建包含以下内容的完整Dojo项目:
  • 带有Dojo依赖项的
    Scarb.toml
  • 用于本地开发的
    dojo_dev.toml
  • 源码目录结构
  • 示例模型与系统
  • 测试文件

Quick Start

快速开始

Using sozo init:
bash
sozo init my-game
This creates a new Dojo project from the dojo-starter template.
Interactive mode:
"Create a new Dojo project called my-game"
使用sozo init:
bash
sozo init my-game
此命令将从dojo-starter模板创建新的Dojo项目。
交互模式:
"创建名为my-game的新Dojo项目"

Project Structure

项目结构

After initialization:
my-game/
├── Scarb.toml              # Package manifest and dependencies
├── dojo_dev.toml           # Local development profile
├── dojo_release.toml       # Production deployment profile
└── src/
    ├── lib.cairo           # Module exports
    ├── models.cairo        # Game state models
    ├── systems/
    │   └── actions.cairo   # Game logic systems
    └── tests/
        └── test_world.cairo # Integration tests
初始化完成后:
my-game/
├── Scarb.toml              # 包清单及依赖项
├── dojo_dev.toml           # 本地开发配置文件
├── dojo_release.toml       # 生产部署配置文件
└── src/
    ├── lib.cairo           # 模块导出文件
    ├── models.cairo        # 游戏状态模型
    ├── systems/
    │   └── actions.cairo   # 游戏逻辑系统
    └── tests/
        └── test_world.cairo # 集成测试

Configuration Files

配置文件

Scarb.toml

Scarb.toml

Package manifest with Dojo dependencies:
toml
[package]
cairo-version = "2.12.2"
name = "my_game"
version = "1.0.0"
edition = "2024_07"

[[target.starknet-contract]]
sierra = true
build-external-contracts = ["dojo::world::world_contract::world"]

[dependencies]
starknet = "2.12.2"
dojo = "1.7.1"

[dev-dependencies]
cairo_test = "2.12.2"
dojo_cairo_test = "1.7.1"

[tool.scarb]
allow-prebuilt-plugins = ["dojo_cairo_macros"]
包含Dojo依赖项的包清单:
toml
[package]
cairo-version = "2.12.2"
name = "my_game"
version = "1.0.0"
edition = "2024_07"

[[target.starknet-contract]]
sierra = true
build-external-contracts = ["dojo::world::world_contract::world"]

[dependencies]
starknet = "2.12.2"
dojo = "1.7.1"

[dev-dependencies]
cairo_test = "2.12.2"
dojo_cairo_test = "1.7.1"

[tool.scarb]
allow-prebuilt-plugins = ["dojo_cairo_macros"]

dojo_dev.toml

dojo_dev.toml

Local development configuration:
toml
[world]
name = "My Game"
seed = "my_game"

[env]
rpc_url = "http://localhost:5050/"
account_address = "0x127fd..."
private_key = "0xc5b2f..."

[namespace]
default = "my_game"

[writers]
"my_game" = ["my_game-actions"]
本地开发配置:
toml
[world]
name = "My Game"
seed = "my_game"

[env]
rpc_url = "http://localhost:5050/"
account_address = "0x127fd..."
private_key = "0xc5b2f..."

[namespace]
default = "my_game"

[writers]
"my_game" = ["my_game-actions"]

Starter Template Contents

启动模板内容

The starter template includes:
启动模板包含以下内容:

Models (
src/models.cairo
)

模型(
src/models.cairo

  • Position
    model with player key and Vec2 coordinates
  • Moves
    model tracking remaining moves and direction
  • Direction
    enum
  • Position
    模型:包含玩家密钥与Vec2坐标
  • Moves
    模型:追踪剩余步数与方向
  • Direction
    枚举

Systems (
src/systems/actions.cairo
)

系统(
src/systems/actions.cairo

  • spawn
    function to initialize player state
  • move
    function to update player position
  • Example event emission
  • spawn
    函数:初始化玩家状态
  • move
    函数:更新玩家位置
  • 事件发射示例

Tests (
src/tests/test_world.cairo
)

测试(
src/tests/test_world.cairo

  • Test world setup with
    spawn_test_world
  • Integration tests for spawn and move
  • 使用
    spawn_test_world
    搭建测试环境
  • 针对spawn与move的集成测试

Development Workflow

开发工作流

  1. Initialize project:
    bash
    sozo init my-game
    cd my-game
  2. Start Katana:
    bash
    katana --dev --dev.no-fee
  3. Build and deploy:
    bash
    sozo build && sozo migrate
  4. Test your system:
    bash
    sozo execute my_game-actions spawn
  5. Run tests:
    bash
    sozo test
  1. 初始化项目:
    bash
    sozo init my-game
    cd my-game
  2. 启动Katana:
    bash
    katana --dev --dev.no-fee
  3. 构建与部署:
    bash
    sozo build && sozo migrate
  4. 测试你的系统:
    bash
    sozo execute my_game-actions spawn
  5. 运行测试:
    bash
    sozo test

Customization

自定义配置

After initialization, customize your project:
  1. Add models: Create new model structs in
    src/models.cairo
    or separate files
  2. Add systems: Create new contract modules in
    src/systems/
  3. Update permissions: Edit
    [writers]
    in
    dojo_dev.toml
  4. Add dependencies: Edit
    [dependencies]
    in
    Scarb.toml
初始化完成后,可对项目进行以下自定义:
  1. 添加模型:
    src/models.cairo
    或单独文件中创建新的模型结构体
  2. 添加系统:
    src/systems/
    目录下创建新的合约模块
  3. 更新权限: 编辑
    dojo_dev.toml
    中的
    [writers]
    部分
  4. 添加依赖项: 编辑
    Scarb.toml
    中的
    [dependencies]
    部分

Next Steps

后续步骤

After initialization:
  1. Use
    dojo-model
    skill to add game state models
  2. Use
    dojo-system
    skill to implement game logic
  3. Use
    dojo-test
    skill to write tests
  4. Use
    dojo-deploy
    skill to deploy your world
初始化完成后:
  1. 使用
    dojo-model
    技能添加游戏状态模型
  2. 使用
    dojo-system
    技能实现游戏逻辑
  3. 使用
    dojo-test
    技能编写测试
  4. 使用
    dojo-deploy
    技能部署你的游戏世界

Related Skills

相关技能

  • dojo-model: Add models to your project
  • dojo-system: Add systems to your project
  • dojo-config: Modify configuration
  • dojo-deploy: Deploy your project
  • dojo-model:为项目添加模型
  • dojo-system:为项目添加系统
  • dojo-config:修改配置
  • dojo-deploy:部署你的项目