190 likes | 203 Views
Detailed insight into IGT's products, gaming technologies, and coding practices for 80960 games. Learn about PC-based products, game development, and submission processes. Prepare for potential engineering roles at IGT.
E N D
Presentation forProfessor Sergiu Dascalu IGT: The Company and Its Products
80960 Products • Video Games (Video Slots, Video Pokers, Multigames) • Uses a touch screen • Stepper Games (Physical Spinning Reels) • S/2000 (Traditional Spinning Reels) • Vision Games • Stepper base • PC with flat screen in the top box • A (video) bonus game plays out on the PC screen • Programmed in “C” • Object-oriented features include class hierarchy and encapsulation
PC-Based Products - 1 • First release to the field was earlier this year • Has an ergonomic cabinet • PC Technology is the adoption of Best of Breed Technologies • Uses an industrial PC design that is not software proprietary, but custom industrial design with many common PC electronics
PC-Based Products - 2 • Use the best proven software and hardware technologies • C++ • OpenGL for graphics • RTOS for performance • UNIX-like architecture • High speed networking (TCP\IP over Ethernet) • USB peripherals (Universal Serial Bus)
Coding 80960 Games - 1 • Use coding techniques that avoid bugs (code assertions, reuse code that works) • Use a library of object code files (files that are common to all games) • Unique files for a game are made “local”, overriding the library copies of the same files
Coding 80960 Games - 2 • 80960 is coded in “C”, but emulates object oriented features (class hierarchies, data hiding) • IGT uses the GNU “C” compiler • Game executable is built on a PC but run on an 80960 box
Coding 80960 Games - 3 • For initial development and for debugging a finished game, a PC-based Borland version of a game can be created • Better for stepping through code • Better for debugging • Better for watching variables
Coding 80960 Games - 4 • GNU version is harder to work with (must use Printf() calls for debugging) • The GNU version of a game is the only way to integrate graphics, sounds and peripherals • All critical testing must be done on the real platform (power hits, bill/ticket acceptance, top box performance, graphics and sound play)
Coding 80960 Games – 5 • Resources for IGT games consist of graphics, sounds, peripherals (mechanical resources) • Peripherals include • Touch screen • Bill validator • Top box • Ticket printer • The game programmer must integrate all of the above
For the Game Programmer - 1 • First rule: your code must work, i.e., the game must play as designed (even if the design is only in someone’s mind) • Game frequently changed, by the powers that be, both before and after release to the jurisdictions
For the Game Programmer – 2 • Seeing is believing, when you are finished, your game will be played, critiqued and changes will be mandated by the Product Development Department • Top-to-bottom rewrites of finished games are not uncommon • Programmer frustration may result
For the Game Programmer – 3 • Your game must exist in a harsh environment • Static guns are used for electrical testing • Surviving a power hit is a basic requirement • Anti-cheating is a major design concern • Before release to the jurisdictions, every game must pass all tests
Game Submission - 1 • The Product Assurance and Electrical Engineering departments thoroughly test each game prior to release • Any firmware problems (e.g., bill-stealing, credit loss, graphics problems, failed game play, crashing game) will be addressed before the game is submitted for jurisdictional approval
Game Submission – 2 • When all issues have been resolved, a game is submitted to one or more jurisdictions • Each jurisdiction can approve or deny sale of the game • Denials can be based on local morality (i.e. certain themes not accepted) or technical reasons
Games in the Field • After a game is approved in a jurisdiction, it can be sold there • Field bugs, when discovered, are addressed quickly • Updated programs, providing new features, are constantly being developed • Sometimes firmware fixes are required to compensate for hardware issues
For Potential Engineers - 1 • Firmware engineers must be intimately familiar with the C programming language • Take as many hardware classes as you can (the microprocessor course is important) • Learn to work with as many tools as you can • Oscilloscope • Network (protocol) analyzer
For Potential Engineers - 2 • Try to get experience working with a large code base • the 80960 code base is about 1 million lines • most of the code you deal with will not have been written by you • you are expected to be able to maintain and extend it
For Potential Engineers - 2 • While you are in school, take as many computer classes in each of the following subjects as you are able to: • Communications (especially serial) • C/C++ programming • Microprocessors (as much as you can take) • Software Development
IGT Contacts • IGT.COM • IGT Human Resources • 775 - 448 - 0350