my_rpg documentation 1.0.0
|
The my_rpg is a project carried out by groups of 4 (see Contributors, during our 1st year in EPITECH Grand Ecole program.
Its purpose is to create in C a Role Playing Game.
An RPG, or role-playing game, is a type of video game where you embody a character and progress through a story by completing quests, fighting enemies and developing your character's skills.
In our rpg, you play the role of a little spirit trapped in a labyrinth, and your aim is to escape from the maze.
You can run my_rpg like this :
For more information, please see the help section or the tutorial.
The result of this project is an almost perfect my_rpg.
If you discover a problem or an error, don't hesitate to create an issue and report it to us as soon as possible.
Category | Percentage | Numbers of tests | Crash |
---|---|---|---|
Minimal functions | 0% | 0/1 | No |
repository size | 100% | 1/1 | No |
Results | 50% | 1/2 | No |
We got the best my_rpg of our class.
Project Mark :
Oral Mark :
Feature | Mandatory | Must | Should | Could |
---|---|---|---|---|
The player needs to have characteristics | ✅ | |||
The player can fight enemies AND the characteristics impact the fights results | ✅ | |||
The player have an inventory which can contain a limited set of items | ✅ | |||
The player can earn experience by winning fights and/or accomplishing specific actions | ✅ | |||
The player can level up thanks to experience AND upgrading its characteristics | ✅ | |||
The game contains NPC | ✅ | |||
The game contains at least one quest | ✅ | |||
The game contains a how to play system at the very beginning | ✅ | |||
Collision system including moving and static elements with different shapes | ✅ | |||
Camera movements (zoom, translation, rotation) | ✅ | |||
3D effects (depth scaling, isometric projection...) | ✅ | |||
Buttons must have at least 3 different states | ✅ | |||
Saving system (You can try to use sfView elements) | ✅🤷 | |||
The window may be closed using events | ✅ | |||
The windows may have different modes: Window mode, Full-screen mode | ✅ | |||
The windows may have different resolutions, at least two (1920x1080, and an other) | ✅ | |||
The game manages inputs 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 | ✅🤷 | |||
Main menu | ✅ | |||
Must contain at least these options: Start the game, Resume game (grayed out if not possible), Settings, Quit the game | ✅ | |||
The settings option must contain: Sound and music volume options, A window size and resolution options | ✅ | |||
In-game menu | ||||
Must be accessible by pressing the Escape key | ✅ | |||
Must contain at least these options: Character options (equipment and inventory management, characteristics management), Saving, Loading, Settings (the same as main menu), Commands list | ✅🤷 | |||
Splash screen at the beginning | ✅ | |||
Command edit into the in-game menu | ✅ | |||
As much information as possible about the game should be stored in a configuration file | ❌ | |||
The game should have an advanced collision system to manage complex fighting | ✅ | |||
The game should contain a simple particle system: with at least 2 types of particle, particle effects (changing colors, scaling, bouncing, fading) to simulate realistic environment (wind, fire, rain, snow...) | ✅ | |||
Could have a skill tree, unlocking different abilities (active and passive) | ❌ | |||
Could have a complete particle engine | ❌ | |||
Could use scripting to describe entities | ❌ | |||
Could have a map editor | ✅🤷 |
Unit tests were performed using criterion.
In this project, only the library code is covered.
Unit tests are still to be performed, but a large part of the code is already covered:
You can compile the project and run the unit tests with this command :
For more details, please click here.
You can compile the project with this command :
If you want clean the project, you can run this command :
You can clean and compile the project with make re
.
You can compile the unit tests with this command :
The documentation is accessible here.
You can generate the documentation with this command :
You need multiple package for generate them :
make tests_run
.[+]
or [-]
or [~]
followed by a message[+]
: Add feature[-]
: Delete feature[~]
: Edit featureOf course, in exceptional cases, we may depart from these rules.
For this project, we were a group of 4 people. Here are the people in the group: