Currently, there exist both co-located sports games as well as cooking games. However, combining co-location and cooking hasn’t been done and seemed like a perfect fit. Introducing Cooked, a co-located multiplayer game that simulates a busy kitchen and needy customers. Players are tasked with retrieving, cooking, and serving steaks with other players in a passthrough, co-located environment full of different cooking stations. The game builds on top of the players surroundings using the Meta Quest 3’s passthrough feature and recreates the hustle and bustle of a real kitchen. The future of Cooked holds a wider variety of foods that will be ordered and require multiple ingredients to create.
Overcooked, the inspiration for Cooked, is a popular multiplayer teamwork based cooking game hosted on platforms like PC and console. In it, teammates must coordinate the gathering, cutting, cooking, baking, and serving of foods in order to meet a high demand of orders. We believe that these high pressure, teamwork based games that require quick movements and even quicker thinking make the perfect AR game for friends to play together.
Games like Home Sports already capitalize on the augmented reality capabilities of the MetaQuest 3 by providing users a colocated environment in which they can play sports together (badminton, bowling, etc.). Games like Clash of Chefs simulate cooking under high pressure environments. Although Clash of Chefs includes multiplayer modes, players are only competing to see who can complete the order faster. Moreover, all the foods and equipment needed are within arms reach, unlike how real kitchens require chefs to run between different counters and stoves in order to create a dish.
Cooked specifically brings co-location to the AR/VR cooking game genre by creating 3D kitchen environments in which players’ can move around in and cook the most perfect virtual steak.
Before the games, both players must load in and ensure that the anchor that they see is in the same location. To play the game, players must first load the menu and start the game by pressing the start game button with their controller ray interactor. Once the game has begun, players must cooperate to quickly fulfill as many orders as they can by spawning, cooking, and submitting steak. This process begins with spawning the steak by interacting with the fridge while in contact with the object. Doing so will spawn a steak that can be passed or thrown to a teammate near the stove. By colliding the steak with the stovetop, the steak attaches and begins cooking. Once cooked, the steak will look cooked and can be submitted by colliding it with the plate on the submission table. Ultimately, Cooked is all about attempting to complete as many cooked steak orders as possible (without injury) before time runs out.
Cooked was built using the Unity game engine and the Meta Interaction SDK. The co-location was specifically built upon the networking building blocks from the SDK. These components work by first networking through a backend, which in our case was Photon. We originally used Unity’s backend (Netcode) to host the networked interactions, but it never ended up working for us so we switched to Photon. Once objects are hosted on the backend, players are able to interact with them in a co-located environment, meaning if one player moves an object, the other player will see the same object move.
The game environment involves three unique “stations”: fridge, stove, and counter. The fridge is where food items are spawned through detecting controller proximity and inputs. Once the food is spawned, it is interactable and can be moved by “gripping” with the controller or hand. From the fridge, the food can be moved to the stove where it snaps onto the pan when close enough using Snap Interactors and Snap Interactables. Once a certain amount of time has passed, the food “cooks” by swapping out its raw mesh for its cooked mesh. From there, the player can then move the cooked food to the counter where it is “taken away” and the cooked food item disappears. During this whole process, the fridge, stove, counter, and food are all co-located between players.
To view orders, time remaining, and to start the game, there exists a simple canvas element that contains the respective text and buttons. For the convenience of the user, this canvas will always face the user and can be disabled. When re-enabled, the canvas always appears in front of the user. To interact with the UI, ray distance interactors (from the Meta Interaction SDK) have been attached to the controllers.
The biggest component we were never able to add to the game was cooking multiple foods and combining them to create new foods that could be served. Adding this would enable another dimension of complexity and team work. Additionally, we’d like to create levels with specific layouts for the stations such that players would have to collaborate with each other because some stations are only accessible to one player but not the other. Finally, we’d want to be able to have the setup of different stations adapt to the room instead of spawning in the same location and requiring the player to manually move it into appropriate positions.
Cooked bridges the gap between co-located games and kitchen simulation games. By leveraging the Meta Quest 3’s passthrough tech, Cooked provides an immersive, fast-paced kitchen environment where players collaborate to beat the heat and fulfill orders. The game’s foundation was built on the Meta Interaction SDK, and specifically the networking objects they provide. Future directions that Cooked can be taken in are more food options and smarter station layouts, whether it be through levels or dynamically placed based on the physical environment.
Douglas Lanman and John Akers for providing the hardware necessary for this project and hosting this class.