Skip to content

Commit dc33e5b

Browse files
authored
Updated README to show important information first (#364)
1 parent c1f86f3 commit dc33e5b

1 file changed

Lines changed: 78 additions & 87 deletions

File tree

README.md

Lines changed: 78 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,35 @@
2424
<a href="https://discord.gg/wqe775s"><img src="https://img.shields.io/discord/622075717659656195.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2" height=30></img></a>
2525
</p>
2626

27-
# 1. What's Overload?
28-
## 1.1. Description
29-
Overload is a 3D 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) as a graduation project. It is now a community project open to external contribution.
27+
# What's Overload?
28+
Overload is a free, open-source 3D game engine made in C++ with Lua as its scripting language.
29+
30+
Originally created in 2019 by [Benjamin VIRANIN](https://github.com/BenjaminViranin), [Max BRUN](https://github.com/maxbrundev), and [Adrien GIVRY](https://github.com/adriengivry) as a graduation project, it has since evolved into an community-driven initiative supported by dozens of contributors.
3031

3132
Overload pillars are:
32-
- Simplicity
33-
- Documentation
34-
- High-quality modern C++ code
33+
- 🐣 Ease of use
34+
- 📄 Documentation
35+
- 🤝 Community
36+
- ⚙️ Modern C++20 code
3537

36-
## 1.2. Modules
37-
Overload is divided into 12 modules (10 DLLs and 2 executables):
38+
# Features
39+
- Lua scripting
40+
- Game editor
41+
- Physically-Based Rendering (PBR)
42+
- Custom shaders support
43+
- Windows game building
44+
- Profiling tools
45+
- Material editor
46+
- Spatial audio
47+
- Rigidbody physics
48+
- And many more to come...
3849

39-
### 1.2.1. Overload SDK
50+
Check out our [issues](https://github.com/adriengivry/Overload/issues) and [pull requests](https://github.com/adriengivry/Overload/pulls) to learn more about what's coming next!
51+
52+
# Architecture
53+
Overload is divided into 12 modules: 10 libraries (SDK), and 2 executables (Applications).
54+
55+
## Overload SDK
4056
The Overload SDK is the core of the engine. It is a set of libraries used by our applications: `OvGame` and `OvEditor`.
4157
We designed theses libraries with reusability in mind. They are highly modular and easy to extract from a game engine context.
4258
- `OvAnalytics`: Code and hardware profiling
@@ -50,107 +66,82 @@ We designed theses libraries with reusability in mind. They are highly modular a
5066
- `OvUI`: Dear ImGui wrapped into an event-based and component-based UI system
5167
- `OvCore`: Component-based scene system, scripting, and resource management
5268

53-
### 1.2.2. Overload Applications
54-
- `OvGame`: Uses OvCore, asset-dependent, a generic executable for any game built with Overload
55-
- `OvEditor`: Uses OvCore, exposes game development to the end-user (from creation to building)
69+
## Overload Applications
70+
Overload applications use the Overload SDK to operate.
71+
- `OvGame`: A data-driven executable for any game built with Overload
72+
- `OvEditor`: An editor for building your game
5673

5774
![Editor](https://user-images.githubusercontent.com/33324216/94352908-fd228a80-0038-11eb-849a-c076bde4c7c6.PNG)
5875

59-
# 2. History of Overload
60-
## 2.1. Context
61-
Overload started as a graduation project. The three os us, ([Benjamin VIRANIN](https://github.com/BenjaminViranin), [Max BRUN](https://github.com/maxbrundev) and [Adrien GIVRY](https://github.com/adriengivry), worked on it for five months. Our task was to create a game engine from scratch, using as few external libraries as possible.
62-
63-
## 2.2. Goals
64-
Our goals for this project were to:
65-
- Understand how to architect a game engine
66-
- Design an application with end-users in mind
67-
- Make the game engine as simple as possible
68-
- Produce high-quality modern code
69-
- Create a game using our engine
70-
- Structure and manage a long-term project
71-
- Develop documentation for both developers and end-users
72-
73-
## 2.3. Pre-production
74-
We spent about a month designing our initial architecture. We provided technical solutions using UML diagrams, flowcharts, package diagrams, and use-case diagrams. This helped us to start the production with a clear vision of the engine.
75-
76-
We also defined coding conventions to ensure our work remained consistent throughout the production process. Defining these kinds of rules is crucial to maintaining clean, manageable code over the course of the project.
77-
78-
## 2.4. Production
79-
During production, we realized that our initial understanding of what a game engine entails was naive. As we progressed, our architecture evolved. We discovered that our original design was sometimes overly complex or suboptimal. As a result, we revisited and refined the architecture multiple times throughout the project.
80-
81-
<span name="features"></span>
82-
# 3. Features
83-
## 3.1. Implemented
84-
Here is a non-exhaustive list of Overload's main features:
85-
- Game Editor
86-
- Lua scripting
87-
- Physically-Based Rendering (PBR)
88-
- Custom shaders support
89-
- Windows game building
90-
- Profiling tools (Editor and build)
91-
- Material editor
92-
- 3D sound system
93-
- Rigidbody physics
94-
95-
## 3.2. To Be Implemented
96-
A non-exhaustive list of upcoming features for Overload:
97-
- Expanded input device support (Gamepad)
98-
- Prefab system
99-
- Skeletal animation
100-
- User script profiling
101-
102-
# 4. Details
103-
## 4.1. Software
104-
- Visual Studio 2022 (previous versions should also be supported)
105-
106-
## 4.2. Dependencies
76+
## Dependencies
77+
Overload depends on a few third-party libraries:
10778
- OpenGL with GLEW (Graphics API)
10879
- GLFW (Windowing and inputs)
10980
- Assimp (3D model loader)
11081
- Bullet3 (Physics)
11182
- irrKlang (Audio)
112-
- Tinyxml2 (XML Serializer)
113-
- SOL2 (Lua binder)
83+
- Tinyxml2 (XML serializer)
84+
- Sol2 (Lua binding)
11485
- ImGui (GUI)
86+
- Premake5 (Project generation)
87+
88+
# Getting started
89+
## Running Overload from a Release Build
90+
Get started with Overload in no time by downloading one of our [release builds](https://github.com/adriengivry/Overload/releases). While this is the fastest way to get started, you might miss out on some cool features we're cooking up!
11591

116-
## 4.3. Requirements
117-
Overload requires:
118-
- RAM: 100MB
119-
- OS: Windows 7
120-
- GPU: Graphics card supporting OpenGL 4.3
121-
- CPU: x64
92+
After downloading the archive, unzip it and run the `Overload.exe` executable file.
12293

123-
## 4.4. Compiling sources
124-
Overload uses Premake5 to generate project files. To generate these files, execute `GenerateProjects.bat` located at the root of the repository. By default, `GenerateProjects.bat` will generate project files for Visual Studio 2022. If you want to use another version of Visual Studio (e.g., VS2019, VS2017) or different IDE (see https://github.com/premake/premake-core/), you can execute `GenerateProjects.bat` from the command line with an argument. (e.g., `.\GeneratedProjects.bat vs2019`)<br><br>
94+
## Building Overload from Sources
12595

126-
*Overload only targets Windows 64 bits.*
96+
### Quick Start (For Visual Studio 2022)
97+
To start working with Overload quickly, clone the repository and run the `OpenInVisualStudio.bat` script. Project files will be automatically generated, and Visual Studio will open with the generated solution (`Overload/Sources/Overload.sln`).
12798

128-
## 4.5. Licence
129-
Overload is licenced under an MIT licence.
99+
```powershell
100+
# These 2 lines will clone Overload, generate project files, and open the Visual Studio solution.
101+
git clone https://github.com/adriengivry/Overload
102+
.\Overload\OpenInVisualStudio.bat
103+
```
130104

131-
## 4.6. More information
132-
If you're interested in Overload, you can download our engine and the demo game we created with it on our website:<br>
133-
https://overloadengine.org
105+
### Generating Project Files (For Any IDE)
106+
*Note: This step is performed automatically when using `OpenInVisualStudio.bat`*
134107

135-
Learn about Overload (tutorials and scripting API) by visiting our Wiki:<br>
136-
https://github.com/adriengivry/Overload/wiki
108+
Overload uses Premake5 to generate project files. To generate these files, execute the `GenerateProjects.bat` located in the `Scripts/` folder.
137109

138-
You can also watch our features reel (Overload v1.0.0) on YouTube:<br>
139-
https://www.youtube.com/watch?v=ARXSJh-ZMHM
110+
By default, `GenerateProjects.bat` will generate project files for Visual Studio 2022.
140111

141-
Join our Discord Server:<br>
142-
https://discord.gg/wqe775s<br>
112+
If you'd like to use another IDE, you'll need to run `GenerateProjects.bat` from the command line:
143113

144-
# 5. Getting started
114+
```powershell
115+
.\Scripts\GenerateProjects.bat <ide_of_your_choice>
116+
```
117+
118+
*Please refer to [Premake5's documentation](https://premake.github.io/docs/Using-Premake) to find supported IDEs.*
119+
120+
> ⚠️ Some Premake5-supported IDEs might still not work with Overload.
121+
122+
### Building From the Command Line (MSVC Only)
123+
*Note: Before building, make sure that you generated the Visual Studio solution.*
124+
125+
If you'd like to build Overload directly from the command line (without opening Visual Studio), you can use the `BuildAll.bat` script located in `Scripts/MSVC/`. By default, `BuildAll.bat` will build the project in `Debug` mode, but you can choose the configuration you want by providing an argument:
126+
```powershell
127+
.\Scripts\MSVC\BuildAll.bat Release
128+
```
129+
130+
## Tutorials & Scripting API
145131
Learn how to create your own games using Overload by visiting our [wiki](https://github.com/adriengivry/Overload/wiki).
146132

147-
# 6. Contributing
133+
# Contributing
148134
Overload is open to contributions of all kinds. Feel free to open issues (feature requests or bug reports) or submit pull requests.
149135

150-
If you'd like to contribute, please refer to our [CONTRIBUTING.md](https://github.com/adriengivry/Overload/blob/develop/CONTRIBUTING.md) guidelines.
136+
If you'd like to contribute, please refer to our [contribution guildelines](https://github.com/adriengivry/Overload/blob/develop/CONTRIBUTING.md).
137+
138+
# Requirements
139+
- **RAM:** 100MB
140+
- **OS:** Windows 7
141+
- **GPU:** Graphics card supporting OpenGL 4.3
142+
- **CPU:** x64
151143

152-
<span name="screenshots"></span>
153-
# 7. Screenshots
144+
# Screenshots
154145
![PBR Shading](https://user-images.githubusercontent.com/33324216/94352806-96e93800-0037-11eb-8d7f-9c9a318ca2c7.PNG)
155146
![Material Editor](https://user-images.githubusercontent.com/33324216/94352805-96e93800-0037-11eb-883b-fdd8818b93a6.PNG)
156147
![Standard Shader Library](https://user-images.githubusercontent.com/33324216/94352810-9781ce80-0037-11eb-8788-095794711b2c.PNG)

0 commit comments

Comments
 (0)