Skip to content

Love, Healing, and Other Crimes

Created a 2D point-and-click educational history game in 3 months for JapanLab in a team of 5 people.

Date

November 2025 (In-development)


Role

System Designer, Programmer


Skills

Unreal Engine 5, Blueprint visual scripting, Rapid prototyping and playtesting, Communication with non-developers, Self-motivation and self-learning


Summary of Contributions

  • Potion brewing gameplay and questline programming
  • Gameplay and quest balancing
  • Weekly delivery of new prototype to the team
  • Asset implementation in engine including sound, art, UI, and dialogues
  • Creation of development pipeline to facilitate smooth workflow between programmer and narrative roles
LHOC_brewing-1

Potion brewing gameplay

Screenshot 2025-11-30 103340
Quest NPC dialogue
Screenshot 2025-11-30 180957

Quest dialogue progression setting function build to be reuseable for both progressing dialogue and jumping to a part

LHOC_quest_selection

Quest navigation in quest menu

Screenshot 2025-11-10 144930

System balancing in Google Sheet

Screenshot 2025-11-30 174614

Using formatted .csv file to import quest data into the engine

Highlights

Creation of Attribute-Based Potion Brewing Gameplay

  • The game's goal is to teach players about history in a fun, interactive way, with its target audience being college/high school students who want to learn about history. With this in mind, I wanted to design a calm and puzzle-like cooking mechanic without a time limit.
  • Since the potion's attributes cannot exceed the bars, players get to experiment with different orders of adding the ingredients and how they affect the potion.
  • With the difference threshold giving grace to the players, they can choose to move on with imperfect but acceptable potions or try until their potion is perfect.
  • With the nature of the puzzle, there could be multiple solutions to meet a quest's ideal attribute, encouraging players for experimentation.
  • The brewing idea was inspired by a Reddit post about different cooking mechanics in games.

Quests

  • To give freedom to the players in accepting and completing quests, the quest system combines linearity and non-linearity. The levels affect the number of ingredients player use and the attributes they have to manipulate. Within the level, players can choose their own order and number of quests to complete.
  • Each quest serves a purpose in teaching and challenging the players with something new, allowing for a balance between player skill and difficulty.
  • With the difference threshold giving grace to the players, they can choose to move on with imperfect but acceptable potions or try until their potion is perfect. It also allows the designer to control how much mastery they want the player to have over the topic/learning objective of the quest.
  • With the nature of the puzzle, there could be multiple solutions to meet a quest's ideal attribute, encouraging players for experimentation.
  • The brewing idea was inspired by a Reddit post about different cooking mechanics in games.
Screenshot 2025-11-30 221552
Screenshot from the Quest Balancing Sheet

Development Process and Iteration

Screenshot 2025-11-30 221915

Physical Prototype

  • To see the player feel and test the core mechanic, I created a simple physical prototype and play tested it with my peers.
20251130_232222
Screenshot 2025-11-30 233422

Early Slide Deck of Game Overview, Systems, and Objects

Screenshot 2025-11-30 233751
Screenshot 2025-11-30 235436
Screenshot 2025-11-30 235445
Screenshot 2025-11-30 235453
Screenshot 2025-11-30 235517
Screenshot 2025-11-30 235527
Screenshot 2025-11-30 235537
Screenshot 2025-11-30 235547
Screenshot 2025-11-30 235555
Screenshot 2025-11-30 235608
Screenshot 2025-11-30 235619
Screenshot 2025-11-30 235629

Early Builds

Screenshot 2025-12-01 165418
An alternative pitch of the game that was a turn-based RPG. It allowed the player to attack the inquisitor and the inquisitor (AI) to attack the player using a random attack.
Screenshot 2025-12-01 160729

Prototype 0: The customer asks for a random potion and player gets xp if they click on the right potion.

Screenshot 2025-12-01 175929
Prototype 1: Added a game over condition and suspicion meter as well as a map and an area where the player can talk to an NPC.
Screenshot 2025-12-01 180808
Prototype 3: Implemented the potion brewing gameplay where ideal attributes were randomly generated each round. Also created UI elements for the potion attributes, like ideal attributes and potential attributes when drag-entering the ingredient into the pot.
Screenshot 2025-12-01 181133
Prototype 5: Added attribute bars to make the gameplay less feel like a math quiz. Also added some art assets and implemented the difference threshold since the ideal attributes were randomly generated and not always possible to match exactly with the available ingredients.
jplab_prototype7_vid
Prototype 7: Added a quest system, quest menu and inventory UI, and dialogue system. Got rid of the randomly generated ideal attributes for more linear gameplay.
jplab_prototype9_vid

Prototype 9: Added some UI buttons and implemented map UI and some written assets. Reorganized NPC classes to easily create many of them with customizable properties like appearance and quest ideal attributes.

jplab_prototype10_vid
Prototype 10: Added unlockable areas on map that unlocks as players level up.
Screenshot 2025-12-01 193258
Prototype 12: Implemented more art assets and polished UI according to player feedback. For instance, updating potion brewing bar color from green when unacceptable and yellow when acceptable to be green when acceptable and yellow when unacceptable to make it clearer.
jplab_prototype14_vid
Prototype 14: Updated gameplay progression according to the narrative design. Created and implemented functions that allows for non-quest giving NPCs and dialogues as well. Also created various interactions and level up events for during the game and the ending.
logoDisplay
The prototypes afterwards consisted of bug fixes and asset implementation.

How the Core Brewing Mechanic Evolved

  • Currently, there are two outcomes when players submit a potion for a quest: they can either pass or fail. The early prototype of the game allowed for a spectrum of pass, the player getting higher reward the close they brew the potion to the ideal potion attribute that is randomly generated. However, this idea was scrapped as we moved to a more linear quest structure with set number of total quests.
Screenshot 2025-11-30 103409

Reflection

What went well:

  • I was able to stay motivated and consistent throughout the semester while working on academic and extracurricular activities.
  • I learned a lot about Unreal Engine in general and developing 2D games in it. I was also able to get more experience with Object Oriented Programming and optimizing workflow by creating reusable functions and data and string tables.  
  • My team was able to create a playable game by the due date and present at the Japanlab Expo.

Obstacles:

  • As an educational history game, our team included non-developers like script writers and history researcher, which made communication very important and challenging. The solution I came up with is to come with a visual/playable prototype every meeting to ensure everyone was on the same page and the design was easy to understand.

Future Improvements:

  • I would make the UI Navigation more player friendly. For example, allowing to start brewing in the quest screen.
  • I would like to start utilizing public and private classes more. 
  • The problem in design is because we had to reduce the scope towards the end, the difficulty of quests within the same level and what they learn from the levels vary and are not in order. Once we add more quests, I would like to add quests that allows players to have enough practice to properly learn the mechanics and different ingredients. 
  • Currently, the suspicion meter doesn't really have a use since the players can know when brewing if the potion will be accepted or not. I want to adjust the design to make the gameplay higher stake.
  • I want to implement an endless challenge game mode after the player clears the game once where they can just brew to match randomly generated potion attributes with a high score leaderboard.