A polished 2D turn-based battle system built in Unity, focusing on clean architecture, modular systems, and responsive UI/UX.
This project demonstrates a complete combat loop with multiple enemies, player abilities, and dynamic UI feedback.
The game is available as a downloadable build:
๐ Play on itch.io
Download the build and run:
TurnBasedBattle.exe
Make sure all files in the folder remain together.
Download the build and run:
TurnBasedBattle.app
- Open project in Unity
- Load main scene
- Press Play
- ๐ Turn-based combat loop (Player โ Enemy โ Player)
- โ๏ธ Multiple enemies with independent behavior
- ๐ก๏ธ Defend system (player & enemies)
- ๐ฅ Skill combo system (multi-hit animation + SFX logic)
- โค๏ธ Heal system using skill points
- ๐ฏ Target selection (keyboard + mouse support)
- ๐ต Centralized SFX system
- ๐ฑ๏ธ Hover feedback (UI + enemies)
- โธ๏ธ Pause menu with resume / restart / exit
- ๐ Win / Lose states with UI transitions
- Unity (Version: 6.4)
- C#
- Unity Input System
- TextMeshPro
TurnBasedBattle/
โ
โโโ Assets/
โ โโโ _Project/
โ โ โโโ Animations/
โ โ โโโ Audio/
โ โ โโโ Materials/
โ โ โโโ Prefabs/
โ โ โโโ Scenes/
โ โ โโโ Scripts/
โ โ โ โโโ Animation/
โ โ โ โโโ Audio/
โ โ โ โโโ Combat/
โ โ โ โโโ Core/
โ โ โ โโโ Environment/
โ โ โ โโโ UI/
โ โ โโโ Settings/
โ โ โโโ Sprites/
โ โโโ TextMesh Pro/
โ โโโ ThirdParty/
โ
โโโ Packages/
โโโ ProjectSettings/
The project follows a clean separation of responsibilities:
- BattleManager โ game logic, turn flow, combat rules
- BattleUI โ UI rendering and interaction
- BattleCharacterAnimator โ animation control only
- SFXManager โ centralized audio playback
- No gameplay logic in UI
- Modular and readable code
- Minimal duplication
- Clear separation of concerns
| Action | Key |
|---|---|
| Select Action | W / S |
| Select Enemy | A / D |
| Confirm | Enter |
| Pause Menu | ESC |
| Skip Turn | P |
- Designing a modular turn-based combat system with clear separation of concerns
- Structuring Unity projects for readability and maintainability
- Managing game state and turn flow using a centralized controller (BattleManager)
- Implementing responsive UI systems without embedding gameplay logic in UI scripts
- Creating reusable animation wrappers to decouple logic from presentation
- Designing and implementing a flexible input system using Unity's new Input System
- Handling edge cases in gameplay (defend mechanics, target validation, action availability)
- Improving user experience through audio feedback, hover states, and UI responsiveness
- Refactoring and cleaning up code to achieve a consistent and professional codebase
- Status effects (poison, stun, buffs)
- Enemy AI patterns
- Data-driven abilities
- Save system
- Expanded UI polish
The following third-party assets were used in this project:
- JRPG/RPG Combat Exploration Theme
https://assetstore.unity.com/packages/audio/ambient/fantasy/jrpg-rpg-combat-exploration-theme-307427
- RPG Essentials Sound Effects - FREE!
https://assetstore.unity.com/packages/audio/sound-fx/rpg-essentials-sound-effects-free-227708
- Free 2D Cartoon Parallax Background
https://assetstore.unity.com/packages/2d/environments/free-2d-cartoon-parallax-background-205812
- Hero Knight - Pixel Art
https://assetstore.unity.com/packages/2d/characters/hero-knight-pixel-art-165188
- Bandits - Pixel Art
https://assetstore.unity.com/packages/2d/characters/bandits-pixel-art-104130
- Character avatar visuals generated using Playground AI
https://playground.com/
All assets are used under their respective licenses for educational and portfolio purposes.
This project is made for my portfolio, for educational purposes only.



