simulgames / Simul.Games

Simul Games is a free online party game server focused on realtime, varied, gameplay and ease of use across all devices.

Home Page:https://Simul.Games

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


codecov

Simul Games is a free online party game server focused on varied, online, realtime, gameplay and ease of use across all devices.

Simul.Games' server is written in Go and using goroutines for a concurrent scalable program. It makes use of WebSockets for reliable, quick, communication between clients. In development is a hybrid Rest API / Websocket approach.

The Web Client is styled with Tailwind CSS and written in TypeScript using the Svelte Framework. Both front and back end can be easily proxied by Caddy or Nginx webservers (when deployed using Sveltekit's static site adapter.)

Development

By default, will open ports 3000 & 8080 on localhost; you can change this in config.yaml. Svelte Webkit, which uses Vite, supports hot-reloading in development, so it will rarely need to be relaunched, but Go will need to be recompiled for changes to be shown.

Setup

Requires Go 1.18+ & Node 16.9+

If you are using Windows (this step is not required on Linux or Mac), you will additionally need to instruct npm to use a terminal emulator that can run *NIX shell scripts. For example, with Git Bash,

npm config set script-shell 'C:\Program Files\Git\bin\bash.exe'

Commands

Start Webclient

cd webclient && npm run dev

Run Webclient Tests

cd webclient && npm test

Start Server

cd server && go run main.go

Run Server Tests

cd server && go test ./... -coverpkg=./... -timeout 100ms -race

License

Simul.Games is licensed under the GNU Affero General Public License 3.

Credits

About

Simul Games is a free online party game server focused on realtime, varied, gameplay and ease of use across all devices.

https://Simul.Games

License:GNU Affero General Public License v3.0


Languages

Language:Go 53.7%Language:Svelte 32.0%Language:TypeScript 8.3%Language:JavaScript 2.9%Language:CSS 1.4%Language:Shell 0.8%Language:Dockerfile 0.4%Language:HTML 0.4%