Heroes of Three Kingdoms
Godot 4 tactical RPG prototype inspired by classic turn-based Romance of the Three Kingdoms games. The current editor baseline is Godot 4.6.
Current Slice
- Sixty-seven campaign scenarios.
- Campaign chapters group the scenario order into story arcs.
- Grid movement.
- Unit selection.
- Move, attack, wait, end turn.
- Automatic end-turn prompt appears after all controllable allies finish acting, using a styled command-complete confirmation.
- Ally, enemy, and objective phase changes raise compact command notices with generated visual icon chips in the active battle HUD.
- Enemy AI with movement, damage-aware physical attacks, multiple MP tactic choices, scenario target priorities, and sentry-awake state that events can retune mid-battle.
- Hover tile and unit info with class, movement type, AGI, movement, range, and equipped gear.
- Active battle unit list opens from the top toolbar with ally/enemy tabs, portrait or sprite rows, compact HP/status/zone badges, and hover combat details.
- Enemy threat range overlay with tile-level threat source, physical damage hints, and hostile tactic hints.
- Scrollable battle maps show a clickable minimap with terrain, unit, objective, and event hover badges.
- Damage forecast for selected-unit attacks.
- Terrain defense and avoid affect physical attack damage and hit chance.
- Min/max attack ranges and counterattack forecasts.
- MP tactics with low/high damage options, area damage/healing/status options, ally support buffs, enemy debuffs, movement and accuracy/evasion modifiers, poison damage-over-time, seal/snare/disarm action locks, a skill list menu, previews, and target overlays.
- Campaign inventory consumables with an item menu, HP/MP recovery, poison/seal/snare/disarm and debuff cure previews, and target overlay.
- Weapon, armor, and accessory rewards can be stored, displayed, compared, equipped, and unequipped from the battle HUD; some weapons deal bonus physical damage against matching move types.
- First named equipment rewards exist in the northern campaign arc and show a
[Named]orNamedtag in reward, inventory, shop, Armory, and equipment menus. - Scenario-specific pre-battle shop purchases, optional finite shop stock, and 50% sell-back save immediately and sync into the upcoming battle inventory.
- Pre-battle shop rows emphasize item artwork, compact price/status badges, and hover details instead of dense inline text.
- Pre-battle Talk can list scenario camp conversations by officer or topic with portrait rows, compact topic/supply badges, hover dialogue previews, saved-branch filtering, one-time pre-battle supplies, and merchant flavor lines before a battle.
- The opening battle's camp and battle-opening dialogue now include a villager route report that frames the castle, village recovery point, lure line, and northern supply cache before combat starts.
- The opening battle now uses a dedicated high-resolution Yingchuan battlefield backdrop, clearer generated terrain-cell texture overlays, image-first recovery/supply/tactic tile markers, no text class boxes on units, quieter objective progress text, and a pulled-back enemy line so the player can lure and form up before the first clash.
- The opening victory dialogue now explicitly shows Cao Ren and Xiahou Yuan joining Cao Cao's camp before bridging into the Sishui Gate march against Hua Xiong.
- Sishui Gate now opens with camp dialogue that turns the coalition briefing into a spoken march order.
- Pre-battle Armory equipment changes, including unequipping gear back into stock, save immediately and sync roster equipment plus inventory stock, with portrait and item-icon rows plus hover change details.
- Pre-battle Roster can move optional officers between sortie and reserve within scenario limits, using portrait rows, compact status badges, and hover details.
- Pre-battle Formation lets deployed officers swap starting positions inside scenario-defined cells, with portrait rows, readable zone badges, and hover placement instructions.
- Pre-battle briefing shows the campaign chapter, chapter battle number, location, victory/defeat summary, first-clear reward preview, generated battlefield thumbnail, allied portrait/enemy unit force markers, and image-first tactical marker cards for lure lines and supply points.
- Pre-battle prep commands use compact icon buttons with active selection state and Korean hover labels for chapters, shop, talks, armory, roster, formation, and save records.
- Post-move tactic and item pickers use generated command/item icons, compact two-line option rows, and hover details instead of dense single-line text.
- Target preview badges, minimap hover badges, and battlefield target markers include generated jade panel surfaces plus action icons for move, attack, threat, support, objective, terrain, and item outcomes.
- Story, briefing, dialogue, mission-detail, and result scroll/ribbon/binding/bamboo/ink/tassel ornaments use generated seal/panel textures instead of flat color boxes.
- Battlefield hover info badges use generated jade panel texture plus terrain, supply, tactic, objective, and threat icons, keeping raw grid coordinates out of visible play text.
- Battle, top-toolbar, and pre-battle command buttons now prefer generated high-resolution bronze/parchment icon art under
art/ui/icons, wide generated lacquer/jade/cinnabar menu button surfaces, and compact generated bronze/jade icon-button surfaces underart/ui/buttons, with procedural icon drawing and flat button styles kept only as fallbacks. - Battle maps blend generated terrain texture tiles for plains, forests, hills, wasteland, roads, water, villages, and castles over the high-resolution battlefield backdrop, with generated transparent feature overlays for road connections, water, villages, castles, and wasteland accents.
- Board unit nameplates and HP bars use generated jade panel surfaces so the high-resolution sprites are not paired with flat black UI strips.
- Core UI panels now prefer generated high-resolution lacquer, scroll, jade, and command-seal frame textures under
art/ui/panels, with the calmer ink/wood/jade flat styles kept as fallbacks instead of the earlier yellow, hard-edged frame treatment. - Pre-battle Chapters overview shows story-arc progress with map thumbnail rows, compact status badges, hover details, and can open completed or current battles.
- Pre-battle Save menu can write and load one manual campaign checkpoint separate from the automatic save, using compact seal-style slot rows and hover checkpoint details.
- The title screen exposes Start, Load, and Settings, and Load now lets the player choose between the automatic record and the manual checkpoint.
- Victory results show compact generated image chips for gold, items, and officer roster changes, with joined-officer portraits, class crests, Korean join/leave badges, and hover details for the full reward text.
- Escort scenarios can include required, non-controllable protected units.
- Campaign saves joined officers, future deployments can require prior recruitment, and choices can make officers leave.
- Completed saves reconcile officer join/leave rewards on load without replaying gold or items.
- Post-battle choices save a scenario-to-choice id ledger for safer future branch migrations.
- Reloading during a pending post-battle choice returns to the choice panel instead of skipping the branch.
- Qingzhou victory can recruit Dian Wei, backed by a new Warrior class.
- Puyang uses Dian Wei as a required joined officer and introduces a Lu Bu branch choice.
- Dingtao consumes the Puyang branch flags and rewards a stronger axe.
- Wan Castle consumes the imperial escort branch flags and adds a protected Cao Ang escape map.
- Xiapi consumes the Wan Castle branch flags and adds a flood-gate siege against Lu Bu.
- Xiapi victory recruits Guo Jia, and White Horse starts the northern campaign with a decoy-line battle.
- Yan Ford consumes the White Horse branch flags and adds Wen Chou's countercharge before Guandu.
- Guandu consumes the Yan Ford branch flags and adds Yuan Shao's main assault.
- Wuchao consumes the Guandu branch flags and adds a depot-burning raid with seized in-battle supplies.
- Cangting consumes the Wuchao branch flags, breaks Yuan Shao's rear guard, and recruits Zhang He.
- Ye consumes the Cangting branch flags and lets Zhang He deploy against the Yuan heirs.
- Ye Siege consumes the Ye campaign branch flags and stages an inner-gate breach.
- Ye Surrender consumes the siege branch flags and settles the city before the Yuan heirs flee north.
- Northern Pursuit consumes the Ye surrender branch flags and pushes Yuan Shang's rearguard north from Ye.
- Nanpi Pressure consumes the Northern Pursuit branch flags and breaks Yuan Tan's outer line.
- Nanpi Surrender consumes the Nanpi Pressure branch flags and settles Yuan Tan's last loyalists.
- Bohai Remnants consumes the Nanpi Surrender branch flags and scatters the Yuan brothers' covering force.
- Liaoxi Pursuit consumes the Bohai Remnants branch flags and intercepts Yuan envoys seeking Wuhuan support.
- White Wolf Mountain consumes the Liaoxi Pursuit branch flags and breaks the first Wuhuan command ridge backing the Yuan exiles.
- Liaodong Pursuit consumes the White Wolf Mountain branch flags and forces the Yuan fugitives against Liaodong's border.
- Xinye Advance consumes the Liaodong Pursuit branch flags and opens Cao Cao's southern advance into Jing Province.
- Changban Pursuit consumes the Xinye Advance branch flags and forces Liu Bei's bridge guard at Changban.
- Jiangling Chase consumes the Changban Pursuit branch flags and seizes Jing Province's river storehouses.
- Xiakou Pursuit consumes the Jiangling Chase branch flags and pushes the river campaign toward Red Cliffs.
- Red Cliffs Fleet consumes the Xiakou Pursuit branch flags and tests Cao Cao's chained fleet against the coalition vanguard.
- Red Cliffs Fire consumes the Red Cliffs Fleet branch flags and turns the chained-fleet battle into a fire attack.
- Huarong Retreat consumes the Red Cliffs Fire branch flags and forces Cao Cao through the coalition roadblock after the fleet burns.
- Jiangling Rearguard consumes the Huarong Retreat branch flags and steadies Cao Cao's southern withdrawal before the next front.
- Tong Pass Vanguard consumes the Jiangling Rearguard branch flags and opens the western campaign against Ma Chao's riders.
- Ma Chao Counterstroke consumes the Tong Pass Vanguard branch flags and tests Cao Cao's pass line against the western cavalry charge.
- Weishui Camps consumes the Ma Chao Counterstroke branch flags and turns the Wei River line into a test of ground and alliance trust.
- Weishui Crossing consumes the Weishui Camps branch flags and turns the western campaign from river defense into a Guanzhong foothold.
- Guanzhong Foothold consumes the Weishui Crossing branch flags and turns the seized riverbank into a western base against Ma Chao's rearguard.
- Ma Chao Retreat consumes the Guanzhong Foothold branch flags and drives the western campaign toward Guanzhong pacification or the Hanzhong front.
- Hanzhong Approach consumes the Ma Chao Retreat branch flags and opens Zhang Lu's mountain gate campaign.
- Hanzhong Gate consumes the Hanzhong Approach branch flags and opens Zhang Lu submission or Hanzhong pacification follow-up choices.
- Hanzhong Settlement consumes the Hanzhong Gate branch flags and turns the basin toward a Hanzhong garrison or Ruxu pivot.
- Ruxu Advance consumes the Hanzhong Settlement branch flags and opens Ruxu bank or Sun Quan river-line follow-up choices.
- Ruxu River Line consumes the Ruxu Advance branch flags and introduces water-move enemy boats along the riverbank.
- Ruxu Crossing consumes the Ruxu River Line branch flags and turns Ruxu toward an eastern crossing base or Fancheng relief.
- Fancheng Relief consumes the Ruxu Crossing branch flags and uses a protected Fancheng messenger defense objective.
- Jingzhou Supply Line consumes the Fancheng Relief branch flags and cuts Guan Yu's supply road after the siege break.
- Maicheng Pursuit consumes the Jingzhou Supply Line branch flags and seals Guan Yu's retreat road toward Maicheng.
- Jing Province Settlement consumes the Maicheng Pursuit branch flags and settles the Jing Province command post before the next court summons.
- Luoyang Summons consumes the Jing Province Settlement branch flags and opens the court road toward Wei's next transition.
- Wei Succession consumes the Luoyang Summons branch flags and secures the succession dais before the next frontier decision.
- Eastern Front Alarm consumes the Wei Succession branch flags and returns the campaign to the Ruxu river front as Wu tests the transition.
- Wu River Line consumes the Eastern Front Alarm branch flags and breaks open the Ruxu river line for an anchored fleet or Jianye pressure.
- Jianye Approach consumes the Wu River Line branch flags and presses the lower Yangtze approach toward a secured route or forced Wu counterstroke.
- Wu Counterstroke consumes the Jianye Approach branch flags and breaks Wu's forward answer into a held lower Yangtze route or Jianye gate pressure.
- Jianye Gate consumes the Wu Counterstroke branch flags and breaks the outer gate line toward a secured gate road or forced capital sortie.
- Jianye Sortie consumes the Jianye Gate branch flags and contains the capital sortie toward a held siege road or inner-city pressure.
- Inner Jianye consumes the Jianye Sortie branch flags and opens the inner city toward a secured road or forced Wu last stand.
- Jianye Command consumes the Inner Jianye branch flags and breaks the command district toward secured city order or forced Wu surrender.
- Wu Surrender consumes the Jianye Command branch flags and turns the command district victory toward accepted surrender or pursued Wu holdouts.
- Southern Holdouts consumes the Wu Surrender branch flags and clears the southern canal camp toward settled holdouts or a pressed Nanhai route.
- Nanhai Route consumes the Southern Holdouts branch flags and cuts the coastal passage toward a secured route or pressed southern fleet.
- Southern Fleet consumes the Nanhai Route branch flags and breaks the coastal anchorage toward a secured fleet or pressed Hainan coast.
- Hainan Coast consumes the Southern Fleet branch flags and breaks the shore road toward a secured coast or pressed final harbor.
- Final Harbor consumes the Hainan Coast branch flags and ends the southern harbor line toward secured order or pursued last captains.
- Last Captains consumes the Final Harbor branch flags and settles the remaining captain ledgers toward registered order or pursued sea exiles.
- Sea Exiles consumes the Last Captains branch flags and breaks the outer coast toward settled exiles or pressed outer islands.
- Outer Islands consumes the Sea Exiles branch flags and breaks the island refuge toward secured islands or pressed hidden coves.
- Post-battle choices can save campaign flags that branch later briefing text, shop stock, and scenario events.
- Scenario post-battle dialogue can play before the victory result panel.
- Basic battle EXP, level-ups, and core first-tier class promotion routes.
- Victory results split rewards, roster changes, saved growth, campaign status, and pending choices into readable sections.
- Scenario events for battle start, battle-begin dialogue, turn start, movement-triggered ambushes, unit-defeat reactions,
after_eventprerequisites, objective updates with HUD notices, item and gold pickups, reinforcements, scripted unit withdrawals, AI sentry-awake shifts, and AI target-priority shifts. - Scenario briefing before battle with a campaign battle header and objective summary.
- Victory rewards and consumed inventory saved into a campaign state.
- Scenario-defined victory and defeat conditions.
- Destination-style victory conditions with single-tile, multi-cell, and event-gated objective map markers.
- Protected-unit defeat conditions for escort battles.
- Turn-limit defeat conditions with turn-limit HUD display.
- Live objective panels in the active HUD and briefing split objective, progress, and risk details, including gated unlocks, destination markers, defeated enemy counts, named protected-unit safety, and turns remaining.
- Next-battle flow after victory.
- Campaign completion screen.
- New campaign save reset.
- Manual campaign checkpoint save/load.
- Cinematic title screen uses a dedicated ancient-war-camp dawn backdrop, Cao Cao portrait art, and a compact left-side command board with
처음부터,로드하기, and환경설정; its generated command board, title buttons, and opening-story controls keep safer source-art proportions plus linear filtering for QHD fullscreen scaling. New campaigns then move into a generated four-panel Yellow Turban rebellion, Cao Cao resolve, Xiahou Dun meeting, and Yingchuan contact prologue with full-screen story artwork, a chapter seal, a compact Korean story-ledger strip instead of exposed numeric cards, and a bottom scroll caption panel. Title and in-game settings expose clearer background-music, combat-SFX, edge-scroll, and fullscreen display controls, include one-click audio recovery, and persist preferences inuser://heros_settings.json. - Victory and defeat result overlay.
- Dialogue portrait slot stays fixed across speaker and narration lines, with officer default image paths, optional per-line overrides, and speaker-initial or record fallback.
- Initial AI-generated photorealistic officer portraits for Cao Cao, Xiahou Dun, Xiahou Yuan, Cao Ren, Dian Wei, Guo Jia, and Zhang He.
- AI-generated scenario battlefield backgrounds, opening story panels, terrain textures and terrain feature overlays, transparent class units, transparent generic-enemy units, item icons, toolbar UI icons, generated UI panel frames, generated button surfaces, tactical tile markers, class crest icons, and battlefield map badges live under
art/backgrounds,art/story,art/terrain,art/terrain/features,art/units,art/items,art/ui/icons,art/ui/panels,art/ui/buttons,art/ui/tiles,art/ui/class_icons, andart/ui/map_badges. - Battle HUD portrait thumbnails show the selected unit, or a hovered unit when nothing is selected.
- Selected and hovered unit focus text shows combat role, movement type, current terrain move cost, terrain bonuses, core stats, and status effects.
- Dialogue lines can mark speaking side for text alignment inside a fixed visual-novel-style dialogue panel with stable portrait, progress, and previous-line controls.
- Named procedural draft BGM tracks for the title/camp mood (
menu_camp_dawn_theme.wav) and the first-battle march (battle_yingchuan_march.wav), plus UI, movement, attack, tactic, item, victory, and defeat SFX, with a quieter 75% default volume so first launch is less harsh. - Floating combat text for damage, recovery, misses, support effects, poison ticks, action locks, level-ups, and promotions.
- Short unit slide animation for board movement.
- Board attacks now request class-specific motion profiles, with infantry strikes, archer traces, cavalry charges, command flashes, and heavy warrior/bandit impacts drawn by the battle scene.
- Damage, healing, and support tactics now request distinct cast motion profiles with flare, sigil, and banner-style battlefield effects.
- Battle maps can use a high-resolution background image with translucent terrain overlays, terrain-specific detail patterns, connected roads, shoreline/castle/forest/hill edge blends, transparent generic-enemy class art, and token marks.
- Hover target preview badges for attacks, tactics, and items.
- Low-HP board unit warning rings, HP bar color states, and board status pips plus HUD duration summaries for support, debuff, poison, seal, snare, and disarm effects.
- Data-driven scenario setup through JSON definitions and deployments.
Run
- Install Godot 4.
- Open this folder as a Godot project.
- Run the project. The main scene is
res://scenes/battle_scene.tscn.
Campaign order and chapter ranges live at res://data/campaign/campaign.json. Scenarios live under res://data/scenarios/, with reusable officers, classes, items, skills, and terrain definitions under res://data/defs/. Generated visual assets live under res://art/portraits/, res://art/units/, res://art/items/, res://art/terrain/, res://art/ui/, and res://art/backgrounds/. Draft BGM and SFX live under res://audio/.
Data files and item icon cutouts can be checked with powershell -NoProfile -ExecutionPolicy Bypass -File tools\validate_data.ps1.
Godot 4.6 migration readiness can be checked with powershell -NoProfile -ExecutionPolicy Bypass -File tools\check_godot46_readiness.ps1. The migration checklist lives in docs/GODOT_4_6_MIGRATION.md.
Direction
The project should grow from a small playable battle into a campaign tactics RPG:
- Battle system first.
- Scenario and event scripting second.
- Progression, equipment, and class depth third.
- Portraits, cutscenes, and campaign presentation after the core loop is fun.
The code keeps portraits and other visual assets replaceable so generated original assets can be upgraded without changing battle rules.