A 2-dimensional multiplayer game with ray tracing.
https://doppler.schmelczer.dev/
- TypeScript 88%
- SCSS 6.5%
- JavaScript 4.2%
- HTML 0.9%
- Dockerfile 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| .vscode | ||
| backend | ||
| frontend | ||
| media | ||
| shared | ||
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| .prettierrc | ||
| Dockerfile | ||
| eslint.config.js | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
decla.red
A 2-dimensional multiplayer game utilising ray tracing.
Available at decla.red.
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/declaredmount on the runner host, and - builds the server image from the root
Dockerfileand 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

