No description
- GDScript 91.1%
- Kotlin 3.8%
- JavaScript 1.9%
- Python 1.4%
- HTML 0.6%
- Other 1.2%
screenshot.gd takes an optional min_wave so captures show a built-up maze. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| addons/admob | ||
| ads | ||
| android | ||
| assets | ||
| data | ||
| docs | ||
| game | ||
| legal | ||
| levels_src | ||
| nakama | ||
| net | ||
| server | ||
| sim | ||
| site | ||
| store | ||
| tests | ||
| tools | ||
| .dockerignore | ||
| .gitignore | ||
| ASSETS_LICENSES.md | ||
| default_bus_layout.tres | ||
| DEPLOY.md | ||
| export_presets.cfg | ||
| project.godot | ||
| README.md | ||
| web.Dockerfile | ||
| web.Dockerfile.dockerignore | ||
Maze TD
Free mobile maze-building tower defense (Godot 4.7, GDScript) with a Nakama backend. Single player: 4 worlds x 10 levels, 4 difficulties, stars, endless mode, daily challenge. Multiplayer: each player defends a lane; sending creeps costs gold now and raises income.
Layout
sim/deterministic fixed-point simulation (no Nodes, no floats in state):sim.gdlane,match.gdPvP,bot.gd/pvp_bot.gdheuristic bots,daily.gddaily challenge specdata/towers, creeps, damage matrix, difficulties, sends, levels (levels/), PvP maps (pvp/), i18n (en/ro)game/client: board renderer, menu, settings, save, audio, art map, telemetrynet/Nakama client (auth, matchmaking, rooms), lockstep match clientserver/headless authoritative game server (tokens, validation, rate limits, relay, replays) + Dockerfilenakama/docker compose (Nakama + Postgres + game server) and the server module (modules/index.js)ads/ad placement rules (no-op backend until the AdMob plugin is wired)tools/balance runner, PvP runner, campaign validator, level generator/tuner, leak report, perf bench, level tool (JSON <-> TileMap), screenshots, icontests/sim + rules tests (run_tests.gd), network/security test (net_test.gd)legal/privacy policy draft.ASSETS_LICENSES.mdlists every third-party asset.
Checks (all run in CI)
godot --headless -s tests/run_tests.gd
godot --headless -s tests/net_test.gd
godot --headless -s tools/perf_bench.gd
godot --headless -s tools/balance_runner.gd -- seeds=2
godot --headless -s tools/pvp_runner.gd -- seeds=2
godot --headless -s tools/campaign_validator.gd
Levels
Generated by python tools/gen_worlds.py from tools/tuning/w*.json; python tools/tune_worlds.py <world>
bisects HP per difficulty until the reference bot lands in each difficulty's lives range.
Hand-drawn maps: godot --headless -s tools/level_tool.gd -- import=w1_l01, edit levels_src/w1_l01.tscn,
then -- export=w1_l01; the generator keeps hand-drawn maps.
Deploy
See DEPLOY.md.