250 likes | 457 Views
Digital Simulated Pinball. Ashlyn Zoecklein David Hawkey. Introduction.
E N D
Digital Simulated Pinball Ashlyn Zoecklein David Hawkey
Introduction A digital pinball machine that utilizes a general purpose computer for a simulated 3D pinball game displayed on flat panel monitors. The machine has actual pinball controls for authentic pinball look and feel. The machine is capable of simulating multiple playfields and accepting payment for game play.
Motivation • Fun Project • Most components already available • Simple hardware interfaces using general purpose PC • Creative freedom for playfield and game play design • Scalable
Requirements • Display 3d graphics of pinball playfield • Have realistic physics • Minimal low-level physics implementation • Use actual pinball controls • Authentic look and feel • Accept payment • For use in arcades / casinos • Scalable • Use displays of different sizes (desktop version) • Alternate input options • Utilize two displays • Video card capable of dual display with hardware 3d acceleration • No lag on primary pinball application and minimal lag on secondary backboard application • Communication between the two display applications • Speed – must not interfere with pinball performance • Low Overhead – use minimal resources. Code library easily incorporated • Flexible – must be easily changed to accommodate new communication
Mainboard with processor and RAM Sound Card Speakers Coin Mech Input Adapter Standard PC Power Supply Flipper Buttons Dual-Display Graphics Card Ball Shooter 42” Plasma Display (Playfield) 15” LCD Display (Backboard) Proposed Design (Hardware)
Subcomponents • Computer / Operating System • Dual Displays • 3D Pinball Game Application • Backboard Application (Dot Matrix Emulator) • Playfield and Game-Play design • Input Controls and Interface • Enclosure
Computer / Operating System • Pentium 4 2.26Ghz • 512 MB RAM • NvidiaGforce 7600 GT • Sound / Ethernet / USB • Ubuntu Linux 7.04 • Freely Available • Stable • Easily Customizable • Excellent hardware support and documentation • Capable of running from CD or USB Drive (Live CD) • Works well with chosen libraries
Dual Displays • Main Display • 42” Plasma (Sony PFM-500A2WU ) running at 1024x768 rotated vertically • Secondary Display • 15” NEC flat panel running at 1024x768 resolution (not rotated) • Each display runs on its own X server. • Each is 3d accelerated by video card and initial tests showed no performance loss during communication.
3D Pinball Game • Ogre 3D • Open Source Graphics Engine • Multi-platform (Windows, Linux, Mac) • Widely used, supported, and documented • Newton Game Dynamics • Realistic physics engine • Real-time physics simulation and collision detection • OgreNewt • Links Ogre and Newton • Fmod • Music and sound effect system • Used in many commercial games • Multiplatform (Windows, Linux, Mac) • OIS • Multiplatform Input abstraction layer • Handles input from keyboard, mouse, and joystick devices
Activated Coil Torque Max Angle Constraint Center Pin Pivot Constraint Rest Angle Constraint Spring Return Torque Flipper Pressed Apply Coil Torque Flipper Released Apply Spring Return Torque Flipper Physics
Branding Graphics Area Emulated Dot Matrix Display Player Scores / Animations Backboard Application • Uses shared memory approach for communication with pinball application • Provided by Linux kernel • Flexible – allows arbitrary data to be shared • Easy to use – read and write memory using pointers • 300x100 Grayscale Bitmap (1byte / pixel) • Each pixel interpreted as a single LED on the emulated dot matrix display.
Backboard Application Backboard Application Pinball Application Shared Memory Draw Graphics Draw Text Each bitmap pixel interpreted as a brightness level for a single dot matrix led Score: 1500 300x100 Grayscale Surface (array of bytes) Emulated dot matrix display drawn to screen
Playfield • Music Themed • Standard Pinball Elements (Flippers, Bumpers, Drop Targets) • Obstacles trigger music loops
Input Controls • Coin Acceptor • Standard unit for arcade machines • Momentary switch when coin accepted • Interchangeable coin mechs (US quarters) • Flipper Buttons • Ball Shooter • Universal Pinball Assembly • 2” Travel • 10K 60mm Linear Slide Potentiometer
C4 - C16 C22- C24 C1 - C3 Pin Headers U1 - U4 C17 - C21 AY1 AY2 Analog Sticks AX1 AX2 Input Interface • Low cost USB gamepad • Has many buttons and analog input • Already designed for gaming use (acceptable lag)
Auxiliary Button Switch Right Flipper Switch Left Flipper Switch NO NO COM COM NO COM GND C1 C23 GND C22 GND AX1 NO C18 COM GND Coin Acceptor Switch Ball Shooter Input Interface
Enclosure • Due to size of coin operator and ball puller, a separate enclosure must hang off of table (must be sturdy enough to use ball puller without worry) • Buttons can be mounted within handles already located on all corners of the TV.
Testing Strategy • Pinball Control Test Application • Tests all buttons, coin operator and ball puller. • Quick test if hardware signals are registering on PC. • Shared Memory Unit Tests • Tests all functionality of shared memory library • Tests output of secondary backboard application • Pinball Testing Mode • Special keyboard commands (keyboard not available during normal play) allows the ball to be moved via the mouse to any area. • Allows testing potential problem areas in the playfield easily. • Allows accurate testing of the scoring system.
42” Plasma Flipper Button Ball Shooter Coin Acceptor Alternatives • Full-Size Enclosure • Similar to actual pinball enclosure • Large, Bulky, hard to transport
Alternatives • D-Bus for backboard display communication • Abstracted shared memory communication • Requires more overhead and extra library • Has many features that are unneeded • USB Interfaces • Costly • Some require specialized drivers
Anticipated Difficulties • Ball Shooter • Needs to feel authenticate • Difficult to mount and calibrate potentiometer • Playfield • Intricate components (bumpers, ramps) • Require realistic physical behaviors (mostly handled by Newton) • Needs to be stable (ball shouldn’t get stuck)
Project Plan • Pinball Input • Sept. 19, 2007 • Pinball Application • October 12, 2007 • Gameplay / Playfield • September 27, 2007 • Backboard Application • September 29, 2007 • Music and Sound • October 3, 2007 • Integration and Test • October 23, 2007 • Report and Presentation • October 30, 2007