THE FROSTENGINE FIELD GUIDE

Meet your next toolkit.

A native 2D game engine with a visual workspace, a programmable workflow, and multiplayer at its core.

FrostEngine is in active development. This guide reflects the engine documentation supplied for this site; the first packaged public release is still in preparation.

A focused foundation

FrostEngine is built in C++20. It combines an EnTT entity-component system, a Vulkan 1.3 renderer through NVRHI, Lua 5.4 scripting, Box2D v3 physics, miniaudio, and Valve GameNetworkingSockets.

The standalone FrostEditor authors projects. FrostRuntime runs project directories and exported game packs, including headless and dedicated-server sessions. The core engine is a static library shared by the surrounding tools.

Your visual workspace

The Dear ImGui docking editor brings scene authoring and asset workflows into one workspace.

  • Scene hierarchy and Inspector: search, multi-select, reparent, edit reflected components, and work with prefabs.
  • Viewport: select entities, transform them with gizmos, snap to a grid, and edit collider shapes.
  • Asset tools: slice sprites, edit animation timelines and tilesets, paint tilemaps, and preview particles.
  • Project tools: configure input, physics, rendering, audio, networking, and game exports.
  • Built-in reference: search the scripting API from the editor or launcher.

See FrostEditor running the Tetris sample in the homepage showcase.

Gameplay in Lua

Scripts are Lua 5.4 modules that return a class table. The engine calls lifecycle methods such as OnCreate, OnUpdate, and OnFixedUpdate. Reflected properties are editable in the Inspector; scripts support hot reload.

local Player = {}

function Player:OnCreate()
    Log.Info("Player is ready")
end

function Player:OnUpdate(dt)
    local move = Input.GetAxis("Horizontal")
    -- Use move and dt in your gameplay logic.
end

return Player

Bindings cover entities, components, input, audio, networking, UI, rendering, and more. The editor’s Scripting API Reference is generated from the engine’s registered bindings.

One command system. Three entry points.

Editor operations are named commands with validated parameter schemas. The UI, headless CLI, and local JSON-RPC automation server share that command system.

From a terminal

FrostEditor help
FrostEditor help entity.create
FrostEditor scene.list --project ./MyGame
FrostEditor serve --project ./MyGame

CLI results are JSON objects with an ok field and a result or error. Successful mutating commands save scenes unless --no-save is supplied. Most authoring commands do not need a GPU; rendering play-tests do.

From an agent or tool

The automation server accepts newline-delimited JSON-RPC 2.0 over TCP on 127.0.0.1. Authenticate using the token printed at server startup or a configured token before making calls.

{"jsonrpc":"2.0","id":1,"method":"entity.create","params":{"scene":"Scenes/Main.fscene","name":"Player"}}

This request creates an entity in an existing scene of the open project. The same command model covers asset authoring, deterministic play-tests, and exporting games. Use FrostEditor help <command> for each command’s exact arguments.

Systems that work together

SystemCapabilities
RenderingSprites, text, tilemaps, CPU/GPU particles, lighting, shadows, fog of war, post-processing, and render textures.
PhysicsBox2D v3, 2D colliders, tilemap collision, and physics debug overlays.
AudioSpatial audio, listeners, mixer groups, and live level meters.
MultiplayerHost, client, and dedicated-server sessions; snapshots, interpolation, replicated values, and RPCs.
ExportA standalone runtime with game packs and resources.

Networking is still evolving. Interest management, delta compression, prediction, reconciliation, lag compensation, and animation/sprite state synchronization remain open work in the supplied feature matrix.

Platform support

Engine platformCurrent status
Windows 10/11 x64Built and tested with MSVC. Requires a Vulkan-capable GPU and driver to run graphics.
LinuxSupport is coming.
macOSSupport is coming.

Getting FrostEngine

Visit the download section for the latest packaged release. When a release is published, it will include the platform, package size, publication date, and a SHA-256 checksum for verification.

A public binary is not available yet. Source access and licensing terms are not specified here; this site makes no assumptions about a public repository or distribution license.

View release status →