Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kualta/core
a game engine focused on performance and flexibility
https://github.com/kualta/core
3d-engine 3d-graphics game-development game-engine graphics-engine magnum
Last synced: 2 months ago
JSON representation
a game engine focused on performance and flexibility
- Host: GitHub
- URL: https://github.com/kualta/core
- Owner: kualta
- License: mit
- Created: 2021-02-22T03:11:09.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-06-10T11:08:11.000Z (over 1 year ago)
- Last Synced: 2023-06-10T12:22:00.469Z (over 1 year ago)
- Topics: 3d-engine, 3d-graphics, game-development, game-engine, graphics-engine, magnum
- Language: C++
- Homepage:
- Size: 3.28 MB
- Stars: 13
- Watchers: 3
- Forks: 0
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## FINALLY, A NEAT GAME ENGINE
[![MIT License](https://img.shields.io/badge/license-MIT-brightgreen)](LICENSE)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/358e19c958144c918940a8f1a1ad7f6f)](https://www.codacy.com/gh/lectroMathew/Core/dashboard?utm_source=github.com&utm_medium=referral&utm_content=lectroMathew/Core&utm_campaign=Badge_Grade)# Main Features
- Modular architecture
- with modern **C++17/20** codebase
- Full-featured **GUI Module** powered by **[Dear ImGUI](https://github.com/ocornut/imgui)**
- Easy-to-use **Input Module**
- Neat **Entity-Component System**
- High-performance **Event System**
- **Scene**, **SceneGraph** and **Layers** support
- Quick **Model Importer**
- with all major 3D file formats support
- On-board **Math library** powered by **[Magnum](https://github.com/mosra/magnum)**
- Full-featured **Renderer** powered by **[Magnum](https://github.com/mosra/magnum)**
- with **PBR Rendering** _coming in 0.8.0_
- **Networking Module** _coming in 0.5.0_
- **Physics Module** _coming in 0.6.0_
- **Audio Module** _coming in 0.7.0_
- **Editor Module** _coming in 0.9.0_### Check out **[Core Engine Roadmap](https://github.com/kualta/Core/projects/1)**
# Building
For full guide, read **[Building](https://github.com/kualta/Core/wiki/Building-Core-Engine)** the engine
1. Clone the main repository:
```
git clone --recursive https://github.com/kualta/Core.git
```1.1 On **Unix-like** systems, make sure you have **sdl2** library installed:
```
sudo apt install libsdl2-dev # on Ubuntu / Debian
sudo pacman -S sdl2 # on ArchLinux
brew install sdl2 # on macOS (via Homebrew)
```2. Add **Core Engine** to your `CMakeLists.txt` as subdirectory and link against `core` target:
```cmake
add_subdirectory(Core)
target_link_libraries(MyApplication PUBLIC core)
```3. Generate & Build your application like you usually do
```
cmake -G "CodeBlocks - NMake Makefiles" ./
cmake --build ./build --target MyApplication
```> Note: Make sure you're using 64bit version of your compiler
# Using the engine
For full guide, read **[Quick Start](https://github.com/kualta/Core/wiki/Quick-Start-guide)** guide for newcomers
1. In your application, `#include` all module files you wish to use, together with `CoreConfig.h` header:
```c++
#include
#include
```2. Use `CoreConfig` to configure your `Core` and then build it:
```c++
using namespace core;
int main() {CoreConfig config;
config
.Add(NewModule)
.Add(NewModule)
.Add(NewModule)
.Add(NewModule);
shared core = config.Build();
```3. Create a window and enter the main engine loop like so:
```c++
// window title x, y, w, h
Core::GetModule()->CreateApplication("Core Engine", { 0, 0, 1280, 720 });Core::GetModule()->Main(); // Enter engine main loop
return 0;
}
```4. You're amazing!
Congratulations, you've successfully built your first `Core` and put it to work!
Find out how to make more exciting stuff with **Core Engine** by reading architecture guides: **[Engine Architecture](https://github.com/kualta/Core/wiki/Architecture)** introduction
Check out **Core Engine [Wiki](https://github.com/kualta/Core/wiki)** for more information and guides
# Contributing
Get involved into **Core Engine** development, read **[Contributing](https://github.com/kualta/Core/wiki/Contributing)** guidelines
# License
**Core Engine** is destributed under **MIT License**, check [LICENSE](LICENSE) for details