Packages
Granularity is per package, not per repository. pub resolves a
subdirectory of a git repository, so a package in a monorepo is already
consumable on its own. Splitting one repository per package buys nothing and
costs a co-ordinated release every time two of them change together.
In ChxisB/orblit
Section titled “In ChxisB/orblit”| Package | What it is | Needs |
|---|---|---|
orblit_core |
Archetype entity-component store in C++, over a C ABI, with a transform hierarchy. Component data reaches Dart as views, not copies. | Dart |
orblit_codegen |
Turns annotated component classes into registration and a manifest other front ends read without compiling this package. | Dart |
orblit_filament |
Filament rendering, composited by Flutter: meshes and models, sprites, splats, textures and environments. On Apple platforms it renders into IOSurface-backed pixel buffers the texture registry adopts without a readback. | Flutter, and a platform it draws on |
orblit_ui |
The interface a game draws: a tree of elements with a utility class list or CSS on each, built into real Flutter widgets. | Flutter |
orblit_light |
Lights described the way an artist states them, in watts, metres and degrees, converted to the photometric units a renderer works in. | Dart |
orblit_mesh |
Building and editing geometry: parametric shapes, and the operations that turn one into something that was not a shape any more. | Dart |
orblit_rig |
Armatures, poses and bone constraints. The skeleton layer a control rig is generated on top of. | Dart |
orblit_camera |
Cameras as shots rather than as objects. A camera describes what it wants to frame; the engine works out where to be and blends between them. | Dart |
orblit_agent |
Steering behaviours that say where to go, and behaviour trees that say what to want. | Dart |
orblit_collide |
Shapes, raycasts and overlap tests, in three dimensions and in two. | Dart |
orblit_effect |
Change stated as a function of time, so move, turn, grow and fade, sequenced and composed. | Dart |
orblit_sequence |
Cutscenes as a function of time. Tracks of clips over a playhead; sampling gives the whole world’s worth of values. | Dart |
orblit_sprite |
Two dimensions: atlases and an atlas packer, sprite animation, parallax layers and tile maps. It draws nothing itself; orblit_filament draws sprites. |
Dart |
orblit_scene |
A scene as a document: entities with stable ids, components, migrations from every older format, and diffs that apply and invert. | Dart |
orblit_stage |
A scene document staged for the renderer, turning entities into objects, lights, splat clouds and sprite layers, with a diff moving only what it touched. | Flutter |
orblit_asset |
What an asset is called and where its bytes are: project-relative ids, content hashes, sources, and a store that files bytes by their hash. Its directory-backed classes throw in a browser. | Dart |
orblit_input |
Gamepads as state a frame can ask about, plus the events between two frames. Linux only so far, through evdev; elsewhere it reports no pads. | Dart |
orblit_noise |
Value and gradient noise, tiling and deterministic: the same field every run, on every machine. | Dart |
orblit_weather |
What the air is doing, and what is above it. Conditions, transitions, cloud, the day’s cycle, and the exposure any of it needs. | Dart |
orblit_native |
Compiling and loading C++ scripts. A script is handed a table of what it may call, and answers start, step and stop. | Dart |
orblit_examples |
One technique at a time: a scene that shows it, the controls that change it, and the lines that do it. | Flutter |
“Needs Dart” means it runs anywhere Dart does, including a headless CI runner, which is why most of the engine is tested on Linux.
Other repositories
Section titled “Other repositories”| Repository | What it is |
|---|---|
orblit-editor |
The editor application. Depends on the engine by path, so the two must be sibling checkouts. |
orblit-examples |
The gallery and viewport applications, and a headless simulation example. |
orblit-net |
Multiplayer: replicated component columns, ownership, acknowledged deltas, interpolation. |
orblit-script |
TypeScript scripting on QuickJS, as a peer of Dart over the same core. |
Adding one
Section titled “Adding one”dependencies: orblit_sprite: git: url: https://github.com/ChxisB/orblit.git path: packages/orblit_spriteThe path is what selects a package within the repository.
