Duckside of the Moon
Project Type: Team/University Project
Software: Unreal Engine 4, Blueprints
Platform: PC
Role: Gameplay/Tools programmer
Team Size: 10
Duration: 32 weeks
Project Overview
Created in Year 2 with a team of student at Breda University of Applied Sciences.
Duckside of the Moon is a survival game about Doug, a talented duck astronaut, who gets sent up into space for a research expedition. On his journey, he gets sucked into a wormhole, and he is transported to a mysterious galaxy. His ship has reset, and he's stuck. This brave duck must find resources to improve his gear and fix his spaceship, so that he can return home to his friends and family. While doing this, he must overcome dangerous environments as he realizes that he might not be the only one up here...
Skills Developed
-
Unreal Interaction system: Learned to work with the interaction system to trigger dialogue.
-
Blueprint Scripting: Developed a tool to spawn, update and manage effect-driven zones.
-
Collaborative Development: Worked together with designer to align tools with creative goals.
Features
Zone Effect Tool
The zone effect tool was created using blueprints, and was used to give designers control over gameplay zones with effects (e.g. frost, radiation, oxygen). This enables fast iteration of the level design. The system consists of Pocket Managers that manage Pockets (zones) with customizable behaviour.
Pocket Manager (for managing pockets)
The pocket manager acts as a parent object that spawns and manages Pockets with specific effects.
Down below are the features of the Pocket Manager.

Pocket Manager: The pocket manager keep track of all the pockets in an array. Designers can spawn pockets, toggle pockets visibility, and update the tag for the pockets (which determines the effect for all pockets). Multiple managers were used troughout the level for different effects.

Spawn Pocket: Example of spawning pocket. A pocket will also change color when you spawn one, depending on the tag set. In this case "Radiation" turns the Pocket Manager and the pocket just spawned green. This color can be set in the blueprint. Allowing different colors for the effects was for designers to better differentiate between effects in the level.

Updating Effects: The effect set when spawning pockets, can also be changed. Here I change the effect from "Radiation" to "Frost", update the tag and the color changes to blue, which is tied to the Frost effect. This is to give designers flexibility if they would want to change the effect later in an area they had already set up.

Visibility Control: Visibility can be toggled on or off for pockets, when clicking the "Toggle Pocket Visibility" button. If designers left this on they could see the areas in-game, but since the player shouldn't see them they could turn it off once they were happy with how they set up an area for an effect.
Pockets are gameplay zones that were customized to fit the level design needs at the time.
Down below are the features of the Pocket.

Shape Toggle: On each pocket an option exist to make the pocket a sphere. Unchecking would return the shape back to a cube (default shape). Designers wanted both shapes to work with, so I made both an option on the pocket.

Shape Toggle example: Here the pocket is being toggled between sphere and cube form on its pocket manager.

Scalable: Each pocket is scalable to their desired size.

Visual Feedback: Designers can toggle on/off VFX for all pockets on each manager. This effect is then visible when the player gets in a zone.

Visual Feedback: Players goes into a zone as indicated by VFX. Player also loses health because of "Radiation" effect.
Dialogue Management Tool
I developed a tool tailored to give the narrative designer a way to create dialogue and choose in which zones these take place, as we had different environments for our NPC's.
Zone-based Dialogue Creation
For the designers it was important to create dialogue and for each dialogue to set where it would take place.

Dialogue Data Table: I created a data table for the narrative designer, where the dialogue could be created. The game did not feature branching dialogue, just linear dialogue, so this was good enough at the time for what the narrative designer wanted to achieve.
NPC: this is the ID for each NPC.
Conversation: This is the ID for the conversation for the NPC.
Line: This is the line ID. A Conversation can have multiple lines.
Dialogue: This is the dialogue.
Location: This is the location each line is spoken in.
Each Conversation would go trough each Line, until it had none left and increase the conversation ID.
Until there was none left for the specific location.

NPC Location: On the NPC you could choose the location of where it was at this moment. It would then play the conversations created for that location when you would walk up to it.

Different dialogue at different locations
Dialogue Camera Transition
Implemented camera transition for NPC Dialogue, ensuring smooth visual focus and enhancing player immersion. I used Unreal's interaction system to trigger dialogue, when interacting with NPC's. This will also trigger the camera transition.

Dialogue Transitions in-game