A 2-dimensional multiplayer game with ray tracing. https://decla.red
Find a file
Andras Schmelczer 73f5f45322
Some checks failed
Build & deploy / Build & publish server image (pull_request) Has been skipped
Build & deploy / Build & deploy website (pull_request) Failing after 52s
Add minimap
2026-06-15 08:10:54 +01:00
.forgejo/workflows Fix CI 2026-06-03 22:45:33 +01:00
.vscode Rebrand 2026-06-12 21:46:47 +01:00
backend Add minimap 2026-06-15 08:10:54 +01:00
frontend Add minimap 2026-06-15 08:10:54 +01:00
media Add readme 2020-11-17 10:42:49 +01:00
shared Add minimap 2026-06-15 08:10:54 +01:00
.dockerignore Deploy 2026-06-03 21:03:13 +01:00
.gitattributes Improve multiplayer 2020-10-10 10:55:08 +02:00
.gitignore Update gitignore 2022-09-20 13:39:12 +02:00
.prettierrc Setup formatting 2020-10-07 16:40:21 +02:00
Dockerfile Rebrand 2026-06-12 21:46:47 +01:00
eslint.config.js Bump dependencies 2026-06-04 17:46:28 +01:00
package.json Bump dependencies 2026-06-04 17:46:28 +01:00
README.md Rebrand 2026-06-12 21:46:47 +01:00
tsconfig.json Improve gameplay 2020-10-20 08:56:38 +02:00

doppler

A 2-dimensional multiplayer game utilising ray tracing.

Available at doppler.schmelczer.dev.

screenshot of in-game fight three screenshots taken at iPhone SE screen size

For optimised 2D ray tracing, SDF-2D is used.

Deployment

CI/CD runs on Forgejo Actions (.forgejo/workflows/deploy.yml). On a push to main it:

  • builds the static frontend and rsyncs frontend/dist/ to the /pages/declared mount on the runner host (the mount keeps its pre-rebrand name), and
  • builds the server image from the root Dockerfile and pushes it to the Forgejo container registry as <registry>/<owner>/<repo>-server.

The registry job needs a FORGEJO_PACKAGE_TOKEN secret (with package write scope) and, optionally, a CONTAINER_REGISTRY_HOST variable to override the registry host.

The website's server list is hardcoded in frontend/src/scripts/configuration.ts — edit it to add or remove game-server origins.

Run the server image locally:

docker build -t doppler-server .
docker run -p 3000:3000 doppler-server --name "My server" --playerLimit 16