/virtualtabletop

a virtual surface in the browser on which you can play board, dice and card games

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Gitpod ready-to-code

virtualtabletop

This project aims to create a virtual tabletop in the browser where you can (re)create all board, dice and card games and play them without registration over the internet.

You can host your own instance or go to VirtualTabletop.io.

This project is inspired by playingcards.io.

This project aims to be able to import PCIO files and have them be immediately playable.

Come join our Discord server if you want to discuss the project.

This project started after a reddit post in our playingcardsio subreddit.

License

The project is licensed under GPLv3.

The cards in assets/cards-default were created by Adrian Kennard and released under CC0 Public Domain license.

The cards in assets/cards-plastic have their own license.txt file.

The icons in assets/icons-white were found at Font Awesome with license CC BY 4.0.

The games in the public library have their license information and attributions inside their attribution metadata field. You can read by adding the game to your game library and clicking Edit.

Download this repository and get all dependencies

Linux

This assumes a Debian based Linux. Find Node.js repositories for other Linux distributions at https://node.dev/node-binary. Consult your distribution's documentation for how to install the git and nodejs packages if your distribution does not use apt.

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -    # adds a repository for Node.js v16
sudo apt install -y git nodejs                                     # installs the required software
git clone https://github.com/ArnoldSmith86/virtualtabletop.git     # downloads everything in this repository
cd virtualtabletop                                                 # changes to the newly created directory
npm install                                                        # uses the Node.js package manager to install all dependencies

MacOS

Using brew:

brew install node
git clone https://github.com/ArnoldSmith86/virtualtabletop.git
cd virtualtabletop
npm install

Windows

  1. Install Git and Node.js.
  2. Open the command prompt and cd to a directory where you want the project to live.
  3. Do git clone https://github.com/ArnoldSmith86/virtualtabletop.git which downloads the project.
  4. Do cd virtualtabletop to get into the project directory git created.
  5. Do npm install so Node.js downloads all the dependencies of the project.

If you use "GitHub Desktop" you should follow these steps:

  1. Install GitHub Desktop and Node.js.
  2. Follow steps to setup the programs. Then open GitHub Desktop.
  3. Go to Current repository -> Add -> Clone a repository and select this one or your fork.
  4. Go to Repository -> Open in Command Prompt.
  5. Do npm install so Node.js downloads all the dependencies of the project.

Starting the server

Now you can start the server by typing:

npm start

If that doesn't work, try:

node server.mjs

This will serve the project at localhost:8272.

If you close you terminal and wants to restart you server you will need to get back to you clone folder using cd

Debug

To debug client-side code, first start the server so that it doesn't compress the code:

npm run debug

On windows, enter SET NOCOMPRESS=1 in a terminal prior to starting the server with npm start.

In your browser, refresh to have it re-download the client code. Press F12 to show the developer tools.

In Chromium, select the Sources tab, then the select the file for the room. Press Ctrl-f to search for the code you want to set a breakpoint for an step through.

Testing

To run the unit tests (and get a coverage report):

npm test

To run them continuously (on each save) while you develop:

npm run test-cont