Skip to content

A simple Roguelike, made for the Athena Award

License

Notifications You must be signed in to change notification settings

transdryad/RougeLand

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b76977f · · Sep 22, 2025

History

83 Commits
Sep 21, 2025
Sep 21, 2025
Sep 21, 2025
Sep 21, 2025
Sep 22, 2025
Sep 20, 2025
Sep 21, 2025

Repository files navigation

RougeLand

Athena Award Badge

RougeLand is a simple, minimalism roguelike game. There are monsters to fight, loot to gather, and potions to increase your health. In an infinite dungeon, what more could you want?

For controls, it uses WASD and QEZC for diagonals (assumes US layout).

Explanation of Tiles

"#" - Wall

" " - Empty/Unexplored

"^" - Helmet

"!" - Sword

"o" - Orc/Enemy

'lightbulb' - Health Potion

Installation

If available, download the appropriate zip file from releases. Unzip, and the executable is within the build folder. DO NOT MOVE IT. Unfortunately, Windows users will need to download and install the latest approriate C++ runtime, and follow the instructions here.

Launch the executable from the main rougeland directory with .\build\RougeLand-x.x.x.exe or ./build/RougeLand-x.x.x

To compile from source:

RougeLand requires SDL3, ZLIB, Meson, CMake, and a C++ compiler & standard library to be installed and available on the system for compilation. I used the instructions ons here. Clone this git repo, and then cd into it in the terminal. Biuld file adjust may be necessary depending on your setup..

meson setup --prefer-static --default-library=static build
meson compile -v -C buildd

Once compilation completes, the executable will be located inside the build folder, and be named RougeLand.

Why

I made RougeLand to gain experiece with C++ and game development, and to do so in a graphically unintensive way.

How

RougeLand relys on three main libraries: libTCOD for rendering, fmt for formatting strings, and spdlog for logging. I made it over the course of several months, working on and off. It was made almost entirely in NeoVim, and uses object-oriented C++. I chose meson for the build system for its simplicity and interoperability. The spritesheet was taken from a list of alternative free spritesheets for dwarf fortress.

Reflection

During this project, I often struggled with memory usage. I had a lot of segfaults. However, I now feel mostly confident in the C++ language, even if I'm not fully versed in the specifics or the standard library.