|
|
PixelBullet
0.0.1
A C++ game engine
|
This page is the current classification authority for repository-owned runtime surfaces and authored content. The repository model separately defines workspace and distribution posture, while engine and framework layers and dependency and API surfaces define source and dependency ownership.
| Classification | Responsibility | Current members |
|---|---|---|
| Engine/framework | Reusable runtime, rendering, authoring, scene-play, UI, asset, and platform capabilities. These layers do not own product rules. | engine/ and framework/ |
| Authoring tool | Creates, edits, validates, and previews authored content. It is not a game product. | BulletSketch under editor/ |
| Generic runtime tool | Runs arbitrary authored scenes for development, preview, automation, and editor companionship. It does not own game rules. | tools/scene_runner |
| Executable example | A narrow runnable program whose source demonstrates a public integration or composition decision. Existing location alone does not justify this classification. | Material Gallery and Physics Gallery provisionally; Sprite Gallery retained |
| Authored lab/reference scene | Repository-authored content that demonstrates an integrated capability through BulletSketch and the generic runner. It has no dedicated application wrapper. | Level Slice, World Sandbox, Behavior Lab, and Combat Lab |
| Test fixture | Minimal data or executable owned by automated verification rather than presented as a supported user surface. | Test-owned fixture and support directories |
| Product | Independently owned game rules, session lifecycle, adapters, assets, package boundary, and executable composition root. | Boundless Vector Arena is the current product under products/boundless_vector_arena, with a native executable, product-owned runtime, and narrow runtime-asset closure. |
An application is an executable form, not a semantic classification. The editor, generic runner, examples, tools, and products may all be applications, but their ownership and support contracts come from the classifications above.
BulletSketch is the authoring application. The scene runner is a generic tool and editor companion. The three galleries are currently buildable executable examples:
Boundless Vector Arena is the current product application:
It owns complete product sessions and does not use the generic scene runner as its application host.
The four authored labs are not applications:
Their retired fixed-scene wrappers have no supported Bazel target, launch workflow, or runtime package. Use BulletSketch or the generic scene runner instead. The representative-scene matrix records the scene, intended capability pressure, automated proof, and packaging status for each lab and gallery.
The application hardcodes @shared/scenes/material_gallery.scene.yaml, pushes one ScenePlayLayer, and selects the ShadowedMesh presentation profile with clear color (0.05, 0.06, 0.08, 1). Its remaining local configuration is its application, layer, asset-base, icon, and logger identity.
The material, mesh, lighting, alpha, and PBR teaching content lives in the authored scene and associated import fixtures. The generic runner can execute that content, although its ShadowedMeshWithSprites profile does not prove the gallery's mesh-only composition choice. Material Gallery remains buildable provisionally while that source-level lesson is evaluated. This slice makes no retirement decision.
The application hardcodes @shared/scenes/physics_gallery.scene.yaml, pushes one ScenePlayLayer, and selects the same ShadowedMesh profile and clear color. It contains no application-local physics behavior; the rigid bodies, colliders, hierarchy, stability, and audio demonstration live in the scene.
The generic runner preserves that authored behavior, and focused scene-play tests already load the gallery directly. The current presumption is eventual authored-scene conversion, but the executable remains provisionally buildable until a separate decision. This slice does not retire it.
The application hardcodes @shared/scenes/sprite_gallery.scene.yaml, pushes one ScenePlayLayer, and intentionally selects SpriteOnly with clear color (0.08, 0.09, 0.11, 1). The scene carries the sprite, alpha, wrap, offset, visibility, prefab, camera, and audio content.
The generic runner can display the scene, but its hybrid ShadowedMeshWithSprites profile would no longer demonstrate the public sprite-only composition choice. Sprite Gallery therefore remains an executable example.
The focused READMEs under each gallery directory are the local authorities for these dispositions. This documentation slice does not alter application behavior or add runtime tests.
The Boundless Vector Arena product authority records the normative design target, current implementation status, and content policy. Repository ownership lives under products/boundless_vector_arena, and the native //products/boundless_vector_arena:boundless-vector-arena executable is a genuine product composition root over product-owned arena_core, session_execution, application lifecycle, interactive input and presentation adapters, HUD, configuration, and assets. It must own RunSession and the complete product lifecycle.
It must not:
The generic runner remains the authored-scene surface. A product executable is justified only when it runs complete game sessions whose lifecycle and rules generic scene execution cannot provide. Arena now provides that independent product runtime: it does not hardcode an authored gameplay scene, instantiate ScenePlayLayer, depend on BulletSketch or tools/scene_runner, or package the broad shared depot.
The current Phase 3 representative sandbox owns player, weapon, projectile, enemy, encounter, placement, activation, relevance, recycling, presentation, HUD, and product-configuration policy. It contains one finite replayable encounter, supports defeat/restart and replay after resolution, and deliberately stops when that encounter resolves. Automatic next-encounter progression, a complete campaign, rewards, perks, bosses, audio, save/checkpoint progression, release packaging, and editor Run Product integration remain unimplemented.
The editor runtime bundle is the only intentional packaged output today. It contains BulletSketch and the generic scene-runner sibling, editor assets, and the narrow shared runtime-core asset allowlist.
The authored labs have no executable or package of their own and require the full workspace content depot. The gallery applications are buildable Bazel targets whose runfiles currently include //shared:shared_assets, but they do not have gallery-specific runtime bundles.
Arena has a native Bazel executable, product-local HUD assets, and an explicit narrow runtime-asset closure. It does not yet have a distribution or release package.