-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Mateus edited this page Jan 25, 2020
·
11 revisions
Entity component based game framework. The framework is being planned to be expandable and have a fully customizable pipeline.
This engine is being built for personal use and learning purposes. The API may change at any moment.
- GLFW (optional, but you may need to implement your own drivers)
- GLAD (optional, for openGL functions)
- GLM
- STB_IMAGE
- JSON
- Dear ImGui For general UI (optional)
- GTEST For Unit testing (TODO)
- Clone the repository with all submodules:
git clone --recurse-submodules https://github.com/MateusMP/BitEngine.git
- Use premake5 to generate project files for your IDE of preference:
premake5 vs2017
premake5 gmake2
- Build using the generated project files.
4 Try running the Sample01 project file.
Resource Management
- Resource Loader => Providing async resource loading. May reload any resource at any time.
- Generic Resource Metadata => May be used to specify details for any type of resource.
- OpenGL Texture Manager => Default texture manager.
- OpenGL Shader Manager => Default shader manager.
- Sprite Manager => General Sprite manager.
Task Management
- Easily create async jobs to speedup heavy tasks!
- Support task dependencies
- Thread control execution (easy management of what should be executed on the main thread)
Profiling
- Simple profiling functions that generate a report that can be used in chorme://tracing.
BE_PROFILE_FUNCTION()
BE_PROFILE_SCOPE("name")
Reflection
- Basic API to create reflection data for classes, may be used to build a visual editor.
Graphics
- Generic shader interface to build custom render modes
Others
- Messaging available for ECS and all Game Systems.
2D:
- Tranform2D
- Camera2D
- Sprite2D
3D: (in rework)
- Transform3D
- Camera3D
General:
- GameLogic - C++ class used to add some game logic functionality to entities.
- GLFW - Input and Video (OpenGL) Systems
- OpenGL 2.0+ - 2D and 3D rendering (see Sample01 for 3D related code)
- Arrow keys to move sprite on screen
- Shows entity system functioning along with 2D and 3D components
- Reloading the DLL allows testing code changes on the fly for the game portion of the code
- For instance, changing the speed of an object.
-
- Default 3D mesh rendering module, (currently available as example in Sample01).
-
- LUA support for a GameLogic like module
-
- Android support
-
- Audio