Python in the Video Game Industry – Best Practices and Finding Cheaters02:00 PM - 03:00 PM on August 16, 2014, Room 704
- Audience level:
Python is used extensively in the video game industry at many levels. This talk is specifically about how Python based analytics can be integrated operationally into an organization at two levels: in ad hoc investigations and in production analytic services. This is about best practices in documented, reproducible and archived data investigations as well as production development with Python. A case study of an analytic service for cheating detection in Call of Duty Ghosts will make this real and provide some fun. This talk is rated PG-13 for some awesome video game violence.
This talk with begin with a brief overview of the use of Python in video game studios. It has become a central tool in an industry where innovation and time to market are huge drivers. We will go into more depth about lessons learned and ongoing work in using Python at Activision Central Studios by the Game Analytics Team. Activision is composed of many independent studios who operate with their own cultures and development styles, which promotes innovation and agility, but makes it difficult to share practices and resources with other studios. Activision Central Studios provides key services that can be shared, such as a state of the art performance capture stage, but also has game development and analytic resources where knowledge, techniques and tools can be shared across studios. The Game Analytics Team provides expert statistical analysis that is typically not available at individual studios. This consists of two main rolls: ad hoc analysis and investigations of specific questions from studios, and production quality analytic and graphical applications presented as services to studios. Hundreds of megabytes of data can be collected daily for a single game title so the challenges in analysis can be daunting. The two activities have different needs and best practices. Ad hoc investigations need to be archived and reproducible. This includes SQL queries, code, graphics and documentation. Production applications require formal development practices and collaboration with IT to provision resources. Best practices being used at Activision for these two activities will be discussed. Finally a case study of a specific analytic service for boosting detection will be presented and some code examined. This service involves a range of tools including Greenplum, R, Python, matplotlib, pygal, Bottle, Beaker, CherryPy and ExtJS.