Gothic Keep

Q. Can a reference photo's signature feature — a vaulted arcade of arches — be carved through the SED bridge and still be a level the engine walks? And then: what does a level owe its own honest-limits list?

Yes — and the second pass found the list was right about the geometry and wrong about the cause. Six POINTED arches carved through two solid arcade walls, walked both ways, two dais steps climbed. The detail pass then found every wall fixture turned 90° WRONG: a thing's local +Y is its facing, and each one was placed at yaw 0 against a wall whose normal is ±X, so a compound pier showed its 0.056 of depth instead of its 0.116 of width and half of it stood inside the masonry. It did not under-read because it was thin. Swapping hole for passage then made the same arch procedure buy three lit window recesses and an apse; the trim sheet went from two bands on two surfaces to all four on five courses plus the meshes. 15 sectors, 472 surfaces, consistency 0.
archetypeGothic keep
projectp30-gothic-keep
date2026-08-30
built15 sectors · 472 surfaces · 35 lights · 11 fixtures
packageP30.GOB, readme.txt, screenshot.jpg
build1 — 2026-09-05
sha2568b87e2bdb9381981191875f3a5077927b4b08dbc4e0b562f96f7fa591a35e144

Installing it

  1. Unzip it.
  2. Drop the .GOB into the episode folder of a Jedi Knight install — the one that already has JK1.GOB in it.
  3. Pick it from the episode list. On a libretro frontend, load the .GOB itself 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

gkwallgkfloorgkvaultgkarchgkdaisgktrim

The readme that ships with it

========================================================================
 Jedi Knight Level

 P30.GOB

 Can a reference photo's signature feature -- a vaulted arcade of
 arches -- be carved through the SED bridge and still be a level the
 engine walks?

 [cogfactory / p30-gothic-keep]

 BUILD 1  --  2026-09-05
 sha256 8b87e2bdb9381981191875f3a5077927

 This level is not made or distributed by LucasArts
 Entertainment Co.
========================================================================

THIS PACKAGE
------------------------------------------------------------------------
  P30.GOB          the level
  readme.txt       this file
  screenshot.jpg   what it looks like

INSTALLATION
------------------------------------------------------------------------
Drop P30.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.

WHAT IS IN THE GOB
------------------------------------------------------------------------
        96  episode.jk
    136961  jkl\p30keep.jkl
      3023  jkl\p30keep.manifest.json
      7232  3do\gkaltar.3do
     17105  3do\gkpier.3do
      5542  3do\gksconce.3do
     32908  mat\gkarch.mat
     32908  mat\gkdais.mat
     32908  mat\gkfloor.mat
     32908  mat\gktrim.mat
     32908  mat\gkvault.mat
     32908  mat\gkwall.mat

    367407  bytes in 12 entries

CREDITS
------------------------------------------------------------------------
  Generated by tools/cogfactory in the openjkdf2_libretro tree.

  The readme format is styled after SM Sith Lord's cog headers,
  because his are the ones everybody read.

========================================================================