{"id":21036644,"url":"https://github.com/bebone0/bebone","last_synced_at":"2025-05-15T14:32:00.267Z","repository":{"id":184687642,"uuid":"672313970","full_name":"Maksasj/bebone","owner":"Maksasj","description":"☠️ game development framework/engine aimed for flexible and highly customizable game development","archived":false,"fork":false,"pushed_at":"2024-11-12T11:04:37.000Z","size":69417,"stargazers_count":8,"open_issues_count":61,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-12T11:29:33.867Z","etag":null,"topics":["bebone","game-development","game-engine","gamedev","opengl","rendering-engine","vulkan"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Maksasj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-29T16:41:54.000Z","updated_at":"2024-08-20T10:54:36.000Z","dependencies_parsed_at":"2023-09-27T14:25:49.560Z","dependency_job_id":"b10ae426-a779-4f06-8a98-b3aa8905a7fd","html_url":"https://github.com/Maksasj/bebone","commit_stats":null,"previous_names":["maksasj/bebone"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maksasj%2Fbebone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maksasj%2Fbebone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maksasj%2Fbebone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Maksasj%2Fbebone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Maksasj","download_url":"https://codeload.github.com/Maksasj/bebone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225358350,"owners_count":17461849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bebone","game-development","game-engine","gamedev","opengl","rendering-engine","vulkan"],"created_at":"2024-11-19T13:21:18.386Z","updated_at":"2025-05-15T14:31:53.702Z","avatar_url":"https://github.com/Maksasj.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bebone\r\nBebone - Is a framework/engine aimed for flexible and comfortable game development, written in C++. \r\nIn other words Bebone is a set of useful game development libraries, written and integrated \r\nin Bebone framework ecosystem.\r\n\r\n\u003e Bebone is not a new javascript framework btw. It is a game development one!\r\n\r\nCool looking widgets \r\n\u003cimg src=\"https://img.shields.io/github/stars/Maksasj/bebone\" alt=\"stars\"\u003e\r\n\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Maksasj/bebone/clang_build_win.yml\" alt=\"build\"\u003e\r\n\u003cimg src=\"https://img.shields.io/github/license/Maksasj/bebone\" alt=\"build\"\u003e\r\n\r\n## Features\r\n* Core module\r\n  * Arena allocator \u0026 container\r\n  * Logger\r\n  * Types library\r\n  * Event submodule\r\n    * Listener system (Java style)\r\n    * Action delegate (C# style)\r\n  * Input system\r\n  * Meta programming module\r\n* Graphics module\r\n  * OpenGL abstraction layer\r\n  * Vulkan abstraction layer (in development)\r\n  * Shaders\r\n  * Window\r\n  * Begui (Dear ImGui abstraction layer)\r\n## Build\r\nFor now there is two methods how you can use bebone is your project(build locally).\r\n1. **Build manually**\u003cbr\u003e\r\n  First of all requirements:\r\n    - Cmake (At least version 3.21)\r\n    - Ninja (At least version 1.11.1)\r\n    - C++ compiler (Have test with Clang 15.0.5 and GCC 12.2.0) \r\n    - *Vulkan SDK (if you want to build gfx module)*\r\n  \r\n    Firstly lets clone bebone locally(note that you also need to clone all bebone git submodules).\r\n\r\n    Secondly lets configure our Cmake configuration with\r\n    ```bash\r\n    cmake -B build -G Ninja\r\n    ```\r\n\r\n    Finally you can simply build project with cmake \r\n    ```bash\r\n    cmake --build build\r\n    ```\r\n\r\n2. **Using docker**\u003cbr\u003e\r\n    Currently the docker image is not available, but we are planning to release it towards bebone 0.2v.\r\n\r\nNote that bebone is only a **set** of useful libraries/modules, some modules can be used separately.\r\n\r\n## Testing\r\nThe testing process is similar to the **Building**. After a successful build, all you have to do is run CTest from ```build\\tests\\unit``` directory.\r\n\r\n## Dependencies\r\nFor convenience, we try to reduce the use of third-party libraries, as it complicates code management and readability.\r\nAt the moment, bebone is only dependent on these libraries:\r\n  - [Glad](https://github.com/Maksasj/glad/tree/all-extensions) *(opengl function header)*\r\n  - [Vulkan-Headers](https://github.com/Maksasj/Vulkan-Headers/tree/main) *(vulkan function header)*\r\n  - [GLFW](https://github.com/Maksasj/glfw/tree/master) *(window management library)*\r\n  - [Glslang](https://github.com/KhronosGroup/glslang/tree/main) *(SPIR-V shader compiler library)* \r\n  - [imgui](https://github.com/Maksasj/imgui/tree/master) *(Debug gui library)* \r\n  - [omni_types](https://github.com/Maksasj/omni_types/tree/master) *(Type library)* \r\n  - [stb](https://github.com/Maksasj/stb/tree/master) *(Image management library and others)* \r\n\r\n## Examples\r\nBebone hello world example:\r\n```c++\r\n#include \"bebone/bebone.h\"\r\n\r\nusing namespace bebone::gfx;\r\nusing namespace bebone::gfx::opengl;\r\n\r\nint main() {\r\n    GLFWContext::init();\r\n    \r\n    auto window = WindowFactory::create_window(\"Example\", 800, 600, GfxAPI::OPENGL);\r\n\r\n    GLContext::load_opengl();\r\n    GLContext::set_viewport(0, 0, SCR_WIDTH, SCR_HEIGHT);\r\n\r\n    while (!window-\u003eclosing()) {\r\n        GLContext::clear_color(0.2f, 0.2f, 0.2f, 1.0f);\r\n        GLContext::clear(GL_COLOR_BUFFER_BIT);\r\n\r\n        // Your game code\r\n\r\n        GLFWContext::swap_buffers(*window);\r\n        GLFWContext::poll_events();\r\n        window-\u003eexecute_input_actions();\r\n    }\r\n\r\n    GLFWContext::terminate();\r\n    return 0;\r\n}\r\n\r\n```\r\n\r\nYou can find other examples in [examples](https://github.com/Maksasj/bebone/tree/master/examples) directory.\r\n\r\n## Documentation\r\n  - [Core module](https://github.com/Maksasj/bebone/blob/master/docs/Core.md)\r\n  - [GFX module](https://github.com/Maksasj/bebone/blob/master/docs/Gfx.md)\r\n\r\n## License\r\nBebone is free, open source game development framework. All code in this repository FOR NOW is licensed under\r\n- MIT License ([LICENSE.md](https://github.com/Maksasj/bebone/blob/master/LICENSE.md) or https://opensource.org/license/mit/)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbebone0%2Fbebone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbebone0%2Fbebone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbebone0%2Fbebone/lists"}