SJOEFFdevlog
menuContents and articles

article 005agents503 words~2 minEpic AI MegaJam

Pack it, check it, ship it

agents

Written on 11 November, looking back on 3 to 11 November. Times are Dutch local time.

447 MBzip of a test village, under the 1 GB jam limit
28 to 35 sto cook and package it with a warm cache
0playable things made before the jam

Pack it

A left-to-right line of five nodes: project, cook and package, zip under 1 GB, checks (play-test log, screenshots, traces), and a dotted last node, upload, not done yet. Three small branches hang below the line: Blender to FBX, 2D textures and icons, sound.
The line from project to upload, and the three generators that feed it.

One script cooks and packages with the editor closed. It waits for 8 GB of free memory first, builds the zip, measures it, and turns red above 1 GB. It uses our own build targets and no -build step, because the standard route needs a Windows SDK that is not installed. works

Check it

The game writes its events into its own log in a fixed format. A small parser reads that log and reports crashes, frame rate, time to the first decision and stuck spots. A second tool reads screenshots and logs and measures pixels and timing, with its own PNG reader. A third looks for personal traces in the zip. We keep that last one optional. works

one line of the play-test log
SPELTEST 6.10 eerste_beslissing 120 40 0

A build lock makes the two machines queue instead of colliding: one Unreal job at a time, a clean tree, a maximum run time. Past it, the whole process tree is killed and the lock is freed. We tested that with a deliberate hang. works

What broke

A horizontal timeline of the first packaging run: the standard build broke without the Windows SDK, a workaround built in 44 seconds, the zip broke with backslash paths, a person starting the game found it, the zip was fixed with a check, and at 23:20 the game started clean.
The first packaging day, in order. Nothing flagged the zip until a person started the game.
what brokewhat fixed it
A zip made by the shell had backslashes in its paths. The game did not start after unpacking.Proper paths, a check that reads the original names, and a test that builds a broken zip on purpose.
The cook ate memory on a 16 GB machine when shader workers piled up.A profile that counts the workers from free memory and puts the setting back afterwards.
Unreal sometimes hung for minutes after being told to quit.A timeout that kills the whole tree, not just the process.
The house rule is never 100 percent of the CPU, but the engine started more workers than allowed.Every started process gets lower priority and a cap of 75 percent of the threads.

Make it

Three generators feed the line. A Blender chain builds a procedural object, its LODs and bakes, and writes one FBX per level of detail. A 2D tool makes seamless textures and icons with transparency. For sound, a catalogue of prompts makes a set of effects, and every sound passes a gate that measures peak, silence and loop seam. works

The rule

Prepare tools, not a game.

The jam rules say nothing playable exists before the theme. So we made scripts, prompts, lessons and a tuning protocol, and tested them on throwaway scenes that never go in.