A performant, flexible, extensible, scalable foundation for creation; featuring a robust render graph and thoughtful architecture, allowing completely custom logic integrations. multiple logic integrations are provided.
Massively scalable runtime/collection of tooling masquerading as a game engine
💬 Discord server 💬 Stoat server
- multiplatform
- large scale hardware/driver support
- performant multithreading
- powerful ECS integrations [bevy_ecs, custom, etc..]
- "bring your own logic" approach providing callbacks to implement a custom logic paradigm
- rapier3D physics integration
- beautiful provided graph templates/passes
- default/raster graph
- SSGI
- SSR
- physically based sky [LUT based]
- cascaded EVSM shadows [PCF]
- etc..
- hybrid graph
- DDGIR
- traced graph
- monte-carlo path tracer
- robust, scalable optimizations to accomidate real time performance
- default/raster graph
- right handed +Y-up coordinate system
- highly capable, scalable, robust render graph
- legacy monolithic renderers: deferred bindless renderer, forward per-material uniforms renderer, forward texture array renderer
- robust, low-overhead, massively scalable asset streaming to accomidate worlds of any scale/complexity
- frustum+occlusion culling
- LOD/cpu&gpu mip/meshlet/BLAS/TLAS generation
- non-blocking, highly threaded, deferred asset loading/processing/derivative generation
- anti-blocking, massively scalable architecture
- robust editor/build system, including powerful luau/rust/visual scripting integrations
-
helmer- the core runtime -
helmer_window-winitwindowing integration runtime extension -
helmer_input- input handling/APIs runtime extension -
helmer_audio- audio core/engine runtime extension -
helmer_render- render graph runtime extension -
helmer_ui- ui runtime extension. robust retained APIs, richegui-like immediate APIs -
helmer_editor_runtime- a robust runtime overhelmer_becs, serving as the foundation for the editors/player -
helmer_editor_egui- a featured, robust yet ergonomic editor overhelmer_becs' egui integration, providing rich luau/rust/visual scripting integrations -
helmer_player- runtime to be shipped alongside the resulting asset packs of editor projects
Attention Windows users: ensure the C++ ATL for x64/x86 (Latest MSVC) individual component is installed from Visual Studio Installer when depending on helmer_render (or disable wgpu's static-dxc feature)
-
cargo run -p helmer_editor_egui --release- see building to build a project
| integration | desc | ease |
|---|---|---|
helmer_ecs |
the og! simple and surprisingly scalable (O(N) entity overhead!! 😭). basic scheduler | **** |
helmer_becs |
a robust integration for the expeditious yet powerful bevy_ecs library | *** |
helmer_editor_egui |
a featured, robust editor, exposing rich luau/rust/visual scripting integrations | ***** |
| custom integration | manually implement a app/game logic paradigm over helmer |
* |
- becs_bench: same-ish scene as
test_game, with entity spawner system used to stress test earlier on - helmer_view: a simple GLTF scene viewer tool, using
helmer_ui's immediate APIs
- test_game: was the sandbox for spearheading features early on. bevy's ecs is better in every possible way and for that reason i have been using
helmer_becsfor everything since implementing it (i do wonder if there is any point in putting actual effort into a proper helmer ecs?)
- assets popping in/out, flickering: the default vram budgets are incredibly low - combined with the aggressive nature of the default streaming tuning this results in the churning of render/vram resources. hit
ctrl+gto bring up therender graphwindow and increase the gpu budgets, then hitevict gpu only. helmer currently lacks the ability to agnostically probe avail/total vram
-
helmer_editor_egui's immediate nature is not scaling with the scope of the projecthelmer_editorserved as a loose port ofhelmer_editor_eguias to ensure & spearhead features ofhelmer_ui's retained APIs, meaning it inherited naughty/monolithic & immediate-motivated architectural decisions ofhelmer_editor_egui
basis-universal-syswas vendorized for WASM compatibilityegui-snarlwas vendorized because it handled rclick content menu input in a way that didnt allow elements like a search bar to be interacted with without the menu closing (closed on any click instead of clicks of proper intent)egui-wgpuvendorized for wgpu28 compatibility
