dojo-init

安装量: 56
排名: #13352

安装

npx skills add https://github.com/dojoengine/book --skill dojo-init

Dojo Project Initialization Initialize new Dojo projects with the complete directory structure, configuration files, and dependencies. 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" 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 Quick Start Using sozo init: 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" 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 Configuration Files Scarb.toml Package manifest with Dojo dependencies: [ 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 Local development configuration: [ 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 ) Position model with player key and Vec2 coordinates Moves model tracking remaining moves and direction Direction enum Systems ( src/systems/actions.cairo ) spawn function to initialize player state move function to update player position Example event emission Tests ( src/tests/test_world.cairo ) Test world setup with spawn_test_world Integration tests for spawn and move Development Workflow Initialize project: sozo init my-game cd my-game Start Katana: katana --dev --dev.no-fee Build and deploy: sozo build && sozo migrate Test your system: sozo execute my_game-actions spawn Run tests: sozo test Customization After initialization, customize your project: Add models: Create new model structs in src/models.cairo or separate files Add systems: Create new contract modules in src/systems/ Update permissions: Edit [writers] in dojo_dev.toml Add dependencies: Edit [dependencies] in Scarb.toml Next Steps After initialization: Use dojo-model skill to add game state models Use dojo-system skill to implement game logic Use dojo-test skill to write tests Use dojo-deploy skill to deploy your world

返回排行榜