Shalltear Engine ❤️
A free/libre, lightweight C++ game engine.
Feel free to take a build, poke it, and contribute. 🧙~
Features
Editor
- Dockable panels, detachable (into their own windows), saved layouts
- Hierarchy, Inspector, Asset Browser, Console, Profiler
- Scene view: perspective, orthographic, 2D
- Move/rotate/scale handles. Snapping. Local/world frames
- Shaded, wireframe, shaded wireframe, normals, and depth views
- Game view with play, pause, step, and mute
- Undo and redo
- Asset thumbnails and Inspector previews
- Project hub with a recent-projects list
- Settings scoped to the project/to you/to you in this project
- Package manager
- UI builder and UI debugger
- Animator graph, dope sheet, and curve editors
- Audio mixer window with live meters
- Panels, inspectors, property drawers, and gizmos addable from your module
Scenes and objects
- Scenes, objects, components, behaviors
- Transform on the object itself
- Opt-in per-frame tick. Fixed timestep. Delta time, time scale, pause
- Additive scene loading. Budgeted async loads
- Prefabs, nested prefabs, prefab variants with live propagation
- Prefab editing stage
- Editor-only folders and per-object label colors in the hierarchy
- Data assets you define yourself
C++ scripting
- Gameplay written in C++
- Hot reload while the game runs, with state preserved
- Compile from the editor. Compile on save
- Compiler diagnostics as clickable console rows
find_package(Shalltear)CMake package. Generated project files- Toolchain discovery. Generated VS Code settings
- Reflected fields shown/edited in the Inspector
Rendering
- Vulkan 1.3
- Forward+ with clustered lights
- Directional, point, and spot lights
- Cascaded directional shadows. Spot and point shadows
- Metallic-roughness and unlit shading (with a custom lighting hook)
- HLSL compiled to SPIR-V, hot reloaded, with keyword variants
- Per-material blend, cull, alpha clip, and sorting priority
- Sky from a cubemap or a procedural one. Image-based ambient and specular
- Reflection probes from a cubemap (box-projected and blended)
- MSAA, render scale, vsync
- Tonemapping: Neutral, ACES, AgX, or none
- Graphics profiles and quality levels (switchable while the game runs)
- Render graph. Custom passes authored as assets
Physics (optional)
- Rigidbodies: dynamic, kinematic, static
- Box, sphere, capsule, and mesh colliders. Compound bodies
- Physics materials, with friction and bounce combine modes
- Named collision categories
- Raycast, sphere cast, capsule cast, overlap sphere
- Collision and trigger callbacks
- Hinge, fixed, spring, character, and prismatic joints
- Moving platforms that carry what stands on them
- Multi-threaded, fixed-timestep simulation
- Collider gizmos and a debug view
Animation (optional)
- Skeletal animation and skinning
- Blend shapes
- Clips imported from models/authored in the editor
- Animator controller: states, transitions, parameters, conditions
- Blend trees
- Layers and masks
- Retargeting between rigs
- Root motion
- Animation events and method calls
- Audio keys that play a sound from the animated object
- Any reflected field is keyframeable
- A per-frame budget spread across many animators
Post-processing (optional)
- Volumes and profiles (blended by where the camera is)
- Color grading: contrast, color filter, hue shift, saturation
- Bloom
- Vignette
- Ambient occlusion
Audio (optional)
- Audio sources, listeners, and one-shots. Playback scheduled to the sample
- Opus, QOA, or PCM. Decompressed on load, compressed in memory, or streamed
- 3D sound: logarithmic, linear, or custom curves over distance. Spread. Doppler
- Spatializer plugins
- Mixers: groups, sends, snapshots with transitions, exposed parameters
- Reverb, echo, chorus, flange, distortion, EQ, compressor, pitch shifter, and ducking
- Filter components. Reverb zones with presets
- Real and virtual voices, priority, concurrency limits
- Random, layered, and interactive containers
- Music switches on the beat or the bar
- Effects/generators addable from your module, hot reloaded
- Clip preview with a waveform. An audio profiler
- Mixing on its own thread (never allocates/locks)
UI
- Retained element tree with flexbox layout
- Stylesheets with a CSS-like cascade
.slxmllayout documents,.slssstylesheets, templates and instances- Buttons, text and number fields, sliders, dropdowns, trees, scroll views, split panes, menus
- Drag and drop
- Docking
- Text in TrueType and OpenType fonts
- SVG vector icons
- DPI-aware sizing
- Screen-space UI in a running game
- Offscreen UI surfaces
Assets
- glTF, GLB, and FBX models import as object hierarchies
- Their meshes/materials/textures/rigs/clips usable separately from the file they came in
- Extract any of those to a file of its own
- PNG, JPEG, TGA, and HDR textures
- WAV, AIFF, FLAC, MP3, and Ogg Vorbis audio
- TrueType and OpenType fonts, SVG vectors
- Per-asset import settings. Re-import
- An import cache keyed on what the importer read
- GUID references and text sidecars
- Binary/JSON serialization, driven by reflection
- Asset browser with folders, filtering, and a create menu
- Scene, material, shader, and primitive creation
- Built-in primitive meshes
Shipping a game
- Standalone Windows x64 player (no editor code in it)
- Headless dedicated server target
- Build profiles with inheritance. Build report. Command-line builds
- Content cooked into an
.slpak, LZ4 compressed
Core
- Reflection over types, fields, methods, and containers
- Handle-based objects
- Tagged allocators and a leak report
- Work-stealing job system
- Named profiler zones
- Virtual file system with mounts/file watching
- Logging
- Keyboard, mouse, and gamepad input. Action maps. Focus routing
- Multiple windows, multiple monitors, per-monitor DPI
- Physics/animation/post-processing/audio ship as optional packages
- No account. No network connections
Examples
Klotzchenprufstand (9/28/2026) is a voxel sandbox project we build on Shalltear to test the engine and showcase its potential. Here it is running in the editor.
DrunkenWrestlers (8/2/2026) is a partial port of a Unity game to Shalltear, with the same models and animations, created to test skinned meshes and ragdolls. Here is its physics-driven character in the editor.
Pricing
- $0. No seat fee/royalty/revenue share.
- You own everything you create with it.
- The terms attached to a build cannot change after you have it.