Loading
Personal Project
Eurekiel: The 2-Journey

A 2.5D turn-based RPG built in C++ with a custom engine, featuring Octopath Traveler-inspired isometric visuals and deep gameplay systems. This project showcases expertise in game systems architecture, turn-based combat design, attribute-based mechanics, and data-driven content pipelines.

Gameplay Trailer

0:00
/0:00
Eurekiel: The 2-Journey Official Gameplay Trailer

Core Systems

Turn-Based Combat Architecture — Designed and implemented a complete turn-based combat system using state machine patterns. The TurnBaseSubsystem orchestrates combat flow through distinct states (Round, SkillSelection, SkillExecution, BattleSettlement), enabling complex turn sequences and AI decision-making.

Attribute-Driven Mechanics — Built a comprehensive RPG attribute system where character stats (Health, Mana, Attack, Defense, Speed) drive all gameplay calculations. Attributes influence initiative ordering, damage calculations, and skill effectiveness, creating emergent gameplay depth.

Character Skill System — Implemented a flexible skill framework supporting character-specific abilities with distinct animations, mana costs, and effects. Skills integrate seamlessly with the combat state machine and trigger synchronized animation sequences.

Data-Driven Content Pipeline — Architected an XML-based configuration system enabling designers to create characters, skills, dungeons, and maps without C++ compilation. Implemented robust parsing and validation systems for rapid content iteration.

2.5D Lighting & Rendering — Engineered a dynamic lighting system with real-time sun direction, intensity, and ambient light adjustments. Implemented proper depth sorting and sprite rendering for authentic 2.5D visuals.

Physical Simulation & Collision — Built an actor-based physics system with collision detection and response. Implemented proper 2.5D space navigation with depth-aware collision handling.

Sprite Animation Framework — Designed a state-driven animation system supporting hierarchical animation playback. Implemented frame-perfect synchronization between animations and combat state transitions.

Comprehensive UI System — Built a complete HUD system including battle UI, skill selection, target selection, turn sequence visualization, and progression indicators.

System Architecture

graph TD
    Game["Game - State Machine"]
    Clock["Clock - Time Management"]
    PlayerCtrl["PlayerController - Input Handling"]
    TurnBase["TurnBaseSubsystem - Turn Management"]
    BattleState["Battle States - State Stack"]
    Initiative["Initiative Queue - Action Ordering"]
    Character["Character - Battle Entity"]
    Skills["Skill System - Ability Execution"]
    Buffs["Buff System - Status Effects"]
    PakData["PakData - XML Parsing"]
    Definitions["Definitions - Character/Skill/Dungeon"]
    Map["Map System - Scene Generation"]
    Scene["Scene - 2.5D Rendering"]
    Animation["Animation System - State-Driven Playback"]
    Lighting["Lighting System - Dynamic Illumination"]
    WidgetSubsystem["WidgetSubsystem - Widget Management"]
    BattleUI["Battle UI - HUD Widgets"]
    SkillUI["Skill UI - Selection & Targeting"]

    Game --> TurnBase
    Game --> PlayerCtrl
    Game --> Clock
    Game --> Scene
    TurnBase --> BattleState
    BattleState --> Initiative
    Initiative --> Character
    Character --> Skills
    Character --> Buffs
    Character --> Animation
    Skills --> Definitions
    Character --> Definitions
    PakData --> Definitions
    Map --> PakData
    Scene --> Map
    Scene --> Lighting
    Scene --> Animation
    WidgetSubsystem --> BattleUI
    WidgetSubsystem --> SkillUI
    BattleUI --> Character
    SkillUI --> Skills

Turn-Based Combat System

The TurnBaseSubsystem orchestrates turn-based combat through a hierarchical state machine. Combat flows through distinct phases: Round initialization calculates initiative, SkillSelection allows player input, SkillExecution resolves actions, and BattleSettlement handles victory/defeat conditions.

Initiative & Action Ordering

Characters roll initiative at battle start based on Speed attributes. The system maintains an ordered queue determining action sequence. This creates dynamic turn ordering where player decisions influence future turns.

Battle target selection and deselection mechanics

Skill Execution Pipeline

Skills trigger character-specific animations synchronized with combat state. The system validates skill prerequisites (mana cost, cooldown), applies effects, and broadcasts results to UI systems.

0:00
/0:00
Character-specific skill animations with synchronized combat state
Healing skill execution and effect application

2.5D Scene & Lighting System

Implemented a dynamic lighting system enabling real-time adjustments to sun direction, intensity, and ambient light. The system creates atmospheric transitions and enhances visual storytelling through lighting design.

0:00
/0:00
2.5D scene rendering with isometric perspective
0:00
/0:00
Dynamic lighting system with adjustable sun direction, intensity, and ambient light
0:00
/0:00
Battle scene camera effects and transitions

Scene Transitions & Level Progression

Implemented seamless transitions between exploration and battle scenes. The system manages camera positioning, lighting adjustments, and UI state changes during scene transitions.

0:00
/0:00
Scene transition from exploration to battle

User Interface System

Built a comprehensive UI system managing all player interactions. The system includes main menu, skill selection, target selection, turn sequence visualization, and level progression indicators.

0:00
/0:00
Main menu UI and navigation
Battle Action Sequence UI
Battle UI displaying action sequence and character status

Level Progression & Unlocking

Implemented a level progression system with unlock mechanics. Players progress through dungeons, unlocking new levels as they complete objectives. The system provides clear UI feedback for locked/unlocked states.

0:00
/0:00
Locked level with UI notification
0:00
/0:00
Level unlock notification and progression

Data-Driven Architecture

The entire game content pipeline is driven by XML configuration files. Character definitions specify stats, skills, and animations. Skill definitions include mana costs, cooldowns, and effects. Dungeon definitions configure encounters and progression. This architecture enables rapid content iteration without recompilation.

XML Configuration System

<!-- Character Definition Example -->
<Character name="Warrior" health="100" mana="30" attack="15" defense="10" speed="8">
  <Skill name="BasicAttack" manaCost="0" cooldown="0" />
  <Skill name="PowerStrike" manaCost="20" cooldown="2" />
</Character>

<!-- Dungeon Definition Example -->
<Dungeon name="Forest Ruins" scene="ForestScene" preRequest="None">
  <Enemy name="Goblin" healthMultiplier="1.0" damageMultiplier="1.0" />
  <Enemy name="Orc" healthMultiplier="1.5" damageMultiplier="1.2" />
</Dungeon>

Map Generation from Image Data

Maps are generated from image files where each pixel represents a tile. This enables rapid level design and visual consistency between design and implementation.

Design Philosophy

Modular State Architecture — The turn-based system uses a state stack pattern enabling complex turn sequences while maintaining clean separation of concerns. Each state handles specific combat phases independently, making the system extensible for new combat mechanics.

Attribute-Centric Design — All gameplay mechanics derive from character attributes. This creates emergent gameplay where attribute relationships drive combat depth without hard-coded special cases.

Data-Driven Extensibility — XML configuration enables designers to create content without C++ knowledge. The parsing system validates all data, preventing runtime errors from malformed configurations.

Event-Driven Communication — Systems communicate through events rather than direct references. This decouples combat logic from UI, animation, and audio systems, enabling independent iteration and testing.

Performance-Conscious Architecture — The system uses efficient data structures and algorithms. Initiative calculations use simple comparisons; state transitions are O(1); animation lookups use hash maps for constant-time access.

Debuggable Systems — All major systems include debug visualization and console commands. Turn sequences can be inspected; attribute modifiers can be traced; skill effects can be validated without gameplay.