
Pandora's Party Box
A Square Games and Simulation, LLC
Fall 2023
Overview
During the Fall of 2023, I had the opportunity to come work for A Square Games and Simulation as a game developer intern. I worked alongside a multi-disciplinary team of programmers, artists, and producers in an agile environment to advance the development of a game called Pandora's Party Box.
​
Pandora's Party Box is an unreleased local multiplayer party game based around Greek mythology. The game is
comprised of unique zones based off of different Greek Gods. Each zone includes five minigames that relate to the mythology of its respective God.
What I Contributed
I was in charge of leading the design and development of systems and gameplay elements for the Ares zone. I was specifically assigned two minigames: The Labyrinth and Attack on Titan.
The Labyrinth
The Labyrinth is a minigame where the players are trapped inside the labyrinth with the minotaur on the loose. The players must avoid the minotaur's rampage and various traps scattered around the labyrinth.
-
Coded a finite state machine, animations, and object interactions for the minotaur using C# scripting and Unity's NavMesh system.
-
Idle: The minotaur looks around to see if any players are around it.
-
Patrol: The minotaur goes to randomly connected nodes around the labyrinth.
-
Charge: The minotaur ramps up and charges a player in its line of sight
-
​
-
Designed traps that I scattered around the labyrinth that affect player and minotaur movement.
-
Wall Trap: When a player steps on a pressure plate, a wall is raised, blocking the player from going back, as well as blocking the minotaur's line of sight and patrol
-
Cobweb Trap: When a player walks across a cobweb, their speed is reduced.
-
Attack on Titan
Attack on Titan is a minigame where the leading player is transformed into an enormous titan and is tasked with taking out their competition. The titan player can slam the arena ground with its fist, creating shockwaves that can kill the other players. The other players must evade the titan's hand and shockwave, and get in close to attack the hand before it goes back up.
-
Created a titan player controller by extending a pre-existing reticle controller.​
-
Integrated VFX, decals, and other original art to make the scene look dynamic.
-
Programmed a shockwave by utilizing a deadly ring mesh collider and a safe inner sphere collider that scaled over time.
Encountered Challenges and Solutions
Minotaur Patrolling
System Overview: During preproduction of The Labyrinth, we brainstormed ideas for how the minotaur would move around the labyrinth. I wanted to create a patrol system that invited randomness in the minotaur's movement to make each playthrough unique. Specifically, I wanted the minotaur to randomly go to some other node that it can visibly see. This system would also need to be able to work with the wall trap by removing the minotaur's ability to move to a node that is blocked behind a wall.
​
Problem: Early prototyping involved grid-based movement using tiling. However, the grid-based movement felt too restrictive for the minotaur. It didn't feel as realistic as I wanted it to be.
​
Solution: I restarted from scratch and coded a patrol node system using a graph data structure. I created a manager that allowed me to simply drag and drop two node transforms into Unity's Inspector to create an edge in the graph. These edges created a bi-directional link between the nodes, signaling that the minotaur is be able to move to the other node. This system allowed me to easily implement randomness by selecting a random node directly connected to the current node. to This also integrated very well with the wall trap, as all I needed to do was give the trap a set of links that would be destroyed when the wall raises and added again when the wall eventually goes back down.
​
What I Learned: Sometimes first designs and prototypes will not be the most optimal approach, forcing me to start from scratch and think of other approaches that will fit the problem better and create a more elegant solution.