preview.png
Versions
Every version of this package its world published, newest first by when it first appeared. A version published again later keeps its place.
set: the room is lit, the blocks are wood, and every hit throws dust Grade off the UI. The playroom_grade PostProcess declares layer = "scene", so the pass runs before the interface is composited. Its twelve-tap bloom was printing a displaced copy of every cream glyph over the 0.90 threshold, which read as a second misregistered heading on every card, and its tilt-shift band was defocusing the top and bottom of each one. The scene is still graded. The sun comes over the player's shoulder. It travelled -Z, towards the camera, so every block face the player saw was backlit and the fill did the lighting on its own; that is what read as pale plastic. It now travels (-0.78, -0.42, 0.46) and rakes the camera-facing faces, with the fill warmed to room bounce and lifted to 0.28, the key dropped from 3.7 to 2.6 (at 3.7 the newly-lit faces sat at 0.85 luminance and had no colour left in them), the sky IBL down to 0.20 and the grade's saturation from 0.26 to 0.15 now the colour comes from the light. The window opening runs from z = -40 rather than -22 to fit the new angle: the key crosses the +X wall 14.7 m before the point it lands on, and at the old opening the whole launcher end of the table stood in the wall's shadow. The ten block materials move to playroom_paint, the shader the table already wears, at grain_scale 3.2 / grain_strength 0.42 / wear 0.32 / clearcoat 0.22 and reflectance down from 0.35 to 0.12. The painted_wood texture they used to bind is white to within four code values, so the albedo pass showed ten flat colours; it now shows grain and edge wear (albedo spread 115 -> 125). impacts.module is new: one subscriber on the game's bus that plays the wood impact effect on impact and blockDisplaced, a bigger burst plus a shockwave ring on towerToppled, and a puff where a block leaves the table. Plays are rate-limited by a token bucket, and a burst the bucket refuses is folded into the next play's count rather than dropped, so a collapsing tower is a handful of large clouds and not fifty small ones. The lamp shade and the window get playroom_glow, a new surface with a gradient down world Y and a fresnel term, so the shade reads as lit paper rather than a flat white triangle and the window as sky rather than a hole. The four picture frames get playroom_crayon, also new: a child's drawing of the aeroplane and a child's tower of blocks, in wax crayon on sugar paper. box() is now shape() with the cube already chosen. Model.mobility = "static" was tried on the 58 props and taken back out: three 20-second windows read mesh_transform_compose at 0.82 ms with no flag, 0.80 on auto and 0.83 on static. Set gains onModuleReload so a sibling's edit to game.game does not leave the effects silently unsubscribed.
01M1TWF5YGAZM5CE90C00WHTJEc28394b1fdBrowse filesCompare with previousCompare from hereplayroom-set: the room the table stands in — painted wood, a window with afternoon in it, and the game's photographic finish The set slice builds the whole playroom around the plan's table slab: floorboards and a rug twelve metres below the table edge, four walls and a ceiling, a wide window down the sunny side, skirting, a dado rail, framed pictures, a shelf of toys, a toybox with its lid open and a floor lamp in the corner. The table gets an apron and four legs so its edge - and the drop past it - reads. One procedural shader, playroom_paint, is every wooden surface in here: grain streaks along the board, a seam and a per-board tint across it, and wear patches that rub the paint back. It is built from world position, so a 48 m table slab and a 3 m skirting board carry grain at the same physical size. One post-process pass, playroom_grade, is the whole photographic finish: a tilt-shift band, a bloom on the window light, a warm split-toned grade and a vignette. 0.16 ms of GPU per frame at 1080x1440, measured against the pass it replaces. The band is a fraction of screen HEIGHT and the vignette is measured square-corrected, so a tall frame and a wide one get the same look. The scene's sun, ambient and sky are retuned by name: a low warm key from the window side, a cool dim fill under it, and the plan's ProceduralSky swapped for a flat warm Skybox - the procedural sky was driving the sun's own direction from its time of day and lighting an indoor room with an outdoor blue. The only collider the slice owns is the floorboards, 2.6 m below Rules.TABLE.floorY, so a block that leaves the table is culled before anything here can catch it.
01M1SF0KVMM08EYRZRNVNM9S7885f2d54becBrowse filesCompare from here