A 2-dimensional multiplayer game with ray tracing. https://decla.red
Find a file
2026-06-11 21:02:06 +01:00
.forgejo/workflows Fix CI 2026-06-03 22:45:33 +01:00
.vscode Fix issues 2020-11-05 19:27:27 +01:00
backend Improve gameplay 2026-06-11 20:26:44 +01:00
frontend Improve UI 2026-06-11 21:02:06 +01:00
media Add readme 2020-11-17 10:42:49 +01:00
shared Improve gameplay 2026-06-11 20:26:44 +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 Improve gameplay 2026-06-11 20:26:44 +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 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