This is my project for playing with some Rust, an entity-component system (ECS) library.
-
Amethyst game engine.
- This Rustconf keynote was a fascinating introduction to ECS.
-
Textured 3D model.
-
The texture can be replaced (e.g. for unit's team colour).
-
The controls can move this model around.
-
-
A spritesheet-tiled plane.
-
A very simple main menu.
For running the application, with Nix Flakes:
nix run github:rgoulter/amethyst-action-game-3d
or from the repository root:
nix run
On non-NixOS, it's somewhat more involved.
NixGL can be used to run the program.
So, with a fresh install of Nix the command to run the program is:
nix run github:guibou/nixGL#nixVulkanIntel \
--no-write-lock-file \
env LD_LIBRARY_PATH="" \
nix run github:rgoulter/amethyst-action-game-3d
With direnv and Nix Flakes, the .envrc
uses
nix-direnv to load
the development dependencies. Then run e.g.:
cargo build
Using Nix, e.g., can open nix-shell
, then
development can be done with:
nix-shell$ cargo build
Otherwise, dependencies as per amethyst/amethyst.