Korean: README.ko.md
DON’T DODGE is a Godot 4.7 web hack-and-slash prototype about making split-second decisions: should you kill a threat, erase it, or dodge it yourself? Each run asks you to survive four combat waves for 90 seconds.
🎮 Play DON’T DODGE in your browser
Use a recent desktop browser such as Chrome or Edge. Browser autoplay rules mean music and sound effects begin after Start Game or an audio button is pressed.
The prototype tests whether the same threat feels more interesting when the player can choose between a focused attack, a defensive response, or repositioning. It is a focused gameplay experiment rather than a finished commercial game.
- Start with 3 HP and survive 90 seconds across 4 waves.
- Melee, ranged, charger, volley, and elite enemies telegraph different attacks at different threat distances.
Attackcan finish or knock back nearby enemies.DodgeandNullifyshare a pool of 2 defense charges.- Perfect dodges, attack interrupts, projectile removal, and enemy takedowns charge the Ultimate gauge.
- A perfect dodge requires an attack or projectile to connect during the first 0.15 seconds of a W invulnerable dash.
- Each experience level presents 3 cards containing a weapon, technique, or weapon evolution choice.
- The Dagger, Guardian Mace, and Battle Spear change combat rules as well as damage: E access and W’s defense cost differ by weapon.
| Action | Keyboard |
|---|---|
| Move | Arrow keys |
| Attack | Q |
| Dodge | W |
| Nullify projectiles / knock back | E |
| Ultimate | R |
| Pause | Esc |
BGM and SFX can be toggled separately in the lobby and pause menu. The browser’s autoplay policy requires Start Game or the relevant audio button before playback begins.
- Godot
4.7 - GDScript
- Compatibility renderer
- Fast development checks: macOS
- Primary target: desktop web browsers
The default scene is scenes/dont_dodge/dont_dodge.tscn.
godot --path . --editorIf godot is not on your PATH, use godot4 or /Applications/Godot.app/Contents/MacOS/Godot.
Check that the project and scripts load:
godot --headless --path . --editor --quitRun the core combat regression checks:
godot --headless --path . --script tests/dont_dodge_validation.gdCheck the bilingual catalog and translation keys:
godot --headless --path . --script tests/dont_dodge_localization_validation.gdThe combat suite covers enemy attack order, spawn limits, damage resolution, wave transitions, pausing, Ultimate range, and presentation boundaries without changing combat rules.
The web preset in export_presets.cfg creates the GitHub Pages build. Pushing to main runs .github/workflows/deploy-pages.yml and deploys the browser build.
- Play URL:
https://threelight2000.github.io/dont-dodge/ - Local web export requires the Godot 4.7.1 web export templates.
scenes/dont_dodge/ Main game scenes
scripts/dont_dodge/ Combat rules, input, entities, tuning
scripts/dont_dodge/visuals/ Dungeon backdrop and combat presentation
`scripts/dont_dodge/dont_dodge_localization.gd`
Korean and English game catalog and locale helper
assets/third_party/kenney/ CC0 RPG atlas and sound sources
tests/ Combat and localization validation
docs/ Design, vision, and performance notes
Gameplay owns movement, attacks, collisions, damage, and wave progression. Presentation uses static Kenney tiles and code-driven pixel effects; it does not decide damage, collision radius, attack range, or progression.
Implemented:
- Combat progression, enemy telegraphs, projectiles, damage/death, and three-stage upgrade choices
- Keyboard and on-screen UI input
- Local JSON Lines combat logs at
user://dont_dodge_runs.jsonl - Kenney dungeon tiles plus code-driven pixel characters, drops, projectiles, and ability marks
- Independent BGM/SFX settings and combat/UI effects
- Korean/English selection and persistence from the title and pause screens
Not implemented:
- Frame-by-frame state animation, shaders, or dedicated particle art
- Equipment, shops, long-term meta progression, or online features
- Production build and store-submission automation
The reference resolution is 1600×900. Very narrow windows may require a separate check of the upgrade selection layout.
Pixel tiles and effects live in scripts/dont_dodge/visuals/ and only handle presentation. Collision radii, attack ranges, and wave progression remain in the gameplay layer.
The code and original documentation in this repository are released under the MIT License.
- The UI font is Noto Sans KR, distributed under the SIL Open Font License 1.1.
- Graphics use the Kenney Roguelike/RPG Pack, and effects use Kenney Impact Sounds; both are CC0.
- The public source for the
Eight TensionBGM is the YouTube upload. - Included asset files and license text are under
assets/third_party/kenney/.
.godot/, build/export outputs, editor settings, local environment files, and secrets are ignored by .gitignore. Combat logs stay under user:// and are not written to the repository.