Zemeroth is a turn-based hexagonal tactical game written in Rust.
You can play an online WebAssembly version of Zemeroth at ozkriff.itch.io/zemeroth
Precompiled binaries for Linux, Windows and macOS: github.com/ozkriff/zemeroth/releases
The initial vision of the project is:
- Random-based skirmish-level digital tabletop game;
- Single player only;
- 3-6 fighters under player’s control;
- Small unscrollable maps;
- Relatively short game session (under an hour);
- Simple vector 2d graphics with just 3-5 sprites per unit;
- Reaction attacks and action’s interruption;
- Highly dynamic (lots of small unit moves as a side effect of other events);
- Intentionally stupid and predictable AI;
Phase One: Linear Campaign Mode
An extended prototype focused just on tactical battles.
- Basic gameplay with reaction attacks
- Minimal text-based GUI
- Basic agent abilities: jumps, bombs, dashes, etc
- GUI icons (#276)
- Sound & Music (#221)
- Reduce text overlapping (#214)
- Move back after a successful dodge (#117)
- Easing (#26)
- Path selection (#280, #219)
- Intermediate bosses
- Main boss
- Neutral agents (#393)
- Weight component (#291)
- Basic inventory system: slots for artifacts
- Ranged units
- More agent types
- More passive abilities that allow agents to make actions during enemy's turn (#354)
- More complex multieffect abilities/actions
- Guide (#451)
- Save/load (#28)
- Android version
Phase Two: Strategy Mode
A not-so-linear strategic layer will be added on top of tactical battles. Simple non-linear story and meta-gameplay.
- Global map
- Dialog system
- Quest system
- NPC/Agent/Masters system
Tactical battle mechanics are mostly inspired by these games:
Building from Source
Install all miniquad's system dependencies.
# Clone this repo git clone https://github.com/ozkriff/zemeroth cd zemeroth # Assets are stored in a separate repo. # Zemeroth expects them to be in `assets` directory. git clone https://github.com/ozkriff/zemeroth_assets assets # Compile a release version (debug builds give low FPS at the moment) cargo build --release # Run it cargo run --release
rustup target add wasm32-unknown-unknown ./utils/wasm/build.sh cargo install basic-http-server basic-http-server static
http://localhost:4000 in your browser.
This repo contains a bunch of helper crates:
- zcomponents is a simple component storage
- zgui is a simple and opinionated GUI library
- zscene is a simple scene and declarative animation manager
If you want to help take a look at issues with
help-wanted label attached:
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Zemeroth's text logo is based on the "Old London" font by Dieter Steffmann.