A personal engine project for studying modern engine architecture, runtime/editor boundaries, and practical toolchain design through real implementation work.
Hybrid Engine is a long-term implementation playground for understanding how rendering, assets, scene data, editor tooling, input, events, and runtime systems should be structured and how they evolve together.
Current development is mainly focused on:
- editor-driven scene workflow
- asset import, metadata, and cooked-cache pipeline
- render architecture cleanup and pass evolution
- play-mode transitions, scene switching, and early physics iteration
| Platform | Toolchain |
|---|---|
| Windows 10 / 11 | Visual Studio 2022 + MSVC + CMake 3.20+ |
| Rendering | Main Entry |
|---|---|
| OpenGL 4.5 | bin\HybridEditor.exe |
| Current Focus | Dev Log |
|---|---|
| Editor, asset pipeline, render architecture, scene workflow | docs/CHANGELOG.md |
Current primary development environment:
- Windows 10 or Windows 11
- CMake 3.20 or later
- A compiler with C++17 support
- Visual Studio 2022 / MSVC is the recommended toolchain
- A GPU and driver environment capable of running OpenGL 4.5
Initialize submodules first:
git submodule update --init --recursiveConfigure and build manually:
cmake -S . -B build
cmake --build build --config ReleaseOr use the Windows helper script:
build_windows.batRun the editor:
bin\HybridEditor.exeRuntime notes:
- The build copies the editor executable, shaders, and editor resources into
bin/. - If no project argument is passed, the engine falls back to a debug bootstrap project at
bin/GameProject/GameProject.hyproj. - Runtime logs are written to
bin/hybrid_engine.log.
Open an existing project:
bin\HybridEditor.exe --project F:\Projects\MyGame\MyGame.hyprojYou can also pass a project directory. The editor will look for a .hyproj file in that directory:
bin\HybridEditor.exe --project F:\Projects\MyGameCreate and open a new project:
bin\HybridEditor.exe --new-project F:\Projects\MyGameOptionally override the project name used for the generated .hyproj file:
bin\HybridEditor.exe --new-project F:\Projects\Sandbox --project-name SandboxGameNotes:
- For the most explicit workflow, prefer passing the absolute path to the
.hyprojfile. --projectand--new-projectcannot be used together.- If
--project-nameis omitted, the new project's directory name is used.
Project site:
Project documentation lives under docs/:
- Changelog: development history and milestone notes
- Development Plan: current plan and longer-term structure
- Render System: current render-system architecture and pass layout
- Resource System: runtime/editor asset pipeline, registry, cache, and loading flow
- Render ECS Asset Chain: integration notes for mesh, material, ECS, and editor flow inside the render path
- Event System: event dispatch and input/event bridge notes
- Log System: logging structure and usage
Already implemented or broadly usable:
- Core runtime foundation: logging, events, input, window system, and main loop
- Rendering baseline: OpenGL backend, framebuffer path, forward rendering, and Scene / Game viewport split
- Scene system: EnTT-based entities and components, scene serialization, hierarchy data, and the
scene_documentflow - Editor basics: docking UI, Hierarchy, Inspector, Scene View, Game View, Project Panel, gizmo interaction, and object picking
- Asset-system baseline: VFS logical paths, asset registry,
.metafiles, cooked cache output, and loading for textures, meshes, materials, and scenes - Import workflow: OBJ import, material generation, texture import, drag-and-drop scene placement, and initial hot-reload support
- Lighting: directional lights and point lights in the current render path
- Physics baseline: AABB collision, collider registration, rigidbody iteration, and collider gizmo debugging
Still under active development:
- The render-pipeline split is still being refined and higher-level pass orchestration is not fully settled yet.
- Shadow, outline, and post-process paths have started but are not complete yet.
- The physics system is still in an early iteration phase and remains unstable overall.
- The editor workflow is already useful for experiments and feature validation, but polish, reliability, and tooling depth still need work.
- Audio and scripting systems have not been implemented yet.
Near-term focus:
- continue refining render-pipeline structure, including pass execution flow, shader management, and data upload paths
- improve physics behavior, rigidbody flow, and editor-side debugging support
- strengthen scene-editing reliability across edit/play transitions
- keep improving asset hot reload, cache invalidation, and import stability
Planned future work:
- more complete rendering features such as shadows, outline, and post-process
- a more polished editor workflow and better panel-level usability
- broader coverage for default resources and failure paths in the asset system
- audio-system exploration
- scripting support and runtime extensibility after the core architecture becomes more stable
For the broader plan, see docs/plans/PROJECT_PLAN_ENG.md.
Hybrid Engine is still a long-term personal learning and research project. If you are also interested in engine architecture, editor tooling, or asset workflows, feel free to reach out.
Special thanks to @SaluteBEE and @zong4 for support, collaboration, and discussion. Contact:
- Portfolio: Portfolio
- Email: pigchick1623@gmail.com
