Home › Concepts › Architecture

Architecture

The framework in one page. If you read nothing else, read this.

The four layers and their dependency direction
diagram_architecture_overview.svgThe four layers and their dependency direction
The four layers and their dependency direction

Four layers

Plugin names encode their layer, and the folder structure follows the same split.

AFS_ — Systems. The load-bearing pieces: the pawns, the interaction stacks (grip, select, gaze, overlap, teleport, laser, locomotion), the UI design system, spatial UI, highlighting, snapping and level loading.

AFM_ — Modules. Self-contained capabilities that attach to actors: state values, replication, spawning, spectating, panels, splines, visibility, teleporting, camera fade, widget interaction. The ability and interaction base classes also live here, in AFM_Abilities.

AFA_ — Assets. Shared colours, icons, materials and sounds, plus the sound class hierarchy the rest of the framework mixes through.

AFE_ — Environment. The Showroom: a demo shell with game mode, pawns, navigation and an idle screen.

AFU_ — Utilities. The debug overlay and the branded intro level.

AF_Examples — one map per feature, showing the intended use of each system.

Dependency direction

Dependencies point downward only. Assets depend on nothing. Modules depend on Assets. Systems depend on Modules and Assets. The Environment and Examples depend on everything above them. Nothing in a lower layer references a higher one, which is what makes it possible to take a subset of the framework.

AFM_Abilities and AFS_Libraries are the two roots — almost everything depends on one or both.

The dependency graph across all 42 plugins
diagram_plugin_dependencies.svgThe dependency graph across all 42 plugins
The dependency graph across all 42 plugins