No description
Find a file
2022-07-31 01:56:08 +03:00
fonts/germania-one
lib
maps Add diffuse lights 2022-07-25 06:28:52 +03:00
models Replace color factors in models with textures 2022-07-28 03:14:32 +03:00
sounds Add victory and defeat screens, save and load sfx 2022-07-24 19:34:39 +03:00
src Replace color factors in models with textures 2022-07-28 03:14:32 +03:00
textures Add castle hallways detail 2022-07-25 02:25:30 +03:00
trenchbroom Add diffuse lights 2022-07-25 06:28:52 +03:00
.gitignore Fix many small issues 2022-07-25 04:01:39 +03:00
.rustfmt.toml
Cargo.lock Fix many small issues 2022-07-25 04:01:39 +03:00
Cargo.toml Fix many small issues 2022-07-25 04:01:39 +03:00
LICENSE Add readme, license 2022-07-30 13:59:00 +03:00
README.md Add detailed linux build instructions 2022-07-31 01:56:08 +03:00

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 cmake package)
  • SDL2 development libraries (the libsdl2-dev package)
  • Vulkan development libraries (the libvulkan-dev package)

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

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.