Diner (Williams 1990)¶
A VPW Premium build of Williams' 1990 Diner, notable for advancing the toolkit baking workflow with contributions around DisableLighting parameter documentation, shadow layer separation, insert cutout techniques, and nestmap optimization. Collaborative build between flupper1, sixtoe, apophis79, niwak, and tomate80.
Build Story¶
The Diner build served as a proving ground for toolkit pipeline refinements. Having a real machine owner on the team provided high-resolution scans, exact measurements, and shot verification that significantly improved build quality. The project followed strict VPW Bot version control discipline with sequential check-ins.
Table-Specific Details¶
Mechanisms & Hardware¶
Standard Williams WPC layout. GI string mapping required cross-referencing manual diagrams with the physical lamp layout because Diner's manual had errors in lamp numbering. See GI String Organization and Tracing for the verification methodology developed partly from this experience.
Art & Visuals¶
- Flupper's original PSD source files had pre-separated shadow and playfield layers, enabling dynamic shadow control where shadows respond to GI intensity changes. The workflow: render playfield without shadows, render shadow-only pass, apply shadows in VPX using flasher objects with multiply blend mode.
- Insert cutout workflow in GIMP: select insert area, create layer mask from selection, cut insert from playfield layer, place pre-rendered Flupper insert graphics below. The mask-based approach preserves original scan data for later adjustment.
- The post vs sleeve Blender material distinction (metallic shading for metal posts, non-metallic rubber shading for sleeves) was established during this build. See Plastics Material Settings for material setup guidance.
Physics & Gameplay¶
- Ramp ball guide elasticity tuned lower than standard rubber for this table's guides. See Ramp Entry Angle Impact on Ball Speed for general ramp friction tuning.
- Flipper angles verified against real machine footage using the PAPA video overlay method.
Techniques Developed Here¶
- DisableLighting parameter behavior was documented here by niwak -- DL=0 is fully lit by scene, DL=1 is fullbright, values above 1.0 settable via script
- Nestmap packing optimization -- visually prominent objects should get proportionally more texture space than peripheral ones
- Primitive naming standardization for toolkit export (
bm_,lm_,pf_prefixes)
See Also¶
- 3D Art Pipeline -- shadow layer separation, insert cutouts
- GI and Flashers -- DisableLighting, GI string mapping
- Best Practices -- version control discipline, naming conventions