Cat-astrophic Cafe

Introduction

Project Description

A serious multiplayer networked game following the theme "Computer Architecture and Cats", Cat-astrophic Cafe intends to educate the player on the concept of caching. During the game, players take banana smoothie and banana sundae orders at a cat cafe and deliver them to customers. The ingredients are stored in fridges at opposing sides of the preparation areas, so the players must be diligent in selecting the correct ingredients to store on the counter between both players which is representative of the cache.

Cat Cafe Example

Theme Fulfillment

The theme of the project is "Computer Architecture and Cats". The intention of the game is to educate the players about the usefulness of caching, placing emphasis on quicker access and temporary storage. Because the fridges are on opposing sides of the room with opposing ingredients, having the players run across the room to gather what they need is inefficient. Therefore, the counter in between both players with four baskets must be used to store ingredients that they need. This will allow the players to complete their tasks within the time limit.

The counter is representative of the cache. It only has four baskets which communicates the limited storage of cache memory. In addition, having ingredients placed in the center where both players have quick access showcases the time reduction achieved by caching. In other words, data can now be served faster. Lastly, the location is a cat cafe where the employees and the customers are all cats in banana costumes which matches the items they are serving: banana smoothies and banana sundaes.

Formal Elements

The objective of the game is to prepare all of the smoothie and sundae orders within the time limit of three minutes. As a result, the objective may be loosely categorized as Construction, due to the "building" of orders, or Solution, due to the solving of a problem before the time limit. The player interaction pattern is Cooperative Play. One player is responsible for creating the smoothie orders while the other is responsible for creating the sundae orders. The ingredients are on the opposite sides, so the players must work together to send items to each other using the counter which is representative of the cache.

The most important rule of the game is that players are limited to their side of the "kitchen". Player #1 can only prepare smoothie orders, fetch sundae ingredients, and deliver smoothie orders. Player #2, on the other hand, can only prepare sundae orders, fetch smoothie ingredients, and deliver sundae orders. The layout of the kitchen is intentionally inefficient to require collaboration.

Limited resources provide much-needed challenge to a game. In Cat-astrophic Cafe, the time limit, ingredients, and "cache" baskets all serve as limited resources. After the countdown has begun, it can never be reversed. The "cache" baskets on the counter are intentionally limited to four to educate the players about the limited storage space when caching, so they must use the few baskets they have wisely. The non-plain-vanilla procedure/rule of the game is that the cafe layout is inefficient which, as a result, requires collaboration between the players in order to succeed and complete the objective. Another example is the limited number of resources in the fridges that can be carried and exchanged across the counter.

How to Use

Cloning Project From GitHub

To begin, clone the project from the following link by clicking on the green button that says "Code", selecting the "HTTPS" option, and copying the web URL:

FarahKamleh/Cat-astrophic_Cafe
Cat Cafe Github

Installing Git to Clone

To download and install Git, navigate to the following webpage and select the option for your device:

https://git-scm.com/downloads

Afterwards, open Git Bash, change the current working directory to the location of interest, and type "git clone" proceeded by the copied URL. Finally, press the Enter button.

Cafe Git Clone

Installing Unity and Unity Hub

Extract the ZIP file as needed. The next step is to install Unity. To do so, go to https://unity.com and select the blue "Get Started" button at the top. Select the "Individual" tab and click on another blue "Get started" button underneath "Personal". Download Unity Hub for your preferred platform. Install Unity Hub which will host your Unity projects. In Unity Hub, click on "Installs" then "Install Editor" to install a new Unity version. This project uses version 2022.3.15.f1. Visit the download archive at https://unity3d.com/get-unity/download/archive and select Unity 2022.x to find the correct version. Install using Unity Hub. It should then appear there. Open the project by pressing the "Open" button in "Projects".

2019 Unity Hub

Controls

When the game launches, the menu screen, which showcases an eagle eye's view of the kitchen layout, asks that the player press either the "Host" or "Client" button in the top right corner using their mouse. If a "Client", they will first be made to type the randomized Join Code on the screen before entering the game. Upon arrival, a physical collision with the bell on the counter will result in the arrival of the customers from the sky.

To control the Banana Cat Barista, the WASD keys are used to traverse the intentionally limited space. To grab and carry ingredients from the fridge, the cursor of the mouse must hover over the ingredient of interest and be followed by a left mouse click. Grabbing an ingredient results in it levitating above the player's head. To pass the acquired ingredient to the other player, the basket with the correct label should be clicked. Similarly, when building either the banana milkshake or the banana sundae, attempting to add the incorrect ingredient will result in no action. When the order is completed and appears in front of the customer, the order disappears when clicked and adds one point to the score. A temporary work-around, clicking the title of an ingredient will result in its appearance within the basket underneath.

Networking

Netcode for Game Objects

Cat-astrophic Cafe uses Netcode for GameObjects which is a high-level networking Unity library to help abstract networking logic. It allows for the sending of GameObjects and other data across a networking session to many players at once.

Multiplayer Networking

Necessary Fixes

Players are able to successfully join after entering the Join Code on the screen. However, there are a few networking-related fixes that need to be made. For example, the timer in the top left corner is not synched between players. It begins as soon as a player joins, regardless of the presence of other players. Similarly, the ingredient GameObjects are not yet networked. Therefore, as a temporary work-around to ensure all elements of gameplay are still functional, the player can click on the title of the ingredient they need above the four counter-baskets to make it appear.

Credits

3D Models

All of the 3D models used throughout the serious, multiplayer game are free-to-use assets shared by artists on Sketchfab. The following is a list of credits with their accompanying links:

  1. Banana Cat by "SOBOL": https://sketchfab.com/3https://sketchfab.com/3d-models/cute-cat-in-cute-banana-fb3eee24c9fc422ea256b95d5148931f
  2. Fridge by "LongLight": https://sketchfab.com/3d-models/ussr-fridge-5a0ba464174e4dbe94aecfe1a036ca6a
  3. Door by "qwertderstar": https://sketchfab.com/3d-models/door-5507795f3c234c3d853aba1bbdc70e84
  4. Banana by "Batuhan13": https://sketchfab.com/3d-models/banana-d48a903d948345e9904fba6e19345f85
  5. Banana Smoothie by "markus.blend": https://sketchfab.com/3d-models/banana-smoothie-6b25cd71cbd74eeca3e04696c0f6b6b3
  6. Cherry by "pizzaguyty": https://sketchfab.com/3d-models/cherry-free-download-8e076ba031bb4969930dc8e49d35668d
  7. Milk by "beelur": https://sketchfab.com/3d-models/lowpoly-milk-91492741c1fe4b5b80c89d8202664cd5
  8. Banana Split by "DTStheTDS": https://sketchfab.com/3d-models/banana-split-sundae-4711e0dc6e604adc94e4e020480ba96d
  9. Ice Cream by "adityajaiswal9968": https://sketchfab.com/3d-models/ice-cream-corne-647db6bb1a13494eb685da0d4ebcab84
  10. Hanging Light by "FlipTheBird": https://sketchfab.com/3d-models/hanging-light-fnaf-1987-798a7edb100f43f98f01128c4aacee61
  11. Basket by "PRINCE.JACK": https://sketchfab.com/3d-models/basket-cc9525c43e364839b706dd564692267f
  12. Bell by "gla_bot": https://sketchfab.com/3d-models/table-bell-77f2ea17b4c84fe1a8d2aec02caa9de3

Textures

  1. Pink Stripes: https://www.starbackdrops.com/products/baby-pink-and-white-stripes-fabric-backdrops
  2. Wood: https://www.lawoodshotel.com/?s=500+-[hq]-wood-floor-pictures-download-free-images-on-pp-78NyAqty
  3. Bell Image: https://www.istockphoto.com/vector/hotel-bell-service-bell-reception-bell-icon-gm902838912-249020884

Sounds

  1. Bell Ring: https://pixabay.com/sound-effects/search/service-bell/

Additional Image Sources

Background Source:

Cat Pattern Background

Return to Landing Page:

Farah Kamleh - Landing Page