Gorilla Bay is a game-based learning platform for refugee learners, assisting in STEM topics with a focus on teaching vocabulary. The project's current language option is Swahili but can support all languages.

• Designing a modular quest and dialog system.
• Developing four science-based modules that cover STEM topics such as the solar system, physics, ecosystem, and the human body.
• Utilizing the localization dashboard to effectively implement translations for dialog into the game.
• Concepting and prototyping gameplay after brainstorming with professors from diverse academic backgrounds including linguistics, engineering, and english.

Undergraduate Assistant to Independent Contractor
As an undergraduate research assistant, I initially assisted the game design professor who served as the Lead Developer. After my first year, he transitioned to industry, and I continued to work on the project during the following year as the new professor settled in. For the majority of the project's development, I served as the sole developer, which was a big role to fill. My contributions proved invaluable to the project and I was hired after my graduation Over the summer, I completed a playable demo of the game for future developers to build upon and refugee learners to playtest.

Photo-taking Mechanics
A basic photo taking mechanic was in place when I joined the project, but its functionality was limited and could only take photos of actors providing dialog once. Lacking documentation and with little communication from the professor, I reverse-engineered the camera system in order to expand its functionality, enabling it to integrate with quests and story progression.

Camera: The player can take photos of objects and items in the environment to receive dialog. The Camera is designed so that if there are multiple actors of interest, it targets the closest object by comparing line traces. There are both quest and non-quest specific actors which can be photographics at any time or just once. A modular component is added to an actor if it can be photographed making it easy to apply to any actor. This component also stores the dialog upon taking the photo.


Modular Quests
To create meaningful gameplay that allows the player to take photos with a purpose, I developed a quest system. These quests guide players through the mechanics of the game and take them on adventures designed to teach specific topics.

Quest mechanics: When starting a quest, I add all photo goals into an array for photo taking, easily accomplished using the pick actor eyedropper. I made sure these quests can be resumed from where the player left off, saving the current quests state. When a photo of a quest objective is taken, the game updates the counter and removes the actor from the quest. I included functionality to allow taking multiple pictures of the same objective to review their descriptions if needed. These quest blueprints can be triggered with collision or activated manually like when completing a previous quest.


Base Quest Actors: I utilized a base for quest actors to add specific functionality to these blueprints. For example, I implemented quest markers to prevent players from getting lost, ensuring they are visible from anywhere. These markers can be shown or hidden based on preference. Using the base class, quest actors can also include moving AI for animals or animated objects.


Interactables: With photo-taking as the only mechanic, it was challenging to properly convey certain showcases and the gameplay sometimes lacked variety. To address this, I extended the quest system to work with intractable elements like dialogue collisions and buttons. Using the same base quest actor, I can still add markers above these interactables without needing to take a picture.


Character Customization
My task when starting out was creating a simple, modular character customization pod to allow players to personalize their characters. Starting with the base character, I categorized and separated each part of interest, such as facial features, clothing, and hair. By using consistent pivots on models, I ensured that adding more models and cloth rigs in the future would be straightforward by providing a struct with arrays for each customization category. In the demo I made a few basic options in order to properly showcase the ability to switch between components.