top of page
coverForPattiesVR.png
wO_w65Nl_400x400.jpg

Won "Best AR/VR Game" at 2021 Quinnipiac Game Design & Development Showcase

PattiesATWLogo.png

Patties! Around The World VR is a cooking simulation virtual reality game. Serve many fresh beef patties and other foods outside your famous food truck to different variety of customers all over the globe.

Engine/Tools:

Unity, XR Interaction Toolkit, MagicaVoxel

Language:

C#

Platform:

PCVR and Meta Quest

Role:  

Solo Project

(Gameplay/Systems Design)

Time of Development:

12 Weeks

Team Size:

1

Patties! Around The World VR was initially a prototype that was developed in 2 weeks in my VR/AR for Games Class during my senior year. After positive feedback from students and my professor, I took the idea of a cooking game with virtual reality and dedicated a semester to building on its potential.

 

During the development cycle as a solo developer, I constantly iterated on the design with each playtest session.

(I didn't know much about object-oriented programming principles for the duration of this project.)

The game currently has a demo build and a three-star-like system at the end of five customers are denied. You make enough money, and you pass the stage.

ezgif.com-gif-maker (7).gif

2020 Prototype Footage

Core Ownerships

XR Rig and Interactions

  • Delving into the XR Interaction Toolkit, I focused on crafting new types of interactable scripts to support the mechanics needed for the game, these scripts were derived from the XR Base Interaction script provided by the toolkit. 

    • I scripted a custom Offset XR Interaction script to allow objects to be grabbed from any position the player grabs.

  • With the Universal Render Pipeline installed, my custom-derived XR interaction scripts didn't work with Meta Quest Standalone builds.

    • Fortunately, with research in Unity forums, I was able to get the issue resolved with a simple replacement block of code for the custom XR interaction scripts to work with Meta Quest users.

Cooking The Foods

  • The food truck contains servable foods such as frozen beef pattiesFrench fries, and plantains.​

  • The scripting for foods contained the usage of game object tags, collision boxes, enum states, and visible UI cook bars that increase when they collide with either the stove or fryer.

  • Not knowing how meshes can be dynamically sliced in real-time, the approach for cutting/slicing objects was to increment the number of times the knife touched it.

    • Slices would instantiate if the object is cut a certain amount of time.

    • The core vision for this project wasn't to represent a realistic cooking simulation game. It needed to be fun, fast, and something I could easily script to get the idea across.​​

  • Drinks are servable when the player sticks the cup under an invisible collision box under the fountain to fill the cup, the top of the cup is set to active after a few seconds. 

Cooking Beef Patties.gif

Cooking a Beef Patty

Cutting Bread.gif

Cutting Bread

Cutting Fries.gif

Slicing a Potato

Cutting Plaintains.gif

Cutting Plaintains

Systems and Managers

  • ​Game Manager: 

    • Designed both win-and-lose states based on player earnings.

    • Added a concession window animation to close the truck once the time of day ends.

    • Implement a three-coin rating system that is calculated based on money earned divided by money required.

  • ​Service Manager:

    • Handles customer NPC spawning before appear at the truck.

    • Assigns the customer to an order spot where a tray and order ticket appears once the customer reaches the spot.

  • Rewards and Punishments:

    • Customer NPCs detect if foods properties to see if it's burned or even incorrect to what they ordered. The customer will not accept the order under these conditions.

    • If the time is up then the customer leaves angry, providing no money or tips.

NPC Customers​​

  • Scripted simple customer NPCs to have several important features:

    • Tray collision for foods to be placed on.

    • Global ordering script that selects an order from the hard-scripted combos.

    • A wait timer UI to display on the trays to dynamically show the tick-down for the player, if the wait time reaches zero then the customer will leave the spot with an angry feedback.

Approaching Customer.gif

Project Management

  • For solo development, it was important to track a lot of my weekly progress and current tasks for different departments which included art, sound, programming, and UI/UX. 

    • Trello used for Task Management, Assets Placement and Deadlines.

    • Git for Version Control.​

  • To ensure that production was smooth and progressive during the 10 week cycle of development, each task was marked with either "Planned", "In-Progress", or "Finished"

Initial Design Sketches

  • During the time of development, I mocked up visuals what I envisioned for the cooking and service systems.

  • Despite my limited programming skills at the time preventing the systems I wanted, I was happy with what I drafted out for the design approaches for how I wanted some of the systems in the game to play out.

File_000_(1).jpeg

Drafted the flow for the mechanics and systems in the game including how the customer approaches the truck, the play space in VR, how a beef patty is cooked, and waiting time for customers.

File_000_(2).jpeg

Concepted how players would serve the customers in the game. I included (and ended up using) lots of property values for the amount of specific orders wanted.

Post Mortem

Developing the capstone project was a big challenge, especially as a solo developer, ultimately VR was my affinity at the time so I was confident that I wanted to work with it in my capstone.

This project in a way served as a practice for me to gain those skills in problem-solving and organization. I realized how low my C# programming skills were outside of using the Unity library. I wasn't able to learn as much as I wanted since this was the main capstone project that needed to be polished but learning inheritance was a goal accomplished. If I were to revisit the game, the food mechanics would be completely revamped using this object-oriented principle, which would've cut down development time by 40%, in my opinion. 

Outside of development, one of my biggest accomplishments was the demo trailer, I was so focused on attention to detail and presentation that I scripted several events and recorded them exclusively for the trailer. I received tons of positive feedback from peers and professors for the trailer.

bottom of page