/netrunner

Primary LanguageClojureOtherNOASSERTION

Netrunner in the browser

Hosted at http://www.jinteki.net. Example of gameplay.

screenshot

Card implementation status

Card rules implementation status

Development

Quickstart

(There's a docker section down there!)

Install Leiningen, NodeJS and MongoDB.

This project runs on Java 8. If you're on OSX or Linux, we recommend using jenv to manage your java environment.

You can check your setup by running:

$ lein version
Leiningen 2.9.6 on Java 16.0.1 OpenJDK 64-Bit Server VM

Your exact version numbers below may vary, but we require Java 1.8+.

Populate the database and create indexes using:

$ lein fetch [--no-card-images]
1648 cards imported

$ lein create-indexes
Indexes successfully created.

You can optionally pass --no-card-images if you don't want to download images from NetrunnerDB, as this takes a while. See lein fetch help for further options.

To install frontend dependencies, run:

$ npm ci
added 124 packages, and audited 125 packages in 2s

To compile CSS:

$ npm run css:build
compiled resources/public/css/netrunner.css

Optionally you can say npm run watch:css to watch for changes and automatically recompile.

Compile ClojureScript frontend:

$ npm run cljs:build
[:app] Compiling ...
[:app] Build completed. (238 files, 0 compiled, 0 warnings, 22.18s)

Finally, launch the webserver and the Clojure REPL:

$ lein repl
dev.user=>

and open http://localhost:1042/.

Using Docker

You'll need to install Docker and Docker-Compose. After that, just run $ docker-compose up --build in the project directory (or do the GUI-equivalent of this). If this fails because it "couldn't fetch dependencies", try again, it was just a networking error.

It can take a while. You'll see lots of messages, so just wait until you see something like netrunner-server-1 | nREPL server started on port 44867. After that, you can visit http://localhost:1042/ and the server should be running.

While coding clojure it's important to have a REPL connection going. The server's REPL is configured to always run on port 44867, so you can connect using $ lein repl :connect nrepl://localhost:44867 (or the program of your preference, like your code editor).

Now, let's populate the database and create indexes. First, let's open a terminal inside the server container: $ docker exec -it netrunner-server-1 /bin/bash. Now, inside this new therminal, we'll run these two commands: The --no-card-images is optional, and removing it causes the card images to be downloaded, which can be slower.

 $ lein fetch --no-card-images
    1648 cards imported

 $ lein create-indexes
    Indexes successfully created.

After this, just restart the server by running (restart) in the REPL.

To do testing, you run them inside the container: $ docker exec -it netrunner-server-1 /bin/bash and then $ lein kaocha.

Tests

To run all tests:

$ lein kaocha
Ran 2640 tests containing 44704 assertions.
0 failures, 0 errors.

To run a single test file:

$ lein kaocha --focus game.cards.agendas-test
Ran 216 tests containing 3536 assertions.
0 failures, 0 errors.

Or a single test:

$ lein kaocha --focus game.cards.agendas-test/fifteen-minutes
Ran 1 tests containing 29 assertions.
0 failures, 0 errors.

For more information refer to the development guide.

Further reading

License

Jinteki.net is released under the MIT License.