Entropie git · main
Entropie festival game; first steps
C 88.5% Markdown 9.1% GLSL 2.3%git clone https://git.christianimmanuel.de/games/Entropie.gitwget https://git.christianimmanuel.de/games/Entropie/archive/Entropie.tar.gzEntropie – rules for changing the code
Do's and don'ts that keep the game clean and quick. Short on purpose: add a rule when a mistake shouldn't happen twice, drop one when it no longer holds. Structure: ARCHITECTURE.md.
Do
- Keep the layers:
rendernever includesworld,peopleorgame. - Turn things with the helpers in
math/linalg.h(yaw_facing,yaw_along, - Tunables as
#defineat the top of the file, with unit and meaning. - Ask "what's near" through the
Grid, rays throughWorld_rayCast/ - Static things go in before the terrain; things lying on the ground are
- A new building part:
manor.c'sPlan(boxes, walls with gaps, openings). - Rebuild a mesh only when what it shows changes.
- Compile without warnings:
-Wall -Wextra -Wpedantic -Wshadow. - Characters moved by script (stepping over, onto, sitting down) use the set
- A collider's "up" face can be any of its axes (things lie on their side).
- Every version: bump
VERSION, updateSTATE.md(done items out of the to-do
yaw_front). Fronts are +Z, lengths are +X.
Collider_ray, the ground through World_groundHeight.
placed after it (Scene_finish, Site_finish).
moves, never a jump of the position. Feet set down by script: the surface
plus BODY_ANKLE_Y (scaled), not the ankle's height of the moment.
list, version line at the end), keep README.md short (a few lines per
area: the details go into STATE.md "Playing it"), write
commit_message.txt with this version's changes only.
Don't
- No
atan2ffor a yaw in new code, nomat4_rotate_yfor an object's turn. - No allocation per frame, no loop over all objects inside a loop over all objects.
- No reusing another kind's fields for a new meaning: add a field, say whose it is.
- No moving static objects behind physics' back (use their own function, then
- No game rules in
render, no input handling inworldorpeople. - No snapping a character up more than a stair (
SNAP_UP_MOST). - No copying a slab test, ray or spring: there is one of each (
Collider_ray, - README: never name Ubuntu (Debian or "any Linux"), always the
Object_syncColliders).
springStep).
"100% Vibecode – but tested" line, no extra files nobody asked for.