{"id":13718679,"url":"https://github.com/dojoengine/emoji-man","last_synced_at":"2025-10-12T17:31:30.427Z","repository":{"id":206579266,"uuid":"717223941","full_name":"dojoengine/emoji-man","owner":"dojoengine","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-20T20:29:44.000Z","size":2687,"stargazers_count":5,"open_issues_count":4,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-23T19:54:47.990Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://emoji-man.preview.cartridge.gg","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dojoengine.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-11-10T21:09:28.000Z","updated_at":"2024-04-22T10:37:31.000Z","dependencies_parsed_at":"2023-11-13T13:45:50.322Z","dependency_job_id":"98b7da96-e663-488b-b394-48664d060e0d","html_url":"https://github.com/dojoengine/emoji-man","commit_stats":null,"previous_names":["dojoengine/emoji-man"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dojoengine/emoji-man","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dojoengine%2Femoji-man","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dojoengine%2Femoji-man/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dojoengine%2Femoji-man/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dojoengine%2Femoji-man/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dojoengine","download_url":"https://codeload.github.com/dojoengine/emoji-man/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dojoengine%2Femoji-man/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279012191,"owners_count":26085079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T01:00:35.713Z","updated_at":"2025-10-12T17:31:29.930Z","avatar_url":"https://github.com/dojoengine.png","language":"TypeScript","funding_links":[],"categories":["Projects Using Dojo"],"sub_categories":[],"readme":"![image](./.github/image.png)\n\n![screenshot](screenshot.png)\n\n# Emoji Man - 🪨 or 📄 or ✂️\n\n## Overview\n\nEmoji Man is a game based on Rock-Paper-Scissors (RPS) mechanics where players spawn as one of the following: a Rock 🪨, Paper 📄, or Scissors ✂️. The goal is to survive and thrive using the classic RPS rules.\n\n## Resources\n\n- [Dojo Book](https://book.dojoengine.org/)\n- [Cairo Book](https://github.com/cairo-book/cairo-book.github.io/)\n- [Dojo Engine Discord](https://discord.gg/dojoengine)\n- [Awesome Dojo](https://github.com/dojoengine/awesome-dojo)\n\n## Getting Started with the Demo\n\n### Prerequisites\n\nTo begin, install Dojo using the following command:\n\n```bash\ncurl -L https://install.dojoengine.org | bash\n```\n\nAfter installation, run this command to set up:\n\n```bash\ndojoup\n```\n\nThis will install the latest stable release of the Dojo tool suite, currently version [`v0.3.15`](https://github.com/dojoengine/dojo/releases/tag/v0.3.10).\n\n### Optional: Starter Project\n\nFor a foundational start, clone the Dojo starter project:\n\n```bash\ngit clone https://github.com/dojoengine/dojo-starter\n```\n\n### Step 1: Initialize the Main Project\n\nClone the Emoji Man project:\n\n```bash\ngit clone https://github.com/dojoengine/emoji-man\n```\n\nThe initial steps include:\n\n- a. Project initialization\n- b. Exploring the project structure\n- c. Understanding Scarb\n- d. Introduction to Cairo\n\n### Step 2: Creating Your First Model\n\nDevelop your first model by:\n\n- a. Conceptualizing the model structure\n- b. Creating a model and understanding state structures, with insights on [ECS](https://github.com/SanderMertens/ecs-faq)\n- c. Learning how Dojo is not purely ECS-based\n\n### Step 3: Implementing Your First System\n\nThis involves:\n\n- a. System creation as a contract\n- b. Adding a new system\n- c. Building and testing with `sozo`\n\n### Step 4: Integrating a New Model into a System\n\nProceed by:\n\n- a. Adding a new model\n- b. Implementing a new trait\n- c. Utilizing the trait in a system\n- d. Building and verifying the integration\n\n### Step 5: Exploring Sozo and the CLI\n\nDelve deeper into:\n\n- a. `sozo` functionalities\n- b. Launching `katana`\n- c. Setting up `torii` and connecting to your World\n\nRefer to the documentation for [`sozo`](https://book.dojoengine.org/toolchain/sozo/reference.html), [`katana`](https://book.dojoengine.org/toolchain/katana/reference.html), and [`torii`](https://book.dojoengine.org/toolchain/torii/reference.html).\n\n### Step 6: Code Cleanup\n\nFocus on:\n\n- a. Refining and organizing the code\n\n### Step 7: Testing\n\nConduct tests by:\n\n- a. Establishing a testing structure\n- b. Writing and executing World deployment tests\n\n### Step 8: Deploying to Katana\n\nLearn about:\n\n- a. Deployment processes and debugging techniques\n\n### Step 9: Running the Client\n\nSteps include:\n-a. Launching the client\n\n- b. Generating models via npm\n- c. Understanding client architecture\n- d. Learning about the `torii` client\n\n### Step 10: Utilizing `slot` for Remote Deployments\n\nUnderstand [slot](https://github.com/cartridge-gg/slot) and its applications. Install `slot` and log in with these commands:\n\n```bash\ncurl -L https://slot.cartridge.sh | bash\nslotup\nslot auth login\n# For old auth credentials debug:\nrm ~/Library/Application\\ Support/slot/credentials.json\n```\n\nDeployment steps:\n\n```bash\n# Create and manage deployments\nslot deployments create emoji-man-demo katana\n\n# Retrieve and save credentials\nslot deployments logs emoji-man-demo katana -f\n\n# Build and migrate releases\nsozo --release build\nsozo --release migrate\n\n# Set up torii and connect to the world\nslot deployments create emoji-man-demo torii --rpc https://api.cartridge.gg/x/emoji-man-demo/katana --world 0x1fad58d91d5d121aa6dc4d16c01a161e0441ef75fe7d31e3664a61e66022b1f --start-block 1\n\n# Update authentication for the release\n./scripts/default_auth.sh release\n```\n\n### Step 11:\n\nDeploy to vercel.\n\n## Next Steps\n\n### Bonus 1: Add a collectables\n\n- Add a way to spawn collectables on the map and allow players to collect them\n\n### Bonus 2: Leaderboard\n\n- Add UI in client to show total amount of killed types.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdojoengine%2Femoji-man","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdojoengine%2Femoji-man","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdojoengine%2Femoji-man/lists"}