US 20060046854 A1
A method which enables game developers to capture user actions and to automatically solicit user feedback as game events occur, so that game developers can then use this data to “tune” the game to improve a user's experience is disclosed herein. To develop game data, function calls and user inputs are recorded in a log file. Also, players can provide feedback on game play after predetermined events occur (e.g., player finishes level) or through a pause menu. By allowing a development team to better understand a user's experience in game play, the game can be tuned to improve the user's experience.
1. A method for soliciting feedback from a user within an electronic game, the method comprising:
displaying a feedback screen after a predetermined event occurs within a game, wherein the feedback screen contains predetermined feedback options for the user to choose from;
prompting the user to choose to give feedback on the game or to not give feedback on the game;
receiving a selection from the user indicating the user's decision to provide feedback on the game; and
receiving feedback on the game on behalf of the user if a received selection indicates that the user wishes to provide feedback.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. A method for capturing user actions within an electronic game, the method comprising:
collecting a user's inputs in a log file;
transferring the log file automatically from a game console to a server to facilitate subsequent retrieval and;
retrieving log files from the server.
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. A system for gauging user experience within an electronic game, the system comprising:
means for receiving feedback from a user to gauge user experience;
means for storing feedback in log files;
means for automatically transmitting log files to a server to facilitate subsequent retrieval and;
means for retrieving log files from the server.
14. The system of
15. The system of
16. The system of
17. The system of
18. A system comprising:
a controller recorder that identifies controller inputs;
a set of log files coupled to store user inputs from the controller recorder; and
a server coupled to store user inputs in the log files.
19. The system of
20. The system of
21. A computer-readable medium having computer-executable instructions for performing steps comprising:
receiving information about events from a controller;
transmitting the information about the events to a log file; and
initiating the upload of the log file to a server.
22. The computer-readable medium of
23. The computer-readable medium of
24. A method for developing an electronic game based on user feedback, the method comprising:
storing log files containing a record of game events and user feedback in a database;
retrieving log files from the database;
analyzing log files to determine ways to improve user experience; and
modifying the game based on user feedback to improve user experience.
25. The method of
26. The method of
27. The method of
28. The method of
29. A method for soliciting feedback from a user within an electronic game, the method comprising:
displaying a feedback screen after a predetermined event occurs within a game, wherein the feedback screen contains survey questions for the user to answer;
Allowing the user to move forward in the game only if the user responds to the survey questions; and
Preventing the user from moving forward in the game if the user does not respond to the survey questions.
30. The method of
31. The method of
32. The method of
33. The method of
34. The method of
The following disclosure relates generally to electronic games and, more particularly, to an automated process for capturing user actions in electronic games to assist in game development.
Current methods for gauging user feedback for electronic games require a user to play a game, relay game feedback to an interviewer, and have the interviewer tell a game developer what improvements need to be made to the game to improve user experience. As used herein, the term electronic game refers to any game that is played on an electronic device. These include, without limitation, console-consoled based games such as Xbox or Playstation, PC games intended for play on a computer, handheld games, games for mobile phones or PDA's, and the like.
For example, in the prior art, a group of users may be placed in a room and asked to play a “level” of a game. Once the users have completed the level, they are asked one or more survey questions regarding their user experience. When the survey questions have been answered, the data is compiled and placed into a text editing program, such as Microsoft Word. The interviewer then typically makes subjective observations based on user feedback. Responses to the survey questions are then modified into a useful format for game developers to review. The game developers can then analyze the feedback and determine areas of the game that may need modification, such as particularly difficult portions of the game.
The example above illustrates many of the problems associated with current implementations of user feedback for electronic games. The above implementation only allows for subjective feedback from users. The survey questions gather subjective feedback from a user, such as what the user thought about the difficulty of a level, as opposed to objective feedback, such as the exact point in the game where a user died and what button presses led up to that event. Although subjective feedback may be useful, it may be difficult to use subjective feedback to make objective changes to a game. In addition, the pool of users surveyed is often too small to be able to make broad generalizations about the game. The narrow scope of user experience tends to hinder the efforts of game developers. Also, the fact that the survey results are modified to be in the correct format and manually placed into a database creates a less efficient process. In addition, game developers must manually search the database for the information they want, a task that consumes more time and detracts from efficiency.
The following disclosure describes a tool for better understanding a user's initial experiences when playing an electronic game, and then using that data to ‘balance’ the electronic game and to design a better overall experience. This tool, which can be applied to nearly all electronic games, can be used to identify specific areas in the game in need of improvement (such as difficulty of a level) in order to increase the user's overall enjoyment of the product.
The method automatically captures a user's actions and their individual feedback as the events occur. The steps include collecting player data in a log file, moving the log file from the electronic device to a data storage device, such as a server, parsing the log file, placing the parsed data into a database, and retrieving the desired data from the database. This information can then be reviewed in an understandable format within minutes of the data being collected, essentially taking subjective data and making it measurable. This allows the game developer to make informed decisions based on measurable data to determine what changes need to be made to achieve the desired ‘balance’ or difficulty for the game.
The following disclosure describes several embodiments of systems and methods for electronic games. Specific details of several embodiments of the invention are described below to provide a thorough understanding of such embodiments. However, other details describing well-known structures and routines often associated with electronic games are not set forth below to avoid unnecessarily obscuring the description of the various embodiments. Further, those of ordinary skill in the art will understand that the invention may have other embodiments that include additional elements or lack one or more of the elements described below with reference to
In the Figures, identical reference numbers identify identical or at least generally similar elements. To facilitate the discussion of any particular element, the most significant digit or digits of any reference number refer to the Figure in which that element is first introduced.
It is intended that the terminology used in the description presented below be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific embodiments of the invention. Certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
Certain embodiments of methods and systems for electronic games are described below in the context of computer-executable instructions performed by a game console or a general-purpose computer, such as a personal computer. In one embodiment, for example, these computer-executable instructions can be stored on a computer-readable medium, such as a hard disk, a floppy disk, or a CD-ROM. In other embodiments, these instructions can be stored on a server computer system and accessed via a computer network such as an intranet or the Internet. Because the basic structures and functions related to computer-executable routines and corresponding computer implementation systems are well known, they have not been shown or described in detail here to avoid unnecessarily obscuring the described embodiments.
Each of the controllers 104 can be configured to accommodate two portable memory units 140 for portable storage capability. The memory units 140 enable users to store game parameters and import them for play on other game consoles. In the illustrated embodiment, each controller 104 is configured to accommodate two memory units 140. In other embodiments, however, suitable controllers can be configured to accommodate more or fewer memory units.
The game console 102 can include a plurality of cables for connection to supporting systems. For example, the game console 102 can be operably connected to a television or display 150 via audio visual interface cables 120. In addition, a power cable 122 can provide power to the game console 102. Further, a cable or modem connector 124 can facilitate information exchange between the game console 102 and a network, such as the Internet, for broadband data transmission.
The game console 102 can be equipped with an internal hard disk drive (not shown) and a portable media drive 106. The portable media drive 106 can be configured to support various forms of portable storage media as represented by an optical storage disk 108. Examples of suitable portable storage media can include DVD and CD-ROM game disks and the like. The game console 102 can further include a power button 112 and an eject button 114. Depressing the eject button 114 alternately opens and closes a tray associated with the portable media device 106 to allow insertion and extraction of the storage disk 108.
The gaming system 100 enables players and other users to enjoy various forms of entertainment including games, music, and videos. With the different storage options available, such media can be played from the hard disk drive, the portable media drive 106, the memory units 140, or an online source. For example, the gaming system 100 is capable of playing music from a CD inserted in the portable media drive 106, from a file on the hard disk drive, or from an online streaming source. Similarly, the gaming system 100 can also play a digital audio/video game from a DVD disk inserted in the portable media drive 106, from a file on the hard disk drive (e.g., a file in Active Streaming Format), or an online streaming source.
The gaming system 100 is but one example of a suitable system for implementing embodiments of the invention. Accordingly, the methods and systems disclosed herein are not limited to implementation on the gaming system 100, but extend to numerous other general or special purpose computing systems or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include personal computers (PCs), server computers, portable and hand-held devices such as personal digital assistants (PDAs), laptop and tablet PCs, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, mini-computers, mainframe computers, electronic game consoles, and distributed computing environments that include one or more of the above systems or devices.
In one embodiment, the CPU 200, memory controller 202, ROM 204, and RAM 206 can be integrated into a common module 214. In this embodiment, the ROM 204 is configured as a flash ROM that is connected to the memory controller 202 via a PCI bus and a ROM bus (neither of which is shown). The RAM 206 can be configured as a multiple Double Data Rate Synchronous Dynamic RAM (DDR SDRAM) that is independently controlled by the memory controller 202 via separate buses (not shown). The hard disk drive 208 and portable media drive 106 can be connected to the memory controller 202 via the PCI bus and an AT attachment (ATA) bus 216.
In the illustrated embodiment, a 3D graphics processing unit 220 and a video encoder 222 can form a video processing pipeline for high speed and high resolution graphics processing. Data can be carried from the graphics processing unit 220 to the video encoder 222 via a digital video bus (not shown). An audio processing unit 224 and an audio codec (coder/decoder) 226 can form a corresponding audio processing pipeline with high fidelity and stereo processing. Audio data can be carried between the audio processing unit 224 and the audio codec 226 via a communication link (not shown). The video and audio processing pipelines output data to an audio/video (A/V) port 228 for transmission to the display 150. In the illustrated embodiment, the video and audio processing components 220-228 are mounted on the module 214.
A USB host controller 230 and a network interface 232 can also be implemented on the module 214. The USB host controller 230 can be coupled to the CPU 200 and the memory controller 202 via a bus (e.g., a PCI bus), and serves as a host for peripheral controllers 104 a-104 d. The network interface 232 can provide access to a network (e.g., the Internet, a home network, etc.) and may be any of a wide variety of wire or wireless interface components including an Ethernet card, a modem, a Bluetooth module, a cable modem, and the like.
The game console 102 can include dual controller port subassemblies 240 a and 240 b, and each subassembly can support two corresponding peripheral controllers 104 a-104 d. A front panel I/O subassembly 242 supports the functionality of the power button 112 and the eject button 114, as well as any light emitting diodes (LEDs) or other indicators exposed on the outer surface of the game console 102. The subassemblies 240 a, 240 b, and 242 are coupled to the module 214 via one or more cable assemblies 244.
Eight memory units 140 a-140 h are illustrated as being connectable to the four controllers 140 a-140 d in a two memory units per controller configuration. Each memory unit 140 offers additional storage on which games, game parameters, and other data may be stored. When inserted into a controller, the memory unit 140 can be accessed by the memory controller 202. A system power supply module 250 can provide power to the components of the gaming system 100, and a fan 252 can cool the circuitry within the game console 102.
The game console 102 described above can implement a uniform media portal model that provides a consistent user interface and navigation hierarchy to move users through various entertainment areas. The portal model offers a convenient way to access multiple different types of media content including game data, audio data, and video data regardless of the media type inserted into the portable media drive 106.
To implement the uniform media portal model, a console user interface (UI) application 260 is stored on the hard disk drive 208. When the game console is powered on, various portions of the console application 260 are loaded into RAM 206 and/or caches 210, 212 and executed on the CPU 200. The console application 260 presents a graphical user interface that provides a consistent user experience when navigating to different media types available on the game console. Aspects of the UI application and some of the exemplary screen displays it presents are described below in more detail.
The gaming system 100 may be operated as a standalone system by simply connecting the system to the display 150. In the standalone mode, the gaming system 100 allows one or more players operating the controllers 104 to play games and view them on the display 150. With the broadband connectivity made possible via the network interface 232, however, the gaming system 100 can also be operated in a larger, network-based gaming community.
In one embodiment, the controller routine 302 is referred to as an Xbox Controller Recorder (XCR). The function of the controller routine 302 is to identify controller inputs and to transmit a set of log levels and events 304 to log files 306 stored within game console 310. The types of specific user input that are captured by the log files 306 can vary depending upon the particular implementation. In the broadest sense, the controller routine 302 is adapted to record all of the user inputs via the controllers 104. In other applications, perhaps only select inputs are recorded. Along with the user inputs being recorded, an indication as to the game context of the user input is captured. This may include the location of the player within the game, the current game situation, etc. Note that the term “log file” as used herein is intended to include any type of electronic recordation of information and should not be construed to be overly limiting.
For example, the controller routine 302 may be adapted to record function calls. Function calls are those actions triggered either by the user or automatically by the game software that causes the game to perform some action. For example, function calls typically identify events in a game. These function calls can be output to the log files 306.
The log files 306 utilize upload code 308 to initiate a game console 310 initiated upload 312 to file server 314. In one embodiment, the game console 310 automatically initiates the upload of the log files 306 to file server 314. The uploading of the log files 306 may be done periodically or based on some other trigger, such as completion of a level in the game. In other embodiments, the file server 314 may be configured to periodically and automatically poll the game console 310 to upload the log files 306.
Log files 306, which are created for each gaming session, have certain requirements in one embodiment. Each log file 306 is given a unique name based on the game console name and the time and date that the file was created. In addition, in one embodiment, each log file 306 contains a header consisting of the game name, build name (includes build number and name identifying where the data was collected—e.g., playtest, deep game play), game console name, IP (Internet Protocol) address (if the game console is networked over the Internet), and time stamp. Each log file 306 also contains a write log value, which refers to an action or event, with the coordinate location of the event and time stamp, including but not limited to all button presses, objects picked up/dropped, avatar/character death, health increase/decrease, level/skill increase or decrease, and others as defined by a game development team.
In one embodiment, log file 306 can be created based on function calls made in the game and inputs from a game controller. For instance, each time a player presses the “A” button (using an Xbox controller as an example) on the controller to cause an avatar to jump, the press of the “A” button is recorded in the log file 306 in conjunction with the coordinates identifying where the player pressed the “A” button. Further, function calls, such as a character's death, can be captured along with the location and time where it happened. Some of the information captured in the log file 306 is standard, such as the use of buttons on the controllers, but function calls for events in the game that are captured will often need to be identified by the game developer.
Still, referring to
The reports 332 or 334 from the SQL server 326 consist of at least two types of information. The first type of information identifies each level or area of the game and the unique identifier to a log name. The second type of information consists of all the events that were logged out for that particular level/area. If a game developer wishes to begin tracking of additional events when the new event is identified by the generic log file parser 322, the new event will be added.
In one embodiment, a software application referred to as “SQL Reporting Services” is used to display the reports for the data collected. SQL Reporting Services is a layer that sits atop the SQL server 326 and presents the information in a web based format. This allows the game developer to review the data using a web browser, such as Microsoft Internet Explorer. Further, the data can be exported in a variety of formats, such as an html file, Word file, or Excel file.
To illustrate how the above described system may be used,
In one embodiment, a predetermined event, such as an avatar's death or the completion of a level, prompts the user to answer survey questions on a feedback screen. The user can move forward in the game only if the user responds to the survey questions in this particular embodiment. If the user does not respond to the survey questions, then the user cannot move forward in the game. Preventing the user from moving forward until survey questions have been answered may entail prompting and re-prompting the survey questions until the user answers them.
In an alternative embodiment, the user can press the “back or B button” (in the case of an Xbox controller) to bring up a menu screen that allows them to enter predetermined feedback at anytime they wish. The user can press the “B” button (in the case of an Xbox controller) to cancel the screen, returning them to normal game play, or the player can press the thumbstick and the “A” button (in the case of an Xbox controller) to select one of the feedback options which then returns them to the game. In another embodiment, the user can select a pause menu to direct them to a feedback survey at box 404. The above embodiments illustrate examples of ways in which users can prompt a feedback survey and is not meant to be all encompassing or definitive. Other options could be presented or available at any of the above mentioned steps.
In one embodiment, the feedback options can be stored in a text file that will be included with the game. These text files can be edited to allow for easy changes to the feedback options. Each event (including the optional Back Button use in the case of an Xbox controller) will have its own text file for feedback options. In this manner, each event can have a different set of player feedback options available.
In one embodiment, a software program for implementing the feedback survey, event log file, and survey log file is embedded into the game software itself. If the game comes in the form of a CD (compact disc) or a DVD (digital video disk), then the software program can be embedded into the CD or DVD.
In one embodiment, the user is not aware that anything is technically taking place. The user is unaware that their button presses on a controller or keyboard are being recorded in a log file that is automatically transmitted to a database. The user can approve the use of a log file by signing an End-User Licensing Agreement. The game console, and not a computer, initiates the automatic upload of the log files from the game console to a server, assuming connection to a network or other communications medium. Game console initiated uploads allow for the automation of the data gathering process.
User feedback that is driven by events within the game allows game developers to utilize objective data to improve user experience. For instance, if there is a particular level within a game that many users are failing, game developers can retrieve event log files from the database that can objectively indicate, for instance, that a certain percentage of users failed on a particular level of a game. This objective data, gathered from log files, can be used to analyze where in the game that users are getting frustrated and to improve the design in that particular area of the game. Data gathered from both the event log files and the survey log files can be combined to provide a more thorough view of the user's experience to the game developers. This, in turn, allows game developers to improve user experience using concrete, objective data gathered from the game itself. The process of developing a game based on gathering user feedback, analyzing the data, and modifying the game based upon that data provides an objective means for the game developer to improve a user's experience.
The above mentioned examples represent sample use cases meant to illustrate some of the ways that the present invention might function for the given scenarios and is not meant to be all encompassing or definitive. Other options could be presented or available at any of the above mentioned steps.
The above detailed descriptions of embodiments of the invention are not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific embodiments of, and examples for, the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize.
Words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively, where the context permits. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. When the claims use the word “or” in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
The teachings of the invention provided herein can be applied to other systems, not necessarily the system described herein. These and other changes can be made to the invention in light of the detailed description. The elements and acts of the various embodiments described above can be combined to provide further embodiments.
These and other changes can be made to the invention in light of the above detailed description. While the above description details certain embodiments of the invention and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of configurations, functions, etc. may vary considerably in implementation details, while still being encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features, or aspects of the invention should not be taken to imply that the terminology is being re-defined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the invention.