Yet another open-source Rougelike.
add Bad Diode to the "further thanks" section.
mark version 0.035 as finalized.
update the screenshot in the readme for 0.035.



You can also use your local clone with git send-email.


Readme file, last updated 2021-04-13 17:58 CDT
Contact the maintainer: swashdev@pm.me

A typical game of SwashRL in progress

SwashRL is a Roguelike game currently in the early development phases. The actual "game" part is not yet functional, as it's still in need of a few important pieces.

As the software is still under development and has not seen an official release, it currently has NO DOCUMENTATION, save for that mentioned in this file.

SwashRL currently has git respositories hosted at the following locations:

If you're reading this Markdown file in a text editor or other program that doesn't display hyperlinks, links to files or web pages referenced in this document can be found at the bottom.

#Table of Contents

#License Agreement

SwashRL is released under the BSD 3-clause "New" or "Revised" License, a simple open-source license which allows for free use in exchange for retaining the original license with all source distributions and not misrepresenting the authors as endorsing the software.

SwashRL uses some third-party resources to function. For details, see the acknowledgement file and the third-party licenses referenced therein.

#Supported Systems

SwashRL was originally written for Linux, and is currently only being maintained for Linux. Previously, development versions have also been produced for Windows, but unfortunately I currently do not have access to a Windows computer, and I can not support the game on systems which I do not have access to.

If you'd like to become a volunteer maintainer for SwashRL on your system, contact me and I might be able to add you to the GitHub repository as a collaborator.


Starting with version 0.022, SwashRL has been programmed in D. This means you'll need DmD or some other D compiler, but if you also get dub, the D package manager, it will do a lot of your work for you including downloading dependencies.

You can make some changes to how SwashRL is configured by editing the file config.d. This file has a lot of comment blocks which explain how to configure SwashRL. These configuration settings will be interpreted in global.d.

To compile, navigate to the root folder (the same folder this readme file is in) and type:

dub build

You'll need to be connected to the Internet the first time you compile so that dub can download the packages that it needs.

By default, SwashRL will compile with SDL. However, you can also compile with ncurses by using dub's --config flag, and even compile with only ncurses, by using one of the following commands:

dub build --config ncurses
dub build --config ncurses-nosdl

You can also compile with PDCurses, which is compatible with Windows, using one of the following commands:

dub build --config pdcurses
dub build --config pdcurses-nosdl

If you're compiling from a git repository, your compiled SwashRL will include the current commit ID when asked for its version number. If you are not compiling from a git repository, you'll have to edit config.d and set the INCLUDE_COMMIT flag to false, otherwise it will not compile.

If you're not sure whether or not your source code is in a git repository, check and see if there's a .git directory in this folder. If there isn't, you can get the up-to-date source repository from our GitHub page.

For more information about git, check out the git website.

#Compiling for Derivatives

There are a few things to note if you want to use the SwashRL source code to make your own game. First of all, the BSD 3-clause License is very permissive, and unlike the GNU GPL and other copyleft licenses you absolutely can commercially exploit SwashRL without having to release your source code. This is not an oversight; I have intentionally licensed SwashRL to allow you to do this. However, you must retain all copyright notices, attribution notices, etcetera.

Secondly, you'll have to change the name of the program. I've made this very easy to do. It only requires two steps:

  1. Edit the file dub.json so that the "name" field has been changed to the name of your executable file (i.e., instead of saying "name": "swashrl", it will say "name": "yourname",; do not include the .exe)

    1. You should also modify the "authors" and "copyright" fields to reflect your copyright information, and the "license" field if you choose to relicense it. For more information about the dub.json file, see the Dlang JSON file documentation.
  2. Edit the file global.d so that the "NAME" enum will be the name of your program (i.e. instead of saying enum NAME = "SwashRL"; it will say enum NAME = "Your Game's Name";)

Third and finally, be aware that SwashRL is not the only licensed product you will be interacting with, and there are a few other licenses that you'll have to comply with, as noted in the acknowledgement file.

#Change Logs

For all of your change logging needs, see changes.txt. For those interested, there's also a more in-depth history of the project being recorded on the website.


If you're thinking of making a contribution to the SwashRL project, first of all thank you very much! We now have contribution guidelines to help you get started.

The best way to contribute to SwashRL is via our GitHub page, where you can follow the conversation and see where we need help.


If you like the SwashRL project and would like to support me, you are encouraged but not required to help me in a personal quest of mine by making a donation to a nonprofit organization. ForeGen is a medical resarch project that is helping to study and put into practice regenerative medicine beginning with the regeneration of amputated foreskins. This approach to regenerative medicine is not only a simple way to begin putting this research into practice; it will also help men who had their genitals cut against their will as children regain their genital integrity and help them cope with their lost bodily autonomy by putting them back in control over their own bodies. With time this research can do a lot of good in the immediate sense, but can also be expanded into bigger and better uses of this blossoming technology.

If you need further information on why this is important, I suggest visiting the Doctors Opposing Circumcision website, where you will find a plethora of information about why circumcision and other forms of genital cutting are harmful, as well as resources on how to deal with the trauma that often comes as a result of the procedure. I encourage you to donate to them as well, as they are doing good work.

Links to these organizations can be found below, and DOC also includes a page where you can find similar nonprofit organizations in countries nearer to you.