The COG Factory / Level Design Projects

Control Room

Starship control room
DOWNLOAD ZIP · 286 KBBUILD 12026-09-05
Control Room

Q. Can ANGLED, non-axis-aligned surfaces — raked console banks and a canted viewport — be built and still get a collide box that fits?

Yes, and the box survives detailing — 6 surfaces became 99 in the same sector and it still clears every one of their planes, at scale 0.727. The detail pass then found the room was black for a reason nobody had checked: sector ambient does not light a surface at all (sithRender.c:2046 vs :2718 for a thing), so the declared ambient=(0.24,0.30,0.36) lit the console meshes and nothing else, while three lights of range 0.55 in a room with a 0.803 half-diagonal reached 4 of 12 vertices. 32 of 36 samples were literally the bake floor, 0.120 — reproduced offline to four decimals before anything was changed. tessellate had also cut nothing, silently, because it only proposes lines the sector's vertices already occupy, so the floor was one quad and a pool of light on it was unrepresentable rather than dim. And the windows were "very tiled" twice over: a texture painting its own 4×4 pane grid, tiled 2.90 × 1.47, is 12 × 6 panes — fixed by taking the grid out of the art and cleaving real mullions into the leaning wall, which band_strip cannot touch and raw cleave_surface does in one call. Median vertex light .120 → .264 over 444 samples; room void .3007 → .0708.
archetypeStarship control room
projectp39-control-room
date2026-08-30
built1 sector · 99 surfaces · 8 things · 16 lights · 18° cant · 11 textures
packageP39.GOB, readme.txt, screenshot.jpg
build1 — 2026-09-05
sha25612dc2af509ce19bd63bac1d0fd33e892220ab84767b1979be449cc7442e953cc

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

crpanelcrdeckcrroofcrglasscrconsolecrtrimcrtrim2crmullcrbeamcrhatchcrglow

The readme that ships with it

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

 P39.GOB

 Can ANGLED, non-axis-aligned surfaces -- raked console banks and a
 canted viewport -- be built and still get a collide box that fits?

 [cogfactory / p39-control-room]

 BUILD 1  --  2026-09-05
 sha256 12dc2af509ce19bd63bac1d0fd33e892

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

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

INSTALLATION
------------------------------------------------------------------------
Drop P39.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
------------------------------------------------------------------------
        97  episode.jk
     51732  jkl\p39ctrl.jkl
      1209  jkl\p39ctrl.manifest.json
      7910  3do\crbank.3do
      2124  3do\crbeam.3do
      5548  3do\crchair.3do
      4044  3do\crpod.3do
     32908  mat\crbeam.mat
     32908  mat\crconsole.mat
     32908  mat\crdeck.mat
     32908  mat\crglass.mat
     32908  mat\crglow.mat
     32908  mat\crhatch.mat
     32908  mat\crmull.mat
     32908  mat\crpanel.mat
     32908  mat\crroof.mat
     32908  mat\crtrim.mat
     32908  mat\crtrim2.mat

    434652  bytes in 18 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.

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