top of page

2d rpg

  • Project Origin: Completed a Udemy course on creating 2D RPGs in Unity and earned a certificate

  • Purpose: Practiced core techniques and gained a deeper understanding of 2D game design

  • Key Learning Outcomes:

    • ScriptableObject usage

    • Data Persistence across scenes

    • Inventory System Implementation

    • 2D Animation & Rigging workflows

    • Dialogue System integration

    • Crafting the System design and functionality

This video demonstrates a range of core gameplay systems developed for the project. It highlights omnidirectional player movement, enabling traversal in all eight directions, as well as the combat system, where players can select targets, take damage, and deal damage to enemies. Additionally, it showcases the loot and inventory systems, including resource drops from defeated enemies and the ability to manage items through using, equipping, or dropping them based on the current inventory state.

In a previous project, I utilized Unity’s built-in dialogue system and identified key limitations in flexibility and workflow efficiency, despite its node-based design. To address these constraints, I designed and implemented a custom dialogue system tailored to the project’s specific needs. This video demonstrates the system in action, highlighting its functionality and the improvements it brings to both usability and development workflow.

This video demonstrates a classic fishing minigame inspired by those commonly found in 2D RPGs. While there are noticeable issues and limitations present, reflecting its early stage of development, the system was created as a proof of concept. The goal moving forward is to revisit and expand upon this foundation, refining existing mechanics and addressing shortcomings identified during this initial implementation.

This video demonstrates another proof-of-concept idea, focused on showcasing animation beyond basic player movement. In this case, the goal was to highlight animated UI interactions within the menu, rather than simply animating button transforms, by introducing more dynamic and expressive motion.

This code demonstrates a custom inventory system designed using a singleton pattern to provide centralized access and management. It supports core functionality such as item stacking, adding and removing items, equipping weapons, and consuming resources. The system also integrates with a UI layer for real-time updates and includes save/load functionality through data serialization, ensuring inventory persistence across sessions.

This code demonstrates a modular player combat system that supports both melee and magic-based attacks. It integrates input handling, animation control, and targeting logic to execute attacks through a coroutine-driven workflow. The system dynamically selects attack directions based on player movement, applies damage with critical hit calculations, and manages weapon switching, mana consumption, and projectile spawning, creating a flexible and extensible combat framework.

This ScriptableObject defines a centralized player stat system used to manage core RPG progression and combat values. It handles health, mana, experience, and level progression, alongside combat stats such as base damage, critical chance, and critical damage. It also implements an attribute system (Strength, Dexterity, Intelligence) that supports character customization and scaling. By separating stat data from runtime logic, the system allows for easy balancing, persistence, and reuse across multiple gameplay systems.

This code implements a ScriptableObject-based quest system designed to manage quest data and progression independently of runtime logic. It tracks quest state, including acceptance, progress, and completion, while supporting objective-based progression through a configurable goal value. The system also defines reward structures such as gold, experience, and optional item rewards. Built-in methods handle progress updates, completion validation, and state resetting, enabling reusable and data-driven quest design suitable for an RPG framework.

This code implements a ScriptableObject-based quest system designed to manage quest data and progression independently of runtime logic. It tracks quest state, including acceptance, progress, and completion, while supporting objective-based progression through a configurable goal value. The system also defines reward structures such as gold, experience, and optional item rewards. Built-in methods handle progress updates, completion validation, and state resetting, enabling reusable and data-driven quest design suitable for an RPG framework.

bottom of page