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, objective phase changes, and battle-start tactical reminders raise compact command notices with generated visual icon chips, short marker summaries, hover details, and clickable marker chips that focus the large battlefield map on objectives, lure lines, and supply points.
- 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's lure line, village supply, northern cache, and castle objective markers now carry compact tactical summaries plus Korean hint text through battlefield hover badges, minimap hover badges, and cell-detail tooltips.
- 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, a compact three-line battlefield/camp summary with dense details moved to hover text, and image-first tactical marker cards for lure lines and supply points with compact tactical summaries, full hover hints, and click-to-focus map guidance.
- 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 command boards, tactic pickers, and item pickers use generated command/item icons, compact option rows, and richer hover guidance for move-attack, stratagem, supply, wait, and cancel decisions instead of dense inline 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 keep generated seal and panel art around the frame, while text-bearing surfaces use high-contrast flat paper/ink panels and fitted Korean text checks so copy remains readable.
- 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 use generated high-resolution lacquer, scroll, jade, and command-seal frame textures under
art/ui/panelsfor ornamentation, but readable tooltip/body surfaces use calmer opaque ink/wood/jade flat styles 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 and title buttons keep safer source-art proportions, linear filtering, tile-fit 9-slice surfaces, and aspect-locked canvas scaling for QHD fullscreen, while story/briefing action buttons use crisp flat readable surfaces. 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 text-only chapter-side story ledger instead of exposed numeric cards or tick marks,다음 기록/군막으로/전투 준비story controls, and a bottom scroll caption panel. Briefing, dialogue, notice, auto-turn, command-hint, title settings/load, battle log, and right-side battle information panels now favor high-contrast flat paper/ink text surfaces, larger Korean type, and explicit line spacing over busy decorative frames. Title and in-game settings expose clearer background-music, combat-SFX, edge-scroll, and fullscreen display controls, show the active music/SFX mix beside the preview button, 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.