ludic/packages/ludic.core/package.ludic
Orkuncakilkaya 5af5bdd060
All checks were successful
bootstrap / cfree-fixpoint (push) Successful in 20s
ci / build-and-test (push) Successful in 2m13s
commit-lint / conventional-commits (push) Successful in 5s
docs / build-and-deploy (push) Successful in 28s
feat(core): #77 ship canonical Position/Body/Collider from ludic.core package
The engine-owned esys_move (#65) reads Position/Body/Collider/Solids by name,
but no package defined them — every game and example re-declared identical
bundles by hand. Ship them as the source package ludic.core; games import
instead of copy-pasting, and extend by composition (attach their own
components on the same model). AOT → compiles into the consumer's ECS with no
seam; integer + Q16.16 deterministic. Adds examples/library/core_components
(driven by esys_move, composed with a game Health component) as a
controller_case (104/0).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 06:46:06 +03:00

22 lines
1.1 KiB
Text

# ludic.core — the canonical engine-ABI components (#77).
#
# The engine-owned movement system (runtime/native/systems_move.ludic) reads
# Position / Body / Collider / Solids *by name* through the reflection ABI, but
# no package defined them — so every game and every example re-declared identical
# `property Position/Body/Collider` bundles by hand, copy-pasting the engine ABI.
# That is exactly the kind of thing a game developer should never hand-write.
#
# This package ships those bundles as the one canonical definition. A game
# imports them instead of copy-pasting, and extends by *composition* — attach
# your own components alongside on the same model; the engine still resolves
# Position/Body/Collider by name, and any field a game does not need simply keeps
# its default. It is an ordinary source package: AOT means the properties compile
# straight into the consumer's compile-time ECS with no ABI seam, and everything
# stays integer + Q16.16 deterministic (lockstep / replay / world_save hold).
package "ludic.core"
version "0.1.0"
kind source
provides "Position"
provides "Body"
provides "Collider"
provides "Solids"