{"id":26149749,"url":"https://github.com/ippclub/dora-wa","last_synced_at":"2025-10-07T14:02:22.389Z","repository":{"id":271338679,"uuid":"913091306","full_name":"IppClub/Dora-Wa","owner":"IppClub","description":"A language binding project that enables Wa-lang integration with the Dora SSR game engine.","archived":false,"fork":false,"pushed_at":"2025-03-09T02:55:06.000Z","size":227,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-27T17:51:51.016Z","etag":null,"topics":["dora-ssr","wa-lang"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IppClub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-07T02:38:11.000Z","updated_at":"2025-03-09T02:55:09.000Z","dependencies_parsed_at":"2025-01-08T15:57:38.097Z","dependency_job_id":"9800e114-db89-4f03-aae8-b92b891277f1","html_url":"https://github.com/IppClub/Dora-Wa","commit_stats":null,"previous_names":["pigpigyyy/dora-wa","ippclub/dora-wa"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IppClub%2FDora-Wa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IppClub%2FDora-Wa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IppClub%2FDora-Wa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IppClub%2FDora-Wa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IppClub","download_url":"https://codeload.github.com/IppClub/Dora-Wa/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248819355,"owners_count":21166474,"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","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":["dora-ssr","wa-lang"],"created_at":"2025-03-11T05:36:30.468Z","updated_at":"2025-10-07T14:02:17.356Z","avatar_url":"https://github.com/IppClub.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dora SSR Wa Package\n\n[![IppClub](https://img.shields.io/badge/IppClub-Certified-11A7E2?logo=data%3Aimage%2Fsvg%2Bxml%3Bcharset%3Dutf-8%3Bbase64%2CPHN2ZyB2aWV3Qm94PSIwIDAgMjg4IDI3NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjIiPjxwYXRoIGQ9Im0xNDYgMzEgNzIgNTVWMzFoLTcyWiIgc3R5bGU9ImZpbGw6I2Y2YTgwNjtmaWxsLXJ1bGU6bm9uemVybyIvPjxwYXRoIGQ9Im0xNjkgODYtMjMtNTUgNzIgNTVoLTQ5WiIgc3R5bGU9ImZpbGw6I2VmN2EwMDtmaWxsLXJ1bGU6bm9uemVybyIvPjxwYXRoIGQ9Ik0yNiAzMXY1NWg4MEw4MSAzMUgyNloiIHN0eWxlPSJmaWxsOiMwN2ExN2M7ZmlsbC1ydWxlOm5vbnplcm8iLz48cGF0aCBkPSJNMTA4IDkydjExMmwzMS00OC0zMS02NFoiIHN0eWxlPSJmaWxsOiNkZTAwNWQ7ZmlsbC1ydWxlOm5vbnplcm8iLz48cGF0aCBkPSJNMCAyNzR2LTUyaDk3bC0zMyA1MkgwWiIgc3R5bGU9ImZpbGw6I2Y2YTgwNjtmaWxsLXJ1bGU6bm9uemVybyIvPjxwYXRoIGQ9Im03NyAyNzQgNjctMTA3djEwN0g3N1oiIHN0eWxlPSJmaWxsOiNkZjI0MzM7ZmlsbC1ydWxlOm5vbnplcm8iLz48cGF0aCBkPSJNMTUyIDI3NGgyOWwtMjktNTN2NTNaIiBzdHlsZT0iZmlsbDojMzM0ODVkO2ZpbGwtcnVsZTpub256ZXJvIi8%2BPHBhdGggZD0iTTE5MSAyNzRoNzl2LTUySDE2N2wyNCA1MloiIHN0eWxlPSJmaWxsOiM0ZTI3NWE7ZmlsbC1ydWxlOm5vbnplcm8iLz48cGF0aCBkPSJNMjg4IDEwMGgtMTdWODVoLTEzdjE1aC0xN3YxM2gxN3YxNmgxM3YtMTZoMTd2LTEzWiIgc3R5bGU9ImZpbGw6I2M1MTgxZjtmaWxsLXJ1bGU6bm9uemVybyIvPjxwYXRoIGQ9Im0yNiA4NiA1Ni01NUgyNnY1NVoiIHN0eWxlPSJmaWxsOiMzMzQ4NWQ7ZmlsbC1ydWxlOm5vbnplcm8iLz48cGF0aCBkPSJNOTMgMzFoNDJsLTMwIDI5LTEyLTI5WiIgc3R5bGU9ImZpbGw6IzExYTdlMjtmaWxsLXJ1bGU6bm9uemVybyIvPjxwYXRoIGQ9Ik0xNTggMTc2Vjg2bC0zNCAxNCAzNCA3NloiIHN0eWxlPSJmaWxsOiMwMDU5OGU7ZmlsbC1ydWxlOm5vbnplcm8iLz48cGF0aCBkPSJtMTA2IDU5IDQxLTEtMTItMjgtMjkgMjlaIiBzdHlsZT0iZmlsbDojMDU3Y2I3O2ZpbGwtcnVsZTpub256ZXJvIi8%2BPHBhdGggZD0ibTEyNCAxMDAgMjItNDEgMTIgMjctMzQgMTRaIiBzdHlsZT0iZmlsbDojNGUyNzVhO2ZpbGwtcnVsZTpub256ZXJvIi8%2BPHBhdGggZD0ibTEwNiA2MCA0MS0xLTIzIDQxLTE4LTQwWiIgc3R5bGU9ImZpbGw6IzdiMTI4NTtmaWxsLXJ1bGU6bm9uemVybyIvPjxwYXRoIGQ9Im0xMDggMjA0IDMxLTQ4aC0zMXY0OFoiIHN0eWxlPSJmaWxsOiNiYTAwNzc7ZmlsbC1ydWxlOm5vbnplcm8iLz48cGF0aCBkPSJtNjUgMjc0IDMzLTUySDBsNjUgNTJaIiBzdHlsZT0iZmlsbDojZWY3YTAwO2ZpbGwtcnVsZTpub256ZXJvIi8%2BPHBhdGggZD0iTTc3IDI3NGg2N2wtNDAtNDUtMjcgNDVaIiBzdHlsZT0iZmlsbDojYTgxZTI0O2ZpbGwtcnVsZTpub256ZXJvIi8%2BPHBhdGggZD0iTTE2NyAyMjJoNThsLTM0IDUyLTI0LTUyWiIgc3R5bGU9ImZpbGw6IzExYTdlMjtmaWxsLXJ1bGU6bm9uemVybyIvPjxwYXRoIGQ9Im0yNzAgMjc0LTQ0LTUyLTM1IDUyaDc5WiIgc3R5bGU9ImZpbGw6IzA1N2NiNztmaWxsLXJ1bGU6bm9uemVybyIvPjxwYXRoIGQ9Ik0yNzUgNTVoLTU3VjBoMjV2MzFoMzJ2MjRaIiBzdHlsZT0iZmlsbDojZGUwMDVkO2ZpbGwtcnVsZTpub256ZXJvIi8%2BPHBhdGggZD0iTTE4NSAzMWg1N3Y1NWgtMjVWNTVoLTMyVjMxWiIgc3R5bGU9ImZpbGw6I2M1MTgxZjtmaWxsLXJ1bGU6bm9uemVybyIvPjwvc3ZnPg%3D%3D\u0026labelColor=fff)](https://ippclub.org)\n\nA language binding project that enables Wa-lang integration with the Dora SSR game engine.\n\n## About\n\nThis project bridges two innovative open-source projects:\n\n- **Dora SSR**: A versatile game engine designed for rapid game development across various devices. It features a built-in Web IDE that enables direct game development on mobile phones, open-source handhelds, and other devices.\n\n- **Wa-lang**: A general-purpose programming language specifically designed for WebAssembly. Wa-lang aims to provide a simple, reliable, and statically typed language for high-performance web applications.\n\nThis repo provides language bindings and a testing project to demonstrate Wa-lang's capabilities when running on the Dora SSR engine.\n\n## What's in this repo\n\n- Wa-lang bindings for Dora SSR engine APIs\n- Testing and Example projects demonstrating Dora-Wa integration and usage\n\n## Installation\n\n- Install Dora SSR engine\n\n    See [Dora SSR Installation Guide](https://dora-ssr.net/docs/tutorial/quick-start)\n\n- Install Wa-lang compiler\n\n    See [Wa-lang Installation Guide](https://wa-lang.github.io/man/en/1.InstallAndGetStart/1.2.Install.html)\n\n## Usage\n\n1. Step 1: Create a new Dora SSR game project\n\n    - Make sure Dora SSR engine and Wa-lang compiler are installed.\n\n    - Launch Dora SSR software and open the Web IDE in the browser.\n\n    - In the game resource tree on the left side, open the right-click menu of the `Workspace`.\n\n    - Click on the menu item `New` and choose to create a new folder named `Hello`.\n\n2. Step 2: Write Wa game code\n\n    - Create a new Wa project in command line.\n\n      ```sh\n      wa init -n hello_dora --wasi\n      cd hello_dora\n      ```\n\n    - Change the `name` field in `hello_dora/wa.mod` to `init`.\n\n    - Copy the whole module from `this_repo/vendor/dora` to `hello_dora/vendor/dora`.\n\n    - Write code in `src/main.wa`.\n\n        ```wa\n        import \"dora\"\n\n        func init() {\n            // create a sprite\n            sprite := dora.NewSpriteWithFile(\"Image/logo.png\")\n\n            // create a root node of the game scene tree\n            root := dora.NewNode()\n\n            // mount the sprite to the root node of the game scene tree\n            root.AddChild(sprite.Node)\n\n            // receive and process tap event to move the sprite\n            root.OnTapBegan(func(touch: dora.Touch) {\n                sprite.PerformDef(dora.ActionDefMoveTo(\n                    1.0,                  // duration, unit is second\n                    sprite.GetPosition(), // start position\n                    touch.GetLocation(),  // end position\n                    dora.EaseOutBack,     // easing function\n                ), false)\n            })\n        }\n        ```\n\n    - Build it into WASM file.\n\n      ```sh\n      wa build -optimize\n      ```\n\n    - Upload it to engine to run. From Dora SSR Web IDE, Open the right-click menu of the game resource tree on the created folder `Hello`. Click on the menu item `Upload` and choose the compiled WASM file named `output/init.wasm` to upload.\n\n    - Or use the helper script [upload.py](upload.py) with commad `python3 upload.py 192.168.3.1 Hello` inside your Wa project folder to upload WASM file. The IP address is the Dora SSR Web IDE address.\n\n3. Step 3: Run the game\n\n    Click the `🎮` icon in the lower right corner of the editor, then click the menu item `Run`. Or press the key combination `Ctrl + r`.\n\n4. Step 4: Publish the game\n\n    - Open the right-click menu of the project folder just created through the game resource tree on the left side of the editor and click the `Download` option.\n\n    - Wait for the browser to pop up a download prompt for the packaged project file.\n\n## Documentation\n\n- [Dora SSR Documentation](https://github.com/ippclub/dora-ssr)\n- [Wa-lang Documentation](https://wa-lang.org)\n\n## Development Status\n\nThis project is currently in development as both Wa-lang and Dora SSR are evolving. Wa-lang is in its engineering trial stage, and we're actively working on expanding the integration capabilities.\n\n## Contributing\n\nContributions are welcome! Whether you're interested in:\n\n- Improving language bindings\n- Adding new features\n- Creating examples\n- Fixing bugs\n- Improving documentation\n\nPlease feel free to submit Pull Requests or open Issues.\n\n## License\n\nMIT\n\n## Contact\n\n- For Dora SSR related questions: [Dora SSR GitHub Issues](https://github.com/ippclub/dora-ssr)\n- For Wa-lang related questions: [Wa-lang GitHub Issues](https://github.com/wa-lang/wa)\n- For binding specific issues: Create an issue in this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fippclub%2Fdora-wa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fippclub%2Fdora-wa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fippclub%2Fdora-wa/lists"}