A simple playtesting/prototyping tool for physical card games
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
deal-ui
model
static
.gitignore
LICENSE.md
README.md
deal-ui.asd
deal.asd
deal.lisp
package.lisp
start.lisp
util.lisp

README.md

DEAL

Lisp-based tabletop game prototyping and playtesting tool

Requirements

Deal directly depends on a fuckton of other Lisp libraries, most of which will be installed automatically by quicklisp the first time you run it. If you plan on installing Deal manually, the required libraries are

:alexandria :anaphora :bordeaux-threads :cl-base64 :cl-css :cl-fad :cl-json
:cl-ppcre :cl-who :deal :flexi-streams :ironclad :optima :parenscript
:trivial-timeout :usocket :cl-isaac :session-token :house

Of those, only :session-token and :house are not quicklispable.

Installation

1 Clone :session-token into your quicklisp/local-projects/ directory with git clone https://github.com/Inaimathi/session-token.git, or install it via asdf-install.

2 Pick a directory, and clone this project with git clone https://github.com/Inaimathi/deal.git

3 Start a lisp in that directory and evaluate (ql:quickload :deal-ui)

4 Evaluate (deal::start 8080)

You should now be able to visit [your-server]:8080/ and play.

Optionally

If you're going to be hosting a public server, it's a good idea to set up a reverse proxy, and leave the static file handling up to something that can do it more efficiently than House. I recommend nginx. To make that easier, I've included a config file that you can drop into /etc/nginx/sites-enabled/ if you're on Debian.

TODO

  • Look into iolib/socket as an alternative to the shitty implementation of read-byte-no-hang
  • Sessions should actually expire at some point
  • Add session-expiration hooks

License

This program is released under the GNU AGPL (License text can be found in the LICENSE.md file, or at http://www.gnu.org/licenses/agpl-3.0.html). Unofficial, legally non-binding short version: You are free to use, distribute, modify and distribute modified copies as long as you give each of your users (including those that just connect to your Deal server as web clients) access to your (potentially modified) source code.

Deal bundles some javascript libraries.

Deal bundles some images from OpenGameArt.org. This includes

Deal bundles an image from another source.