@mexty/engine
v0.3.0
Published
The Mexty game engine domain layer: a data-only game definition rendered with React Three Fiber — entities, event bus, triggers → actions, quests, semantic animation, asset binding, BlockTracker bridge, built-in primitives and the federation loader for re
Readme
@mexty/engine
The Mexty game engine domain layer for React Three Fiber. Give <GameHost> a game definition
(see @mexty/engine-schema) and it runs the game: one Canvas, an optional Rapier physics world, an
entity store, a typed event bus, quests that subscribe to game events, triggers that run actions,
a DOM HUD, and a bridge to the block's BlockTracker so progress reaches the platform.
import { GameHost } from "@mexty/engine";
export const Block = (props: GameDefinition) => (
<GameHost definition={props} tracker={tracker} loadRemote={loadRemote} resolvePrimitive={resolvePrimitive} />
);Built-in primitives: character (ecctrl on rapier, third-person follow camera, semantic animation
clips), interactable, trigger-volume, ground, sky, light. Remote primitives are other
blocks: the host resolves a { blockId } reference to its federation entry, loads it into its own
share scope (createWebpackRemoteLoader) and mounts the block's ./Primitive export for the
entity. Primitives are written with the hooks: useEntity, useInteractable, useTrigger,
useAnimationController, useAsset, useEngineEvent, useEngineStore.
Peer dependencies (shared as singletons by the platform's engine build profile): react,
react-dom, three, @react-three/fiber, @react-three/drei, @react-three/rapier, ecctrl,
zustand. Templates for a game host and a primitive live as the engine-game and
engine-primitive branches of mext-ai/default-block.
