How alexkol-v/xru1 works
1. Назначение и запуск
XRU1 — Windows-демо одиночной пошаговой тактики на Unreal Engine 5.7, построенное как вертикальный срез: меню → интро → хаб → обучение → миссия → результат. Стартовая карта — Content/XRU1Game/Maps/L_MainMenu.umap; хаб — Content/XRU1Game/Maps/L_Hub.umap; боевая карта и сценарные субуровни — Content/XRU1Game/Maps/Main_Map_Showreel.umap, Content/XRU1Game/Maps/SubLavel/.
Код собирается в UE C++-модуль Source/XRU1/XRU1.Build.cs; проектный вход — XRU1.uproject, Windows targets — Source/XRU1.Target.cs и Source/XRU1Editor.Target.cs.
2. Тактическое ядро и жизненный цикл хода
UTurnManagerSubsystem владеет фазами игрока и противника, сменой ходов и AP-бюджетом. Игроковые команды принимаются контроллером и камерой, а механика действий реализуется C++-способностями и боевыми статическими расчётами:
• Source/XRU1/Tactics/TurnManagerSubsystem.h
• Source/XRU1/Tactics/TacticalPlayerController.cpp
• Source/XRU1/Tactics/GA_Attack.cpp
Ввод Enhanced Input из Content/XRU1Game/Input/IMC_Tactical.uasset направляет выбор, перемещение, атаку, overwatch, оборону, способности и завершение хода в контроллер.
3. Боевая модель: единая механика для игрока и AI
Юниты основаны на GAS-иерархии и содержат атрибуты, AP и тактическое состояние. Огонь, линия видимости, укрытие и шанс попадания должны рассчитываться общими предикатами для AI, HUD и способностей; визуальная часть не должна повторно реализовывать механику.
• Source/XRU1/Characters/TDCombatant.h
• Source/XRU1/Tactics/ActionPointsComponent.cpp
• Source/XRU1/Tactics/TacticsCombatStatics.cpp
Критическая граница действия — UAnimNotify_FireCommit: до notify AP/результат могут быть отменены, после него применяются необратимые бросок, урон и смерть. Overwatch реализован отдельной способностью: Source/XRU1/Tactics/GA_Overwatch.cpp.
4. Мир, сценарии и AI
ATacticalScenarioDirector оркестрирует загрузочный сценарий, актёров, цели, события миссии, голос и финальные условия. Сценарные Data Assets отделяют контент миссий от кода; Blueprint-версии директоров и encounter-ов связывают C++-состояние с уровнями.
• Source/XRU1/Tactics/TacticalScenarioDirector.cpp
• Source/XRU1/Tactics/TacticalScenarioDataAsset.h
• Content/XRU1Game/Data/Missions/DA_Scenario_Mission01.uasset
AI использует контроллер, профиль сложности и utility-оценку действий, но тот же AP и firing solution, что игрок. TacticalAIDirectorSubsystem управляет фазой противника и encounter-ами.
• Source/XRU1/Tactics/UnitAIController.cpp
• Source/XRU1/Tactics/AIActionEvaluators.cpp
• Content/XRU1Game/Data/AI/DA_AI_Marauder_Default.uasset
5. Представление, UI и атмосферные системы
Blueprint/UI — презентационный слой над C++-механикой: CommonUI layout/HUD отображают AP, здоровье, укрытие, цели и результаты. Тактическое отображение также включает fog-of-war и визуализацию диапазона перемещения.
• Source/XRU1/UI/GameUIManagerSubsystem.cpp
• Source/XRU1/UI/TacticalHUDWidget.cpp
• Source/XRU1/Tactics/FogOfWarSubsystem.cpp
Подтверждённые боевые события передаются в звук и VFX-подсистемы; выстрелы визуализируются tracer-актором. Субтитры поддерживают ролики и звук.
• Source/XRU1/Audio/TacticsAudioSubsystem.cpp
• Source/XRU1/FX/MissionVfxSubsystem.cpp
• Source/XRU1/Subtitles/SubtitleSubsystem.cpp
6. Прогрессия, плагины и границы инфраструктуры
Хабовая карта и POI-маркеры ведут в доступные миссии; кампания сохраняется в TacticsCampaign. Квесты, обучение и StateTree-задачи предоставлены отдельным C++-плагином, который зависит от message router. Команды фракций вынесены в TeamManager.
• Source/XRU1/Hub/HubGameMode.cpp
• Plugins/STQuestSystem/Source/STQuestSystem/Public/QuestSubsystem.h
• Plugins/GameplayMessageRouter/Source/GameplayMessageRuntime/Public/GameFramework/GameplayMessageSubsystem.h
Среда выполнения — локальный UE5 standalone для Windows; серверных/API-интеграций в игровом контуре не видно. Репозиторий требует Git LFS для бинарных UE-ассетов. Плагин Plugins/UnrealClaude/ — редакторская/MCP-интеграция для авторинга, а не часть игрового runtime.
Main entry points: TurnManagerSubsystem.h Turn manager · TacticsCombatStatics.cpp Combat rules · TacticalScenarioDirector.cpp Scenario director · TacticalPlayerController.cpp Player controller
Components 20
Runtime & content
- UE5 Windows project · Standalone Windows vertical slice.
XRU1.uproject - XRU1 C++ module
Source/XRU1/XRU1.Build.cs - Menu, hub & mission maps · Flow runs menu → intro → hub → tutorial → mission → result.
Content/XRU1Game/Maps/L_MainMenu.umap - Combat map & sublevels
Content/XRU1Game/Maps/Main_Map_Showreel.umap
Tactical combat
- Tactical input mapping
Content/XRU1Game/Input/IMC_Tactical.uasset - Player controller
Source/XRU1/Tactics/TacticalPlayerController.cpp - Turn manager · Owns player/enemy phases, turn changes, and AP budget.
Source/XRU1/Tactics/TurnManagerSubsystem.h - GAS combatants · Shared unit attributes, AP, and tactical state.
Source/XRU1/Characters/TDCombatant.h - Action points
Source/XRU1/Tactics/ActionPointsComponent.cpp - Combat rules · Firing solution, LOS, cover, and hit chance for AI, HUD, and abilities.
Source/XRU1/Tactics/TacticsCombatStatics.cpp - Attack & overwatch abilities · Fire commits irreversibly at the animation notify.
Source/XRU1/Tactics/GA_Attack.cpp
Scenarios & AI
- Scenario director · Drives actors, objectives, events, voice, and mission outcomes.
Source/XRU1/Tactics/TacticalScenarioDirector.cpp - Mission scenario data · Content-authored mission definition.
Content/XRU1Game/Data/Missions/DA_Scenario_Mission01.uasset - AI director · Runs enemy phase and encounters.
Source/XRU1/Tactics/UnitAIController.cpp - AI utility evaluation · Uses shared AP and firing solutions.
Source/XRU1/Tactics/AIActionEvaluators.cpp - AI difficulty profile
Content/XRU1Game/Data/AI/DA_AI_Marauder_Default.uasset
Presentation
- HUD & tactical visibility · Displays combat state, fog of war, and movement ranges.
Source/XRU1/UI/GameUIManagerSubsystem.cpp - Audio, VFX & subtitles · Consumes confirmed combat and cinematic events.
Source/XRU1/Audio/TacticsAudioSubsystem.cpp
Progression & plugins
- Hub & campaign · POIs launch available missions and campaign state persists.
Source/XRU1/Hub/HubGameMode.cpp - Quest plugin & message router · Quest, tutorial, and StateTree tasks communicate through messages.
Plugins/STQuestSystem/Source/STQuestSystem/Public/QuestSubsystem.h
Connections 23
- UE5 Windows project → XRU1 C++ module: loads
- UE5 Windows project → Menu, hub & mission maps: starts at
- Menu, hub & mission maps → Hub & campaign: hub flow
- Hub & campaign → Combat map & sublevels: launches mission
- Combat map & sublevels → Scenario director: hosts
- Tactical input mapping → Player controller: commands
- Player controller → Turn manager: submits actions
- Turn manager → Action points: allocates
- Action points → GAS combatants: tracks AP for
- Player controller → Attack & overwatch abilities: activates
- Attack & overwatch abilities → Combat rules: resolves with
- Combat rules → GAS combatants: applies outcomes
- Turn manager → AI director: starts enemy phase
- AI director → AI utility evaluation: selects actions via
- AI difficulty profile → AI utility evaluation: configures
- AI utility evaluation → Combat rules: uses
- Mission scenario data → Scenario director: defines
- Scenario director → Turn manager: sets mission state
- GAS combatants → HUD & tactical visibility: exposes tactical state
- Combat rules → HUD & tactical visibility: provides previews
- Attack & overwatch abilities → Audio, VFX & subtitles: confirmed events
- Scenario director → Audio, VFX & subtitles: voice and results
- Quest plugin & message router → Hub & campaign: supports quests/tutorial