You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A batteries-included companion library for the V12 engine that provides standard gameplay components and systems. This is the layer most game code uses, sitting on top of V12.Core.
Source: Git submodule from https://forgejo.finite.ovh/Finite/V12.Basic
Components
Player Components
File
Purpose
PlayerComponent.cs
Core player element -- manages input consumption, yaw/pitch rotation, mouse look, teleportation
DesktopPlayerComponent.cs
Desktop-specific player variant
VRPlayerComponent.cs
VR-specific player variant
Gameplay Components
File
Purpose
CameraComponent.cs
Camera component -- FOV, near/far clip, current-camera flag
LocomotionComponent.cs
Movement controller -- walk/sprint/jump speeds, grounded state, velocity, look sensitivity
HealthComponent.cs
Health pool with max HP and invincibility
Physics Components
File
Purpose
PhysicsBodyComponent.cs
Wraps a physics body (rigid/kinematic), links V12 elements to physics simulation
RigidBodyComponent.cs
Dynamic rigid body -- mass, gravity scale, isKinematic
Bind handlers by name/tag/path/component; runs now and as content is added
world.Bind().On("SpawnBoxButton", e =>e.GetComponent<ButtonComponent>().OnPressed=SpawnBox).On<HealthComponent>("Boss", h =>h.MaxHealth=500).OnTag("enemy", e =>e.AddComponent(newHealthComponent(50))).Auto();
It is world-agnostic, so it binds to worlds loaded from a .v12pak (via V12.Pak's GameRoot.LoadPak) the same way.
Documentation
libs/V12/Docs/WorldML.tex: WorldML format reference.
libs/V12/Docs/WORLDML_BINDINGS.md: WorldML parser/serializer pipeline and the property, scene, and script binding layers.
Dependencies
Project reference: V12.Core (from libs/V12/)
Targets .NET 10
About
V12's built in libraries that provide some common functionality