A 3D adventure game inspired by Vietnamese folklore, built with Unity and C#.
Trang Quynh Game is a Unity 3D adventure project that combines exploration, NPC interaction, quest progression, inventory systems, and a traditional Vietnamese mini-game inside one gameplay loop.
The project was built to demonstrate practical gameplay programming skills, including:
- Quest state management
- NPC dialogue flow and interaction triggers
- Inventory and hotbar systems
- UI-driven mission tracking
- Mini-game integration into the main game loop
- AI difficulty design for a turn-based board game
This repository is suitable for showcasing gameplay programming, UI logic, mission flow design, and system integration in a portfolio.
Representative screenshots of the environment, dialogue system, inventory flow, and mini-game will be added here.
Markdown template:
| Environment | NPC Dialogue |
|---|---|
![]() |
![]() |
| Inventory System | O An Quan Mini-game |
|---|---|
![]() |
![]() |
| Mission Progress |
|---|
![]() |
Short gameplay clips will be added here to showcase mission flow, item interaction, and O An Quan transitions.
- Built a quest-driven adventure flow with multiple NPC missions and reward-based progression.
- Implemented branching dialogue interactions using trigger-based NPC conversations.
- Developed an inventory and hotbar system with item pickup, stacking, drag-and-drop, equip, and drop interactions.
- Integrated the traditional Vietnamese board game O An Quan as a playable in-game challenge.
- Added multiple AI difficulty levels for the mini-game, including Random, Greedy, and Minimax with alpha-beta pruning.
- Designed supporting systems such as tutorial, undo, achievement tracking, level/XP progression, and currency rewards.
- Explore a 3D environment inspired by Vietnamese rural and market settings
- Interact with NPCs through proximity-based dialogue triggers
- Accept, track, and complete missions through dialogue events and state transitions
- Collect, carry, and deliver items required to complete quests
- Earn gold through mission completion and progress toward level completion
The current project includes multiple mission flows, such as:
- Collecting required items and returning them to an NPC
- Delivering a letter between NPCs
- Completing item-based mission objectives through inventory checks
- Challenging an NPC through a mini-game and receiving rewards based on the result
The project features a playable O An Quan mini-game connected directly to the main adventure gameplay:
- Triggered through an NPC challenge flow
- Launches from the main world after dialogue confirmation
- Returns win/lose results back to the main game
- Rewards the player on victory and allows retry on defeat
- Supports AI difficulty selection and turn-based interaction
- Quest logic is handled through dedicated mission controllers such as:
Mission1ControllerMission2ControllerMission2TurnInControllerMission3ControllerMission4OQuanController
- NPC conversations are triggered through
ConversationStarter - Conversation flow can be dynamically overridden based on mission state using
IConversationOverrideProvider - Mission progress is reflected in UI through checklist panels and mission board tracking
The inventory implementation supports:
- Item pickup from the 3D world
- Item stacking
- Drag-and-drop between inventory slots
- Hotbar selection
- Equipped hand item display
- Item dropping back into the world
- Tooltip-style item description UI
The O An Quan mini-game includes several AI strategies:
- Easy: Random AI
- Medium: Greedy AI
- Hard: Minimax AI with alpha-beta pruning
Additional systems include:
- Board state pooling to reduce unnecessary allocations
- Undo support through stored game state snapshots
- Achievement and progression systems backed by
PlayerPrefs
Role: Game Developer
Key responsibilities demonstrated in this project:
- Built gameplay systems in C# for quests, inventory, mission flow, and UI behavior
- Integrated NPC conversations with mission states and reward logic
- Connected the main adventure game with the O An Quan mini-game using result callbacks
- Implemented and maintained AI behavior and supporting systems for the mini-game
- Designed user-facing gameplay feedback through checklist UI, dialogue flow, reward states, and progression systems
- Engine: Unity 6 (
6000.3.5f2) - Language: C#
- Rendering: URP
- UI: Unity UI / TextMeshPro
- Input: Unity Input System
- Dialogue: Dialogue Editor integration
- Persistence: PlayerPrefs
- Additional Systems: Cinemachine, navigation, video playback, mission UI, AI gameplay systems
These are the main controls currently used by the project:
F: Talk to NPC / start conversationE: Pick up itemTab: Open or close inventory1-9: Select hotbar slotG: Drop equipped itemMouse: UI interaction and mini-game interaction
- Unity Editor
6000.3.5f2
- Open the project with Unity Hub
- Use Unity Editor version
6000.3.5f2 - Load one of the main scenes from Build Settings:
Assets/Scenes/MainMenu/Prefabs/MainMenu.unityAssets/Scenes/PlayScene.unity
- Open the main menu or gameplay scene
- Press
Playin the Unity Editor - Interact with NPCs, collect items, complete missions, and launch the O An Quan mini-game
A playable build link will be added here.
Assets/
├── Scripts/
│ ├── Conversation/
│ ├── Inventory/
│ ├── Mission/
│ ├── NPC/
│ └── Audio/
├── MiniGame/
│ └── Scripts/Client/
├── Scenes/
└── MoneyStatus/
This project does not only show a playable Unity scene. It demonstrates the ability to:
- Build gameplay features as reusable systems instead of one-off scripts
- Connect UI, dialogue, player actions, and world state into one coherent loop
- Design mission progression with clear state transitions
- Integrate a separate mini-game into a larger gameplay experience
- Implement game AI beyond basic rule scripting
- Create player feedback systems such as rewards, achievements, level progression, and mission tracking








