-
Notifications
You must be signed in to change notification settings - Fork 19
1. Framework Architecture
Orbinaut Framework is built around a hierarchy of core gameplay objects and several globally managed systems. All gameplay entities inherit from a shared base object and participate in a centralised runtime update flow driven by obj_game
obj_game exists separately in every room and acts as the local runtime environment for that room. It's not persistent. The object is responsible for most core framework systems, including:
- game state handling and global gameplay timing
- input processing
- audio buses and sound control
- camera and viewport management
- rendering surfaces
- palette and fade systems
- deformation effects
- object culling
It also drives the main runtime update flow and dispatches framework hooks to obj_gameobject instances during step processing
The object sets its depth to 16000, so its draw events are processed before the rest of the room and can be used as the framework's earliest rendering layer
obj_gameobject is the standard parent for objects in Orbinaut. It provides a common runtime integration layer for objects and includes:
- optional
animatorandcullermodule references - debug collision drawing
- framework hook events for pre/post Begin Step and pre/post End Step
- update gating through
max_allowed_game_state
Each obj_gameobject instance can limit the highest GAME_STATE in which it remains active. This allows the framework to selectively keep some objects running while others are suspended during pauses, transitions, or other global runtime states
All non-controller objects in the framework should inherit from obj_gameobject
obj_game splits its work across several runtime passes rather than using a single Step event
- input processing
- pre-Begin Step hooks for
obj_gameobjectinstances - game state and fade handling
- pause handling
- object culling / activation control
- frame counter, animator, and palette updates
- post-Begin Step hooks for
obj_gameobjectinstances
- pre-End Step hooks for
obj_gameobjectinstances - audio sync and channel handling
- camera and surface updates
- other late runtime work
- post-End Step hooks for
obj_gameobjectinstances
- prepare frame-wide rendering state
- prepare per-view rendering state
- restore the default rendering state
- compose rendered views onto the application surface