SCALABLE SIMULATION AND AUTOMATED TESTING OF MOBILE VIDEOGAMES
A method for evaluating performance of a video game by a computing device. The method includes a harness application independent of device's execution context, and an agent application to simulate player's actions.
1 . A method for evaluating performance of a video game by a computing device, the method comprising:
executing by a processor of the computing device a harness application for the video game that extracts variable values from a memory of the computing device and sends data based on the values to a data sink;
contemporaneously with executing the harness application, executing by a processor of the computing device an agent application for the video game that executes player commands for the video game based on a script and state of the computing device determined by the video game;
contemporaneously with executing the harness application and the agent application, executing by a processor of the computing device the video game that accepts input generated by the agent application as player input; and
storing the data in the data sink for analysis.
2 . The method of claim 1 , further comprising continuing the executing the harness application, the agent application, and the video game until achieving a predefined objective of video game play.
3 . The method of claim 1 , further comprising continuing the executing the harness application, the agent application, and the video game indefinitely.
4 . The method of claim 1 , wherein executing the agent application causes the computing device to read a data file that defines one or more game objectives.
5 . The method of claim 4 , wherein executing the agent application causes the computing device to generate simulated user input based on the one or more game objectives.
6 . The method of claim 5 , wherein executing the agent application causes the computing device to generate the simulated user input at least in part by reacting to a detected state of the video game according to at least one predefined algorithm.
7 . The method of claim 1 , further comprising coupling the computing device to the data sink by at least one of a serial port or a network interface.
8 . The method of claim 1 , further comprising hosting the data sink by a local server.
9 . The method of claim 1 , further comprising hosting the data sink by a server and executing on the server a data management application that causes the server to receive the data from the computing device and record the data in a computer-readable storage medium.
10 . The method of claim 9 , wherein the data management application further causes the server to receive additional data similar to the data from multiple different computing devices contemporaneously performing the method.
11 . The method of claim 1 , wherein executing the harness application causes the computing device to collect at least one of: one or more screenshots, a current framerate, a measure of CPU usage, a measure of graphics processor usage, a measure of memory usage, a measure of power drain, or a measure of screen brightness.
12 . (canceled)
13 . (canceled)
14 . An apparatus for evaluating performance of a video game by a computing device, the apparatus comprising at least one processor coupled to a memory holding program instructions that when executed by the at least one processor cause the apparatus to perform:
executing a harness application for the video game that extracts variable values from a memory of the computing device and sends data based on the values to a data sink;
contemporaneously with executing the harness application, executing an agent application for the video game that executes player commands for the video game based on a script and state of the computing device determined by the video game;
contemporaneously with executing the harness application and the agent application, executing the video game that accepts input generated by the agent application as player input; and
storing the data in the data sink for analysis.
15 . The apparatus of claim 14 , wherein the memory holds further instructions for continuing the executing the harness application, the agent application, and the video game until achieving a predefined objective of video game play.
16 . The apparatus of claim 14 , wherein the memory holds further instructions for continuing the executing the harness application, the agent application, and the video game indefinitely.
17 . The apparatus of claim 14 , wherein the memory holds further instructions for executing the agent application thereby causing the computing device to read a data file that defines one or more game objectives.
18 . The apparatus of claim 17 , wherein the memory holds further instructions for executing the agent application thereby causing the computing device to generate simulated user input based on the one or more game objectives.
19 . The apparatus of claim 18 , wherein the memory holds further instructions for executing the agent application thereby causing the computing device to generate the simulated user input at least in part by reacting to a detected state of the video game according to at least one predefined algorithm.
20 . (canceled)
21 . (canceled)
22 . The apparatus of claim 14 , wherein further comprising a server configured for executing a data management application that causes the server to receive the data from the computing device and record the data in a computer-readable storage medium and to receive additional data similar to the data from multiple different computing devices contemporaneously.
23 . (canceled)
24 . (canceled)
25 . The apparatus of claim 14 , wherein the agent application is a finite state machine.
26 . The apparatus of claim 14 , wherein the agent application is encoded as a part of the video game application.
27 . (canceled)