ApocaParty
Overview#
Apocaparty is a 2D strategy-lite and time management game inspired by the likes of Diner Dash made during Summer Slow Jams 2023: Narrative.
You play as Cthulhu, tasked with organizing and managing Azathoth's waking up party . Keep your guests, the four horsemen of the apocalypse, happy by fulfilling all their demands before the timer runs out and Azathoth awakens.
Contributions#
For this game, I was tasked with implementing the main game mechanics:
- UI
- Interaction & Controls
- Audio Playback
- AI
- Event Scripting
- Tutorial
- Win/Lose State
I also helped develop other mechanics such as:
- Dialogue System
Guests#
The gameplay loop focuses on constantly pressuring the player by overwhelming them with guest demands/needs. Guests can make different requests, which the player must fulfill in order to keep them happy.
For the guest AI, I took inspiration from Needs-Based AIs implemented in games such as The Sims. Each guest has a set of metrics (such as hunger and thirst) that continually tick down and can also be influenced by external events occurring in the game world (e.g. power outage).
Requests can only be fulfilled by the player completing a set of actions. Instead of hardcoding these actions, I implemented a simple Action List. These action lists are integrated into the editor via a custom editor script, allowing for designers on the team to create new actions lists on the fly using predetermined building blocks.
UI#
I created a UI system that allowed us to quickly spin-up UI views and link them together to create pause menus but was also used for the dialogue system’s UI to great success. The system works similar to layers in a photo manipulation software, with it keeping track of a stack of UI views it can navigate. Views have hooks for when they are popped and pushed from the stack, allowing for functionality such as transition animations.
Event Scripting#
This was a difficult part of the project. Once we made an MVP, we quickly realized that the mechanics were too convoluted and therefore people had trouble figuring out what to do. We tackled this by stripping out a lot of mechanics and simplifying the gameplay loop to make it easier to digest. Along with that, we also decided to create a tutorial for the game to help ease players in.
I went back and forth with the game designers a lot to decide the best ways the convey information to the player without making the tutorial too hand-holdy, as was a worry the rest of the team had from their past game jams.
All the tutorial scripting was done using Unity’s timeline system & API. Custom playables were created to facilitate the experimentation of the tutorial. Such playables included:
- Controlling sprite sorting order.
- Controlling interactable object states.
- Controlling AI.
- Integration into the project’s dialogue system developed by fellow programmers.
- Text popup with animation and audio.