Harmony Engine

Welcome to the official site. An entirely hand written, free and open source 2D game engine and editor.

Download Latest Read Documentation

Harmony Engine comprises of two projects

HyEngine

Cross-Platform Support

Cross-Platform Support

Written in platform independent C/C++. Highly compatible OpenGL/WebGL rendering with multiple window support. Easily build for PC or the web browser.

Deterministic Game Loop

Deterministic Game Loop

Optionally throttle game update frequency independently to the render framerate. Optimal networking conditions, replay-systems, and reproducible debugging.

Scene Management

Scene Management

Programmatically assemble instances of prefabs into entities that can represent game states, menus, and level design. Assets automatically stream in/out based on controlled prefab usage.

Code Icon

Programmer-First API Design

A clean intuitive C++ API shared across all nodes and entities. "Animation Floats" expose easy tween/easing and callbacks on transformations and properties.

HyEditor

Editor

Powerful WYSIWYG Editor

A single visual editor tool to manage assets, create prefabs, and assemble entities. Entities can be animated on a dope sheet timeline and export as code-ready C++ classes.

Automated Build Process

Automated C++ build process

Manages CMake project generation under the hood. Easily manage source files, dependencies, and multi-platform builds. Fully automate the Emscripten pipeline when deploying to web.

Tile Editor

Powerful Tile Editor

Create orthogonal, isometric, and hexagonal TileSets with infinite-spanding multi-layered TileMaps. Tiles can hold info like auto-tiling and collision to quickly create ready-to-go levels and worlds.

Asset Pipeline

Asset Pipeline

All asset management tasks from importing, iteration, replacing, to in-engine. Very efficient atlas packing and utilization, bitmap fonts, audio banks, tilesets, and Spine support.

Spine® Animation Support

Import Spine skeletons into HyEditor, configure animation states, and blend/mix at runtime.

🛠 Technologies Used

Engine OpenGL & WebGL Box2D GLM (OpenGL Mathematics) stb GLFW (Graphics Library Framework) S nlohmann JSON Rapid JSON
Editor Qt6 FreeType rougier/freetype-gl xiph libogg xiph libvorbis
Build System CMake Emscripten MSVC (Visual Studio) Clang GCC (GNU Compiler Collection)

Harmony Engine is fully self-authored with handcrafted code from over a decade. I kept the following principles throughout its development: