
Scarlet Quest
Scarlet Quest is my solo project and has been my playground to prototype and experiment with my visions of an indie JRPG. It has gone through many stages of development. Many systems & game loops have been created, tested, scrapped and embraced. The earliest systems were created in 2021.

This page is to showcase some of those systems and to share my game development process.
Game Systems


Oldest System
The inventory is the first system i created for this project, back in 2021, and iterated on over the years. I took a lot of inspiration from MMORPG games like World of Warcraft, Ragnarok Online and Runescape. There's a lot of widgets and UI/UX involved in making inventories and equipment which has lead me to master the UMG editor and become better at UX design in the process.
I currently have 70 items.
S_ItemInfo

Inventory System
Functions

Exploring C++ & Networking
A custom made replicated spell system that's primarily made with C++. Each spell has their blueprint version as well. While this system is not optimized as much as other areas, it has been very interesting creating a spell system from scratch and implementing networking to it. The networking bit is on hold for the moment as the scope gets a little too big with multiplayer... It's not an idea I dismiss though.
This system however is less effective than Unreal Engines Gameplay Ability System in terms of performance. My system is easier to understand and implement compared to UE Gameplay Ability System though.
Spell System
C++ Scripts

Try again, Fail again
New day new character controller. There have been so many different movement styles, controls and camera settings throughout the project. I can never settle on top-down or third person and I keep trying out both. The current iteration is a 3rd person controller that's mainly inspired by World of Warcrafts movement.
The character controller is 90% replicated as I have not touched networking in a while. The Character Controller has once been purely C++ but I transferred most of it to blueprints since the iteration process & prototyping is just faster in blueprints.
Character Controller
Scripts & Functions
Pooling System

Simple Pooling System
I constructed this simple pooling system where each actor handles its own activation and deactivation through an I_Poolable interface.
I put the PoolingSystemComponent in the GameState along with the EnemyManager. There's only three functions needed for this pooling system, shown below.
I have a similar but more performant setup in C++. This blueprint system is easier to understand and use though.

Why Pooling System?
I use this to avoid the performance cost of the SpawnActor function as it can be heavy during runtime. When the player & world loads, I spawn other actors I know that I will need later, when everything is loading and the screen is black to avoid getting lagspikes later during gameplay.

Which actors to pool?
Anything that needs to be spawned through the SpawnActor function.
- Enemies
- Projectiles
- Effects
- Items
- Damage Numbers
- Widgets

Weapon & Equipment System

I currently have 5 weapon types that changes your stance and basic attack.
- Unarmed
- One Handed Melee
- Bow
- Two Handed Melee
- Wand
Each piece of equipment also gives stat bonuses and change the visual appearance of the character.
Weapon Stance
Scripts & Functions
Level Design / Assets / Photo Album
I enjoy level design.. It's an area where I can express my artistic side and be creative. Even though it looks a little rigid, its fun! The style is all over the place and different assets have been experimented with. You can maybe see how I have struggled with camera angles and character controller and how it affects level design decisions.. Should I have a jump? A roll? How fast can I run? What if I want to upgrade movement speed, will it break certain levels? Should you be able to move camera freely or is it static? Is the camera directed? How far back should the camera be?
I work with the assets I have at hand and try to think of creative solutions to make things look interesting with the most basic shapes. I have not made these assets or the character since I have spent majority of my time on making systems and designing the game! :) They are free assets from kenney.nl and synty. The character and character animations is a paid asset from the unreal marketplace. I chose this character because it has many customizations and animations for me to experiment with. This however makes me a little limited to what I can output visually. All 2D art is made by me though! LFM artist!
Assets






















