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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
* Game
You play Nance, a homeless human on cold day in some bustling metropolis. Your
task is to stay warm and stay healthy.
People pass you by and you can ask them for a little change as the do. You
must walk up to them in order to ask! _But be careful!_ You don't want to bump
into anybody! Bumping into people is stressful, and besides, somebody might
call the cops.
Some people are jerks, so watch out - you don't want to get too stressed.
When you have enough money, you can go to the shop and buy coffee to warm you
up and chill you out a little. When you have a full pocket, you can buy
something to eat and advance to the next level.
** Controls
Use arrow keys to move.
Use the spacebar to ask people or to buy coffee or food when you're in front
of the shop's door.
* Building
So far I have built this using [[https://shinmera.github.io/deploy/][deploy]], which has worked quite well.
** Requirements
- [[https://www.libsdl.org/download-2.0.php][sdl2]]
- [[https://www.libsdl.org/projects/SDL_image/][sdl2-image]]
- [[https://github.com/thegoofist/animise][animise]]
- [[https://github.com/thegoofist/lettuce][lettuce]]
Ensure that [[https://www.libsdl.org/][sdl2]] is installed on your system and install [[http://quickdocs.org/cl-sdl2/][cl-sdl2]] and
[[http://quickdocs.org/cl-sdl2-image/][cl-sdl2-image]] via quicklisp.
[[https://github.com/thegoofist/animise][animise]] is a tweening library that, at the time of writing, is not fit for
stable release.
Clone animise into your =~/quicklisp/local-projects= and checkout commit
=aeb013df855052aec8a5199f82d9725be6d99c1b=.
[[https://github.com/thegoofist/lettuce][lettuce]] is just a file containing three macros that I end up using all the
time. I should probably get rid of it as a dependency b/c between
=alexandria= and =trivia= the functionality of =lettuce= is proably covered,
but ah well. Clone lettuce into your =local-projects= quicklisp directory.
Then clone the game's repo into =~/quicklisp/local-projects=.
** Linux
Once requirements are installed, building should be as simple as:
#+begin_src
$ cd ~/quicklisp/local-projects
$ sbcl
...
> (ql:quickload :the-price-of-a-cup-of-coffee)
> (asdf:make :the-price-of-a-cup-of-coffee)
$ ./bin/price-of-coffee
#+end_src
** Windows
To get this to work I had to use a modified version of =cl-sdl2= found in
[[https://github.com/lispgames/cl-sdl2/pull/123][this PR]]. After trying that fork, I found a format string bug in =render.lisp=
in the =cl-sdl2= source. So I made a change and committed it to [[https://github.com/thegoofist/cl-sdl2][another fork]].
You will need to clone [[https://github.com/thegoofist/cl-sdl2][my fork]] into =local-projects= and check out the branch
=price-of-coffee-windows-build-fork=.
I haven't been able to get the windows version to build with audio enabled,
so I made a git branch with the changes that helped me build this game on
windows. After cloning this repo into your =local-projects= directory within
the quicklisp root directory, checkout the =windows-build-mods= branch.
From within this directory, I did the following:
#+begin_src
# shell...
$ git checkout windows-build-mods
$ sbcl
;; Lisp REPL ...
> (ql:quickload :cffi)
> (pushnew #p"." cffi:*foreign-library-directories*)
> (ql:quickload :the-price-of-a-cup-of-coffee)
> (asdf:make :the-price-of-a-cup-of-coffee)
#+end_src
Then copy all =.dll= and the =assets= directory into =bin=. Double clicking on
=price-of-coffee.exe= worked for me. (I don't own a windows machine so I had
to go over to a friends' house to get this thing built on windows).
* Credit and Licenses
+ Design and Code by :: [[https://github.com/thegoofist/][The Goofist]] under the [[./LICENSE][GNU Public License version 3]].
+ Art by :: _Ct_ under a [[https://creativecommons.org/licenses/by-nc-sa/4.0/][Attribution Non-Commercial Share Alike 4.0]] Creative Commons License.
+ Musics by :: [[https://github.com/gcentauri][gcentauri]] under a [[https://creativecommons.org/licenses/by-nc-sa/4.0/][Attribution Non-Commercial Share Alike 4.0]] Creative Commons License.
+ Emoji by :: [[https://openmoji.org][OpenMoji]] under a [[https://creativecommons.org/licenses/by-sa/4.0/][Attribution Share Alike 4.0]] Creative Commons License
|