UNDERCOOKED

The main idea


In Undercooked, you are in charge of your very own conveyor belt sushi restaurant. Advertize to get customers into the store, then serve them some delicious sushi! However, if the sushi passes through the entire coveyor belt without being eaten, you will start to lose money, and eventually go bankrupt. 


The customers are quite fussy, and sometimes they will make special orders for something which isn't even sushi at all. As the restaurant owner, it's now your job to quickly cook their order in your badly equipped kitchen. Make sure to serve it before the customers run out of patience! 

Main game mechanics


The core gameplay mechanic is that of a typical tower defence game. Make sure all the food gets eaten before reaching the end of the conveyor belt. However, there are several mechanics which are added to make it a bit different from a typical tower defence game.


First off, there is no health meter in this game. Instead, the main objective is to make it through each level without losing all of your money. I wanted the "economy" in the game to be tied into everything that you do.


  • To get new customers into the store, you must use some of your money for advertizing.
  • Every time a customer finishes a plate, they pay you money  
  • When food doesn't get eaten, you lose money
  • If you click the "invest" button, you lose money, but a certain percentage of the invested money gets rewarded to you after each round. 
  • Once a customer makes a special order, you get a tip based on how well you cooked their order. If you miss the order completely, you lose money. 
  • You can also use your money to buy decorations for your restaurant. This makes it so that the customers are willing to wait longer for their orders, lessening the risk of losing money from failed orders.


Since there are so many ways to recieve and to lose money, balancing the game was quite difficult. However, in the end it really felt like being in charge of your own economy which was very satisfying. It also gives the player a lot of freedom to come up with their own strategy of how to make money in the game.  

Guests


There are three types of guests in this game. school children, business men, and old ladies. Which guest you recieve depends on where you choose to advertize. Each guest has a unique was of eating, which can be extra advantageous for certain types of plates.


I wanted all three guest types to have some type of advantage as well as a disadvantage. This gave the player more opportunities for strategizing. Balancing each guest to not become overpowered compared to the others also required quite a lot of tweaking. 


Advertizing at the school is the cheapest. Children are however quite slow eaters. Business men eat quite fast since they are so busy. However, they often don't finish their plates and instead pick just one piece off of each plate. Advertizing to grandmas is the most expensive, but they are also unexpectedly powerful. With their handy walking stick they can push away lots of sushi at once. However, due to their bad eyesight, they often miss entire plates, passing by right in front of them. 

Waves and enemies


Each time the player presses the "send out food" button, a predetermined "wave" of sushi plates will be sent out. The sushi plates acts as the "enemies" in the game, and the number of sushi pieces on the plate visualizes the number of "lives" of the enemy. Thus, bigger plates with many pieces are more difficult to finish than smaller plates.


The waves become larger and more difficult as the level goes on. At the end of the second and third level, the player will also encounter a "sushi boss" - a plate loaded with a mountain of sushi.

Cooking and serving


Once a customer makes a special order, the order appears in a speech bubble above their heads. Now, you must get to the kitchen and make the order as fast as possible, while still making sure that the conveyor belt sushi isn't passing through uneaten. If you serve undercooked or overcooked food, the reward will be low. If you serve it just right however, you will get a large tip. 


Once the food has been cooked, a waiter AI comes to pick it up and bring it over to the customer who made the order. Scripting this part was one of the most challenging parts of this project. 

Scripting


The entire game was scripted using Unreal Engine blueprints. Below are some of the blueprints I needed to make in order to create the "cooking" mechanic.  To the right is a gif showing the mechanic as the final result. 


Since this was my first time scripting a fully playable game on my own, this was an extremely challenging project. But at the end of the project, my knowledge in visual scripting was lightyears ahead of what it had been before.   



Final Result