46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# Pong
|
|
|
|
The classic two-player Pong, made in [Godot](https://godotengine.org)
|
|
(4.x). First player to out-rally the other — every missed ball is a
|
|
point for the opponent.
|
|
|
|
## Controls
|
|
|
|
| Action | Left player | Right player |
|
|
|--------|-------------|--------------|
|
|
| Paddle up | `Q` | `O` |
|
|
| Paddle down | `A` | `L` |
|
|
|
|
`Space` confirms in the menu, `Esc` quits the game.
|
|
|
|
## Development
|
|
|
|
The project uses the [godot-tools](https://git.teletypegames.org/tools/godot-tools)
|
|
templates: build logic lives in the `Makefile`, the web export
|
|
configuration in `export_presets.cfg` (the `Web` preset, threads
|
|
disabled).
|
|
|
|
```sh
|
|
make run # run the game locally
|
|
make build # headless import (.godot cache, project check)
|
|
make web # export web build to dist/web/
|
|
make export VERSION=x # package dist/web/ into pong-x.html.zip
|
|
make clean # remove dist/ and the import cache
|
|
```
|
|
|
|
Requirements: `godot` (4.x editor binary) on PATH with the matching web
|
|
export templates installed, plus `make` and `zip`. `.vscode/tasks.json`
|
|
(copied from godot-tools, not tracked) provides the same targets as
|
|
VS Code tasks.
|
|
|
|
## CI/CD
|
|
|
|
Woodpecker builds every push (`.woodpecker.yaml`): version → headless
|
|
web export (`barichello/godot-ci` image) → upload via `/build/upload` →
|
|
`/build/publish?platform=godot` on teletypegames.org. The version comes from
|
|
`metadata.json` (non-main branches get a `dev-` prefix). Keep the
|
|
`barichello/godot-ci` image tag in sync with the Godot version the
|
|
project is edited with.
|
|
|
|
Detailed documentation lives on the wiki: `/development/godot`.
|