Skip to content

Countdown (Gottlieb 1979)

Rapid Gottlieb early solid state table rebuild showcasing the modern VPW collaborative development workflow, Roth drop target integration with toolkit exports, and newcomer onboarding patterns. Built in 5 days with 24 check-ins by frank_enste1n (Blender/art), mcarter78 (scripting/physics), bhitney (learning), and dgrimmreaper (VR).

Build Story

Development ran from June 22 through June 30, 2025, demonstrating the efficiency of the modern VPW pipeline. Frank_enste1n handled Blender work and art, mcarter78 drove scripting and physics, bhitney learned VPX scripting by contributing small tasks (kickarm animation, rubber animation), and dgrimmreaper added VR support. The table went from first bake to testing channel in 5 days.

Table-Specific Details

Mechanisms & Hardware

  • Gottlieb System 1 ROM: Requires the fixed "CF" spider chip redump -- old versions had a bad byte. Use the fixed ROM pack from PinballNirvana for VPinMAME v3.6.0-963+. Gottlieb license holder is aggressive about ROM distribution, creating user support burden on release.
  • Drop target RotZ axis: Roth drop target code requires RotZ set correctly on VPX primitive. If Blender exports with wrong axis orientation, targets fail to animate during gameplay (but work in ball control mode). Fix: move rotation from RotZ to ObjRotZ and zero out RotZ -- avoids full re-bake.
  • Kickarm animation: Simple pattern -- BP.rotx = -15 on solenoid release, VPMTimer.AddTimer 150, "DropKickArm '" to reset after 150ms. No intermediate frames needed.
  • Rubber/sling animation: Pre-rendered positions with 25ms timer intervals. Initialization sub must set all alternate positions to invisible on table load -- Blender re-bakes wipe manual visibility settings.
  • F12 difficulty options: Gottlieb manuals describe "conservative" (harder) and "liberal" (easier) post positions. Implemented as F12 menu options swapping post positions.

Art & Visuals

  • IBL shadow bias can create visible directional shadow on baked playfield. Fix: rotate IBL map for more uniform distribution. Especially noticeable on simpler, less cluttered playfields.
  • Dynamic drop target shadows are "the least fun part of any table" -- darkening flashers simulating visual holes where dropped targets sit below playfield.
  • Timer objects must go in Timers layer (not lightmaps) to survive Blender re-bakes.
  • Movable objects (drop targets, flippers, bumper skirts) must NOT have "static" flag set in toolkit export, or they will not respond to script changes at runtime.

Physics & Gameplay

  • Each flipper needs its own _Animate sub with individually calculated angles. Using the same sub for multiple flippers causes stuck/locked flipper visuals.
  • Playfield scan PPI verified against real machine measurements with calipers.

Techniques Developed Here

See Also