Map Layout - UQcsse3200/2024-studio-3 GitHub Wiki

Introduction

It was decided that we would implement 5 stages of the game all with different map layouts. The idea is that as the stages progress, the difficulty of the game would increase. This implemented through the increased prevalence of different ingredients and stations requiring more complex recipes for the player to create.

Here you will see the stations and recipes required for each day. Further recipe information can be seen in the Ingredient Station wiki page. There will also be a description of the purpose of the day, and an image of the final map design of that day after it has been completed.

Day 1

This is the first day the player will play on, so is made to be as simple as possible so that the player can learn the basics of the game. Only one meal is required, and minimal stations are provided.

Stations required:

  1. Cutting board
  2. Tomato basket
  3. Cucumber basket
  4. Lettuce basket

Recipes:

  1. Salad - cut up tomato, cucumber & lettuce

Evaluation

  • Simplified map layout to accomodate newer players unfamiliar with how to play the game
  • More open and free map design

Day 2

This day aims to up the ante by getting players to manage different types of dishes and making the ingredients for the right one.

Stations required:

  1. Cutting board
  2. Tomato basket
  3. Cucumber basket
  4. Lettuce basket
  5. Banana basket
  6. Strawberry basket

Recipes:

  1. Salad - cut up tomato, cucumber & lettuce
  2. Fruit salad - cut up banana & strawberry

Evaluation

  • Still relatively simple and easy layout for new players
  • Slight increase in difficulty with stations and ingredients more spread out from each other
  • More stations and recipes

Day 3

This day builds off day 2 by getting the user to both juggle multiple dishes, while also learning the cooking mechanic.

Stations required:

  1. Oven
  2. Frying pan
  3. Cutting board
  4. Fridge
  5. Tomato basket
  6. Cucumber basket
  7. Lettuce basket
  8. Fire extinguisher

Recipes:

  1. Salad - cut up tomato, cucumber, lettuce
  2. SteakMeal - cut up tomato and cucumber, put cut up ingredients in oven. Beef on frying pan

Evaluation

  • Oven and ingredient strategically placed as far as possible from each other
  • Increased difficulty with more eccentric map layout

Day 4

Day four is introducing new meals and the blender which hasn't been introduced beforehand. This should be easier then day 3, but will help the player relax a bit before Day 5.

Stations required:

  1. Blender (for acai bowl, not sure if required, could use cutting board instead)
  2. Cutting board
  3. Banana basket
  4. Strawberry basket
  5. Acai basket
  6. Fridge - Chocolate

Recipes:

  1. BananaSplit - cut up banana, strawberry and chocolate
  2. AcaiBowl - cut up or blended up (?) acai and banana
  3. FruitSalad - cut up banana and strawberry

Evaluation

  • Cutting board placed as far as possible from ingredients as well as the servery position
  • Increased difficulty do to longer travel time

Day 5

Day 5 aims to truely test the players skills they have gained through playing the game. In this day, every recipe and every station is present.

Stations required:

  1. Oven
  2. Frying pan
  3. Cutting board
  4. Fridge - Beef
  5. Fridge - Chocolate
  6. Tomato basket
  7. Cucumber basket
  8. Lettuce basket
  9. Banana basket
  10. Strawberry basket
  11. Acai basket
  12. Fire extinguisher

Recipes:

  1. Salad - cut up tomato, cucumber & lettuce
  2. SteakMeal - cut up tomato and cucumber in oven & cooked beef from frying pan
  3. BananaSplit - cut up banana, strawberry and chocolate
  4. AcaiBowl - cut or blended up (?) acai and banana
  5. FruitSalad - cut up banana and strawberry

Evaluation

  • Drastic increase in number of stations and ingredients
  • Addition of more complex recipes
  • Maze like path to servery to increase travel time and difficulty

Map text files

We created a MapLayout file which loads in the text file in the load function. It is being called in ForestGameArea which takes in the level when being initialised to load in the right map. We also create a Map class in order to return the arrays when load is being called and the spawning happens in ForestGameArea. We also created 5 .txt files, one for each level there are located in images/map/....txt. The load function reads every line of the file and checks with if statements based on the letters to know what needs to be loaded. These are added to arrays which are then accessed in ForestGameArea and spawned. The map for each level is loaded through a text file formatted as follows: (note: the row that the object begins at corresponds to the row of the file where the text is written) Benches:

  • Xab creates a horizontal bench beginning at column a that is b cells long
  • Yab creates a vertical bench beginning at column a that is b cells long

Stations:

  • all stations use the same code of Za1 where a is the column and Z is a letter from the following
  • b: banana basket
  • s: strawberry basket
  • u: lettuce basket
  • t: tomato basket
  • c: cucumber basket
  • a: acai basket
  • E: stove
  • O: oven
  • B: beef fridge
  • C: chocolate fridge
  • G: cutting board
  • N: bin
  • S: submission window
  • F: fire extinguisher

The first 4 lines of the file are ignored. Example: assets/images/map/map_one.txt

Hel
1
3
=
X08 Y07 Y97
S00
Y63 X13
O00
N61
X21 Y32 X70 G70 X50
000
X12 X44 t21 c51 u71

Here is a UML diagram which shows how the class works and the other classes it uses for it's functionality mapLayout_uml_diagram