# TheCherno/Hazel

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/thecherno-hazel).**

13,006 stars · 1,564 forks · C++ · Apache-2.0

## Links

- GitHub: https://github.com/TheCherno/Hazel
- awesome-repositories: https://awesome-repositories.com/repository/thecherno-hazel.md

## Description

Hazel is a C++ game development framework and 3D graphics rendering engine designed for building high-performance interactive software. It provides a foundational architecture that enables the construction of desktop applications through native hardware acceleration.

The project includes a dedicated game engine editor that allows for the design and testing of interactive 3D and 2D scenes within a unified environment. This editor utilizes an immediate mode interface to maintain synchronization with the engine state, while a hardware-agnostic abstraction layer handles rendering commands across different graphics drivers and operating systems.

The engine supports a range of development capabilities, including a component-based entity system for modular logic and a deferred rendering pipeline for complex visual output. It also features a centralized message bus for internal communication and a serialized asset management system that facilitates efficient resource loading and hot-reloading.

The framework provides automated tools to simplify project configuration by managing dependencies and generating platform-specific build files.

## Tags

### Web Development

- [Game Development Frameworks](https://awesome-repositories.com/f/web-development/cross-platform-development/game-development-frameworks.md) — Serves as a C++ game development framework designed for high-performance interactive software.

### Game Development

- [Game Engines](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines.md) — Includes a comprehensive game engine editor for scene design, real-time rendering, and project management.
- [Game Development Engines](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/game-development-engines.md) — Provides a foundational architecture for building high-performance interactive game engines and software.
- [Entity Component Systems](https://awesome-repositories.com/f/game-development/engine-architecture/entity-component-systems.md) — Organizes game state into modular data containers processed by independent systems for high-performance entity management.
- [2D and 3D](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/2d-and-3d.md) — Supports rendering of both 3D scenes and 2D elements like sprites using native hardware acceleration. ([source](https://github.com/TheCherno/Hazel#readme))
- [Level Editors](https://awesome-repositories.com/f/game-development/level-editors.md) — Includes a dedicated editor for designing and testing interactive game levels within a unified environment.

### Graphics & Multimedia

- [3D Rendering Engines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/scene-management-systems/3d-rendering-engines.md) — Functions as a high-performance 3D graphics rendering engine for interactive visual output.
- [3D Graphics Pipelines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/3d-graphics-pipelines.md) — Provides high-fidelity 3D graphics rendering capabilities using native hardware acceleration.
- [Scene Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/3d-graphics-pipelines/scene-renderers.md) — Enables the rendering of complex 3D environments within a native application environment. ([source](https://github.com/TheCherno/Hazel#readme))
- [Deferred Rendering Pipelines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/lighting-systems/deferred-rendering-pipelines.md) — Implements a rendering architecture that separates geometry processing from lighting calculations to optimize visual output.
- [Graphics API Translators](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/graphics-rendering-apis/graphics-api-translators.md) — Provides a hardware-agnostic abstraction layer that translates high-level rendering commands into native graphics API calls.
- [Interactive Animation Scenes](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/animation-tools/mathematical-visualization-engines/interactive-animation-scenes.md) — Provides a dedicated editor environment for creating, testing, and saving interactive 3D and 2D game scenes. ([source](https://github.com/TheCherno/Hazel#readme))

### Software Engineering & Architecture

- [Interactive Application Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/software-development-tooling/interactive-application-frameworks.md) — Offers a foundational engine architecture for constructing high-performance interactive desktop applications. ([source](https://github.com/TheCherno/Hazel#readme))
- [Event Bus Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-bus-architectures.md) — Provides a centralized message bus for asynchronous communication between decoupled internal engine modules.

### User Interface & Experience

- [Immediate Mode UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/immediate-mode-ui-frameworks.md) — Utilizes an immediate mode interface to render the development environment frame-by-frame for real-time state synchronization.
