# Entropie > **100% Vibecode – but tested.** The beginnings of a festival builder in C (SDL3 + OpenGL 3.3). You arrive at a farm with friends, set up camp and get the site ready, together with the people living there. - Everything in detail, and what's still open: [STATE.md](STATE.md) - How the code is built: [ARCHITECTURE.md](ARCHITECTURE.md) - Rules for changing it: [RULES.md](RULES.md) ## What's in it - **The site:** Homburgshöhe at Geflügelhof Oderland, traced from the real map (about 340 x 340 m): the farmyard, the house, your garages, the barn, forest, roads. Painted in the rotoscope style of *Waking Life* - **Berlin:** the story starts at the kitchen table in Grossbeerenstrasse 37 (a festival - where, its name), then the Herberge bar with the whole crew (who leads which floor, the cash box). Every weekend on the ground ends Sunday at six: back to the Herberge (how far it got, open floors, what next weekend is for), Friday at five on the ground again - **Arriving:** by car with Volkram, Jana and Toni. Say hello to Kurti and his sons, unload the car, pitch the tents. A golden marker shows who or what's next; Kurti shows you all the way up to the camping meadow - **People:** everyone has their own temperament, build, skills, walk and habits. They eat, drink, smoke, pee, sleep, work, chat and say no - **The festival:** the crew turns up over the first day. Four floors get built step by step (clearing, frame from logs, deck, roof, paint) by their lead and helpers - or by you (hold left click at a stage). Talk to people about it (X, then 4): praise them, ask someone to lead, take a lead over. Fed up, people give up leading or helping - **Why questions:** why do festivals hand out Urinellas, have an awareness team, say "no shirt, no service"? See it happen, ask who knows, decide at the Herberge. Your notebook (J) keeps track - **The festival:** the sixth weekend. 36 guests camp beyond the wood and dance at every floor that got built, each with its own music. Saturday afternoon a storm: get everybody inside in time (X, then 1: shout it). Sunday they leave, and the crew sums it up at the fire - **The clean-up and home:** the guests leave litter. Supporters work two shifts for their free ticket. Monday everyone still keen picks up, Kurti has a look (clean, or a bill), then it's into Volkram's car and back to Berlin - the end - **Side jobs:** mow the Kartoffelacker with the scythe, rescue the protected vineyard snails before the regulatory office comes (or pay a fine), bring Kerry logs to carve into figures with the chainsaw - **The big old tree:** Enrico from Go-Darmstadt fells it with the chainsaw. You throw the rope up as high as you can, the others pull it away from the phone line. Not enough pull and it comes down on the line - **Injuries:** a falling tree or a hard fall can twist an ankle or break an arm or a leg. Landing, you bounce into the knees and roll if you're moving; too high and something gives. Broken: the ambulance comes, they're back days later with a cast, and slower - **People and touch:** E / Q reaches out and holds on - a post, a thing, or somebody. Where you hold them and how they feel about you decides how they take it: walk hand in hand, calm them, or get told off. Harassment gets noticed, and the more aware the place, the likelier someone steps in. Intimacy stays off screen - **Any tree can be felled** - the protected ones and Kurti's apple trees cost dearly - **Money and shopping:** a cash box of 1200 EUR. Send Volkram to the hardware store for boards, nails, screws, paint and food. The stages need that material; the crew fetches it from the store - **Moving:** real steps, stepping over and onto things, jumping, climbing (several ways up), ladders, stumbles and falls - **Work:** fell trees, cut and split firewood, stack it, clean up, carry heavy things together. Ask for help (G) or give someone a job (X) - **Campfire:** build it, light it, grill on it, put it out, sit round it - **Water:** hose, watering can, puddles and mud - **Weather:** dry spells, clouds coming over, rain, thunderstorms, and wind that blows tents, paper and pullovers away. Hoods go up, umbrellas get fetched; long rain turns the trodden paths to mud - **Drinks:** crates of beer, water, soda and mate. Empties go back into their crates; bottles in the wrong crate get sorted out - **Sound:** steps on every ground, wind, rain, thunder, the fire, axe and chainsaw, glass, voices, Alice barking, birds by day and crickets at night (all made up on the fly) - **Drink:** too much and you sway, stumble, get sick or pass out - **Alice:** the dachshund. She fetches, begs and loves being petted - **Saves:** autosave, quick save and named saves. Old saves keep working ## Controls | Input | Action | |---------------|------------| | W A S D | Move | | Mouse | Look | | Shift (hold) | Jog; tap it again and again to sprint | | Space | Jump (higher with a run-up) | | Left click | Take what's in front: one hand, both hands, or hold on to heavy things | | Left click again | Drink / eat what's in your hand, or work with a tool | | Left click (hold) | Keep going: next stroke, next sip | | X | Talk to who's in front; else shout for someone | | 1 - 5 | Answer when talking / pick from the shout menu | | Right click | Put down / let go (a bottle next to a crate: into it) | | Right click at a crate, hands empty | Take out a bottle that doesn't belong in it | | E / Q | Take / drop with right / left hand (by a table or crate: set it on top); nothing in front: reach out and hold on | | 1 - 5 holding someone | Pull closer, push away, walk with me, calm them, let go | | F (hold) | Push / pull (walk forward / back); look left / right to turn it | | Ctrl (hold) | Look around; holding on: without turning it (the view swings back after) | | E / Q while holding on | Lift together / put down | | T (tap) | Toss what you carry, underhand | | T (hold) | Wind up: overhand, harder and further the longer you hold | | Left click with the ladder | Slide it out / lean it at a wall / slide it together | | Left click on a leaning ladder | Climb it (W / S, Space: jump off) | | E / Q or right click at its foot | Take the ladder down | | Left click on the fire, hand free | Take food off the grill | | P | Pee (next to the toilet: use it); Shift: further, mouse: aim | | K | Light a cigarette / put it out | | Left click at the car's boot | Take out the next thing | | Left click on a tent | Spread it out; hold: put it up (a standing one: take it down) | | F at a tent without pegs | Move it (hold F and walk) | | Z | Sleep / get up (at your tent's door: in it) | | C | Sit down / get up; on fire: drop and roll; at a fire with a drink: pour it on | | Space (asleep, hold) | Sleep faster | | G | One more person helps you | | H | Everybody stops helping | | Backspace | Never mind: call off showing someone how / where; at a meeting: skip it | | R | Call someone (or Alice) over | | V | Third / first person | | I | Show all keys in game | | Tab | Your stats (Left / Right: other page) | | J | Your notebook: the festival, the why questions | | F1 | Dev menu: pick anyone, heal them, change body, needs, temperament, likes and skills (Up / Down, Left / Right); teleport you to the parkour or the yard; time of day, game speed, weather, wind, skip the start | | F2 | Dev: the crew overview - who's who, what they do now, the projects (Left / Right) | | Esc | Menu: resume, save, load, keys, quit (the game waits meanwhile) | | F5 / F9 | Quick save / quick load | | M | Sound off / on | The game starts in third person. Heavy things need help: the strength of everyone holding adds up. ## Build Needs a C23 compiler (GCC 9+ or Clang 9+), `make`, `pkg-config`, SDL3, SDL3_ttf and OpenGL 3.3. On Debian (or any Linux with these packages): ```sh sudo apt install build-essential pkg-config libsdl3-dev libsdl3-ttf-dev libgl-dev make ./entropie ``` ## Install ```sh sudo make install # binary to /usr/bin, assets to /usr/share/entropie sudo make uninstall # removes both make clean # removes build output ``` Use `PREFIX=/usr/local` to install elsewhere. Saves live in `~/.local/share/entropie/entropie/saves`. ## Layout ``` assets/ shaders, font and its license src/core/ window, GL loader, input src/math/ vectors, matrices, view frustum src/render/ renderer, ink pass, meshes, shapes, figures, camera, sky, UI src/world/ world, objects, physics, terrain, water, site, scene, tools, ... src/people/ bodies, hands, climbing, AI, talking, needs, the dog src/game/ the frame, player actions, talking, saves src/main.c main loop and menus ``` Dependencies point downward: `main → game → world/people → render → core/math`. ## Version `make version` prints e.g. `entropie 2.50.0 (build 6409893)`. The build id is an md5 of all sources and assets.