Presently disclosed embodiments generally relate to video games, and more particularly to translation of metagame data.
Video games provide entertainment to users of all ages on many different devices including personal computers, video game consoles, wireless devices and Internet-connected televisions. Typically, the game experience from one device to another varies significantly because of the physical characteristics and constraints of the different devices. For example, a mobile device has limited capacity in terms of screen size and processing power, therefore it is not practical to attempt to provide rich, detailed graphics to a user who is playing the game on a mobile device. These differences may be sufficient to discourage a user from playing the game on multiple platforms, thus limiting the user's time spent playing the game.
In order for a game publisher to provide game experiences that work well across different client devices, the game publisher needs to spend a significant amount of time and money on product development in order to anticipate and accommodate the different characteristics of the various devices. Thus, it would be desirable to provide a means for providing an enjoyable game experience across multiple devices while minimizing the time and resource spend required by the game publisher to implement it.
Systems and methods are presented for providing translation of metagame data to enable game experiences that work well across different client devices while still being appropriate for different characteristics of various incompatible devices. In an exemplary embodiment, metagame state can include data related to information such as a player's profile information, assets, progress, achievements, level reached, friends network, games purchased, devices used, etc. Embodiments of such systems and methods can help reduce a game publisher's time and money spent on product development intended to anticipate, accommodate and implement different characteristics of various incompatible devices.
In an exemplary embodiment, a method includes validating a user, validating a game entitlement and validating a device entitlement. Device-specific game state is compared to current metagame state which is maintained to enable access to persistent game information across a plurality of devices. If the device-specific game state does not contain current metagame data, then the current metagame state can be translated into a device-specific format which can be used to update the device-specific game state. If the device-specific game state is more current than the metagame state, the metagame data can be updated based on the information contained in the device-specific game state. The updated metagame state can be translated to accommodate known devices in order to provide updated device-specific game state for the known devices, thus enabling a user to access current game state from any known device. Exemplary embodiments also include a system implementing the method and a non-transitory computer-readable storage medium used to perform the method.
BRIEF DESCRIPTION OF THE DRAWINGS
Other features and advantages of the invention will be apparent in view of the following detailed description and preferred embodiments.
FIG. 1 is a diagram illustrating an exemplary operating environment for metagame translation.
FIG. 2 is a diagram illustrating an exemplary operating environment for metagame translation applied to a golfing game.
FIG. 3 is a block diagram illustrating an exemplary embodiment.
FIG. 4 is a block diagram illustrating an exemplary embodiment.
FIG. 5 is a flow chart illustrating a method in an exemplary embodiment.
FIG. 6 is a flow chart illustrating a method in an exemplary embodiment.
FIG. 7 is a flow chart illustrating a method in an exemplary embodiment.
FIG. 8 is a block diagram illustrating a general purpose processor in accordance with an exemplary embodiment.
The following detailed description is made with reference to the figures. Exemplary embodiments are described to illustrate the claimed invention, not to limit its scope, which is defined by the appended claims.
FIG. 1 is a diagram illustrating an exemplary operating environment 100 for metagame translation. Metagame data is stored in a location accessible to a plurality of distinct client devices. Example devices may include video game consoles such as the Microsoft Xbox 360, the Sony Playstation3 and the Nintendo Wii (which can access the Internet either directly or through console online services), handheld consoles such as the Sony PSP and Nintendo DS, televisions that are connected with game clients, mobile devices such as the iPhone or Android phone, tablet or handheld devices such as the iPad or iPod Touch, personal computers (PCs) and laptop applications, and web or Internet applications.
As shown, these client devices can access saved game state information located remotely over the Internet or “in the cloud.” In an embodiment, a server system maintains data associated with customer accounts (shown as “CustomerID”), game identifications (shown as “GameID”) and saved game state. A game state translator responds to requests from client devices and translates saved game state data into a format that is recognizable and appropriate for known client devices so that at any given time, a user can have an enjoyable, device-appropriate game experience regardless of which device he is using to access his game entitlements.
FIG. 2 is a diagram illustrating an exemplary operating environment 200 for metagame translation applied to the golf game Tiger Woods Golf, published by Electronic Arts Inc. In this particular example, the user can start playing his game at home on a video game console such as an Xbox 360. When he is ready to leave home and head to work, he can save his game for later play. The saved game information is stored “in the cloud” on a server which maintains the saved game state. When the user gets on the train to commute to work, he can pick up his game where he left off by accessing the game through his iPhone. Assuming he has a game entitlement to play Tiger Woods on the iPhone, he will be able to continue playing his game. The resulting saved game state is then updated on the server. When the user gets off the train and heads into work, he can later pick up the game where he left off by accessing the game through a web or Internet application running on a computer at his desk. Similarly, the user can access the stored game state on the server, which translates the game state to be relevant to the device the user is currently using. In the train-to-work scenario, mobile device-specific saved game data is translated into web application-specific saved game data. The server maintains the saved game data as metagame data which can be translated into device-specific game data as needed or as desired. In an exemplary embodiment, the metagame translation system maintains saved game data for existing known devices, thereby providing substantially constant access to the metagame data by users having specific client devices.
FIG. 3 is a block diagram 300 illustrating an exemplary embodiment of a metagame translation system. A user validation database 310 includes information relating to users who have access rights to the metagame, for example, users who have a valid account. A game entitlement database 320 includes information about which game entitlements are available, and what the characteristics of those entitlements are. For example, some game entitlements may not be compatible with some client devices, so maintaining information relating to such compatiblity is desired. A device entitlement database 330 is used for tracking and maintaining information relating to the compatibility of various client device types with the metagame. For example, a particular game experience, such as a high resolution graphics intensive game mode, might work well on a video game console but may not be feasible for play on a mobile device. A different game experience, such as a gun shopping and selection mode, might be particularly suitable for mobile devices. Saved game state storage 340 provides a location for storing game states resulting from user game play. These saved game states can reflect where the user left off the last time he played the game. A metagame state database 360 can store the current game state which can be compared to the saved game state. If the saved game state is not current, a translation processor 350 can update the game state for known devices in accordance with the current game state. While the various components described above are shown as being in one location as being part of one metagame translation system, it should be appreciated that the components need not be co-located or confined to one system and could in fact be in various locations throughout a networked environment. For example, FIG. 4 shows game state storage as being a separate component located outside of the metagame translation system.
FIG. 4 is a block diagram illustrating an exemplary embodiment of a metagame system 400 which includes a metagame translation system 410, a game engine 420 and a saved game state storage component 430. Saved game state storage 430 includes a plurality of saved game state information, GS1, GS2, . . . GSn. In an exemplary embodiment, GS1 can be stored game state associated with a first client device (e.g, mobile device), GS2 can be stored game state associated with a second client device (e.g., PC), and GSn can be stored game state associated with an nth client device (e.g., game console). The various stored game states can also be associated with various combinations of clients and devices. For example, GS1 can be stored game state associated with a first user on a particular mobile device (e.g., iPhone), GS2 can be stored game state associated with a second user on a particular mobile device (e.g., iPhone), and GSn can be stored game state associated with an nth user on a particular mobile device (e.g., iPhone). In an exemplary embodiment, the stored game states have at least some common metagame data.
FIG. 5 is a flow chart 500 illustrating a method in an exemplary embodiment. In an examplary embodiment, the method can be performed on an server which receives a request for current game state associated with a client device, 510. The device-specific game state is compared to the current metagame state, 520. If the device-specific game state is current, then a message can be sent to the client device indicating that the device-specific game state is already current. If the device-specific game state is not current, then the current metagame state can be translated to the appropriate device-specific game state, 550. In an exemplary embodiment, the translation can be applied to all known client devices, thus updating the game state on all known devices and obviating the need to perform the translation later when a different client device is used. The device-specific current metagame state can then be sent to the client device, 560, making it available to the user who has the client device. This provides the user with updated metagame data on the client device, and provides the user with the ability to move from one device to another while continuing to play the game, as described in FIGS. 1-2 above.
FIG. 6 is a flow chart 600 illustrating a method in an exemplary embodiment. In an examplary embodiment, the method can be performed on an server. A user is validated, 600. In an exemplary embodiment, this includes checking that the user has a valid account status. A game entitlement is validated, 620, to ensure that the user has access to the desired game. In an exemplary embodiment, if the user has not purchased the game or does not otherwise have rights to play the game, the game entitlement validation would fail. A device entitlement is validated, 630, to determine whether or not the metagame translation system can accommodate the selected device. In an exemplary embodiment, a list of devices may be maintained in a database which stores combatibility information that may be used by the metagame translation system to provide device-specific game states that make sense in the context of the metagame. An optional check can be performed to determine whether a game save currently exists for the specific device, 640. If an existing device game save state exists, the device-specific game state can be compared to the current metagame state, 650. This can be done on a server. The comparison result can be used to update the metagame state if the device game state is more current, 660. The metagame translation system can translate the updated metagame state to accommodate known devices, 670, and the device-specific saved game states can then be updated with the translated metagame state, 680.
FIG. 7 is a flow chart 700 illustrating a method in an exemplary embodiment on a client device. The client device requests a comparison of current game state to device-specific game state, 710. If the device game state is current, 720, then the metagame is executed in accordance with user device input, 740. If the device game state is not current, 720, then user device-specific current game state information is received from the metagame system, 730, thus allowing the user to execute the metagame using the current game state information, 740. If the game state is updated during game play, 750, the updated device-specific game state is uploaded to the metagame system, 760. The metagame system generally reside in a location remote from the client device, for example, on a remote server.
FIG. 8 illustrates a block diagram 800 of a general purpose processing system according to an embodiment of a system for automatic game comparison and recommendation.
The above-described devices, systems, and subsystems of the exemplary embodiments can include, for example, any suitable servers, workstations, PCs, laptop computers, PDAs, Internet appliances, handheld devices, cellular telephones, wireless devices, other devices, and the like, capable of performing the processes of the exemplary embodiments. Multiple devices and subsystems according to the exemplary embodiments can communicate with each other using any suitable protocol and can be implemented using one or more programmed computer systems or devices.
One or more interface mechanisms can be used with the exemplary embodiments, including, for example, Internet access, telecommunications in any suitable form (e.g., voice, modem, and the like), wireless communications media, and the like. For example, employed communications networks or links can include one or more wireless communications networks, cellular communications networks, G3 communications networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, a combination thereof, and the like.
It is to be understood that the devices and subsystems of the exemplary embodiments are for exemplary purposes, as many variations of the specific hardware used to implement the exemplary embodiments are possible, as will be appreciated by those skilled in the relevant art(s). For example, the functionality of one or more of the devices and subsystems of the exemplary embodiments can be implemented via one or more programmed computer systems or devices.
To implement such variations as well as other variations, a single mobile device or computer system can be programmed to perform the special purpose functions of one or more of the devices and subsystems of the exemplary embodiments. On the other hand, two or more programmed computer systems or devices can be substituted for any one of the devices and subsystems of the exemplary embodiments. Accordingly, principles and advantages of distributed processing, such as redundancy, shared information between users, replication, and the like, also can be implemented, as desired, to increase the robustness and performance of the devices and subsystems of the exemplary embodiments.
The devices and subsystems of the exemplary embodiments can store information relating to various processes described herein. This information can be stored in one or more memories, such as a hard disk, optical disk, magneto-optical disk, RAM, and the like, of the devices and subsystems of the exemplary embodiments. One or more databases of the devices and subsystems of the exemplary embodiments can store the information used to implement the exemplary embodiments of the present inventions. The databases can be organized using data structures (e.g., records, tables, arrays, fields, graphs, trees, lists, and the like) included in one or more memories or storage devices listed herein. The processes described with respect to the exemplary embodiments can include appropriate data structures for storing data collected and/or generated by the processes of the devices and subsystems of the exemplary embodiments in one or more databases thereof.
All or a portion of the devices and subsystems of the exemplary embodiments can be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, micro-controllers, and the like, programmed according to the teachings of the exemplary embodiments of the present inventions, as will be appreciated by those skilled in the computer and software arts. Appropriate software can be readily prepared by programmers of ordinary skill based on the teachings of the exemplary embodiments, as will be appreciated by those skilled in the software art. Further, the devices and subsystems of the exemplary embodiments can be implemented on the World Wide Web. In addition, the devices and subsystems of the exemplary embodiments can be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be appreciated by those skilled in the electrical art(s). Thus, the exemplary embodiments are not limited to any specific combination of hardware circuitry and/or software.
Stored on any one or on a combination of computer readable media, the exemplary embodiments of the present inventions can include software for controlling the devices and subsystems of the exemplary embodiments, for driving the devices and subsystems of the exemplary embodiments, for enabling the devices and subsystems of the exemplary embodiments to interact with a human user, and the like. Such software can include, but is not limited to, device drivers, firmware, operating systems, development tools, applications software, and the like. Such computer readable media further can include the computer program product of an embodiment of the present inventions for performing all or a portion (if processing is distributed) of the processing performed in implementing the inventions. Such computer readable media further can be non-transitory in nature. Computer code devices of the exemplary embodiments of the present inventions can include any suitable interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes and applets, complete executable programs, Common Object Request Broker Architecture (CORBA) objects, and the like. Moreover, parts of the processing of the exemplary embodiments of the present inventions can be distributed for better performance, reliability, cost, and the like.
As stated above, the devices and subsystems of the exemplary embodiments can include computer readable medium or memories for holding instructions programmed according to the teachings of the present inventions and for holding data structures, tables, records, and/or other data described herein. Computer readable medium can include any suitable medium that participates in providing instructions to a processor for execution. Such a medium can take many forms, including but not limited to, non-volatile media, volatile media, transmission media, and the like. Non-volatile media can include, for example, optical or magnetic disks, magneto-optical disks, and the like. Volatile media can include dynamic memories, and the like. Transmission media can include coaxial cables, copper wire, fiber optics, and the like. Transmission media also can take the form of acoustic, optical, electromagnetic waves, and the like, such as those generated during radio frequency (RF) communications, infrared (IR) data communications, and the like. Common forms of computer-readable media can include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other suitable magnetic medium, a CD-ROM, CDRW, DVD, any other suitable optical medium, punch cards, paper tape, optical mark sheets, any other suitable physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other suitable memory chip or cartridge, a carrier wave or any other suitable medium from which a computer can read.
While the invention has been described with respect to exemplary embodiments, one skilled in the art will recognize that numerous modifications are possible. Thus, although the invention has been described with respect to exemplary embodiments, it will be appreciated that the invention is intended to cover all modifications and equivalents within the scope of the following claims.