The Astro Parcel Service (TAPS)
Contents
Overview
The Astro Parcel Service is an astrophysical package delivery game where players must propel clumsily through space and deliver packages before the end of the workday and appease oppressive management
-
Engine: Unity 2019
-
Playtime: ~45-50 minutes
-
Platforms: Steam & Itch.io (PC & iOS)
-
Team: 16 People
Desired Experience
The goal of TAPS was to simulate the experience of working a terrible part time job; the feeling of having one thing you enjoy despite most of the things around you causing frustration. The ways to create this feeling was to give players a few fun, quick to learn mechanics while surrounding them with stress factors and make the stress increase over time.
Giving Players Something To Enjoy
The key to putting the players under stress but still creating fun relied on players getting frustrated with themselves and trying to get better. This was achieved by:
-
Movement that wasn't precise but provide a tool to use in a pinch for quick adjustments
-
A manageable inventory system and humorous method of delivering packages
-
Create additional chance to succeed just by partially finishing an order
-
Provide a way to snap back to package center in case packages are lost/order is completed.
-
Accessible controls allowing players to comfortably play with one hand.
Movement
-
Since space doesn't provide a large amount of friction, the player had to feel a slight struggle when moving through space. To keep things fun, a small rechargable impulse can be applied to give players a sense of control and added precision to maintain a fun frustration rather than making them want to quit.
-
Players complained about lack of level visibility so I created a simple camera zoom function that smoothly lerps the camera in and out based on player speed.
Packages & Inventory
*Numbers correlate to gif order
-
Originally players had to make contact with the packages directly with the model. Due to movement not being precise, this caused a ton of frustration. The remedy was to create a field around the player that can detect packages.
-
To allow players to deliver packages with minimal precision needed, it was decided that players simply need to throw packages at houses. Humor of the absurdity combined with audio of contents occasionally shattering made players giggle or smile when completing orders. To guide player aim, I worked with an artist to create the aim line shader.
-
I created a sorting method that allows players to sort through their inventory so that they don't have to throw packages and recollect them in order to complete a delivery. The sorting can follow two directions:
-
Front package goes to back
-
Back package goes to front
-
-
Having the sorting method created moments where the player could escape from potential traps or allow players to get out of sticky situations with minimal loses when combined with the throwing feature.
-
The inventory was scripted to behave like a chain link. If one is destroyed, all others behind it are lost until recollected or destroyed. I did this through a reverse for-loop that would remove each package from the inventory until it reached the correct index.
Package spawning and "destruction" was optimized utilizing a basic object pooling approach; objects are pre-loaded then activated/deactivated as needed. Packages spawn behind torus rings to hide popping.
Package Delivery
-
Due to the odds of losing packages getting higher as a player progresses through the game or a package not being available for a large order, I scripted a demand timer bonus when a package is delivered.
-
The timer bonus is modular and can be edited per house, per level.
Teleportation
-
Providing players with a quick way to snap back to where the packages spawn allows them to breathe for and prioritize which house to go to next.
-
Taking away the return travel time due to the map being so large and package orders coming in quickly made each level easier to balance and test.
-
This feature also came in handy for resetting the player if they went out of bounds or got sucked in by a black hole.
Accessibility
-
It's possible to play the entirety of the game with two fingers. All of the controls are mapped to the mouse (aside from pausing the game and alternative key press for teleporting). I scripted a movement inversion option that updates all visuals to reflect the changes.
Providing Stress On The Job
There were many factors that went into creating stress for the player the feels tough but not overwhelming:
-
Additional houses (up to 4) added in later levels in each corner of the map
-
Music that gradually builds throughout each level to increase anxiety
-
Constant reminder of time players have and emphasizing when they're almost out of time
Score Demands
-
The goal of the game is to get more stressful slightly faster than the player might be able to manage, much like being thrown into a job with minimal training and being expected to do excellent. To simulate this, I increased score demands almost every level with minor changes to time alloted.
House Demands
-
Houses were set up to be individually adjustable per instance
-
Houses can order 1-3 packages at a time. Package numbers are chosen based on a random number chosen between 0-1. If capacity is 2, any number above Two Package Perc will trigger two packages getting ordered
-
If capacity is 3, a number lower than 2.P.P selects one, if it is between 2.P.P and 3.P.P it selects 2 and selects 3 if it above that value.
-
Count down time is how long the player has until the order is missed and they lose points.
-
Delay time is how long the house waits after their order is missed or fulfilled until placing another order.
-
Timer bonus is how many seconds are awarded for turning in a single package if they have more than one package ordered.
Layout Changes
-
Not only do houses slowly get added but obstacles change location and more were added.
-
Ideas were sketched using picture #5 & 6 as inspiration for patterns found in space.
-
Pictures #2 & 4 show how the levels actually change from workdays 5 to 6. The astrobursts give the illusion that there is more space when those could cause more issues by spawning black holes (see Types of Obstacles). The shield of static asteroids force players to take a different path to get to the house depending on the status of black holes in the area.
Types of Obstacles
-
Asteroids' single purpose is to slow the player down or force them to navigate in a different direction. Due to the behavior of the inventory belt, these also have the capability of getting the player stuck or bumping the player or packages into other obstacles that cause more issues.
-
Seen from start to end of the game.
-
Breakable asteroids are a variation on simple asteroids where they spawn additional, smaller ones when they are hit, resembling chunks of ice found in space. They provide extra stopping power, especially when in groups. They have a higher chance of bringing the player to a complete stop and their spawn can cause their inventory to get stuck as well.
-
Seen from start to end of the game.
-
Astrobursts are exploding stars that act like a trip mine. It's triggered by the player or packages getting close. They have the capability to spawn black holes, just as real stars can when they implode. This can create permanent barriers in the level that make the level much harder than when they started if they are reckless.
-
First encountered on Workday 6.
-
Black holes have the potential to completely destroy player inventories and force the them to return back to the center and start their trip all over again. If these are in the level, they present higher risk to those who carry several packages at a time.
-
First encountered on Workday 4.
Constant Reminder of Time
-
The timer originally would fade out and reappear every 30 seconds but players complained about not knowing how much time they had left, especially toward the end. To add emphasis to when time is running out, I added a zig-zag animation to the clock with a color change to catch players' eyes.