Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maksasj/bebone
☠️ game development framework/engine aimed for flexible and highly customizable game development
https://github.com/maksasj/bebone
bebone game-development game-engine gamedev opengl rendering-engine vulkan
Last synced: about 6 hours ago
JSON representation
☠️ game development framework/engine aimed for flexible and highly customizable game development
- Host: GitHub
- URL: https://github.com/maksasj/bebone
- Owner: Maksasj
- License: mit
- Created: 2023-07-29T16:41:54.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-12T11:04:37.000Z (7 days ago)
- Last Synced: 2024-11-12T11:29:33.867Z (7 days ago)
- Topics: bebone, game-development, game-engine, gamedev, opengl, rendering-engine, vulkan
- Language: C++
- Homepage:
- Size: 66.2 MB
- Stars: 8
- Watchers: 3
- Forks: 0
- Open Issues: 61
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Bebone
Bebone - Is a framework/engine aimed for flexible and comfortable game development, written in C++.
In other words Bebone is a set of useful game development libraries, written and integrated
in Bebone framework ecosystem.> Bebone is not a new javascript framework btw. It is a game development one!
Cool looking widgets
## Features
* Core module
* Arena allocator & container
* Logger
* Types library
* Event submodule
* Listener system (Java style)
* Action delegate (C# style)
* Input system
* Meta programming module
* Graphics module
* OpenGL abstraction layer
* Vulkan abstraction layer (in development)
* Shaders
* Window
* Begui (Dear ImGui abstraction layer)
## Build
For now there is two methods how you can use bebone is your project(build locally).
1. **Build manually**
First of all requirements:
- Cmake (At least version 3.21)
- Ninja (At least version 1.11.1)
- C++ compiler (Have test with Clang 15.0.5 and GCC 12.2.0)
- *Vulkan SDK (if you want to build gfx module)*
Firstly lets clone bebone locally(note that you also need to clone all bebone git submodules).Secondly lets configure our Cmake configuration with
```bash
cmake -B build -G Ninja
```Finally you can simply build project with cmake
```bash
cmake --build build
```2. **Using docker**
Currently the docker image is not available, but we are planning to release it towards bebone 0.2v.Note that bebone is only a **set** of useful libraries/modules, some modules can be used separately.
## Testing
The testing process is similar to the **Building**. After a successful build, all you have to do is run CTest from ```build\tests\unit``` directory.## Dependencies
For convenience, we try to reduce the use of third-party libraries, as it complicates code management and readability.
At the moment, bebone is only dependent on these libraries:
- [Glad](https://github.com/Maksasj/glad/tree/all-extensions) *(opengl function header)*
- [Vulkan-Headers](https://github.com/Maksasj/Vulkan-Headers/tree/main) *(vulkan function header)*
- [GLFW](https://github.com/Maksasj/glfw/tree/master) *(window management library)*
- [Glslang](https://github.com/KhronosGroup/glslang/tree/main) *(SPIR-V shader compiler library)*
- [imgui](https://github.com/Maksasj/imgui/tree/master) *(Debug gui library)*
- [omni_types](https://github.com/Maksasj/omni_types/tree/master) *(Type library)*
- [stb](https://github.com/Maksasj/stb/tree/master) *(Image management library and others)*## Examples
Bebone hello world example:
```c++
#include "bebone/bebone.h"using namespace bebone::gfx;
using namespace bebone::gfx::opengl;int main() {
GLFWContext::init();
auto window = WindowFactory::create_window("Example", 800, 600, GfxAPI::OPENGL);GLContext::load_opengl();
GLContext::set_viewport(0, 0, SCR_WIDTH, SCR_HEIGHT);while (!window->closing()) {
GLContext::clear_color(0.2f, 0.2f, 0.2f, 1.0f);
GLContext::clear(GL_COLOR_BUFFER_BIT);// Your game code
GLFWContext::swap_buffers(*window);
GLFWContext::poll_events();
window->execute_input_actions();
}GLFWContext::terminate();
return 0;
}```
You can find other examples in [examples](https://github.com/Maksasj/bebone/tree/master/examples) directory.
## Documentation
- [Core module](https://github.com/Maksasj/bebone/blob/master/docs/Core.md)
- [GFX module](https://github.com/Maksasj/bebone/blob/master/docs/Gfx.md)## License
Bebone is free, open source game development framework. All code in this repository FOR NOW is licensed under
- MIT License ([LICENSE.md](https://github.com/Maksasj/bebone/blob/master/LICENSE.md) or https://opensource.org/license/mit/)