Skip to content

Commit ec417cd

Browse files
author
Adrien GIVRY
committed
Adding and updating community documents
Some documents has been added: - Code of conduct - Contribution guidelines - Bug report template - Feature request template And others has been updated: - README
1 parent b98b006 commit ec417cd

File tree

5 files changed

+234
-56
lines changed

5 files changed

+234
-56
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: Bug
6+
assignees: ''
7+
8+
---
9+
10+
**Description**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: Feature
6+
assignees: ''
7+
8+
---
9+
10+
**Problem this feature should fix**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Expected solution**
14+
A clear and concise description of what you want to happen.

CODE_OF_CONDUCT.md

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at adrien@givry.pro. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[homepage]: https://www.contributor-covenant.org
74+
75+
For answers to common questions about this code of conduct, see
76+
https://www.contributor-covenant.org/faq

CONTRIBUTING.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Contributing to Overload
2+
First of all, thanks for your interest into Overload! Any contribution is welcome:
3+
4+
- Reporting a bug
5+
- Submitting a fix
6+
- Proposing new features
7+
- Improving the code quality
8+
9+
## We Develop with Github
10+
We use github to host code, to track issues and feature requests, as well as accept pull requests.
11+
12+
## We Use [Github Flow](https://guides.github.com/introduction/flow/index.html), So All Code Changes Happen Through Pull Requests
13+
Pull requests are the best way to propose changes to the codebase (we use [Github Flow](https://guides.github.com/introduction/flow/index.html)). We actively welcome your pull requests:
14+
15+
1. Fork the repo
16+
2. Create your branch from `develop` respecting naming conventions
17+
3. Review your code before submitting (Build and quality check)
18+
4. Create a pull request to `develop`
19+
20+
## Any contributions you make will be under the MIT Software License
21+
In short, when you submit code changes, your submissions are understood to be under the same [MIT License](http://choosealicense.com/licenses/mit/) that covers the project. Feel free to contact the maintainers if that's a concern.
22+
23+
## Report bugs using Github's issues
24+
We use GitHub issues to track public bugs. Report a bug by opening a new issue it's that easy!
25+
26+
## Use a Consistent Coding Style
27+
* Interfaces starts by `I`
28+
* Abstracts starts by `A`
29+
* Class names: `UpperCamelCase`
30+
* Public member variables: `lowerCamelCase`
31+
* Private member variables: `m_lowerCamelCase`
32+
* Public static variables: `UpperCamelCase`
33+
* Private static variables: `_CAPS_LOCK_WITH_UNDERSCORES`
34+
* Function/Method arguments: `p_lowerCamelCase`
35+
* Function/Method names: `UpperCamelCase`
36+
* Class member variables are located on file bottom
37+
* Comment your functions, enums, classes, methods ([Javadoc style](https://en.wikipedia.org/wiki/Javadoc))
38+
Some coding convention could have been forget while redacting this document, so always refer to the existing code base!
39+
40+
## Thanks!
41+
Thanks for being part of the Overload Tech. team!

README.md

+79-56
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,43 @@
11
![Overload Logo](Showcase/logo.png)
22

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.
3+
# 1. What is Overload
4+
## 1.1. Description
5+
Overload is an alternative game engine, inspired by industry standards, initiated by [Benjamin VIRANIN](https://github.com/BenjaminViranin), [Max BRUN](https://github.com/maxbrundev) and [Adrien GIVRY](https://github.com/adriengivry). Overload is now a community project, opened to any contribution.
6+
7+
Overload pillars are:
8+
- Simplicity
9+
- Documentation
10+
- High-quality modern C++ code
11+
12+
## 1.2. Modules
13+
Overload is divided into 12 modules (10 DLLs and 2 executables):
14+
15+
### 1.2.1. Overload SDK
16+
The Overload SDK is the core of the engine. It is a set of libraries that our applications (`OvGame` and `OvEditor`) are using.
17+
We designed theses libraries with reusability in mind. They are extremely modular and easy to extract from a game engine context.
18+
- `OvAnalytics`: Code and hardware profiling
19+
- `OvDebug`: Logging, assertions
20+
- `OvTools`: Serialization, ini files, events, time
21+
- `OvMaths`: Vectors, Matrices, Quaternion, Transform
22+
- `OvAudio`: Wraps irrKlang
23+
- `OvPhysics`: Wraps Bullet3
24+
- `OvRendering`: Rendering engine using OpenGL
25+
- `OvWindowing`: GLFW + Windows API wrapper
26+
- `OvUI`: Dear imGui wrapped into an event-based and component-based UI system
27+
- `OvCore`: Mediator, resource management, scripting, component-based scene system
28+
29+
### 1.2.2. Overload Applications
30+
- `OvGame`: Uses OvCore, asset dependent, generic executable for any game built with Overload
31+
- `OvEditor`: Uses OvCore, expose game development to the end-user (From creation to building)
632

733
![Editor](Showcase/Masthead.jpg)
34+
*Preview of Overload Game Editor for its first release (v.1.0.0)*
835

9-
## Team goals
36+
# 2. History of Overload
37+
## 2.1. Context
38+
Initially, Overload was a graduation project. We were 3 ([Benjamin VIRANIN](https://github.com/BenjaminViranin), [Max BRUN](https://github.com/maxbrundev) and [Adrien GIVRY](https://github.com/adriengivry)) working on it for 5 months. We had to create a game engine from scratch, using the fewest libraries possible.
39+
40+
## 2.2. Goals
1041
Our goals for this project were:
1142
- Understanding how to architect a game engine
1243
- Designing an application thinking of end-users
@@ -16,10 +47,40 @@ Our goals for this project were:
1647
- Dealing with a long-term project
1748
- Developping documentation for developers and end-users
1849

19-
## Software used
20-
- Visual Studio 2017 and 2019 to code
50+
## 2.3. Pre-production
51+
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.
2152

22-
## Libraries used
53+
## 2.4. Production
54+
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.
55+
56+
# 3. Features
57+
## 3.1. Implemented
58+
Here is a non-exhaustive list of Overload main features:
59+
- Game Editor
60+
- Lua scripting
61+
- Physically-based rendering (PBR)
62+
- Custom shaders support
63+
- Windows game building
64+
- Profiling tools (Editor and build)
65+
- Material editor
66+
- 3D sound system
67+
- Rigidbody physics
68+
69+
## 3.2. To implement
70+
Again, a non-exhaustive list of Overload in-coming features:
71+
- Shadow mapping
72+
- Custom post-processing
73+
- Renderer Hardware Interface (Multiple graphics backend support)
74+
- More input device support (Gamepad)
75+
- Prefab system
76+
- Skeletal animation
77+
- User scripts profiling
78+
79+
# 4. Details
80+
## 4.1. Software
81+
- Visual Studio 2019
82+
83+
## 4.2. Dependencies
2384
- OpenGL with GLEW (Graphics API)
2485
- GLFW (Windowing and inputs)
2586
- Assimp (3D model loader)
@@ -29,62 +90,24 @@ Our goals for this project were:
2990
- SOL2 (Lua binder)
3091
- imGui (GUI)
3192

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.
93+
## 4.3. Compiling sources
94+
We made this project using Visual Studio 2019. If you want to compile Overload, you should consider using this IDE.<br>
95+
Overload only targets Windows x64.
3496

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.
97+
## 4.4. Licence
98+
Overload is licenced under an MIT licence.
3799

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).
66-
67-
## Build information
68-
We made this project using Visual Studio 2017. If you want to build Overload you should consider using this IDE.<br>
69-
Overload only supports Windows x64.
70-
71-
## Licence
72-
This software may not be resold, redistributed or otherwise conveyed to a third party.
73-
74-
## More information
100+
## 4.5. More information
75101
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>
102+
http://overloadengine.org
103+
77104
You can also watch our features reel on YouTube:<br>
78-
https://www.youtube.com/watch?v=ARXSJh-ZMHM<br><br>
105+
https://www.youtube.com/watch?v=ARXSJh-ZMHM
106+
79107
And join our Discord Server:<br>
80108
https://discord.gg/wqe775s<br>
81109

82-
## Credits
83-
- [Adrien GIVRY](https://github.com/adriengivry)
84-
- [Max BRUN](https://github.com/maxbrundev)
85-
- [Benjamin VIRANIN](https://github.com/BenjaminViranin)
86-
87-
## Images
110+
# 5. Screenshots
88111
![Advanced lighting](Showcase/Advanced_Lighting.jpg)
89112
![Standard shaders](Showcase/Standard_Shaders.jpg)
90113
![User shaders support](Showcase/Custom_Shaders.jpg)

0 commit comments

Comments
 (0)