Note
For any technical information about the project, please check the wiki.
- Language: C
- Compilation: via Makefile
- Allowed Functions: malloc, free, memset, (s)rand, getline, (f)open, (f)read, (f)close, (f)write, opendir, readdir, closedir, all CSFML functions, all MATH functions
- Deadline: 6 weeks
- Group size: 4 developpers
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 manages the input from the mouse click and keyboard,
- the game contains 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.
This project, being the last project of the module, the following requierement are the mathematical and technical parts which has to be present in your final project:
- A collision system including moving and static elements with different shapes.
- A simple particule system that can display at least 2 types of particles.
- Particle effects (changing colors, scaling, boucing, fading) to simulate realistic environment (wind, fire, rain, snow...).
- Camera movements (zoom, translation, rotation).
- 3D effects (depth scaling, isometric projection...)
The game must have:
- A starting menu with at least two buttons, one to launch the game, and one to quit the game.
- An
escape
key to pause the game when launched. - A menu when the game is paused with at least two buttons, one to go to the starting menu and the other to leave the game.
- A basic fighting system.
- An inventory and status menu.
Warning
The starting menu and the game must be two different scenes.
The game should have:
- Your window should stick between 800x600 pixels and 1920x1080 pixels.
- The game should have an "How To Play" menu, explaining how to play your game.
- The game should have NPC with whom the player can interact (fight, quest, discuss).
- As much information as possible about the game should be stored in a configuration file.
- The buttons in your game should have at least three visual states: idle, hover and clicked.
- If your game has cut scenes or an animated intro (and it should) the player should be able to skip it.
- The game should have a beginning and an end.
- The game should have an advanced collision system to manage complex fighting.
The game could:
- let the player save and load its own save.
- let the user customize its character.
- have different types of enemies.
- have a skill tree, unlocking different abilities (active and passive).
- have a 'settings' menu that could contain sound options and/or screen size options.
- have a particle engine.
- use scripting to describe entities.
- have a map editor.
The program would be a real video game.
Caution
The size of your repository (including the assets) must be as small as possible. Think of the format and the encoding of your resource files (sounds, music, images,...). An average maximal size might be 30MB, all included. Any repository exceeding this limit might not be evaluated at all.