~octaspire/crates2

ref: 26be0b8195b59e99cb871aded46d2a2f1c176da2 crates2/README.org -rw-r--r-- 2.3 KiB
26be0b81octaspire Fix peeking and turnstiles, add :restart and level 6 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#+TITLE: Crates 2 - Puzzle Game

* About

~crates2~ is a WIP puzzle game. More information
is to be added.

*Please note that this is still Work In Progress.*

* Getting Started

Prerequisites:

At this stage: =Common Lisp= implementation (tested with SBCL), =Quicklisp= and =make=.

Get sources and build by issuing commands:

#+begin_src shell
git clone https://github.com/octaspire/crates2.git
cd crates2
make
#+end_src

If you haven't cloned into directory that is known
to Quicklisp, you can tell about it by linking
or copying file ~etc/crates2.conf~ to
~$HOME/.config/common-lisp/source-registry.conf.d/crates2.conf~.
But please note, that the path given in that file probably
has to be changed to match the location of the cloned directory
on your machine.

You can also build and run by issuing command:

#+begin_src shell
make run
#+end_src

** Platform Specific Notes

*** OpenBSD

To use crates2 in OpenBSD without Common Lisp REPL - i.e. by running the generated
=crates2= executable directly - the =crates2= executable must be first
copied into ~/usr/local/bin~. This is because of the ~W^X~ protection
that OpenBSD uses. Command ~make run~ does this automagically in =OpenBSD=,
if file ~/etc/doas.conf~ has a line:

#+begin_src shell
permit nopass USERNAME as root cmd /bin/cp args crates2 /usr/local/bin/
#+end_src

where ~USERNAME~ is your username. If you are getting error message

#+begin_src shell
RWX mmap not supported, is the current filesystem mounted with wxallowed?
#+end_src

in OpenBSD, then copying the executable to ~/usr/local/bin~ should fix the issue.

* Development

GNU Emacs with slime, having crates2 loaded,
can be launched by issuing the following command:

#+begin_src shell
make slime
#+end_src

* License

#+begin_example
   Octaspire Crates 2 - Puzzle Game
   Copyright 2020 octaspire.com

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
#+end_example