finalize revision 0.032
[SwashRL.git] / README.md
blob25a454b6657493a6fc96883bc5649a17c0d99630
1 SwashRL
2 =======
4 Readme file, last updated 2020-03-20 21:09 CST  
5 Contact the maintainer: <swashdev@pm.me>
7 ---
9 ![A typical game of SwashRL on startup](docs/images/screenshot.png)
11 SwashRL is a Roguelike game currently in the early development phases.  The
12 actual "game" part is not yet functional, as it's still in need of a few
13 important pieces.
15 As the software is still under development and has not seen an official
16 release, it currently has NO DOCUMENTATION, save for that mentioned in this
17 file.
19 SwashRL currently has git respositories hosted at the following locations:
21 * <https://github.com/swashdev/SwashRL>
23 * <https://repo.or.cz/SwashRL.git>
25 * <https://github.com/swashdev/swash-tentative> (an additional repo used for
26   sketches and note-taking)
28 If you're reading this Markdown file in a text editor or other program that
29 doesn't display hyperlinks, links to files or web pages referenced in this
30 document can be found at the bottom.
32 ## Table of Contents
34 * [License Agreement](#license-agreement)
36 * [Supported Systems](#supported-systems)
38 * [Compiling](#compiling)
40   * [Accessibility Options](#accessibility-options)
42   * [Compiling for Derivatives](#compiling-for-derivatives)
44 * [Change Logs](#change-logs)
46 * [Contributing](#contributing)
48 * [Careware](#careware)
50 ## License Agreement
52 SwashRL is released under [the BSD 3-clause "New" or "Revised" License], a
53 simple open-source license which allows for free use in exchange for retaining
54 the original license with all source distributions and not misrepresenting the
55 authors as endorsing the software.
57 SwashRL uses some third-party resources to function.  For details, see
58 [the acknowledgement file] and the third-party licenses referenced therein.
60 ## Supported Systems
62 SwashRL was originally written for Linux, and is currently only being
63 maintained for Linux.  Previously, development versions have also been
64 produced for Windows, but unfortunately I currently do not have access to a
65 Windows computer, and I can not support the game on systems which I do not
66 have access to.
68 If you'd like to become a volunteer maintainer for SwashRL on your system,
69 [contact me] and I might be able to add you to the GitHub repository as a
70 collaborator.
72 ## Compiling
74 Starting with version 0.022, SwashRL has been programmed in D.  This means
75 you'll need [DmD] or some other D compiler, but if you also get [dub], the D
76 package manager, it will do a lot of your work for you including downloading
77 dependencies.
79 You can make some changes to how SwashRL is configured by editing the file
80 [config.d].  This file has a lot of comment blocks which explain how to
81 configure SwashRL.  These configuration settings will be interpreted in
82 [global.d].
84 To compile, navigate to the root folder (the same folder this readme file is
85 in) and type:
87 > `dub build`
89 You'll need to be connected to the Internet the first time you compile so that
90 dub can download the packages that it needs.
92 By default, SwashRL will compile with SDL.  However, you can also compile
93 with ncurses by using dub's `--config` flag, and even compile with _only_
94 ncurses, by using one of the following commands:
96 > `dub build --config ncurses`  
97 > `dub build --config ncurses-nosdl`  
99 You can also compile with PDCurses, which is compatible with Windows, using
100 one of the following commands:
102 > `dub build --config pdcurses`  
103 > `dub build --config pdcurses-nosdl`
105 If you're compiling from a git repository, your compiled SwashRL will include
106 the current commit ID when asked for its version number.  If you are _not_
107 compiling from a git repository, you'll have to edit [config.d] and set the
108 `INCLUDE_COMMIT` flag to `false`, otherwise it will not compile.
110 If you're not sure whether or not your source code is in a git repository,
111 check and see if there's a `.git` directory in this folder.  If there isn't,
112 you can get the up-to-date source repository from
113 [our GitHub page].
115 For more information about git, check out [the git website].
117 ### Accessibility Options
119 At compile-time, certain features can be activated which allow for greater
120 accessibility in the program.
122 #### Dyslexia-Friendly Font
124 For the benefit of dyslexic users who find the default font difficult to
125 read, the [OpenDyslexic] Mono font has been included.  If configured to do
126 so, SwashRL will use this font for all SDL interfaces.  The font will also
127 be increased slightly in size to make it easier to read.
129 ![A screenshot showing SwashRL using the OpenDyslexic Mono font](docs/images/screenshot-opendyslexic.png)
131 The easiest way to compile the program with this font activated is to set the
132 `DYSLEXIA` variable in [config.d] to `true`.
134 If you would like to fine-tune this configuration option, you can instead
135 edit the `FONT` and `MESSAGE_FONT` variables in [global.d] and adjust the
136 font size with the `TILE_WIDTH` and `TILE_HEIGHT` options.
138 ### Compiling for Derivatives
140 There are a few things to note if you want to use the SwashRL source code to
141 make your own game.  First of all, [the BSD 3-clause License] is very
142 permissive, and unlike the GNU GPL and other copyleft licenses you absolutely
143 can commercially exploit SwashRL without having to release your source code.
144 This is not an oversight; I have intentionally licensed SwashRL to allow you
145 to do this.  However, you _must_ retain all copyright notices, attribution
146 notices, etcetera.
148 Secondly, you'll have to change the name of the program.  I've made this very
149 easy to do.  It only requires two steps:
151 1. Edit the file [dub.json] so that the "name" field has been changed to the
152    name of your executable file (i.e., instead of saying `"name": "swashrl",`
153    it will say `"name": "yourname",`; do not include the `.exe`)
155    1. You should also modify the "authors" and "copyright" fields to reflect
156       your copyright information, and the "license" field if you choose to
157       relicense it.  For more information about the dub.json file, see
158       [the Dlang JSON file documentation].
160 2. Edit the file [global.d] so that the "NAME" enum will be the
161    name of your program (i.e. instead of saying `enum NAME = "SwashRL";` it
162    will say `enum NAME = "Your Game's Name";`)
164 Third and finally, be aware that SwashRL is not the only licensed product you
165 will be interacting with, and there are a few other licenses that you'll have
166 to comply with, as noted in [the acknowledgement file].
168 ## Change Logs
170 For all of your change logging needs, see [changes.txt].  For those
171 interested, there's also a more in-depth history of the project being recorded
172 [on the website].
174 ## Contributing
176 If you're thinking of making a contribution to the SwashRL project, first of
177 all thank you very much!  We now have [contribution guidelines] to help you
178 get started.
180 The best way to contribute to SwashRL is via [our GitHub page], where you can
181 follow the conversation and see where we need help.
183 ## Careware
185 If you like the SwashRL project and would like to support me, you are
186 encouraged but not required to help me in a personal quest of mine by making a
187 donation to a nonprofit organization.  ForeGen is a medical resarch project
188 that is helping to study and put into practice regenerative medicine beginning
189 with the regeneration of amputated foreskins.  This approach to regenerative
190 medicine is not only a simple way to begin putting this research into
191 practice; it will also help men who had their genitals cut against their will
192 as children regain their genital integrity and help them cope with their lost
193 bodily autonomy by putting them back in control over their own bodies.  With
194 time this research can do a lot of good in the immediate sense, but can also
195 be expanded into bigger and better uses of this blossoming technology.
197 If you need further information on why this is important, I suggest visiting
198 the Doctors Opposing Circumcision website, where you will find a plethora of
199 information about why circumcision and other forms of genital cutting are
200 harmful, as well as resources on how to deal with the trauma that often comes
201 as a result of the procedure.  I encourage you to donate to them as well, as
202 they are doing good work.
204 Links to these organizations can be found below, and DOC also includes a page
205 where you can find similar nonprofit organizations in countries nearer to you.
207 NOTE:  I (Philip Pavlick) DO NOT REPRESENT, NOR AM I AFFILIATED WITH EITHER OF
208 THESE ORGANIZATIONS, AND I AM NOT RECEIVING ANY SPONSORSHIP FROM THEM.  THE
209 VIEWS EXPRESSED IN THIS LETTER ARE MY OWN AND DO NOT REFLECT THOSE OF ANY
210 OTHER CONTRIBUTOR TO THE SOFTWARE, NOR THOSE OF THESE ORGANIZATIONS NAMED IN
211 THIS LETTER.
213 * <http://www.foregen.org/>
214 * <https://www.doctorsopposingcircumcision.org/>
216 [our GitHub page]: https://github.com/swashdev/SwashRL
217 [the BSD 3-clause "New" or "Revised" License]: LICENSE.txt
218 [the BSD 3-clause License]: LICENSE.txt
219 [the third-party file]: 3rdparty.txt
220 [the acknowledgement file]: 3rdparty.txt
221 [an issue]: https://github.com/swashdev/SwashRL/issues/2
222 [contact me]: mailto:swashdev@pm.me
223 [contribution guidelines]: docs/CONTRIBUTING.md
224 [config.d]: src/config.d
225 [global.d]: src/global.d
226 [OpenDyslexic]: https://opendyslexic.org/
227 [dub.json]: dub.json
228 [changes.txt]: docs/changes.txt
229 [on the website]: https://swash.link/history/
230 [DmD]: https://dlang.org/download.html
231 [dub]: https://code.dlang.org/download
232 [the git website]: https://git-scm.com/
233 [the Dlang JSON file documentation]: https://code.dlang.org/package-format?lang=json