1 Presentation for Professor Sergiu Dascalu IGT: The Company and Its Products
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
3 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
4 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)
5 Coding 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
6 Coding Games 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 box
7 Coding 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
8 Coding 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)
9 Coding Games – 5 Resources for IGT games consist of graphics, sounds, peripherals (mechanical resources) Peripherals include 1.Touch screen 2.Bill validator 3.Top box 4.Ticket printer The game programmer must integrate all of the above
10 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
11 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
12 For the Game Programmer – 3 Your game must exist in a harsh environment 1.Static guns are used for electrical testing 2.Surviving a power hit is a basic requirement 3.Anti-cheating is a major design concern Before release to the jurisdictions, every game must pass all tests
13 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
14 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
15 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
16 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
17 For Potential Engineers - 2 Try to get experience working with a large code base –the 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
18 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
19 IGT Contacts IGT.COM IGT Human Resources –