Skip to content

Frame Engine 0.1.0

Choose a tag to compare

@OuterFrameInteractive OuterFrameInteractive released this 27 Jun 15:22

Frame Engine 0.1.0

A hand-rolled simulation engine in Rust, with a companion 3D editor.

Status: early tech demo. The editor has the basic pieces in place, but it is nowhere near the stage where you could build a real game with it. There is no input system feeding the simulation, no collision, networking, audio, or asset pipeline, and every entity is still a plain cube. Treat this release as a look at the direction the engine and editor are heading, not a usable game-development tool.

Engine

  • Deterministic fixed-timestep clock (30 ticks per second) with spiral-of-death protection, in its own core/ module.
  • Hand-rolled ECS-style world: entities as indices, component data in per-component storage, with runtime spawn and despawn.
  • Generic ComponentStorage<T> wired into the world, so adding a component type is one field.
  • Position and velocity components, and a movement system that advances entities each tick.
  • Scene serialization to and from human-readable RON.
  • Read-only ASCII debug renderer for headless use.
  • Library and binary split, so the engine is importable by other crates.

Editor (frame-editor)

  • Native window (winit) with a 3D viewport rendered on the GPU (wgpu): instanced shaded cubes, a perspective camera, and a depth buffer for correct occlusion.
  • Orbit, pan, and zoom camera (left-drag pan, scroll zoom, middle-drag orbit).
  • Click-to-pick entity selection with highlight.
  • Live entity editing: move, spawn, and despawn from the keyboard, and edit the selected entity's position and velocity from the Inspector panel, written straight back into the world.
  • Scene save and load (F5 and F9), with a scene loaded on startup.
  • A docked, resizable egui panel layout: a top toolbar, a right inspector dock (Scene list and Inspector), and a bottom console dock (live Output log and a Terminal placeholder).
  • Runs the simulation live on the engine's clock, with play, pause, and step.
image

Not yet

  • No input system feeding the simulation. The controls are editor-only.
  • No collision, networking, audio, or asset pipeline.
  • Every entity renders as the same cube, and shading is a single fixed light.
  • Picking is an approximate screen-space box, not a true ray-versus-geometry pick.
  • Panels are fixed in place. Movable, dockable panels come later.
  • The toolbar menus (File, Edit, View, Help) are placeholders.

Known issues

  • The editor can crash on window close during GPU teardown. It does not affect editing or saved scenes.

Build

Requires [Rust](https://rustup.rs).

  • Engine (headless): cargo run -p frame-engine
  • Editor (3D window): cargo run -p frame-editor

Editor controls: Space play/pause, S step, left-click select, Esc clear, arrows / Page Up / Page Down move selection, N spawn, Delete despawn, F5 / F9 save and load, left-drag pan, scroll zoom, middle-drag orbit, H toggle the controls overlay.

MIT licensed.