Malisense
Role​
Programming Language
Game Engine
Team Size
Platform(s)
Development Period
Gameplay and UI/UX Programmer
C#
Unity
30+
Windows, browser
January 2024 - May 2024
In this 2D top-down stealth dungeon crawler, the player must explore dungeons whist avoiding monsters in order to unlock sacred artifacts that can thwart a great evil.
​​​
This game is the Game Design and Art Collaboration (GDA) club's 2024 mock studio project. GDA is a game development club at the University of California, Santa Cruz. They run workshops, game jams, and a mock studio.
​
This project served as my first time working within a large team and an Agile development environment.
Collaboration with Artists
Proactively collaborated with artists while implementing the main menu and village hub to make the scenes best align with their vision
Tasks:​
-
Communicated with artists about how they wish their assets to be implemented
-
Facilitated discussions with artists about changes to make and what looks best
-
Detailed and showed possible changes and additions I could make in engine to artists
-
Figured out the right artist to contact when there was a problem with an asset or a new one was needed
Main Menu & Village Hub Input System
Implemented and heavily playtested the input system for the main menu and village hub, supporting mouse, keyboard, and controller use
Abilities:
-
Navigate UI, press buttons, and adjust sliders using keyboard or controller
-
Repeatedly press or hold down inputs to navigate
-
Use a mouse, keyboard, and controller at the same time and seamlessly switch between them
Player Movement
Optimized, refactored, and debugged player movement code through thorough testing
Features:
-
​Eight directional movement
-
Walking, sprinting, and sneaking states
-
Stamina
-
Exhaustion - player is unable to sprint for some time when stamina reaches zero
-
Utilizes Unity's Input System
​On the first day that I started to work on this, some team members had already set up an early prototype using a circle as the player. It used the Input System and could walk and sprint in eight directions. While I was catching myself up, I noticed and reported that the player seemed to move slower diagonally. My teammates were skeptical, so I ran tests comparing the straight and diagonal speeds which confirmed that the diagonal movement was indeed slower. After reviewing the code, I found that diagonal move speed was being divided by sqrt 2, but I knew that this was typical for eight directional movement. However, after running more tests, I discovered that Unity's Input System automatically normalizes diagonal vectors, making the division unecessary. After presenting my findings, I got approval to remove the division.
​
As my team continued to build the movement system, I took on the role of optimizing and refactoring the new code they wrote. I edited it so that it was concise and also easy to read, understand, and modify. Additionally, I took care to make the movement system designer-friendly by making it adjustable within the inspector. My work led to the design team easily being able to adjust movement and disable sneaking later in the project's development.