top of page

I'm a student currently studying at UOW Malaysia, Glenmarie campus, studying Game Development as a Programmer. 

​

I've always had an interest to programming since high school, and mixing that with my love for video games, now I'm looking to build high quality games for people in the future.

​

I've always wanted to work as a Gameplay Programmer, but recently as a UI programmer as well. But other sectors such as Level Mechanics and VFX have intrigued me as well!

Paper Pal

600x200_edited.png

UI Implementation

  • Most heavily worked on an intricate dialogue system (explained in more detail in Dialogue section)

  • Worked on the collectable system in the journal, as well as the UI for it

    • Functions for the collectable system and UI also reused for hat collection system​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

  • Implementation for a special player state and UI, where the player is unable to interact with NPCs while in this state​​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

​

Dialogue System Implementation

  • Shifts the player to a fixed location, and has unique camera angle when engaging in dialogue

  • Letter by letter dialogue

  • Each unique NPC can have unique names, UI colors, type speeds, and sound that plays

  • Has built-in events that allow for events to happen in-between or after dialogue (fade events, camera pans)

  • Other minor details such as pauses on punctuation, playing audio on spaces, and a skip function

  • Different dialogue is played based on their current state (explained in more detail in Tooling section)

 

​

​

​

​

​

​

​

​

​

​

​

 

 

 

 

 

 

​

​

​

​

​

​

​

​

​

​

​

​

​

​

 

 

 

​

​

NPCs / Quests

  • Intricate base NPC blueprint that serves as the parent to all the NPCs

    • Interact functions to activate dialogue system​

    • Can be placed in the world and edited via exposed variables for ease of testing and experimenting (explained in more detail in Tooling section)

  • Some NPCs have quests that can be triggered when talked to

  • Each quest has unique requirements to complete them, often hinted through dialogue

    • Specially made quest items also contribute to quest completion​

  • Quest are implemented in a non-linear way​

    • Players can leave a quest halfway to accept another quest​

    • Certain quest states can differ based on the player's knowledge and items

      • Eg. The player can receive a key in a quest, that is needed for a different quest, and can immediately complete that quest because of it

      • Dialogues of the NPCs can also differ due to this

​

​

​

​

​

​

​

​

​

​

Level Progression

  • When certain things in-game happen (eg. tutorial completion), the world and its objects are updated accordingly

    • Certain objects spawning/despawning​

    • States for other affiliated NPCs changing

    • Generally progressing the world state

​

​

​

 

​

 

​

​

​

​

​

​

​

​

​

​

​

​

​

​

Tooling

  • Created tools and designed certain blueprints in a way that allows my designer to easily implement and change certain aspects within the game

  • Data tables​

    • A table with elements of a specific structure, new rows can be added to create a new element with different data, and can be called by their Row Names​

      • NPCs​

        • Name​

        • Color for UI during dialogue

      • Dialogues​

        • Current state of NPC​

        • Dialogue content based on state

      • Collectables / Hats

        • Name​

        • Image in journal

        • Description​

​

​

​

​

​

​

​

​

​

​

​

  • Editable variables

    • Most prominent in the main NPC blueprint, several aspects of the blueprint can be edited in the game world after they are placed in​

      • Where the player stands, their rotation, and the camera angle during dialogue​

      • Range at which the player can interact with the NPC, array of NPCs who are highligted alongside the targeted NPC

      • The current state NPC is in (for testing purposes)

      • Certain toggleable booleans (for testing purposes)

      • Quest requirements (eg. the total number of an item required to complete quest)

      • Variables in events (eg. where an NPC teleports to, their rotation after teleporting

​

​

​

​

​

​

​

​

​

​

​

​

​

​

Collectables tab in the journal

stinky.png
stinkyCheck.png
collectables.png
collectablesBP.png

Collectables' images and descriptions will show if the item is collected

Unique event that happens in the game, "Stinky Mode"

Prevents the player from activating dialogue when in this mode

playerAdjustments.png
dialogueBP.png
dialogue.png

Dialogue mode with unique camera angle, NPC with attached name and UI box color

Blend to unique camera angle + move player to intended position and rotation

Get and display the relevant dialogue

questMP.png

State of NPC and animation played depends on how many swords are collected

postMP.png
blocksChange.png
preMP.png

Before tutorial completion

After tutorial completion

Checks for certain conditions to spawn the blocks

npcVar.png
dataTable.png
dataTableEx.png
mpVar.png

List of added rows/elements

Example of unique data in a row/element

Variables that can be applied to all NPCs

Unique variables for this specific NPC

©2021 by Sam Lee. Proudly created with Wix.com

bottom of page