Skip to content

Commit 1a4f7ca

Browse files
author
Adrien GIVRY
committed
Update README.md
1 parent b575197 commit 1a4f7ca

File tree

1 file changed

+82
-7
lines changed

1 file changed

+82
-7
lines changed

Diff for: README.md

+82-7
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,93 @@
1-
## Overload Sources
2-
This repository contains the source code of Overload.
1+
![Overload Logo](Showcase/logo.png)
32

4-
## Licence
5-
This software may not be resold, redistributed or otherwise conveyed to a third party.
3+
## Context
4+
Overload is a graduation project. We were 3 ([Benjamin VIRANIN](https://github.com/BenjaminViranin), [Max BRUN](https://github.com/maxbrundev) and me) working on during 5 months.
5+
We had to create a game engine from scratch, using the fewest libraries possible.
6+
7+
![Editor](Showcase/Masthead.jpg)
8+
9+
## Team goals
10+
Our goals for this project were:
11+
- Understanding how to architect a game engine
12+
- Designing an application thinking of end-users
13+
- Making a game engine as simple as possible
14+
- Producing high-quality modern code
15+
- Creating a game with our engine
16+
- Dealing with a long-term project
17+
- Developping documentation for developers and end-users
18+
19+
## Software used
20+
- Visual Studio 2017 and 2019 to code
21+
22+
## Libraries used
23+
- OpenGL with GLEW (Graphics API)
24+
- GLFW (Windowing and inputs)
25+
- Assimp (3D model loader)
26+
- Bullet3 (Physics)
27+
- irrKlang (Audio)
28+
- Tinyxml2 (XML Serializer)
29+
- SOL2 (Lua binder)
30+
- imGui (GUI)
31+
32+
## Pre-production
33+
We spent about a month designing our initial architecture. We tried to provide a technical solution with UML diagrams, flowcharts, package diagrams and use-case diagrams. This was a long and tedious work, but it really helped us to start the production with a clear vision of the engine. We defined some coding convention to ensure that all of our work will stay homogeneous during the production. Defining these kinds of rules is crucial to keep a maintainable code during the whole project.
34+
35+
## Production
36+
The production made us realize that we had a naive idea of what a game engine is. During this phase our architecture has evolved. We found that our initial architecture was sometimes too complex, non-optimal. We went back to architecture design multiple times during the project.
37+
38+
## Modules
39+
Our final solution is divided into 12 modules:
40+
- OvAnalytics: Code and hardware profiling
41+
- OvDebug: Logging, assertions
42+
- OvTools: Serialization, ini files, events, time
43+
- OvMaths: Vectors, Matrices, Quaternion, Transform
44+
- OvAudio: Wraps irrKlang
45+
- OvPhysics: Wraps Bullet3
46+
- OvRendering: Rendering engine using OpenGL
47+
- OvWindowing: GLFW + Windows API wrapper
48+
- OvUI: imGui wrapped into an event-based and component-based UI system
49+
- OvCore: Mediator, resource management, scripting, component-based scene system
50+
- OvGame: Uses OvCore, asset dependent, generic executable for any game built with Overload
51+
- OvEditor: Uses OvCore, expose game development to the end-user (From creation to build)
52+
53+
## Team organization
54+
At the beginning of the project we decided to split the main tasks like this:
55+
- Rendering: [Max BRUN](https://github.com/maxbrundev)
56+
- Physics and audio: [Benjamin VIRANIN](https://github.com/BenjaminViranin)
57+
- Core and editor: Me
58+
59+
But the more the project progressed, the more we moved. We all worked on every parts of the engine, and it was a good way to expand our areas of expertise. Finally, although I focused more on the core and the editor, I helped my teammates on their modules.
60+
61+
## Features
62+
We end-up this project with much more features than we expected. We used an iterative strategy, meaning that we developped our modules as simple as possible in order to quickly have results. We then iterated over and over to add new features.
63+
64+
## Game
65+
We made a game with our engine to demonstrate its capabilities. Our game has a complete game loop (Menu, story, cinematic, game, credits).
666

767
## Build information
868
We made this project using Visual Studio 2017. If you want to build Overload you should consider using this IDE.<br>
969
Overload only supports Windows x64.
1070

11-
## Links
12-
- Website: http://overloadengine.org
13-
- Cover repository: https://github.com/adriengivry/Overload
71+
## Licence
72+
This software may not be resold, redistributed or otherwise conveyed to a third party.
73+
74+
## More information
75+
If you are interested in Overload, you can download our engine and the demo game we made with it on our website:<br>
76+
http://overloadengine.org<br><br>
77+
You can also watch our features reel on YouTube:<br>
78+
https://www.youtube.com/watch?v=ARXSJh-ZMHM<br><br>
79+
And join our Discord Server:<br>
80+
https://discord.gg/wqe775s<br>
1481

1582
## Credits
1683
- [Adrien GIVRY](https://github.com/adriengivry)
1784
- [Max BRUN](https://github.com/maxbrundev)
1885
- [Benjamin VIRANIN](https://github.com/BenjaminViranin)
86+
87+
## Images
88+
![Advanced lighting](Showcase/Advanced_Lighting.jpg)
89+
![Standard shaders](Showcase/Standard_Shaders.jpg)
90+
![User shaders support](Showcase/Custom_Shaders.jpg)
91+
![Material editor](Showcase/Material_Editor.jpg)
92+
![PBR shading](Showcase/PBR_Shading.jpg)
93+
![Scene edition](Showcase/Scene_Edition.jpg)

0 commit comments

Comments
 (0)