descriptionYet Another Open-Source Roguelike
homepage URLhttps://github.com/swashdev/SwashRL
ownerswashdev@pm.me
last changeFri, 11 Sep 2020 22:28:54 +0000 (11 17:28 -0500)
content tags
add:
README.md

SwashRL

Readme file, last updated 2020-03-20 21:09 CST
Contact the maintainer: <swashdev@pm.me>


A typical game of SwashRL on startup

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.

Compiling

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.

Accessibility Options

At compile-time, certain features can be activated which allow for greater accessibility in the program.

Dyslexia-Friendly Font

For the benefit of dyslexic users who find the default font difficult to read, the OpenDyslexic Mono font has been included. If configured to do so, SwashRL will use this font for all SDL interfaces. The font will also be increased slightly in size to make it easier to read.

A screenshot showing SwashRL using the OpenDyslexic Mono font

The easiest way to compile the program with this font activated is to set the DYSLEXIA variable in config.d to true.

If you would like to fine-tune this configuration option, you can instead edit the FONT and MESSAGE_FONT variables in global.d and adjust the font size with the TILE_WIDTH and TILE_HEIGHT options.

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.

Contributing

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.

Careware

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.

NOTE: I (Philip Pavlick) DO NOT REPRESENT, NOR AM I AFFILIATED WITH EITHER OF THESE ORGANIZATIONS, AND I AM NOT RECEIVING ANY SPONSORSHIP FROM THEM. THE VIEWS EXPRESSED IN THIS LETTER ARE MY OWN AND DO NOT REFLECT THOSE OF ANY OTHER CONTRIBUTOR TO THE SOFTWARE, NOR THOSE OF THESE ORGANIZATIONS NAMED IN THIS LETTER.

shortlog
2020-09-11 Philip Pavlickfinalize revision 0.032masterv0.032
2020-09-11 Philip Pavlickupdate the dedications in the thank-you file.
2020-09-11 Philip Pavlickupdate changelog to reflect recent changes.
2020-09-11 Philip Pavlickset last compatible version to 0.032
2020-09-11 Philip Pavlickincrement the version number for revision 0.032
2020-09-11 Philip Pavlickrewrite save & load functions for modularity
2020-09-11 Philip PavlickMerge branch 'feature-colors' into dev
2020-09-11 Philip Pavlickadd snowy colors to the color test screen
2020-09-11 Philip Pavlickadd colors for snowy environments
2020-09-11 Philip Pavlickadd missing colors to the color test screen
2020-09-11 Philip Pavlickremove the "paper" color.
2020-09-11 Philip Pavlickadd a command-line call for the color test screen
2020-09-11 Philip Pavlickcorrect another typo in color_test_screen
2020-09-11 Philip Pavlickmake color_test_screen final
2020-09-11 Philip Pavlickcorrect a missing comma in color_test_screen
2020-09-11 Philip Pavlickadd a color test screen
...
tags
3 years ago v0.032 Revision 0.032
4 years ago v0.031-christmas-update Revision 0.031 Christmas Update
4 years ago v0.031 Revision 0.031
4 years ago v0.030-1 Revision 0.030-1
4 years ago v0.030 Revision 0.030
5 years ago v0.029-1 Revision 0.029-1
5 years ago v0.029 Revision 0.029
5 years ago v0.028 Revision 0.028
5 years ago v0.027 Revision 0.027
5 years ago v0.026 Revision 0.026
5 years ago v0.025 Revision 0.025
5 years ago v0.024 Development version 0.024
6 years ago v0.023 Version 0.023
6 years ago v0.022 Version 0.022
heads
3 years ago dev
3 years ago branch-readme
3 years ago master
4 years ago spring-cleaning