{"id":15582004,"url":"https://github.com/deciduously/impact","last_synced_at":"2026-03-10T15:04:04.493Z","repository":{"id":38334150,"uuid":"132355566","full_name":"deciduously/impact","owner":"deciduously","description":"Slow-paced incremental game skeleton in Yew","archived":false,"fork":false,"pushed_at":"2023-01-20T22:26:55.000Z","size":381,"stargazers_count":12,"open_issues_count":7,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-24T02:52:38.786Z","etag":null,"topics":["game","incremental-game","rust","rust-wasm","rust-yew","stdweb","wasm","yew"],"latest_commit_sha":null,"homepage":"https://deciduously.github.io/impact/","language":"Rust","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/deciduously.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}},"created_at":"2018-05-06T16:17:15.000Z","updated_at":"2023-09-14T23:45:07.000Z","dependencies_parsed_at":"2023-02-12T06:00:28.278Z","dependency_job_id":null,"html_url":"https://github.com/deciduously/impact","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deciduously%2Fimpact","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deciduously%2Fimpact/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deciduously%2Fimpact/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deciduously%2Fimpact/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deciduously","download_url":"https://codeload.github.com/deciduously/impact/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250552036,"owners_count":21449162,"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":["game","incremental-game","rust","rust-wasm","rust-yew","stdweb","wasm","yew"],"created_at":"2024-10-02T20:00:30.102Z","updated_at":"2026-03-10T15:03:59.451Z","avatar_url":"https://github.com/deciduously.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# impact\nAn incremental game skeleton. Very much WIP.\n\nIt's incremental, but not realtime.  For now, a second passes each time an Action happens, which is not ideal...bulk actions will take way too long.  Eventually I will fine tune this so that each action has a duration, meaning adding messages to the console won't clog it up.\n\n![screenhot](https://i.imgur.com/siTfdFc.png).\n\nPlay the first thrilling 30 seconds [here](http://deciduously.com/impact).\n\n## Requirements\n\n* [Rust](https://www.rust-lang.org/en-US/) 2018 with the `wasm32-unknown-unknown` target.\n* [cargo-web](https://github.com/koute/cargo-web)\n* [NPM/Node](https://nodejs.org/en/download/)\n\nYou can use stable rust and Emscripten/asmjs but do you really *want* to?\n\n## Usage\n\n* `yarn clean` - Clean build artifacts.\n* `yarn dev` - Start a development server on `localhost:8000` and watch for changes to either Rust or SCSS.\n* `yarn prod` - Build a production bundle at `release/` and serve on `localhost:8080`.\n\nNote - the `wasm32-unknown-unknown` target does not currently support debug builds, so the dev server runs a release build of the rust code.  For now, the only difference with with the production build is the JS minifier (negligible gain) and lack of hot reloading.\n\n## Crates\n\n* [stdweb](https://github.com/koute/stdweb) - DOM manipulation\n* [yew](https://github.com/DenisKolodin/yew) - Client-side Rust-\u003eWasm framework.  A little Elm-ish, a litte React-ish, a lot experimental\n\n## Acknowledgements\n\nMany thinks to [OvermindDL1](https://github.com/overminddl1)'s [blog series](http://blog.overminddl1.com/tags/overbots/).  A lot of this is similar to his OCaml structure where applicable, and going through that tutorial gave me the idea and structure to even attempt this.  The SCSS scripts and flexbox setup are his until I tackle my own.  While I decided not to go with realtime incremental for this project the basic engine is very similar to his Overbots structure at least at this point in development, but, you know, in `yew`.  His [`bucklescript-tea`](https://github.com/OvermindDL1/bucklescript-tea) is also an amazing project and you should check it out!\n\nAlso of course the [yew examples](https://github.com/DenisKolodin/yew/tree/master/examples) were invaluable in overcoming the humps.  I'm still not positive I'm getting the event pattern down proper but time will tell!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeciduously%2Fimpact","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeciduously%2Fimpact","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeciduously%2Fimpact/lists"}