Skip to content

EeroLai/abyssal-walker

Repository files navigation

abyssal-walker

English | 繁體中文

abyssal-walker is a Godot 4.6 2D action RPG prototype built around beacon-driven abyss runs and extraction-risk decisions.

Gameplay Preview

Main Gameplay

Screenshots

Combat Build Panel Crafting

Version Snapshot

  • Project name: Abyssal Walker
  • Current in-project version: 2.10.1
  • Default entry scene: scenes/main/lobby.tscn
  • Main run scene: scenes/main/game.tscn
  • Supported UI locales: en, zh_TW

Core Gameplay Loop

  1. Enter the Lobby and prepare your build.
  2. Move loot between stash and current build.
  3. Select an Abyss Beacon from inventory.
  4. If inventory is empty, start a Baseline Dive (no beacon cost).
  5. Start the run with beacon-defined parameters:
    • base_difficulty
    • max_depth
    • lives_max
    • modifier_ids
  6. Clear floors, raise danger, and handle elite/boss pressure.
  7. During extraction windows, choose:
    • [E] extract and secure current run rewards
    • [F] continue deeper for higher risk/reward
  8. Return to lobby:
    • Extraction moves backpack loot into stash
    • Failure loses run backpack loot

System Highlights

Beacon-driven run generation

  • Beacons are consumed on activation.
  • Bosses always drop at least one beacon.
  • Normal/elite enemies can also drop beacons at lower rates.
  • Effective scaling uses:
    • effective_level = clamp(base_difficulty + depth - 1 + danger, 1, 100)

Build preparation and stash flow

  • Lobby build prep supports:
    • Equipment
    • Skill Gems
    • Support Gems
    • Modules
  • Includes quick-equip, stash/loadout transfer, and loadout cleanup.
  • Crafting is lobby-side and uses stash materials.

Data-driven content

  • Abyss tables:
    • data/abyss/floors.json
    • data/abyss/floor_events.json
    • data/abyss/beacon_modifiers.json
    • data/abyss/beacon_templates.json
  • Combat/build tables:
    • data/enemies/enemies.json
    • data/enemies/elite_affixes.json
    • data/equipment/*.json
    • data/gems/*.json
    • data/modules/modules.json
    • data/affixes/*.json

Localization

  • Runtime language switching in lobby (en / zh_TW).
  • Localization tables:
    • data/localization/ui_en.json
    • data/localization/ui_zh_TW.json

Save system

  • Local save flow with:
    • atomic write (.tmp -> .dat)
    • backup rotation (.bak)
  • Save files:
    • user://saves/save_slot_1.dat
    • user://saves/save_slot_1.bak

Controls

In-run controls

  • WASD / Arrow Keys: Manual movement override
  • V: Toggle auto-move
  • I: Equipment panel
  • K: Skill panel
  • M: Module panel
  • Z: Pickup nearby loot
  • L: Cycle loot filter
  • E: Confirm extraction / confirm run-summary return
  • F: Continue during extraction window
  • N: Challenge pending failed floor
  • Esc: Pause
  • Enter / Space: Confirm run-summary return

Debug build controls

  • F5: Manual save
  • F6: Manual load
  • F7: Clear local save files

Project Structure

  • scenes/: Main, UI, and gameplay scenes
  • scripts/: Autoloads, core systems, entities, and UI logic
  • data/: JSON gameplay tables and localization files
  • assets/, resources/: Art assets and reusable resources
  • readme-assets/: README screenshots and GIFs

Quick Start

  1. Install Godot 4.6 (or another compatible 4.x build).
  2. Open this folder as a project in Godot.
  3. Run the project.
  4. The game starts in the lobby scene.

Changelog

See CHANGELOG.md.

About

A Godot 4.6 action RPG prototype built around a beacon-driven abyss run loop, lobby build preparation, loot risk, and extraction.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors