A roguelike terminal game.
Small personal project.
It uses ncurses to provide text interface.
Here's a gif of a new game being started.
📦 v1.4.12 26/11/2024
I try to upload precompiled binaries for the ncurses
build:
-
x86_64-Linux
: download latest -
aarch64-Linux
(from Termux on Android). -
x86_64-w64-mingw32
(JUST A DEMO. Any help with debugging the full game is welcome.) : download latest (Available =1.4.8
) -
darwin-arm64
: download latest (Available =1.4.11
)- You should always check if the releases page has a newer build for you than the one linked here.
https://github.com/jgabaut/helapordo/releases
The source code should build for:
x86_64-Linux
aarch64-Linux
(see this section)aarch64-apple-darwin
Windows
(throughx86_64-w64-mingw32
)
DISCLAIMER: The Windows
ncurses build is proof-of-concept as:
- The gameplay loop is a simplified version of
Rogue
gamemode from the main build.- Work in progress on running the original gameloop.
Windows
terminal can't change its color pairs as far as I know, rendering it unsuitable for the game.- A solution to reject extra/modified colors could be implemented.
autoconf
andautomake
are needed to generate the Makefile used to compile the game.ncurses-dev
is needed as a library dependecy.python3
is needed to generate./src/palette.c
and./src/palette.h
.
You can initialise the submodules by running:
`git submodule update --init`
-
Some source files are expected to be generated at build time, by a symlink executable named
anvil
. -
This dependency can be disabled entirely by running
./configure --enable-anvil=no
- This can be useful when missing some of the required programs to bootstrap/use
anvil
. - See this section for info about generating the
./configure
script in the first place.
- This can be useful when missing some of the required programs to bootstrap/use
-
By default, the configuration will pick an implementation for
anvil
depending on passed host:darwin*
: default isrepo_invil
. This means you need the Rust build toolchain to be installed.linux*
,mingw*
: default isrepo_amboso
. This means you needbash >=4.x
, andgawk
.
-
To readily override the default implementation for
anvil
, you can pass--enable-anvilpick
to the./configure
script:./configure --enable-anvilpick
This will ensure you get an interactive prompt to pick an implementation (and can still use the default one by pressing Enter without typing anything), whenevermake
needs to create./anvil
. -
Needed programs, depending on chosen
ANVIL_IMPL
:gawk
is needed byamboso
to generate./src/anvil__helapordo.h
.bash >=4
is needed to runamboso
.- Unfortunately,
nawk
andmawk
are not compatible withamboso
.
- If you dont' have those, you can use
invil
to generate./src/anvil__helapordo.h
.- You will need
cargo
to buildinvil
.
- You will need
- If you want to just build the code without
./src/anvil__helapordo.h
., you can apply the patch file provided at this link.
You may need to run automake --add-missing
to ensure your system provides the missing files needed by autoreconf
.
Run autoreconf
to generate the ./configure
script. Run the script to generate the Makefile
used for the project.
After generating the ./configure
script, you may enable game debug mode by running:
`./configure --enable-debug=yes`
Which should prepare a Makefile
with the correct macro definitions to turn on game debug at compile time. To reset the Makefile
to release state, run:
`./configure --enable-debug=no`
If you're compiling without using autotools
, you may want to define the compiler macros:
-DHELAPORDO_DEBUG_LOG
(Enables debug logging)-DHELAPORDO_DEBUG_ACCESS
(Enables the -d flag to turn on debug mode)-DKLS_DEBUG_CORE
(Enables debugging forKoliseo
funcalls)
After generating the ./configure
script, you may switch target host and use mingw32
with:
`./configure --host x86_64-w64-mingw32`
Which should prepare a Makefile
with the correct macro definitions. To reset the Makefile
to release state, run:
`./configure --host $(./config.guess)`
You may need to correct the configure.ac
flags if your installation does not have the expected layout, providing the correct paths for:
mingw32
'slib
andinclude
dirs, forncursesw
mingw32
's correctgcc
.
Preprocessor macros based on the Makefile
passing -DWINDOWS_BUILD
are present to enable/disable Windows
specific code.
Once you have the Makefile
, you can compile the project by running, in its directory:
`make`
The build chain expects some files to be generated from already given ones.
If you want to build without using make
, you can see in the Makefile.am
how to generate ./src/palette.c
, ./src/palette.h
, ./src/anvil__helapordo.c
and ./src/anvil__helapordo.h
You can have a look at the CLI syntax with:
`./helapordo -h`
You can install the game at ~/helapordo-local
and have a working alias for your PATH by running:
`make install`
`make do_alias`
The second command needs root privileges to symlink ~/helapordo-local/helapordo
to /usr/local/bin/helapordo
.
You can skip the alias and maybe add the helapordo-local
dir to your PATH instead.
HTML docs are available at this Github Pages link.
You can also get the ready pdf version of the docs from the latest release.
If you have doxygen
installed you can generate the HTML yourself, or even the pdf if you have doxygen-latex
or equivalents.
You if you have those packages, running make doc
should give you ./docs/docs.pdf
, just the pdf output from latex, and delete the doxygen folder by itself.