|
|
PixelBullet
0.0.1
A C++ game engine
|
This page defines the current authored-scene workflow. BulletSketch remains the primary authoring application and owns authored documents and editor workflows; it does not own Arena runtime behavior or act as Arena's product composition root. This page does not define a product launch workflow.
BulletSketch accepts the generic option --asset-base <application-root>. The argument names an application or product root that contains an assets/ directory; it does not name the assets/ directory itself. For Arena authoring from a source checkout, use:
An absolute application-root path is also accepted. A relative path resolves against BUILD_WORKSPACE_DIRECTORY when BulletSketch is started by bazel run, and otherwise against the process working directory. BulletSketch requires the root and its writable assets/ directory to exist, canonicalizes the selection to an absolute path, and reports an actionable startup error for an invalid selection. Equivalent path spellings therefore select one authoring identity.
Without --asset-base, BulletSketch retains its existing editor asset base and existing persistence paths exactly. With an explicit selection, @assets/... reads and writes below the selected root's assets/ directory; @shared/... remains separately rooted at shared/assets/.
Recent/current authored documents and the dependency/material, asset-index, assets-browser, and dependency-index caches are isolated under the normalized asset-base identity. Window and workspace layout, appearance/theme, and GPU launch preferences remain application-global because their current state does not contain product asset identities.
BulletSketch Play in Viewport starts the authored scene in-process through the editor's scene-play session. It is the immediate authoring preview path and keeps the editor responsible for the surrounding document and viewport lifecycle.
BulletSketch Run Standalone launches one external pixelbullet-scene-runner process for the current authored scene or temporary authored snapshot. BulletSketch supplies:
For an explicit BulletSketch selection, the canonical application root is forwarded through this existing --asset-base runner argument. Play in Viewport and Run Standalone can therefore use product-local scenes, materials, prefabs, runtime UI, and other existing authorable asset types without launching a product executable.
Development builds locate the runner through Bazel runfiles. An extracted editor bundle locates it only as the executable sibling in build_output/bin/. The runner does not depend on editor implementation code, and authored scenes do not depend on the editor. This workflow does not start or own an Arena product session.
//tools/scene_runner:pixelbullet-scene-runner is a generic authored-scene tool and editor companion. Its runner-specific inputs are --scene, --asset-base, and --control-directory. It creates a ScenePlayLayer for the requested scene, uses the ShadowedMeshWithSprites presentation profile, publishes READY after the first presented frame, and responds to STOP through the control directory.
The runner owns no authored lab, gallery, or product rules. It is the supported standalone execution path for Level Slice, World Sandbox, Behavior Lab, Combat Lab, and other compatible authored scenes through BulletSketch, direct CLI use, and CI automation. It does not run or own Arena's product session and is not a replacement for a genuine product executable.
| Need | Correct surface |
|---|---|
| Edit an authored scene | BulletSketch |
| Preview the open scene in the editor | Play in Viewport |
| Run the current authored scene/snapshot externally | Run Standalone |
| Run an arbitrary compatible scene from tooling or automation | Generic scene runner |
| Run a complete Arena game session | The product-owned boundless-vector-arena executable |
The current Arena executable is a genuine product composition root over product-owned session authority, lifecycle, interactive adapters, presentation, HUD, and assets. It does not call, wrap, or otherwise depend on BulletSketch, ScenePlayLayer, or the generic runner. It currently runs one finite replayable Phase 3 encounter and stops after resolution rather than starting another encounter or campaign transition. Optional editor integration that launches the full product is a separate future decision; it is not part of the current authored-scene workflow. Run Product remains optional and deferred.