The COG Factory / Level Design Projects
The Dark Jedi Gauntlet
Q. Can ONE generation-2 pipeline produce a SIX-LEVEL chained episode of Dark Jedi boss arenas — Yun, Sariss, Gorc and Pic together, Maw, a Jerec clone, and the real Jerec in a Sith temple who meditates untouchable and summons the others in three stages — each with its own force powers rigged from the stock master template closure, procedural fractal art, generated music, and a shape no earlier level has?
+force_lightning, +force_repel, the smoke, the rocks or the pull powerups, so the generator reads every symbol out of every shipped cog and walks master.tpl from those roots. A thing linked through two symbols delivers killed twice: the first win cog ended the level twice and the episode skipped the cathedral — visible only because the test asserted which world came next. And the vertex budget is a plan number: every chamfer, opening and trim band spends the floor's 24, so the plan predicts each floor and refuses one over 22 before the editor is opened. The arenas are octagons under real sky, with a 256-texel fractal medallion placed exactly 1:1 in the centre cell of a cut floor and a light bake modulated by the same fractal that drew it.| archetype | Six Dark Jedi arenas — ONE CHAINED EPISODE, with a staged finale |
|---|---|
| project | p52-dark-jedi-gauntlet |
| date | 2026-09-04 |
| built | 6 levels · 44 sectors · 6 Dark Jedi, 11 placements · 44 textures, 8 computed · 6 generated tracks · 19 gate rows, 1 a control |
| package | P52.GOB, readme.txt, screenshot.jpg |
| build | 1 — 2026-09-05 |
| sha256 | 2e015ec683431f6774dbe5486b8165c2efb8393528139d102aa7b19bf219d5db |
Installing it
- Unzip it.
- Drop the
.GOBinto theepisodefolder of a Jedi Knight install — the one that already hasJK1.GOBin it. - Pick it from the episode list. On a libretro frontend, load the
.GOBitself as content.
The GOB carries its own level, cogs, materials and sounds and
reads the stock resource/ for everything else. There is no
retail game data in the zip.
These are living projects, not finished releases. A level is rebuilt whenever something is learned — a lighting rule, a texture orientation, a whole detail pass — and it keeps its filename through all of it. The build number is how to tell which one you have: it is printed in the readme inside every zip, and it only moves when the level's bytes actually change.
Screenshots
Textures generated for this project
The readme that ships with it
========================================================================
Jedi Knight Level
P52.GOB
Six lightsaber duels in six arenas, one after another: Yun in a marble
court under the stars, Sariss in a frozen cathedral, Gorc AND Pic
together in a foundry pit, Maw flying in a volcanic shaft that throws
rock at you, a Jerec over the glowing core of the Valley of the Jedi
-- and then the SITH TEMPLE, where the real Jerec (the first was a
clone) meditates untouchable on his throne and summons the others down
from their council niches: Yun; then Sariss and Maw together; then,
waking himself, Gorc and Pic beside him. Every boss has his stock
force powers; every floor carries a computed fractal; every level has
its own ancient, mythic battle music.
[cogfactory / p52-dark-jedi-gauntlet]
BUILD 1 -- 2026-09-05
sha256 2e015ec683431f6774dbe5486b8165c2
This level is not made or distributed by LucasArts
Entertainment Co.
========================================================================
THIS PACKAGE
------------------------------------------------------------------------
P52.GOB the level
readme.txt this file
screenshot.jpg what it looks like
INSTALLATION
------------------------------------------------------------------------
Drop P52.GOB into the `episode` folder of a Jedi Knight install (the one
that already has JK1.GOB in it) and pick it from the episode list.
Nothing else needs to change: the GOB carries its own level, cogs,
materials and sounds, and reads the stock resource/ for everything else.
On a libretro frontend, point the core at the GOB itself. It needs a
folder beside it holding `resource/` from a real install -- that is
where the retail data lives and none of it is in here.
CONTROLS
------------------------------------------------------------------------
PLAY IT: New Game, and pick COG Factory p52 Dark Jedi Gauntlet.
You start with fists and a LIGHTSABER already drawn. Fire swings it.
Each arena starts asleep. THE DUEL BEGINS WHEN YOU STEP ONTO THE ARENA FLOOR;
step back out into a bay or the corridor and the Dark Jedi holds his ground.
Health, shields and bacta are in the side bays of every level.
LEVEL 3 has TWO bosses: Gorc (the big blade) and Pic (small, and he vanishes).
LEVEL 4: Maw flies. Watch the ledges -- rock comes down from them.
LEVEL 6, THE SITH TEMPLE: hurt Jerec and he retreats to his throne, untouchable,
and summons the others. Kill what he summons and he wakes. The last stand is
Jerec, Gorc and Pic at once; kill all three to win.
MUSIC: the tracks live in MUSIC/ beside the GOB; keep that folder with it.
NOTES
------------------------------------------------------------------------
FIVE LEVELS FROM ONE PLAN FILE. Every arena is a table of boxes with
a per-sector floor, plus four things the garrison levels never had:
chamfered corners (the arenas are octagons), sky ceilings, a fractal
floor grid with a 256-texel medallion placed exactly 1:1 in its
centre cell, and a light bake modulated by the same fractal
arithmetic that drew the medallion.
A FORCE POWER IS A TEMPLATE NOBODY PLACES. The editor writes the
closure of what is placed -- the boss, his puppet, his sounds. Force
lightning, force repel, the smoke of deadly sight, five kinds of
thrown rock and eight weapon powerups for force pull are reached
only through a cog's template symbols, and creating one the level
does not carry fails with no log line. So the generator reads every
template, sound and material symbol out of every shipped cog and
walks the editor's master template file from those roots, parents
first.
TWO BOSSES IN ONE ARENA ARE TWO COGS AND TWO ROWS, as the original
game does it; the win cog counts kills BY SENDER. A one-boss level
links the same thing through both symbols, and a thing linked twice
delivers `killed` twice: the first build ended the level twice and
skipped the cathedral. Measured, guarded.
THE VERTEX BUDGET IS A PLAN NUMBER. An engine surface holds 24
vertices and every cut on a wall spends the floor's: two per
chamfer, two per carved opening, two per trim band. The plan
predicts each floor's count and refuses one over 22 before the
editor is even opened.
THE FINALE IS A STAGE MACHINE OVER SIX PRE-PLACED BOSSES. A
lightsaber hangs on a slot the engine hands out only at level load,
so a Dark Jedi created mid-fight would hold nothing; the five
council niches hold them from the start, held asleep, and a summons
is a teleport to an anchor plus a GO message to that boss's own
script. Jerec's meditation is his own damage handler returning zero
-- measured: a 500-point strike moved his health by nothing.
THE MUSIC IS PLAYED BY THE LEVEL SCRIPT. PlaySong(track, track,
track) loops one Ogg Vorbis file from MUSIC/ under the game folder;
the six tracks were generated as instrumental, ancient, mythic boss
themes and converted to Ogg, which is what this engine's music
loader opens.
THE FRACTALS ARE FREE. Seven of the thirty-seven textures are
computed: Koch, two Julia sets, a Sierpinski carpet, a Mandelbrot
set, and two tileable fractional-Brownian-motion fields whose
octaves divide the panel so they wrap exactly. The other thirty came
off five generated texture sheets.
WHAT IS IN THE GOB
------------------------------------------------------------------------
289 episode.jk
87268 jkl\p52gorpc.jkl
3028 jkl\p52gorpc.manifest.json
98081 jkl\p52jerec.jkl
2045 jkl\p52jerec.manifest.json
78726 jkl\p52maw.jkl
1946 jkl\p52maw.manifest.json
112892 jkl\p52sarss.jkl
2566 jkl\p52sarss.manifest.json
90145 jkl\p52sith.jkl
2258 jkl\p52sith.manifest.json
75800 jkl\p52yun.jkl
2048 jkl\p52yun.manifest.json
3504 cog\p52done.cog
6591 cog\p52final.cog
5793 cog\p52gorc.cog
7768 cog\p52jerec.cog
8024 cog\p52maw.cog
4945 cog\p52pic.cog
9178 cog\p52sarss.cog
7489 cog\p52yun.cog
3788 3do\p52gpil.3do
3804 3do\p52jpil.3do
3807 3do\p52mpil.3do
3791 3do\p52spil.3do
3791 3do\p52tpil.3do
3791 3do\p52ypil.3do
32908 mat\p52galt.mat
32908 mat\p52gceil.mat
32908 mat\p52gflor.mat
32908 mat\p52gfrac.mat
131212 mat\p52ggate.mat
32908 mat\p52gpil.mat
32908 mat\p52gtrim.mat
32908 mat\p52gwall.mat
32908 mat\p52jalt.mat
32908 mat\p52jceil.mat
32908 mat\p52jfbm.mat
32908 mat\p52jflor.mat
131212 mat\p52jfrac.mat
131212 mat\p52jgate.mat
32908 mat\p52jpil.mat
32908 mat\p52jtrim.mat
32908 mat\p52jwall.mat
32908 mat\p52malt.mat
32908 mat\p52mceil.mat
32908 mat\p52mflor.mat
131212 mat\p52mfrac.mat
131212 mat\p52mgate.mat
32908 mat\p52mpil.mat
32908 mat\p52mtrim.mat
32908 mat\p52mwall.mat
32908 mat\p52salt.mat
32908 mat\p52sceil.mat
32908 mat\p52sfbm.mat
32908 mat\p52sflor.mat
131212 mat\p52sfrac.mat
131212 mat\p52sgate.mat
32908 mat\p52spil.mat
32908 mat\p52strim.mat
32908 mat\p52swall.mat
32908 mat\p52talt.mat
32908 mat\p52tceil.mat
32908 mat\p52tflor.mat
131212 mat\p52tfrac.mat
32908 mat\p52tgate.mat
32908 mat\p52tpil.mat
32908 mat\p52ttrim.mat
32908 mat\p52twall.mat
32908 mat\p52yalt.mat
32908 mat\p52yceil.mat
32908 mat\p52yflor.mat
131212 mat\p52yfrac.mat
131212 mat\p52ygate.mat
32908 mat\p52ypil.mat
32908 mat\p52ytrim.mat
32908 mat\p52ywall.mat
3261596 bytes in 77 entries
CREDITS
------------------------------------------------------------------------
Generated by tools/cogfactory in the openjkdf2_libretro tree.
Geometry authored through SED (github.com/smlu/SED) over the
cogfactory bridge.
LucasArts did not make this. Jedi Knight is theirs; this is a fan-
made episode.
The readme format is styled after SM Sith Lord's cog headers,
because his are the ones everybody read.
========================================================================

















