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!
See No Evil, Hear No Evil

My Work & Contributions
Project GitHub link: https://github.com/samdp4l/SeeNoEvilHearNoEvil.git
Tech Lead
-
Lead a team of 3 programmers
-
Handled source control and main build of the game
-
Monitored and assigned individual tasks to my teammates
​
Generalist programmer
-
Handled a bit of everything
-
Edited and tweaked scripts from my teammates to be able to be implemented
Player mechanics
-
Basic player movement
-
Moving around using WASD​
-
Sprinting, with a stamina system attached
-
Looking direction based on mouse cursor location
-
-
Mode switching function that changes between the two modes of "vision" and "hearing"
-
Hearing mode​
-
A mode in which the player's vision is highly limited, but they can now "hear" sounds​
-
This mode actually provides more audio when played
-
Is also visually visible with sonar-like visuals
-
​
​
​
​
​
​
​
​
​
​
​
-
Throwing mechanic
-
Player can pickup items and use them to distract the enemies​
-
​
​
​
Enemy AI
-
Created 2 enemies with different properties
-
Both enemies seek and attack the player when their conditions are met​
-
-
Utilized A Star Pathfinding Project plugin to create enemy AI
-
Patrolling based on patrol points​
-
Enemies can pinpoint and seek the player's location when triggered
-
Enemies return to patrol route when not chasing
-
Patrol routes update and change when the level layout changes
-
​
​
​
Level mechanics and progression
-
Created mechanics for different level objects and obstacles
-
Obstacle that creates noise when ran into​
-
Object that can be activated to distract enemies
-
Object where the player can hide in to avoid enemy detection
-
Simple door function
-
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
-
Level progression
-
Level changes when quest items are picked up​
-
​New enemies spawn​
-
Level layout changes, walls are broken, certain doors are unlocked
-
Enemy patrol routes changes based on the new paths
-
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
UI implementation
-
Base UI for player statistics
-
Sanity bar (Health bar)​
-
In-hand item (Icon swaps with item cycle)
-
Current mode (Hearing or Seeing mode)
-
-
Journal system and UI​
-
A journal with different tabs​ that provide different menus​​
-
General pause menu with options
-
How to play guide
-
Journal elements with story and lore, which updates when the player progresses the story, or picks up certain items
-
​
​
​
​
​
​
​
​
​
​
​
​
-
Audio system​
-
Created an audio manager to handle all the audio in the game​
-
Used spatial audio
-
Implemented the audio for certain actions, and individual characters and items
-
​
​
​
​
​
​
​
​
​
​
​
Dialogue system
-
A dialogue system that bounces between the 2 main characters
-
Speed up and skip functions
-
Designed in a way where tutorials and tips are nested within the dialogue itself
​
​
​
​
​
​
​
​
​
​
​
​
​
​
Art assets implementation
-
Worked closely with the artists to figure out measurements and asset needs
-
Implemented the art assets into the build
-
Character sprites and animations​
-
Prop sprites and their different states
-
Level assets and layout
-
Used tile sets for some level assets
-




Held item is spawned and thrown when selected and used
Sonars only spawn when player in "hearing" mode, and only under certain circumstances (eg, player running)
Enemy sets player as chase target when player enters its field of view
Enemy patrols a set path based on an array of points on the map


Example interactable: closet, allows player to hide, which disables most of the player's functions, but conceals them from enemies
Enemy spawn, special dialogue trigger, new journal entries unlock, and enemy navigation map rescanned upon level shift

Level changes and door unlocks upon level shift






Journal function to update and unlock specific entries
Journal and in-game UI elements
Audio class to store different editable, audio variables
Function to look through and find the correct audio clip to play
Types out sentence letter by letter, and updates name based on current speaker
Dialogue in-game, with prompts to skip if the player wants to