The COG Factory / COG Factory Experiments

AI Training Facility: Enhanced AI

2026-10-02
DOWNLOAD ZIP · 8 MBBUILD 32026-10-03
AI Training Facility: Enhanced AI

The AI Training Arena with smarter enemies. A new menu row, ENHANCED AI (on unless you turn it off), hands every wave to a squad controller: a trooper has to actually see you before it fights, the first to spot you radios the rest, and instead of all running at you they take positions round you -- one in front, the next two on your flanks -- strafing as they shoot, and they walk round the pillars instead of into them. The pillars are solid now. The controller is a kit with nothing about the level in it, proved in another level too.

The pillars were never solid. A face-collision structure's size is only the broad phase, centred on its origin; p61's 2.0-tall pillars had their origin at mid-height and a 0.27 size, so the sphere never reached a player at the floor and no face was ever tested. The size is now the mesh's own radius, and a real walk stops at the face.

Sensing without FireProjectile: two ghost probes and HasLOS. The spike found the catch: HasLOS starts in the viewer's FILED sector, and a ghost moved by SetThingPos keeps its old one, so its rays see through every wall. Re-filed by TeleportThing first, they are exact, and a ray costs about a tenth of a microsecond here. The kit's enemies drop navigation nodes where they actually stood, linked where a probe says a body fits, in a cog heap rather than as things; they route round obstacles with feelers and the graph; and they share what they see, but by construction a shared route carries places and never the player.

Nothing level-specific: four cogs and copies of LucasArts' own AI classes without their movement instincts, injected unchanged into p44's outpost as well, where they adopted all nine troopers. Retail limits enforced by the generator: JK1 verbs only, no trig, every valued verb assigned, each cog under 300 on the engine's own count. A loose plan for multiplayer bots, after reading rbots (Raynar, Hell Raiser), is in the project's notes. Gate 16 of 16 with six located controls; GOB build 1 boots from dist/; the owner ran the training facility in retail JKDF2 (2026-10-02) and it worked well. Build 3 (2026-10-03, from Battle Tactics 3) makes every AI script rebuild its memory after you die and restart or load a saved game (unguarded, troopers that had seen you never alerted each other again); build 3 has not run in retail yet.
projectp63-enhanced-ai
date2026-10-02
packageP63.GOB, gobinator.bat, readme.txt, screenshot.jpg
build3 — 2026-10-03 (first packaged 2026-10-02)
sha256111a7948a54319e4642e24c2c4b25fdd8818cb355f614ad9f14a5c11d108dbf4

Installing it

  1. P63.GOB is a level. Unzip it and drop the GOB into your episode folder.
  2. Pick it from the episode list.

The GOB carries its own level, cogs, models, materials, and sounds.

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

The readme that ships with it

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

 P63.GOB

 The AI Training Arena with smarter enemies. A new menu row, ENHANCED
 AI (on unless you turn it off), hands every wave to a squad
 controller: the troopers have to actually SEE you before they fight,
 the first one to spot you radios the rest, and instead of all running
 at you they take positions around you -- one in front, the next two on
 your flanks -- strafing as they shoot, and they walk round the pillars
 instead of into them. The pillars are solid now, too. Turn ENHANCED AI
 off for the stock behaviour and compare.

 [cogfactory / p63-enhanced-ai]

 BUILD 3  --  2026-10-03   (first packaged 2026-10-02)
 sha256 111a7948a54319e4642e24c2c4b25fdd

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

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

INSTALLATION
------------------------------------------------------------------------
Drop P63.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,
models, materials and sounds, and reads the stock resource/ for
everything else.

On a libretro frontend such as RetroArch, unzip first and put P63.GOB in
the episode folder of your Jedi Knight folder, then load it from there.
The core treats the folder above the GOB's folder as the game folder,
reads the episode from episode/P63.GOB inside it, and will not start
unless that folder also holds resource/ (Res2.gob) from a real install.

CONTROLS
------------------------------------------------------------------------
  Up / Down (or W / S): choose a row
  Left / Right (or A / D): change the value; holding repeats
  Space or C: confirm (on START GAME, start the round; on the score screen, back to the menu)
  ENHANCED AI: ON (default) gives the waves the squad controller; OFF is stock Jedi Knight AI
  In the arena: the usual Jedi Knight controls

NOTES
------------------------------------------------------------------------
  ENHANCED AI applies to the waves (stormtroopers, Gran, Rodians,
  commandos, the mixed squad); the Dark Jedi duel as before

  the enemies learn the room as they move: they remember places they
  stood and which of them can see each other, and route through them;
  nothing about the arena is written into them, and the same
  controller runs in other levels

  every screen is a picture: HTML pages captured by a headless browser
  and cut into 16-bit materials

  build 3 (2026-10-03) adds the restore guard the owner asked for
  after p66: when you die and the game puts you back at the level
  start, or you load a saved game, the AI controller, its node memory
  and its steering now rebuild themselves from the level as it is
  (before, they kept what they knew at the moment you died: in the
  outpost the troopers never re-alerted each other). In this build the
  controller's debug lines are on, so you will see EAI RESTORED after
  a restart. Build 2 ran in real JK (the owner, 2026-10-02); build 3
  has NOT run in retail yet

WHAT IS IN THE GOB
------------------------------------------------------------------------
        87  episode.jk
    138019  jkl\arena.jkl
     18726  cog\eaictl.cog
      4427  cog\eaimov.cog
      9236  cog\eainav.cog
      2633  cog\eaiprb.cog
      6138  cog\imbus.cog
     10209  cog\imcycle.cog
      3301  cog\immusic.cog
      5338  cog\imread.cog
      6710  cog\p61gorc.cog
      8736  cog\p61jer.cog
      8989  cog\p61maw.cog
      5809  cog\p61pic.cog
     10173  cog\p61sar.cog
      8431  cog\p61yun.cog
     15174  cog\p63game.cog
      8270  cog\p63spawn.cog
      2907  3do\impillar.3do
      5289  3do\imstrip.3do
     92715  3do\key\grbk0.key
     92715  3do\key\grbk1.key
    118700  3do\key\grbk2.key
    101369  3do\key\grsl0.key
    101369  3do\key\grsl1.key
    127354  3do\key\grsl2.key
    122999  3do\key\grsr0.key
    122999  3do\key\grsr1.key
    157637  3do\key\grsr2.key
     75738  3do\key\icbk0.key
     79651  3do\key\icbk1.key
     96777  3do\key\icbk2.key
     82744  3do\key\icsl0.key
     87069  3do\key\icsl1.key
    103783  3do\key\icsl2.key
    100254  3do\key\icsr0.key
    105609  3do\key\icsr1.key
    128298  3do\key\icsr2.key
     97618  3do\key\rybk0.key
    101531  3do\key\rybk1.key
    129988  3do\key\rybk2.key
    106684  3do\key\rysl0.key
    111009  3do\key\rysl1.key
    139466  3do\key\rysl2.key
    129344  3do\key\rysr0.key
    134699  3do\key\rysr1.key
    172633  3do\key\rysr2.key
     66987  3do\key\stbk0.key
     74815  3do\key\stbk1.key
     95856  3do\key\stbk2.key
     73169  3do\key\stsl0.key
     81821  3do\key\stsl1.key
    102862  3do\key\stsl2.key
     88619  3do\key\stsr0.key
     99331  3do\key\stsr1.key
    127377  3do\key\stsr2.key
    131212  mat\imacei.mat
     32908  mat\imaflr.mat
     65676  mat\imapil.mat
    131212  mat\imawal.mat
    131212  mat\imbg.mat
       268  mat\imblk.mat
     45836  mat\imdd0m.mat
     65740  mat\iml00.mat
     65740  mat\iml01.mat
     65740  mat\iml10.mat
     65740  mat\iml11.mat
     65740  mat\iml20.mat
     65740  mat\iml21.mat
     65740  mat\iml30.mat
     65740  mat\iml31.mat
     65740  mat\iml40.mat
     65740  mat\iml41.mat
    131212  mat\imm00.mat
    131212  mat\imm01.mat
    131212  mat\imm02.mat
    131212  mat\imm03.mat
    131212  mat\imm04.mat
    131212  mat\imm05.mat
    131212  mat\imm06.mat
    131212  mat\imm07.mat
    131212  mat\imm08.mat
    131212  mat\imm09.mat
    131212  mat\imm10.mat
    131212  mat\imm11.mat
    131212  mat\imm12.mat
    131212  mat\imm13.mat
    131212  mat\imm14.mat
    131212  mat\imm15.mat
    131212  mat\imm16.mat
    131212  mat\imm17.mat
    328396  mat\imname.mat
    131212  mat\imp00.mat
    131212  mat\imp01.mat
    131212  mat\imp02.mat
    131212  mat\imp03.mat
    131212  mat\imp04.mat
    131212  mat\imp05.mat
    131212  mat\imp06.mat
    131212  mat\imp07.mat
    131212  mat\imp08.mat
    131212  mat\imp09.mat
    164236  mat\imrate.mat
    196876  mat\imres0.mat
    196876  mat\imres1.mat
    196876  mat\imres2.mat
    131212  mat\ims00.mat
    131212  mat\ims01.mat
    131212  mat\ims02.mat
    131212  mat\ims03.mat
    131212  mat\ims04.mat
    131212  mat\ims05.mat
    131212  mat\ims06.mat
    131212  mat\ims07.mat
    131212  mat\ims08.mat
    131212  mat\ims09.mat
    131212  mat\ims10.mat
    131212  mat\ims11.mat
    131212  mat\ims12.mat
    131212  mat\ims13.mat
    131212  mat\ims14.mat
    131212  mat\ims15.mat
    131212  mat\ims16.mat
    131212  mat\ims17.mat
     65740  mat\imstart.mat
     16588  mat\imswl.mat
     16588  mat\imswr.mat
    328396  mat\imv0.mat
    131404  mat\imv1.mat
     98572  mat\imv2.mat
    131404  mat\imv3.mat
     65740  mat\imv4.mat
     16588  mat\imwl0.mat
     16588  mat\imwl1.mat
     16588  mat\imwl2.mat
     16588  mat\imwl3.mat
     16588  mat\imwl4.mat
     16588  mat\imwr0.mat
     16588  mat\imwr1.mat
     16588  mat\imwr2.mat
     16588  mat\imwr3.mat
     16588  mat\imwr4.mat
      3572  sound\imchang.wav
    132344  sound\imchime.wav
    528044  sound\imcmd.wav
    132344  sound\imdefeat.wav
     18566  sound\imfire.wav
    517484  sound\imgen.wav
    510444  sound\imgp.wav
    538604  sound\imgran.wav
    517484  sound\imjer.wav
    469964  sound\imlose.wav
    519244  sound\immaw.wav
    686444  sound\immenu.wav
    541244  sound\immix.wav
      2028  sound\immove.wav
    532444  sound\imrod.wav
    513084  sound\imsar.wav
    132344  sound\imtimeup.wav
    522764  sound\imtrp.wav
    380204  sound\imwin.wav
    517484  sound\imyun.wav
       797  misc\ai\eaigr.ai
       797  misc\ai\eaigr.ai0
       796  misc\ai\eaigr.ai2
       815  misc\ai\eaiic.ai
       813  misc\ai\eaiic.ai0
       813  misc\ai\eaiic.ai2
       819  misc\ai\eairy.ai
       818  misc\ai\eairy.ai0
       815  misc\ai\eairy.ai2
       724  misc\ai\eaist.ai
       724  misc\ai\eaist.ai0
       720  misc\ai\eaist.ai2
      1738  misc\pup\gr.pup
      2126  misc\pup\ic.pup
      2172  misc\pup\rystr.pup
      2362  misc\pup\st.pup

  21179222  bytes in 178 entries

CREDITS
------------------------------------------------------------------------
  The image menu, the arena and the training rules are p61's
  (tools/cogfactory/projects/p61-image-menu); the Dark Jedi duels are
  p52's; the stormtroopers, Gran, Rodians, commandos and Dark Jedi are
  LucasArts' own templates, and the enhanced AI classes are copies of
  LucasArts' own stdefault/grdefault/rydefault/icdefault with the
  movement instincts taken out; the controller, the menu row and the
  arena changes were generated by tools/cogfactory.

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

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