A downloadable game for Windows and macOS

# GitHubLink (Unity, C#) (https://github.com/michalsobr/TurnBasedBattlePrototype)

# ๐ŸŽฎ Turn-Based Battle System (Unity, C#)

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.

---

## ๐Ÿš€ Features

- ๐Ÿ” 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

---

## ๐Ÿ› ๏ธ Technologies Used

- Unity (Version: 6.4)

- C#

- Unity Input System

- TextMeshPro

---

## ๐Ÿ“ Project Structure

Assets/
_Project/
Scripts/
Core/
Combat/
UI/
Animation/
Audio/
Prefabs/
Scenes/
Sprites/
Animations/
ThirdParty/

---

## ๐Ÿง  Architecture

The project follows a clean separation of responsibilities:

### Core Scripts

- BattleManager โ†’ game logic, turn flow, combat rules

- BattleUI โ†’ UI rendering and interaction

- BattleCharacterAnimator โ†’ animation control only

- SFXManager โ†’ centralized audio playback

### Design Principles

- No gameplay logic in UI

- Modular and readable code

- Minimal duplication

- Clear separation of concerns

---

## ๐ŸŽฎ Controls

| Action | Key |

|------------------|-----|

| Select Action | W / S |

| Select Enemy | A / D |

| Confirm | Enter |

| Pause Menu | ESC |

| Skip Turn | P |

---

## ๐Ÿ“š What I Learned

- 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

---

## ๐Ÿ“Œ Future Improvements

- Status effects (poison, stun, buffs)

- Enemy AI patterns

- Data-driven abilities

- Save system

- Expanded UI polish

---

## ๐ŸŽจ Assets & Credits

The following third-party assets were used in this project:

### ๐ŸŽต Music

- JRPG/RPG Combat Exploration Theme https://assetstore.unity.com/packages/audio/ambient/fantasy/jrpg-rpg-combat-expl...

### ๐Ÿ”Š Sound Effects

- RPG Essentials Sound Effects - FREE! https://assetstore.unity.com/packages/audio/sound-fx/rpg-essentials-sound-effect...

### ๐Ÿ–ฅ๏ธ UI

- GUI Parts https://assetstore.unity.com/packages/2d/gui/icons/gui-parts-159068

### ๐ŸŒ„ Background

- Free 2D Cartoon Parallax Background https://assetstore.unity.com/packages/2d/environments/free-2d-cartoon-parallax-b...

### ๐Ÿง Player Character

- Hero Knight - Pixel Art https://assetstore.unity.com/packages/2d/characters/hero-knight-pixel-art-165188

### ๐Ÿ—ก๏ธ Enemy Characters

- Bandits - Pixel Art https://assetstore.unity.com/packages/2d/characters/bandits-pixel-art-104130

### ๐Ÿค– AI-Generated Assets

- Character avatar visuals generated using Playground AI https://playground.com/

---

All assets are used under their respective licenses for educational and portfolio purposes.

## ๐Ÿ“„ License

This project is made for my portfolio, for educational purposes only.

Download

Download
TurnBasedBattle.zip 40 MB
Download
TurnBasedBattle.app.zip 48 MB