{"id":13436904,"url":"https://github.com/ozkriff/zemeroth","last_synced_at":"2025-05-14T22:09:35.986Z","repository":{"id":37587536,"uuid":"96989832","full_name":"ozkriff/zemeroth","owner":"ozkriff","description":"😠⚔️😈 A minimalistic 2D turn-based tactical game in Rust","archived":false,"fork":false,"pushed_at":"2024-03-26T19:07:25.000Z","size":2358,"stargazers_count":1431,"open_issues_count":91,"forks_count":91,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-05-14T14:20:38.000Z","etag":null,"topics":["2d","android","circleci","game","hexagonal","opengl","rust","strategy","tactics","travis-ci","turn-based","wasm","webassembly"],"latest_commit_sha":null,"homepage":"https://ozkriff.itch.io/zemeroth","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ozkriff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE-APACHE","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},"funding":{"patreon":"ozkriff"}},"created_at":"2017-07-12T09:28:19.000Z","updated_at":"2025-05-13T20:56:26.000Z","dependencies_parsed_at":"2024-03-26T20:26:52.140Z","dependency_job_id":null,"html_url":"https://github.com/ozkriff/zemeroth","commit_stats":{"total_commits":639,"total_committers":16,"mean_commits":39.9375,"dds":0.07511737089201875,"last_synced_commit":"455c8c82991b4bfc40fddf68f66f59d67d1641e1"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozkriff%2Fzemeroth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozkriff%2Fzemeroth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozkriff%2Fzemeroth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ozkriff%2Fzemeroth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ozkriff","download_url":"https://codeload.github.com/ozkriff/zemeroth/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254181900,"owners_count":22028223,"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":["2d","android","circleci","game","hexagonal","opengl","rust","strategy","tactics","travis-ci","turn-based","wasm","webassembly"],"created_at":"2024-07-31T03:00:52.913Z","updated_at":"2025-05-14T22:09:30.881Z","avatar_url":"https://github.com/ozkriff.png","language":"Rust","readme":"# ![title image](zemeroth.svg)\n\n[![Github Actions][img_gh-actions]][gh-actions]\n[![dependency status][img_deps-rs]][deps-rs]\n[![mit license][img_license]](#license)\n[![line count][img_loc]][loc]\n\n[img_license]: https://img.shields.io/badge/License-MIT_or_Apache_2.0-blue.svg\n[img_loc]: https://tokei.rs/b1/github/ozkriff/zemeroth\n[img_gh-actions]: https://github.com/ozkriff/zemeroth/workflows/CI/badge.svg\n[img_deps-rs]: https://deps.rs/repo/github/ozkriff/zemeroth/status.svg\n\n[loc]: https://github.com/Aaronepower/tokei\n[gh-actions]: https://github.com/ozkriff/zemeroth/actions?query=workflow%3ACI\n[deps-rs]: https://deps.rs/repo/github/ozkriff/zemeroth\n\nZemeroth is a turn-based hexagonal tactical game written in [Rust].\n\n[Rust]: https://www.rust-lang.org\n\n**Support**: [**patreon.com/ozkriff**](https://patreon.com/ozkriff)\n\n**News**: [@ozkriff on twitter](https://twitter.com/ozkriff) |\n[ozkriff.games](https://ozkriff.games) |\n[facebook](https://fb.com/ozkriff.games) |\n[devlog on imgur](https://imgur.com/a/SMVqO)\n\n## Online Version\n\nYou can play an online WebAssembly version of Zemeroth at\n[ozkriff.itch.io/zemeroth](https://ozkriff.itch.io/zemeroth)\n\n## Precompiled Binaries\n\nPrecompiled binaries for Linux, Windows and macOS:\n[github.com/ozkriff/zemeroth/releases](https://github.com/ozkriff/zemeroth/releases)\n\n## Screenshots\n\n![\"big\" screenshot](https://i.imgur.com/iUkyqIq.png)\n\n![\"campaign\" screenshot](https://i.imgur.com/rQkH5y2.png)\n\n![web version of a phone](https://i.imgur.com/cviYFkY.jpg)\n\n## Gifs\n\n![main gameplay animation](https://i.imgur.com/HqgHmOH.gif)\n\n## Videos\n\n[youtube.com/c/andreylesnikov/videos](https://youtube.com/c/andreylesnikov/videos)\n\n## Vision\n\n[The initial vision](https://ozkriff.github.io/2017-08-17--devlog/index.html#zemeroth)\nof the project is:\n\n- Random-based skirmish-level digital tabletop game;\n- Single player only;\n- 3-6 fighters under player’s control;\n- Small unscrollable maps;\n- Relatively short game session (under an hour);\n- Simple vector 2d graphics with just 3-5 sprites per unit;\n- Reaction attacks and action’s interruption;\n- Highly dynamic (lots of small unit moves as a side effect of other events);\n- Intentionally stupid and predictable AI;\n\n## Roadmap\n\n- [ ] Phase One: Linear Campaign Mode\n\n  An extended prototype focused just on tactical battles.\n\n  - [x] [v0.4](https://github.com/ozkriff/zemeroth/projects/1)\n    - [x] Basic gameplay with reaction attacks\n    - [x] Minimal text-based GUI\n    - [x] Basic agent abilities: jumps, bombs, dashes, etc\n  - [x] [v0.5](https://github.com/ozkriff/zemeroth/projects/2)\n    - [x] Basic campaign mode\n    - [x] Armor and Break stats ([#70](https://github.com/ozkriff/zemeroth/issues/70))\n    - [x] Dynamic blood splatters ([#86](https://github.com/ozkriff/zemeroth/issues/86))\n    - [x] Web version\n    - [x] Tests\n    - [x] Hit chances\n  - [x] [v0.6](https://github.com/ozkriff/zemeroth/projects/3)\n    - [x] Agent upgrades ([#399](https://github.com/ozkriff/zemeroth/issues/399))\n    - [x] Flip agent sprites horizontally when needed ([#115](https://github.com/ozkriff/zemeroth/issues/115))\n    - [x] Multiple sprites per agent type ([#114](https://github.com/ozkriff/zemeroth/issues/114))\n  - [ ] GUI icons ([#276](https://github.com/ozkriff/zemeroth/issues/276))\n  - [ ] Sound \u0026 Music ([#221](https://github.com/ozkriff/zemeroth/issues/221))\n  - [ ] Reduce text overlapping ([#214](https://github.com/ozkriff/zemeroth/issues/214))\n  - [ ] Move back after a successful dodge ([#117](https://github.com/ozkriff/zemeroth/issues/117))\n  - [ ] Easing ([#26](https://github.com/ozkriff/zemeroth/issues/26))\n  - [ ] Path selection ([#280](https://github.com/ozkriff/zemeroth/issues/280),\n    [#219](https://github.com/ozkriff/zemeroth/issues/219))\n  - [ ] Intermediate bosses\n  - [ ] Main boss\n  - [ ] Neutral agents ([#393](https://github.com/ozkriff/zemeroth/issues/393))\n  - [ ] Weight component ([#291](https://github.com/ozkriff/zemeroth/issues/291))\n  - [ ] Basic inventory system: slots for artifacts\n  - [ ] Ranged units\n  - [ ] More agent types\n  - [ ] More passive abilities that allow agents to make actions\n    during enemy's turn\n    ([#354](https://github.com/ozkriff/zemeroth/issues/354))\n  - [ ] More complex multieffect abilities/actions\n  - [ ] Guide ([#451](https://github.com/ozkriff/zemeroth/issues/451))\n  - [ ] Save/load ([#28](https://github.com/ozkriff/zemeroth/issues/28))\n  - [ ] Android version\n\n- [ ] Phase Two: Strategy Mode\n\n  A not-so-linear strategic layer will be added on top of tactical battles.\n  Simple non-linear story and meta-gameplay.\n\n  - [ ] Global map\n  - [ ] Dialog system\n  - [ ] Quest system\n  - [ ] NPC/Agent/Masters system\n\n## Inspiration\n\nTactical battle mechanics are mostly inspired by these games:\n\n- [ENYO](https://play.google.com/store/apps/details?id=com.tinytouchtales.enyo)\n- [Hoplite](https://play.google.com/store/apps/details?id=com.magmafortress.hoplite)\n- [Into the Breach](https://store.steampowered.com/app/590380/Into_the_Breach)\n- [Banner Saga](https://store.steampowered.com/app/237990/The_Banner_Saga)\n  (Survival Mode)\n- [Auro](https://store.steampowered.com/app/459680/Auro_A_MonsterBumping_Adventure)\n- [Minos Strategos](https://store.steampowered.com/app/577490/Minos_Strategos)\n- [Battle Brothers](https://store.steampowered.com/app/365360/Battle_Brothers)\n\n## Building from Source\n\nInstall all [miniquad's system dependencies][mq_sys_deps].\n\n```bash\ncargo install resvg\n./utils/assets_export.sh\ncargo run\n```\n\n[mq_sys_deps]: https://github.com/not-fl3/miniquad/tree/b8c347b1bbuilding-examples\n\n## WebAssembly\n\n```bash\ncargo install resvg\n./utils/assets_export.sh\nrustup target add wasm32-unknown-unknown\n./utils/wasm/build.sh\ncargo install basic-http-server\nbasic-http-server static\n```\n\nThen open `http://localhost:4000` in your browser.\n\n## Dependencies\n\nThe key external dependency of Zemeroth is [macroquad]/[miniquad].\n\nThis repo contains a bunch of helper crates:\n\n- [zcomponents] is a simple component storage\n- [zgui] is a simple and opinionated GUI library\n- [zscene] is a simple scene and declarative animation manager\n\nAlso, [resvg] is used for exporting sprites from svg.\n\n[macroquad]: https://github.com/not-fl3/macroquad\n[miniquad]: https://github.com/not-fl3/miniquad\n[zcomponents]: ./zcomponents\n[zscene]: zscene\n[zgui]: zgui\n[resvg]: https://github.com/RazrFalcon/resvg\n\n## Contribute\n\nIf you want to help take a look at issues with `help-wanted` label attached:\n\n[github.com/ozkriff/zemeroth/labels/help-wanted](https://github.com/ozkriff/zemeroth/labels/help-wanted)\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license,\nshall be dual licensed as above, without any additional terms or conditions.\n\n## License\n\nZemeroth is distributed under the terms of both\nthe MIT license and the Apache License (Version 2.0).\nSee [LICENSE-APACHE] and [LICENSE-MIT] for details.\n\nZemeroth's text logo is based on the \"Old London\" font\nby [Dieter Steffmann](http://www.steffmann.de).\n\n[LICENSE-MIT]: LICENSE-MIT\n[LICENSE-APACHE]: LICENSE-APACHE\n","funding_links":["https://patreon.com/ozkriff"],"categories":["应用","Applications","Rust","应用程序 Applications","Games","应用 Applications"],"sub_categories":["Games","游戏 Games","Games: On top of macroquad","游戏"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozkriff%2Fzemeroth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fozkriff%2Fzemeroth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fozkriff%2Fzemeroth/lists"}