Você está na página 1de 5

B2 - C Graphical Programming

B-MUL-200

My Cook
Cooking can be fun

1.3
My Cook
binary name: my_cook
group size: 2
repository name: my_cook_$ACADEMIC_YEAR
repository rights: ramassage-tek
language: C

• Your repository must contain the totality of your source files, but no useless files
(binary, temp files, obj files,...).

• Error messages have to be written on the error output, and the program should
then exit with the 84 error code (0 if there is no error).

PREAMBLE
______ _____

For this project you will have to make a game inspired by Cook Serve Delicious.
Your main challenge for this game will be to create nice and smooth user interface and menus. Your game
will have to follow these rules:

• The player is a cook in a restaurant.


• Orders will appear randomly to the player.
• Orders will have a limited time to be done.
• Orders will be of different types.
• The player will have to choose the right ingredients in the right order.

Having a pleasant user interface is one of the details that makes a good quality game, this project is the
occasion for you to try your best on that topic.

You should look for information about how to create interface in video game.

1
REQUIREMENTS
______ _____

MANDATORY
The following features are mandatory if your project is missing one of them it will not be evaluated further:
The window can be closed using events.
The game manage the input from the mouse click and keyboard.
The game contain animated sprites rendered thanks to sprite sheets.
Animations in your program are frame rate independent.
Animations and movements in your program are timed by clocks.

MUST
The game must have a starting menu.
The starting menu must have at least two buttons, one to launch a game, and one to quit the game.
When a game is launched the escape key must pause the game.
When a game is paused a menu must be shown with a button to go to the starting menu and a button to
leave the game.
The starting menu and the game must be two different scenes.
There must be at least 4 different types order (e.g. two different pizza, one hamburger, one lasagna)
The ingredients for your recipes must be in an inventory menu.

SHOULD
Your window should stick between 800x600 pixels and 1920x1080 pixels.
The game should have a “How To play” menu, explaining how to play to your game.
The game should store a scoreboard.
The scoreboard should be displayed at the end of a game, or thanks to a high score button in the starting
menu.
The buttons in your game should have a at least three visual states: idle, hover, and clicked.
If your game has cut scenes or an animated intro the player should be able to skip it.

COULD
The game could let the user customize its recipes.
The game could load recipes from files.
The game could take recipes files as command line argument.
The game could take recipes files from a menu inside the game.
The game could have a skill tree, unlock different types of recipes.
The game could have a “settings” menu.
The setting menu could contain sound options.
The setting menu could contain screen size options.

WOULD
Your program would be a real video game.

2
The size of your repository (including the assets) must be as small as possible. Think
about the format and the encoding of your resource files (sounds, musics, images, etc.).
An average maximal size might be 15MB, all included. Any repository exceeding this limit
might not evaluated at all.

This project might be your first group project, you should consider organising working
sessions with your team mates.

A screenshot of the real Cook Serve Delicious! game from 2012

3
AUTHORIZED
_ _____ FUNCTIONS _____

Here is the full list of authorized functions.

from the C library:


* malloc
* free
* memset
* rand
* srand
* (f)open
* (f)read
* (f)close
* (f)write
* opendir
* readdir
* closedir
* getline

from the CSFML library


All functions

What happens if you run your program like this: env -i ./my_cook ?

from the math library


All functions

Any unspecified functions are de facto banned.

How can you have a random seed without using time ?

Você também pode gostar