Release v1.0.0: Godot 4 HTML5 port#53
Open
Peolite001 wants to merge 4 commits into
Open
Conversation
Collaborator
|
Hi @Peolite001 — the SonarCloud Code Analysis gate is failing on this release PR. Check the dashboard — for a Godot HTML5 port it's likely flagging generated/vendored build output; you may want to add those paths to |
…001/Human-vs-bots into feature/32-godot-tilemap
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




[EPIC] Godot port: reemplazar demos canvas JS con Godot 4 HTML5
Closes #32
Description
This PR implements the complete Godot 4 HTML5 port of the hexagonal strategy game "Human vs Bots", replacing the legacy canvas/JS prototype (demo/zemeroth-demo/game.js) with a maintainable Godot 4 engine build while preserving all existing Web3/ZK functionality.
What Changed
Engine Migration: Replaced the canvas/JS game engine with Godot 4.3 HTML5 export
Hex Tilemap System: Implemented native Godot hexagonal tilemap with 5 biome support (plains, forest, hill, water, desert)
Core Game Systems:
GameState autoload — global game state management
TurnManager — commit/reveal turn system with action queuing
EconomyManager — food/production/science/gold resources
EventBus — signal-based event architecture
Gameplay Features:
Unit movement with hex A* pathfinding
Combat system with terrain defense modifiers and counter-attacks
City building and territory capture
Procedural map generation using noise algorithms
UI/UX:
CIV-style HUD with resource panel, minimap, unit info
Camera controls: zoom (mouse wheel), pan (drag), edge scroll
Unit animations and tweening
Particle effects for combat and environment
Audio system: background music and SFX with separate buses
Web3 Bridge: JavaScriptBridge
integration connecting Godot to the existing JS layer:
StellarGameService — wallet connection, Soroban contract calls
ZK proof export/verify (unchanged JS layer)
CI/CD: GitHub Actions workflow for automated HTML5 build and deploy to GitHub Pages
Architecture
[Godot 4 HTML5 build]
├── Scenes / Scripts (GDScript)
│ ├── Autoloads: GameState, TurnManager, EconomyManager, EventBus
│ ├── HexTileMap ←→ MapGen (noise)
│ ├── Units / Cities
│ └── HUD / Camera
└── JavaScriptBridge
└── JS Layer (sin cambios)
├── StellarGameService (wallet, contratos Soroban)
└── ZK proof export / verify
Sub-Issues Resolved
Type of Change
[ ] Bug fix
[x] New feature
[ ] Breaking change
[ ] Documentation update
[x] Refactor (major engine migration)
[ ] Performance improvement
Files Added
godot/
├── project.godot
├── export_presets.cfg
├── src/
│ ├── autoload/
│ │ ├── GameState.gd
│ │ ├── TurnManager.gd
│ │ ├── EconomyManager.gd
│ │ ├── EventBus.gd
│ │ ├── Web3Bridge.gd
│ │ └── AudioManager.gd
│ ├── map/
│ │ ├── HexMap.gd
│ │ ├── MapGenerator.gd
│ │ └── HexCell.gd
│ ├── units/
│ │ ├── Unit.gd
│ │ ├── UnitFactory.gd
│ │ ├── Pathfinder.gd
│ │ └── CombatSystem.gd
│ ├── structures/
│ │ ├── Structure.gd
│ │ └── StructureManager.gd
│ ├── camera/
│ │ └── GameCamera.gd
│ ├── ui/
│ │ ├── HUD.gd
│ │ ├── Minimap.gd
│ │ ├── UnitInfoPanel.gd
│ │ ├── ResourcePanel.gd
│ │ ├── TurnPanel.gd
│ │ └── WalletPanel.gd
│ └── utils/
│ ├── HexMath.gd
│ └── NoiseGenerator.gd
├── scenes/
│ ├── main.tscn
│ ├── game.tscn
│ └── [sub-scenes]
└── assets/
├── terrain/
├── units/
├── structures/
└── ui/
Files Modified
README.md — Updated with Godot setup instructions
Makefile — Added godot-export target
.github/workflows/godot-ci.yml — Added CI/CD pipeline
Files Unchanged (Archived)
demo/human-vs-bots/ — Legacy JS demo (retained for reference)
demo/civ-lite/ — Alternative prototype (retained)
demo/zemeroth-demo/ — Original canvas prototype (retained)