A 2-dimensional multiplayer game with ray tracing. https://decla.red
Find a file
Andras Schmelczer 10d4f73562
All checks were successful
Build & deploy / Build & publish server image (pull_request) Has been skipped
Build & deploy / Build & deploy website (pull_request) Successful in 1m6s
Adopt shared ci-actions for publishing
Replace inline publish step(s) with the canonical shell-only composite
actions in andras/ci-actions. Switches the publish jobs to the registered
'docker' runner.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 15:00:38 +01:00
.devcontainer Refactor frontend to use commands 2020-11-06 19:56:09 +01:00
.forgejo/workflows Adopt shared ci-actions for publishing 2026-06-06 15:00:38 +01:00
.vscode Fix issues 2020-11-05 19:27:27 +01:00
backend Deploy 2026-06-03 21:03:13 +01:00
frontend Deploy 2026-06-03 21:03:13 +01:00
media Add readme 2020-11-17 10:42:49 +01:00
shared Deploy 2026-06-03 21:03:13 +01:00
.dockerignore Deploy 2026-06-03 21:03:13 +01:00
.eslintignore Setup formatting 2020-10-07 16:40:21 +02:00
.eslintrc.json Setup formatting 2020-10-07 16:40:21 +02: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 Deploy 2026-06-03 21:03:13 +01:00
package.json Fix linting 2020-11-17 10:13:31 +01:00
README.md Deploy 2026-06-03 21:03:13 +01:00
tsconfig.json Improve gameplay 2020-10-20 08:56:38 +02:00

decla.red

A 2-dimensional multiplayer game utilising ray tracing.

Available at decla.red.

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, 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 declared-server .
docker run -p 3000:3000 declared-server --name "My server" --playerLimit 16