- Rust 100%
|
|
||
|---|---|---|
| fonts/germania-one | ||
| lib | ||
| maps | ||
| models | ||
| sounds | ||
| src | ||
| textures | ||
| trenchbroom | ||
| .gitignore | ||
| .rustfmt.toml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
Abyssal Fortess: Escape from the Necromancer's Hold
In its current state, this game is a first-person shooter where the player is equipped with a bow and arrow, and they make their way through a castle inhabited by skeletons, who attack the player on sight. The player can also discover a fire arrow, which can help them in combat, and find secret passages to progress through the game.
This game was originally made for the Fundamentals of Game Development course in Summer 2022 for LUT university.
I have plans for continuing this project, improving and extending it in new mechanics, levels, arrows and better graphics. Remains to be seen if I start working on this again. At the very least I'd like to polish this to a standard where I'd release it on Itch. Currently it's in a bit of a state, a result of having to hurry up a bit during the last week of development during the course.
Building
This game is relatively easy to build: just run cargo build --release, and copy target/release/arrow-game[.exe] to another
directory, alongside with the maps, textures, models, and
sounds directories. The png, blend, and mdl files can be left out.
The hard part is some of the dependencies. Most of the dependencies are handled by Cargo, the Rust build tool, but some are picky, and need to be installed to the system itself.
Linux
The packages are for Debian Buster, the distribution I'm using to build the binaries.
- Rust (https://rustup.rs/)
- CMake (the
cmakepackage) - SDL2 development libraries (the
libsdl2-devpackage) - Vulkan development libraries (the
libvulkan-devpackage)
An easy way to get this environment is to use the Rust Docker images,
e.g. rust:1.62-buster, and build there. First, make the build
directory and start the container:
mkdir build
sudo docker run --rm --mount type=bind,src=$(pwd)/build,dst=/build -it rust:1.62-buster bash
Build the game (run these in the container):
apt update
apt install -y libsdl2-dev libvulkan-dev cmake
git clone https://git.neon.moe/neon/arrow-game/
cd arrow-game
cargo build --release
And package it up to the bound build directory (in the container as well):
apt install -y zip
cp target/release/arrow-game .
strip arrow-game
zip /build/arrow-game.zip \
arrow-game \
maps/* \
textures/*.ntex \
models/*.{gltf,bin} \
models/modeltextures/*.ntex \
sounds/*.wav
And exit the container if everything went well. Now you should have
a ready-to-distribute Linux build of the game in the build
directory.
Windows
- Rust (https://rustup.rs/)
- CMake (https://cmake.org/download/)
- Ninja (https://ninja-build.org/)
- SDL2 development libraries (https://libsdl.org/download-2.0.php)
- Vulkan SDK (https://vulkan.lunarg.com/sdk/home#windows)
License
You may do as you like with this repository, and the arrow-game
branch of neonvk, which is defined as a dependency in Cargo.toml,
under the terms of the GNU GPLv3 license.