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 1.72.0: fix one foot left behind after turning away from something
- Someone who started stepping over something and then walked off the other way stayed "half over": one foot kept stepping, the other stayed planted behind, sliding along (NPC audit: foot slides 3414 -> 346) Includes 1.71.0 (if not committed separately): - Two-handed fidgets: rubbing the hands, hands behind the head, both hands on the hips Includes 1.70.0 (if not committed separately): - More one-hand gestures (neck, nose, ear, hair, thumb in the belt, hand on the chest, shading the eyes); mood and personal habits pick them Includes 1.69.0 (if not committed separately): - Faster with a crowd: 750 people 22 -> 14 ms a frame (kind index, cell grid for company, no foot checks far from you) Includes 1.68.0 (if not committed separately): - The walking map is updated in place when fixed things change (0.3 ms instead of 10 ms) Includes 1.67.0 (if not committed separately): - Pour your drink on the fire (C): a small fire goes out, a big one hisses, vodka flares up Includes 1.66.0 (if not committed separately): - Careful people sort the woodpile by length (front even) and put the branches lying about onto a heap at the end of the woodpile Includes 1.65.0 (if not committed separately): - Smooth off the ladder (a step back, one foot after the other) and taking it down (the hand reaches for the rail at chest height) Includes 1.64.0 (if not committed separately): - Smooth ladder and climbs: getting on, over the edge at the top, feet from where they are; the easy 1 m climb no longer drops you off again Includes 1.63.0 (if not committed separately): - The hose melts in the fire (leaks, burns through); duct tape and the shears mend it Includes 1.62.0 (if not committed separately): - Smooth pull-ups: no hop at the end, feet and knees ease over the edge, elbows and hands taking hold blend in (audit walk: joint jumps 161 -> 58) Includes 1.61.0 (if not committed separately): - A step ladder in the tool room: stands on its own, at a wall with its back to it; climb onto the wall from its top Includes 1.60.0 (if not committed separately): - A folding ladder (two 2.5 m halves on a hinge, 5 m open) beside the telescopic one; one click at a wall unfolds it and leans it there Includes 1.59.0 (if not committed separately): - Stepping up onto blocks above knee high; set moves and jumps only for things standing on the ground in front of you Includes 1.58.0 (if not committed separately): - Walking over knee-high things is one smooth set move that always finishes; at a run: jump up onto blocks, catch climbable edges
entropie/Makefile | 2 +- entropie/STATE.md | 4 ++-- entropie/commit_message.txt | 11 ++++++++--- entropie/src/people/body.c | 4 +++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/entropie/Makefile b/entropie/Makefile index cf37929..a694be4 100644 --- a/entropie/Makefile +++ b/entropie/Makefile @@ -1,5 +1,5 @@ APP := entropie -VERSION := 1.71.0 +VERSION := 1.72.0 PREFIX ?= /usr BINDIR ?= $(PREFIX)/bin diff --git a/entropie/STATE.md b/entropie/STATE.md index 421a0b4..ee38756 100644 --- a/entropie/STATE.md +++ b/entropie/STATE.md @@ -82,7 +82,7 @@ Talk topics: offer, ask, suggest, where (new woodpile spot), ask for a hand, ask - **Up onto things at a run** (jogging or faster): a block up to 0.95 m high with 40 cm of room on top (fixed, or 40 kg and more) is jumped onto, timed to come down on it; higher (up to 2.05 m, sober, some energy) running into it you catch it (no bouncing off) and the climb starts - **Over obstacles**: lean into it, the leg swings out a little and back in; lift the foot first, then over; the body waits for the back leg; knee turns out, or the foot comes up; sprinting, leaps; careless people just step on small things; trips and scrapes by speed, height, condition - **Bushes**: trying to get over one ends in it, twigs snap -- **Half way over something**: from when a foot is well into a step over something (lifted 12 cm+, 15 % into the step) until the body is over there (6 cm behind where that foot came down, at most 20 cm past it), you're crossing (`body.c` crossOver): stopping (or slower than 0.3 m/s) the body carries on over it at 0.6 m/s (`physics.c` carryOver); the foot over there stays down, the other comes after. Walking back takes you back. Standing still half over costs energy (2.5 %/s, a leg held up 6 %/s; less sporty, more); worn out, held longer than 1-6 s (fitness, energy) or legs over 0.95 m apart: you're made to go over; still stuck 1.5 s later: you fall (`world.c` halfOver) +- **Half way over something**: from when a foot is well into a step over something (lifted 12 cm+, 15 % into the step) until the body is over there (6 cm behind where that foot came down, at most 20 cm past it), you're crossing (`body.c` crossOver): stopping (or slower than 0.3 m/s) the body carries on over it at 0.6 m/s (`physics.c` carryOver); the foot over there stays down, the other comes after. Walking back takes you back; the body 0.75 m or more back from it (walked off the other way) ends it too - that was missing: a person could walk on with one foot stepping again and again and the other left planted behind (NPC audit: foot slides 3414 -> 346). Standing still half over costs energy (2.5 %/s, a leg held up 6 %/s; less sporty, more); worn out, held longer than 1-6 s (fitness, energy) or legs over 0.95 m apart: you're made to go over; still stuck 1.5 s later: you fall (`world.c` halfOver) - **Sure-footedness**: one factor (`world.c`, unsure: ~0.2 sporty and careful .. ~1 average .. ~2.7 clumsy and unfit) scales every trip, slip, scrape and run-into, and how bad it gets; clumsy and unfit, you also stumble over your own feet jogging or running - **Climbing**: hand on it (up to 1.35 m), hang and pull up (higher, both hands free), jump for the edge; ladder up and down, over the edge at the top. Walking up to something 0.7–2 m high, the hands go onto its edge first; pulling up, the feet push against the face below the edge, then the right knee and foot come over onto it, then the left (scripted in `game_actions.c`, climbFeet); knees bend up. A foot below the edge goes back until its (forward bent) knee is 8 cm clear of the face (`game_actions.c`, kneeClear); onto something low (under 1 m) the body rises quickly first, so the knee comes up above the edge. Walking up to anything higher than 0.5 m, the feet stay 0.35 m back from it (room for the knee; `body.c`, footSpot). Climb test: 0.8-1.5 m, walking or jumping, legs at most 5 cm into it (was 19 cm at 0.8 m). High pull-ups: pulled up till the arms press down (hips near the edge), then the knee comes up and you rise; the hands go on ahead onto the top and stay there, the back bends over the edge as far as it takes to keep them on it (body_pose.c, reach_bend). Jumping: holding Space (or W) grabs an edge the hands reach (about 2.4 m); up to 0.35 m higher, the fingertips touch it ("Just out of reach"); hands go up wide, then onto the edge. Smooth pull-ups (audit walk: joint jumps 161 -> 58, the worst 22 -> 10 cm): the climb ends at the highest point under the body's footprint (where the physics stands you: no hop), each foot lands on what's under it, no replanting at the end (the feet are there already; body velocity zeroed: no stride ahead); feet over the edge over longer windows (lead 0.56-0.86, trail 0.74-1.0 of a high climb); kneeClear eases the foot back in 1 cm steps and lets go gradually as the knee comes over the top; the knee pole for pulling up eases in and out (`pull_knees`); an elbow swinging up over an edge blends between the two solves (no flip at half way); a hand taking hold eases out of the arm's "move out" (`arm_hold`). Every climb starts from where the feet are (`noteFeet`, eased in over the first 15 %); each foot's height on top is taken under where it ends up (clamped to 0.3 under / 0.15 over the top: roofs slope); below the edge the knee room (kneeClear) blends out as the foot gets over the face or above the top. Ladder: getting on, the body eases over onto it (`ladder_shift`, 1.6 m/s) and hands and feet go onto the rungs from where they are; over the edge at the top is a pull-up (1.6 s, `climb_face` where the top rests; the body ends at its stand height on the roof, `standHeight`); stepping off at the bottom is a 0.6 s step back, one foot down after the other, the hands let go half way (`ladder_off`); taking a leaning ladder down, the hand reaches for its rail at chest height (not its middle up the wall) and it stays held as steep as it leaned. Audit ladder: joint jumps 163 -> 45; climb test 458 -> 180 (the easy 1 m climb no longer drops you off again) - **Drink and the rest**: sips, burps, sways, veers, sick, passes out, sleeps it off; pees (stream lands on the real ground, soaks in or puddles) @@ -159,4 +159,4 @@ Most important first. - Drawing many figures on a real graphics card: not measured (software GL: 300 people cost 3x the rest of the scene) --- -State of `entropie 1.71.0 (build 898cf2e)` +State of `entropie 1.72.0 (build d4392f3)` diff --git a/entropie/commit_message.txt b/entropie/commit_message.txt index 131ed0d..4090a1b 100644 --- a/entropie/commit_message.txt +++ b/entropie/commit_message.txt @@ -1,7 +1,12 @@ -entropie 1.71.0: two-handed fidgets +entropie 1.72.0: fix one foot left behind after turning away from something -- Standing about people now also rub their hands (nervous), clasp them - behind the head (at ease, proud) or put both on the hips (proud) +- Someone who started stepping over something and then walked off the + other way stayed "half over": one foot kept stepping, the other stayed + planted behind, sliding along (NPC audit: foot slides 3414 -> 346) + +Includes 1.71.0 (if not committed separately): +- Two-handed fidgets: rubbing the hands, hands behind the head, both + hands on the hips Includes 1.70.0 (if not committed separately): - More one-hand gestures (neck, nose, ear, hair, thumb in the belt, hand diff --git a/entropie/src/people/body.c b/entropie/src/people/body.c index 0e23003..5688a9e 100644 --- a/entropie/src/people/body.c +++ b/entropie/src/people/body.c @@ -16,6 +16,7 @@ static void crossOver(Body *b, const BodyFrame *f, float s); #define CROSS_FROM 0.15f /* ... and this far into its step: half way over it */ #define CROSS_PAST 0.2f /* the body goes no further than this past where that foot came down */ #define CROSS_DONE 0.06f /* over: the body this close behind where that foot came down (or past it) */ +#define CROSS_AWAY 0.75f /* the body this far back from it: not going over after all */ static float random01(Body *b) { if (b->rng == 0) b->rng = 0x9E3779B9u ^ (unsigned)(b->clock * 7919.0f); @@ -1171,7 +1172,8 @@ static void crossOver(Body *b, const BodyFrame *f, float s) { b->cross_left = left; float back = vec3_dot(flat(vec3_sub(b->feet[b->cross_foot].ankle, b->cross_to)), b->cross_dir); bool returned = back < -0.25f * s; /* (that foot came back: not going over after all) */ - if (left < CROSS_DONE * s || returned || b->pose != POSE_UP || b->airborne) { + bool away = left > CROSS_AWAY * s; /* (the body went off the other way: not going over either - one foot was left stepping on its own) */ + if (left < CROSS_DONE * s || returned || away || b->pose != POSE_UP || b->airborne) { b->crossing = b->cross_force = false; b->cross_held = 0.0f; }