HAYLEN ENGINE

One engine for
games and apps.

Build 2D games and apps with C++ and Lua. Add graphics, physics, sound and native plugins. Run your project on desktop, mobile, TV and the web.

Open source MIT license Free to use
C++C++Engine core
LuaFull engine API

Desktop. Mobile. TV. Web.

Apple Windows Linux Android Web
See all platforms

ENGINE FEATURES

The tools your project needs.

Use the same engine to build a game world, an app interface or a mix of both.

Illustration of sprites, light and layered 2D graphics

2D graphics & animation

Draw sprites and tile maps. Add lights, shadows, particles and custom shaders. Animate characters with frames, skeletons and timelines.

SpritesLightingShaders
Illustration of connected physics bodies and a moving character

Physics & game worlds

Build moving worlds with bodies, joints, collisions and vehicles. Use maps, pathfinding and game AI to guide your characters.

PhysicsTiled mapsNavigation
Illustration of an app screen with controls, text and layout panels

App screens & UI

Create screens with buttons, lists, text and forms. Add themes, layouts for different screen sizes and support for screen readers.

UI componentsTextAccessibility
Illustration of a sound waveform, touch input and a game controller

Sound & input

Play sound effects, music and positional audio. Handle keyboard, mouse, touch, gamepads and TV remotes with one input system.

AudioTouchGamepads
Diagram of Lua connected to native plugin modules

Native plugins

Connect your app to platform features and native libraries. Write plugins in Swift, Kotlin, JavaScript or C++, then call them from Lua.

Native codePlatform APIsLua API
Diagram of a source change passing through the engine to a running app

C++ & Lua development

Write app logic in Lua or use C++ directly. See changes with hot reload. Create, run, test and package projects from the command line.

C++Lua / VarnHot reload
Lua calling a shared plugin API connected to Swift, Kotlin, JavaScript and C++

PLUGINS

Add native features.
Keep your Lua code.

Need a platform API or a native library? Add a plugin and give your app a Lua API to use it.

Haylen supports plugins written in Swift, Objective-C, Kotlin, Java, JavaScript and C++. Each platform can have its own implementation behind the same Lua API.

Read the plugin guide

SUPPORTED PLATFORMS

Build for the screens you use.

Keep your Lua code and assets in one project. Use the native graphics APIs available on each platform.

macOSMetal
WindowsDirect3D · Vulkan · OpenGL
LinuxVulkan · OpenGL
iOSMetal
iPadOSMetal
AndroidVulkan · OpenGL ES
WebWebGPU · WebGL2
tvOSMetal
visionOSMetal
Mac CatalystMetal
Check platform details

START A PROJECT

Make your first game or app.

Read the setup guide, create a project and run it with Haylen.