for small game studios posting while they build

Your build moved. Your Steam page should say so.

Connect GitHub and your capture folder. Once a week it proposes what’s worth a post. Pick one and it drafts the update, with the commit or clip behind each claim it can back, and copies it out as Steam BBCode. Your team rewrites and approves it. Whoever cuts the video gets one link.

## v0.14.02026-09-18perf(crowd): 200 agents, 0.6 msfix(crowd): clipping at the stallfeat(crowd): flow-field steeringrefactor(nav): split NavGridchore(deps): Burst 1.8.18test(crowd): 30-min soakchore(ci): cache shader variantsdocs: flow field, why not ORCAwip: boids v317 commits since v0.13.0Update post · Build 0.14The market crowd, rebuiltA player posted a clip of our market square:two hundred townsfolk, half of them walkingthrough each other.The crowd now costs 0.6 ms a frame, downfrom 4.1. Same square, same two hundred.
Fig. 1ExampleThe changelog for build 0.14, and the update post three of its lines became.

The week, as it is

Seven builds, one post

Steamworks’ own advice is to post when you have a reason. Most weeks you had one. It was somewhere in forty commits and a capture folder nobody watched back.

A Read is the week’s commits and captures, read for what could be a post, each idea with its reason. It lands in the app on Friday afternoon, or fortnightly or monthly if you set it so. Pick one and it drafts. Pick none and nothing happens.

Nobody spends Friday night turning forty commit messages into something a player wants to read. The crowd fix goes out the week it ships.

From changelog to update post

Build 0.14, read for players

Seventeen commits went into 0.14. Players will care about eight, and one of them is a story. The draft keeps a source beside every claim it can back, so whoever approves it can check a line against its commit or its clip at a glance.

$ git log --oneline v0.13.0..v0.14.0

17 commits, 8 in the post

  1. b3d1f86fix(build): IL2CPP Linux player stripped the CrowdInstanced shader variantin the list
  2. 3b6e7c1perf(crowd): Burst-job the field lookup — 200 agents 4.1 → 0.6 ms on Deckin ¶4
  3. a9f6c32refactor(crowd): delete AgentSteering.cs and the RVO fallback (−1,142 lines)in ¶2
  4. a41c9e2feat(crowd): flow field replaces per-agent A* + RVO steering↑ this is the story
  5. e92f4a0fix(crowd): agents clip through fruit stall collider on NavGrid seamin ¶1
  6. 44ab0e1feat(audio): FMOD crowd murmur param follows local agent densityin the list
  7. f2a8c04fix(ui): stall price labels overlap at 3840×2160, UI scale 150%in the list
  8. d7c20aefix(save): 180 ms GC hitch when autosave hits on market dayin the list
9 not for players
  1. 8f2b6d0Revert "wip: boids v3, try separation weight 2.5"cancels out
  2. c0e4a17wip: boids v3, try separation weight 2.5wip
  3. 91fa3e6chore(deps): Burst 1.8.12 → 1.8.18, Collections 2.4.1chore
  4. 6e1d3b9test(crowd): 30-min soak, 200 agents, market day loop, no NaNsplayers won’t see this
  5. 7d03b18feat(debug): F7 draws field vectors + integration-cost heatmapdebug builds only
  6. c58d2a9refactor(nav): split NavGrid into cost field + integration fieldrefactor
  7. 0bd7f55chore(ci): cache shader variants, player build 38 → 21 minchore
  8. 5e0b9a7docs: flow field notes, and why not ORCAplayers won’t see this
  9. 18c7e5dchore: MarketSquare_v2_FINAL_final.unity → MarketSquare.unitychore
flowfield-debug-overlay.mp4sampled frames, each described
  1. 0:00the crowd piled up at the stall, walking through it

  2. 0:04the field overlay on, the crowd still piled up

  3. 0:12the crowd turning to follow the field

  4. 0:16two lanes around the stall

A frame description can miss what a player would spot.

Update post · draft 2

Steam version

The market crowd, rebuilt

A player posted a clip of our market square: two hundred townsfolk, half of them walking through each other.

market-crowd-old-steering.mp4 · 0:11–0:17market-crowd-old-steering.pnge92f4a0

We read the steering code, and we stopped laughing. Every townsperson was planning its own path and ignoring everyone else’s.

a9f6c32

So we threw out per-agent pathfinding and rebuilt the crowd on a flow field: one map of directions the whole square shares.

a41c9e2flowfield-debug-overlay.mp4 · 0:04–0:16Why these: the commit that made the change, and the clip where the field is on screen.

The result is a dramatically smoother, more immersive market, Same square, same two hundred. They walk around each other now, and the crowd costs 0.6 ms a frame instead of 4.1.

no hype. say what the player sees.market-crowd-flowfield.mp4 · 0:02–0:143b6e7c1Noted: you cut hype words. Later drafts leave them out.

Also in 0.14

  • Autosave no longer stalls on market day.d7c20ae
  • Stall prices no longer overlap at 4K.f2a8c04
  • The Linux build has its crowd shader back.b3d1f86
  • The crowd’s murmur now rises with how busy the square is.44ab0e1

Review record

  1. GeneratedFri 14:12
  2. Changes requestedFri 14:40
  3. ApprovedFri 15:25
  4. Marked as postedFri 16:05

Copy for Steam

Copies as BBCode, which is what Steam takes instead of markdown.

[h2]The market crowd, rebuilt[/h2]

A player posted a clip of our market square: two hundred townsfolk, half of them walking through each other.
¶2 to ¶4 copy the same way, the team’s bold line as [b]
We read the steering code, and we stopped laughing. Every townsperson was planning its own path and ignoring everyone else’s.

So we threw out per-agent pathfinding and rebuilt the crowd on a flow field: one map of directions the whole square shares.

[b]Same square, same two hundred.[/b] They walk around each other now, and the crowd costs 0.6 ms a frame instead of 4.1.
[h3]Also in 0.14[/h3]
[list]
[*]Autosave no longer stalls on market day.
[*]Stall prices no longer overlap at 4K.
[*]The Linux build has its crowd shader back.
[*]The crowd’s murmur now rises with how busy the square is.
[/list]

The same draft, elsewhere

X
Copies as 3 posts, numbered and split at 280
Bluesky
Copies as 3 posts, numbered and split at 300
Mastodon
Copies as 2 posts, numbered and split at 500
LinkedIn
Copies with the markdown stripped — LinkedIn renders none of it
YouTube
Copies as the title, then the description
Devlog
Copies as markdown, title included

Each version keeps its own text and its own “Mark as posted”. Bluesky and Mastodon can also post from the Studio: you confirm the exact thread first, and its likes, replies and reposts come back.

Fig. 2ExamplePlaceholder Panic, build 0.14: the git log, the update post drafted from it with the team’s rewrite, the Steam BBCode copy-out and the review record. Point at a paragraph to light the commits it cites.

The video

When someone else cuts the video

Your trailer editor, a contract video editor, your marketer: they get one read-only link and need no account. Each beat of the voiceover carries its clip and the range to play, the whole script reads as one piece, and a file that came from Google Drive links back to the original.

“Download handoff” saves all of it as a text file. When the script changes, replace the link; when the job is done, revoke it.

The read-only handoff page for “Devlog 14 — the market crowd, rebuilt”: four beats of the voiceover on the left, each with its clip, and the four files they came from on the right, each linking to its original.
  1. “Whole script”: the four beats as one read, for whoever records the voiceover.
  2. Each beat’s clip, set to its range: market-crowd-old-steering, 0:11–0:17.
Fig. 3ExampleDevlog 14’s handoff, as your video editor opens it from the link.

Sources

What it reads, and what it doesn’t

placeholder-panic/ Example

  • github › ipsum-interactive/placeholder-panic

    Commit history, through a GitHub App: each commit’s message, SHA, author and time. It fetches no diffs, pull requests or issues.

  • drive › Captures/

    Paste the folder link. The videos stay in your Drive. Paste the link again to pick up new recordings.

  • *.mp4 *.mov *.webm

    Uploaded captures. It watches them and transcribes the audio.

  • *.png *.jpg *.webp

    Screenshots and stills.

  • *.md *.pdf *.txt

    Design notes, a changelog.md, a pitch doc.

  • YouTube · TikTok · X · Instagram · LinkedIn

    Your past posts on those five, and their comments if you turn that on.

  • Bluesky · Mastodon

    Connect an account once per project. After you confirm the exact thread, it posts the draft’s text there, then reads back its likes, replies and reposts.

Not read

  • the build itself

    It reads what you wrote and recorded about the build. The binary stays with you.

  • Perforce · Unity Version Control · GitLab

    GitHub is the only repository host. Upload the changelog.md instead.

  • Discord · Steam discussions · Reddit

    No connection: it reads nothing and posts nothing there.

Ask where it happened

The Studio assistant answers from your own material, gives timestamps when the answer is in a capture, and can start a draft from what it found.

Studio assistant

You: where in the captures does the crowd stop clipping?

Assistant: flowfield-debug-overlay.mp4, 0:14–0:16: the crowd splits into two lanes around the fruit stall. market-crowd-flowfield.mp4, 0:02: the same stall, and nobody walks through it.

You: and the commit that did it?

Assistant: a41c9e2 feat(crowd): flow field replaces per-agent A* + RVO steering, on Tuesday.

From sampled frames. A description can miss things; the timestamp lets you check.

Limits

What it will not do

  • Make art, footage, voice or trailers. It writes text, and reads the captures you give it.
  • Post to Steam or Discord. You paste the BBCode or the text yourself and press “Mark as posted”. Bluesky and Mastodon are the two it can post to, after you confirm the thread.
  • Predict wishlists, reach or sales. It gives no score, to a post or to a trailer’s opening.
  • Edit or render video. Whoever cuts it gets the words, the clip ranges and the original files.
  • List the shots you still need. A beat with no clip stays on the page, visibly empty, for you to fill.
  • Learn a separate voice for each game from your edits. Corrections you repeat apply across your whole workspace. You choose how the posts sound in Style & context: one Style for each ReadyToEdit project, which a single post can change for itself.

Starter

$20/month

About one half-hour recording a month (750 credits), one project, one reviewer seat.

Solo

$40/month

About 4 half-hour recordings a month (2,000 credits), one project, up to 2 reviewer seats.

Several recordings a week

Pro

$149/month

About 18 half-hour recordings a month (9,000 credits), up to 3 projects, up to 5 reviewer seats.

Team

$299/month

About 41 half-hour recordings a month (20,000 credits), up to 10 projects, up to 15 reviewer seats.

Free while billing is being set up. We will email before the first charge. The reserve link tells us which price you would pay; no card, no charge.

Questions

Which engine does it work with?
Any. It reads commit messages and the captures, stills and notes you give it. It never opens the project or the build, so which engine made them makes no difference.
Half our commits say “wip”. Is that enough?
Not on its own. “wip” gives a draft nothing to cite. A capture, a screenshot or a short design note gives it something to back a claim with, and a claim it cannot back carries no source, for your team to check or cut.
Will players be able to tell it started as an AI draft?
A first draft can. Nothing is approved without your team, and the corrections you keep making carry into later drafts, on a list you can read and overrule.
Is our footage used to train anything?
No. Your commits, captures and drafts are never used to train shared models. What it learns from your team’s edits applies to your own workspace and never improves anyone else’s results.
Does it only do devlogs?
No. One draft copies out for Steam, X, Bluesky, Mastodon, LinkedIn, YouTube or a markdown devlog, each version with its own text. For a video, the draft is a script with a clip suggested for each beat, and the handoff link goes to whoever cuts it.

Post when the build earns it.

Start with one repo and one capture folder. Nothing is charged while billing is being set up.