Pizza-Business v2.0 Game Design Document

Table Of Contents

-Ultimate Goal

-Probable Tools

-General Game Features

-General Game Play

-Conceptual Beginning of the Game

-What Aspects of the Game Will There Be?

-What is the role of the player?

-What will the player be able to do in the game at a single-restaurant level?

-Ingredients

-Staff

-Food Sold

-Advertisements

-Menus and Recipes

-Banking

-Statistics

-Time

-Attractions

-Customers

-Game Interface

-Menu Items and their Respective Necessary Game Elements

-General Description of Actions Involved in A Single Order

Ultimate Goal:

To produce a commercial quality pizza restaurant simulation with the similar features found in such titles such as SimCity and The Sims.

Probable Tools:

Language: C++ (completely ANSI compatible)

Graphics Engine: Possibly Ogre or Crystal Space

Targeted Platforms: Windows and Linux systems

General Game Features:

- A fun simulation of a pizza restaurant. Note: the focus of the game should be on the fun aspect vs. the simulation aspect. When a decision comes down to fun factor vs. simulation correctness, the decision should always be made in favor of fun.

- Allows the player to fully customize the game within an appropriate limit.

-The player should have a good amount of freedom in the game world. That is, we shouldn't artificially limit him by making game design decisions that will force the player into a specific style of play. Multiple styles of play should be allowed and encouraged, e.g. the player should be able to build an entire chain of pizza restaurants, or, alternatively, build and focus on only a single restaurant.

- A graphically rich and non-demanding interface for both interaction and visual feedback.

- An assortment of music and sound effects appropriate to the mood and direction of the game.

General Game Play:

The game will consist of multiple styles including, but not limited to, the management of a single pizza restaurant business as well as the management of an entire franchise. In a general sense, the player will have the option to do either. Enough depth should be built into both the single-restaurant and franchise aspects of the game so that a player could conceivably play an entire game running only a single restaurant. A similar style of game can be seen in The Sims and SimCity 4.

Conceptual Beginning of the Game:

As the game initializes, splash screen displays on the monitor with appropriate content. Then, the player is taken to a full screen with game graphics displaying choices for the player. The choices will include to start a new game, load a new game, see the credits, or quit the game. Appropriate action should be taken at player's request. Should he decide to start a new game, then the application should take the player to another screen to enter his name and the level of difficulty he desires. Question: What will change to make a game harder or easier? Note that these elements may not be changed later within the game. Then, the player will be taken to a map of the "world", where he may choose to start a pizza business. Once he has chosen the region, he must then find (and buy) a location or plot of land to begin his business. Once this has been complete, the player will be provided a similar interface to The Sims' construction mode. The player may build a huge luxurious building or just settle for an open picnic type of environment for his (first) restaurant. Once he has finished building the restaurant, he then has to furnish it. This is accomplished through a "Buy Mode" similar to the one in The Sims where the player can select from numerous categories of objects. The player selects which items he wants to buy and then places them where he wants them in the game world. Note that once an object is placed, the player should be able to move it around the restaurant, i.e. object placement should not be permanent.

What aspects of the game will there be?

There will be two main aspects to the gameplay - franchise-level and restaurant-level. On the franchise level, the player will manage various things that pertain to all the restaurants a player owns. On the restaurant level, the player will manage various things that are specific to each restaurant.

What is the role of the player?

In the game, the player is the owner of a chain of pizza restaurants - a franchise. The player will be able to decide how many restaurants to build, where to build them, and then will be responsible for managing each of the various restaurants. Therefore, the player should not be looked at strictly as a CEO-level person. Yes, the player will have CEO-level responsibilities, but he will also have responsibilities pertaining to managing things in each individual restaurant. Providing both levels of gameplay presents the player with more choices: the player can build and manage as many restaurants as he would like. The player could build and run twenty restaurants or he could decide to build and concentrate on only one restaurant - the choice is up to him.

What will the Player be able to do in the game at a single-restaurant level?

- Design, layout, and build the building for the restaurant. This build mode should be similar to the build mode in The Sims.
- Customize the look of the restaurant, e.g. choose the wallpaper, the paint, the carpeting, the floor type, etc.
- Buy/sell various items for the restaurant. This should be setup similar to the buy mode in The Sims.
- Take out/pay back loans from a bank.
- Manage the buying of ingredients which will probably be located in a central warehouse so that each individual restaurant won't have to worry about buying its own ingredients.
- Take a look at various restaurant/employee/customer statistics. These will probably be available through a central screen. However, a player should be able to get each individual employee's or customer's various stats by clicking on the person.
- The player should be able to add a delivery aspect to each pizza restaurant. This would necessitate the hiring of an employee to answer the phone(s) as well as deliver drivers to deliver the pizzas.

Ingredients

Ingredients are managed through a central warehouse. You don't see the warehouse on the city map necessarily ,and you don't have to buy it. When you buy ingredients, they are placed in the warehouse. They do not get old. Now we need to figure out how they get to the restaurant. As a restaurant uses the ingredients, the stock in the warehouse is automatically decreased accordingly. In effect, ingredient use is instantaneous and the game is not concerned with how the ingredients get from the warehouse to the respective restaurants. When a cook at one of the player's restaurants "uses" an ingredient, the stock in the warehouse is immediately decreased by the amount of the ingredient used. This way, the player only has to worry about buying ingredients in one place, and all the restaurants can use the same "pool" of ingredients. The warehouse is operated and owned by a third party, so that the warehouse is available and used even if the player has only one restaurant. The price of using the warehouse is included in the ingredient price. Ingredients will be handled on the franchise level.

Staff

A restaurant requires employees in order to perform the actions necessary for a restaurant to run. Employees are not broken down by "position." Rather, they have performance ratings which determine how good they are at doing various tasks. The ratings would include things such as how good at preparing a pizza an employee is, how good the employee is at preparing side orders, how good at serving customers, etc. The player then chooses what tasks an employee will perform. For example, here is a possible listing of the possible tasks a player could have an employee perform:

- Cook Pizzas/Prepare Side Orders (Side Orders will automatically appear when a pizza is done)
- Take Orders From Customers/Prepare Drinks
- Take Orders to Customers
- Clean Off Tables
- Answer phone (in order to take deliveries)
- Deliver pizzas to delivery customer (delivery driver)

Clearly, it would be in the player's best interests to have his cook be someone with good skill at cooking pizzas and preparing side dishes. Also, the better an employee is at cooking, the higher quality his pizzas are - customers are more satisfied with higher quality food. This system of assigning tasks to employees gives the player more flexibility than forcing the player to hire employees with pre-defined roles.

Food Sold

Obviously, various kinds of pizza will be sold. The player will be able to create and modify pizza recipes by adding and removing various ingredients. The current system as implemented in version 1.0 of Pizza Business would be adequate for this function. Other foods will also be available. The player will be able to sell various side orders (e.g. breadsticks) and various drinks. The player will buy these items which will then be stored in the warehouse and used just as the ingredients are.

Advertisements

Advertisements will be done on a global level, i.e. an advertisement campaign will encompass all the restaurants that a player may own - the player cannot have specific ad campaigns for various restaurants. The player will be able to offer "specials" such as a "free order of breadsticks with every (pepperoni) pizza purchase." These specials, by default, will be available at all the player's restaurants. However, the player will be able to decide on an individual-restaurant level which restaurants he doesn't want the special offered at for whatever reason.

Menus and Recipes

The menu will be handled globally, that is, one menu will be created which will then be used at all the player's restaurants. If breadsticks, for example, are offered on the menu and the player owns four restaurants, all four restaurants will sell breadsticks. Pizza recipes will also be handled globally due to the fact that menus are handled globally.

Banking

A bank will be included for loan purposes. This should be implemented with relatively simple financial theories, e.g. simple interest - nothing fancy.

Statistics

Statistics will be presented broken down into daily, monthly, and yearly reports. Overview franchise-level stats and restaurant-specific stats will both be presented. As many statistics as possible should be made available to the player - we want to avoid the difficulties we have in PB 1.0 where the player does not really have all the necessary information to properly manage his business. Statistics should be organized so that those statistics which will be used the most should be the easiest to get to. Those statistics that may still prove useful in certain instances, but won't be accessed that often will still be available, but will be further down in the information hierarchy. It is important that we do not exclude statistics because we feel that the player won't want or need them. We should make them available to the player and let *him* choose whether or not he wants to look at them.

Time

Time compression (real-world vs. game-world) will be used in the game. Most likely, there will be three levels of time compression: normal, fast, and fastest. Also, there will be a pause function in the game - the player will still be able to perform actions when the game is paused. There is a 24 hour day/night cycle and the restaurant is open 24 hours a day. Employees work all the time - there are no shifts. The simulation will adjust the number of customers visiting a restaurant depending on the time of day. For example, fewer customers are likely to visit at 3 AM than at 5 PM.

Attractions

The player will be able to buy/build various things in his restaurant that will increase the "attractiveness" of his restaurant. For example, the player might buy a bandstand in his restaurant. Once the bandstand is built, in the evenings a band will be seen playing at the restaurant. The fact that the band is playing at that time will increase the attractiveness of the restaurant, thereby drawing in more customers. Essentially, attractions will draw in more customers at a particular restaurant; however, the attractions that draw the most customers will also be the most costly.

Customers

Various types of customers will visit a player's restaurant. Single people, couples, families (parents with children), and a special case, parties. Parties call ahead to reserve space at a pizza restaurant. If you accept their reservations, you are pretty much guaranteed a large amount of sales; however, parties take up a *lot* of space. Therefore, other customers may have a hard time finding a place to sit if you don't have enough seating. Also of note is that the various types of customers will force the player to have various kinds of tables, since people don't like sharing tables with other customers. Single people will use the smallest table size available at the restaurant. If, however, there are no "two-people" tables, they will find the next largest table whatever size that may be. Therefore, many potential "seats" will be wasted because others will not share a table with that one customer. Also, families will want to sit at the *same* table. Families, which will probably be a fixed size of four people, will *not* split off to two tables if there's no tables which can fit them all. Parties, however, are a special case. Since they are such a large size, they will not mind sitting at different tables, i.e. you won't need to have a "super-size" table for parties or anything. Each customer has "feelings" toward the particular restaurants in a city. Good experiences at a restaurant will increase the customer's "rating" of the restaurant, while poor experiences will do the opposite. This rating is used to help determine which restaurant a customer will visit if he's "hungry." A customer also takes his distance from a particular restaurant into account when determining which restaurant he will visit.

Game Interface (GUI)

It is essential that the interface for the game be as streamlined, easy to use, and easy to understand as possible. As we saw in the 1.0 versions of Pizza Business, a clunky interface can often prove to be a problem and a "turnoff" for many players. A great game can often become a mediocre game because of a poor interface, so I think this is something that we'll need to think through carefully. However, it is also important that we do lots of testing of the interface by actually playing it, as it seems that most problems with an interface will not necessarily be discovered during the design phase.

Menu Items and their Respective Necessary Game Elements

Preparing drinks requires a soda fountain. Drinks are not brought to the customers with the rest of their order, they are brought separately. Those employees who's task is to "take customer's orders" are those who prepare the order's drinks. In effect, preparing the order's soft drinks is part of the "Taking the Customer's Order" task. However, the pizza order is put into the order queue BEFORE the drinks are prepared. This is so the cooks can begin working on the pizza while the drinks are being prepared. Each order will have a flag that is set whenever a customer's drinks have arrived: a pizza will not be taken to a customer until AFTER the drinks have been delivered.

Pizza preparation requires an empty counter top square. If there is no empty square available, the cook cannot begin preparing a pizza until one becomes available. Once the pizza is prepared, it is placed into a pizza oven. If an open "oven slot" is not available, the cook simply waits until one becomes available. Once a pizza is done cooking, a cook takes the pizza from the oven and places it in an empty pizza rack. If no pizza rack is available, then the cook waits until one becomes available.

Thus, pizza racks and counter top space is REQUIRED for the operation of the pizza restaurant.

Also, the customer pays for his meal when he leaves the restaurant.

General Description of Actions Involved in A Single Order

The waiter stands next to the table, takes out a pad of paper and does a scribble animation for a little while. The pizza order is then put into an order queue, and the person who took the order goes to prepare the customer's drinks. The cook then starts "preparing a pizza", which entails going to an empty counter square, and then a "pizza preparation" animation begins. You see the pizza slowly being "built". When the cook finishes making a pizza he puts it into an oven. If there is no empty oven slot available, he waits and holds the pizza until one opens up. When the pizza is finished, it is placed onto a pizza rack by a cook. If an employee who has the "take food to customers" task is available, he takes the pizza to the customer (only if the drinks have already been delivered. Pizzas won't be marked as "able to be taken to customers" until the order's drinks have been delivered. Implementation note: What I'll do is have a "finished order" queue object that actually contains a queue and a list. If the drinks for an order have already been delivered, the pizza is placed into the "ready to be taken to customer" queue. If the drinks have not been delivered, they are placed into the hidden "list". This list is then checked every tick to see if the drinks have been delivered. If they have, then it is placed into the "ready to be taken to customer" queue.) Once the order has been delivered, the customers begin eating it. When they are done, they leave the restaurant and, as they walk out the door, they automatically "pay" for their meal.