Ember is a versatile game engine under active development, designed for 2D and 3D game development. It aims to provide a robust rendering pipeline, intuitive user interface, and a powerful Entity Component System (ECS). Future plans include implementing a node-based visual scripting system to enhance usability and flexibility for developers.
- Telemetry: Provides detailed logging of function calls, durations, and call hierarchy, viewable in a web browser.
- 2D Rendering: Utilizes an efficient OpenGL-based pipeline for 2D graphics.
- Batch Rendering: Enhanced rendering performance through optimized batch processing.
- Texture Atlas: Supports texture atlases for efficient texture management and rendering.
- User Interface (UI): Intuitive interface for seamless interaction and development.
- Entity Component System (ECS): Flexible system for efficient game object management.
- Command Line Interface (CLI): Enables real-time engine control and command execution directly from the terminal.
- 3D Rendering: Expanding capabilities to include advanced 3D rendering features.
- Node-Based Visual Scripting: Introducing a visual scripting system for intuitive game logic creation.
- Tiling: Enhancing the renderer with efficient tile-based rendering techniques for improved performance.
- Sound System: Implementing audio capabilities for immersive game experiences.
- Hardware Profiling: Integrating tools for monitoring and optimizing hardware performance.
- API: Vulkan support is planned for upcoming updates.
To get started with Ember Engine, follow these steps:
-
Clone the Repository:
git clone --recursive https://github.com/embercraft/Ember.git cd Ember
-
Build and Run:
chmod +x run.sh ./run.sh
Arguments for
run.sh
:The
run.sh
script supports several single-letter arguments to customize the build process:n
: Disable Ninja build system (default is true).r
: Set build type to Release (default is Debug).mr
: Set build type to MinSizeRel.rd
: Set build type to RelWithDebInfo.p
: Disable parallel build option.v
: Enable verbose output.c
: Clean build by removing existing build directory before compiling.s
: Build shared libraries (default is static).g
: Enable GPU support if available (Supports NVIDIA & AMD GPU)f
: Set Sandbox as Startup Project (Default is Foundry)
Example usage:
./run.sh r g # Build in Release mode with GPU support
For a detailed explanation of each argument and its effect on the build process, refer to the comments in
run.sh
.