Abstract:
Methods, systems, and machine-readable mediums are disclosed for creating game elements using location information. In one embodiment, at least one-machine readable medium has instructions stored thereon, which, when executed by a machine cause the machine to implement a game, to obtain information about a location of the machine, and to abstract the information into an element of the game.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     The present invention relates generally to games for wireless devices. More specifically, embodiments of the invention allow for creation of game elements using information associated with a location of a wireless device.  
         [0002]     A number of games for wireless devices (e.g., mobile telephones) are on the market. Some of these games may use real world data, such as electronic map data, to simulate a game environment. For example, U.S. Pat. No. 6,183,364 to Trovalto discloses an electronic game that uses electronic map data and an environment grower to create a game environment. The environment grower uses the electronic map data to simulate a city. Thus, the simulated game environment mimics the real world.  
         [0003]     Games also exist that are influenced by real world events. For instances, U.S. Pat. No. 6,080,063 to Khosla discloses a game which gathers inputs from sensors at a live event, such as a sporting event, and allows remote players to participate in a concurrent simulation of the live event. As another example, U.S. Pat. No. 6,777,350 to Yoshimi, et al. discloses a game in which virtual stock prices vary based on real life stock price data. There are also games in which a user&#39;s movement may influence actions of a character in a virtual world. An example of this type of game is disclosed in U.S. Patent Application No. 2002/0090985 to Tochner, et al. In this system, the game requests that the user perform specific actions (e.g., purchase of a soft drink) to influence characters in the virtual world. With all of these games, information from the real world is correlated into the virtual world of a game.  
       BRIEF SUMMARY OF THE INVENTION  
       [0004]     Systems, methods, and machine-readable mediums are disclosed for creating elements of a game using location information. In one embodiment, a machine readable medium is disclosed comprising instructions to implement a game. The medium further comprises instructions to obtain information about a location of the machine implementing the game (e.g., a wireless device) and to abstract the information into an element of the game.  
         [0005]     The information may be abstracted into a variety of different types of game elements. For instances, the information may be used to determine an enemy type and/or strength associated with an enemy or other character in the game. Other examples of abstracting the information include using the information to determine a chance of an event occurring, a game environment element, an amount of a reward, or a reward type. Thus, the use and abstraction of location information into game elements may provide a unique play experience that may be different in different locations or may change as the mobile user&#39;s location changes.  
         [0006]     In some aspects, the machine-readable medium may further include instructions for determining the location of the machine. For example, the location may be determined by requesting the location from a location component included in the machine. Alternatively, the location may be determined by requesting the location from a location service external to the machine.  
         [0007]     The information which is abstracted into a game element may be obtained from a data storage associated with the wireless device, a game server, or other location. Obtaining the information about a location may comprise obtaining terrain information, landmark information, weather information, traffic information, man-made attraction information, population information, property value information, or other type of information about a location. In some cases, the instructions may also include determining a type of location information needed by the game.  
         [0008]     In a second embodiment, a wireless device is disclosed which comprises a wireless network interface and a memory including a game application. The game application comprises instructions to obtain information about a location of the wireless device and to abstract the information into an element of the game. The wireless device also includes a processor to execute the game application.  
         [0009]     The wireless device may also include a location component to obtain the location of the wireless device. In these aspects, the game application may further include instructions to request the location from the location component. Alternatively, or additionally, the wireless device may further include a data storage having location information for a plurality of locations and the game application may include instructions to obtain the information about the location by retrieving the information from the data storage.  
         [0010]     The wireless device may be a component of a game system. The game system may also include a game server communicatively coupled with the wireless device. The game server may provide the information about the location.  
         [0011]     In a third embodiment, a method is disclosed which comprises receiving a request at a game server from a game application executing on a wireless device. The received request is a request to obtain location information associated with a location of the wireless device. The game server determines the location of the wireless device and obtains information associated with the location. By way of example, the information may be obtained from a data storage associated with the game server or a by requesting the information from a content provider. The information is transmitted from the game server to the game application.  
         [0012]     A further understanding of the nature and advantages of the present invention may be realized by reference to the remaining portions of the specification and the drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]      FIG. 1  is a block diagram that depicts an exemplary embodiment of a game system;  
         [0014]      FIG. 2  is a block diagram illustrating an exemplary embodiment of a wireless device implementing a game;  
         [0015]      FIG. 3  illustrates exemplary components of a game server according to one embodiment;  
         [0016]      FIG. 4  is a block diagram of a computer system upon which a game server may be implemented;  
         [0017]      FIG. 5 s  a flow diagram illustrating an exemplary method of creating an element of a game;  
         [0018]      FIG. 6  illustrates exemplary abstractions of data into game elements; and  
         [0019]      FIG. 7  is a flow diagram illustrating an exemplary method of providing location information to a game executing on a wireless device. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0020]      FIG. 1  illustrates an exemplary embodiment of a system that uses location information to create game elements. A number of wireless devices  104 ,  106 ,  108  (also referred to as mobile devices) are communicatively coupled to a wireless network  102 . Wireless devices  104 ,  106 ,  108  may be mobile telephones, personal data assistants (PDA) with wireless capabilities, laptops with wireless capabilities, wireless devices for receiving email communications (e.g., Blackberry® devices), car device, or other types of wireless device. As will be described in more detail below, wireless devices  104 ,  106 ,  108  may have one or more game applications that use location information to create one or more game elements. It should be appreciated that wireless network  102  may also have additional wireless devices (not shown) connected thereto.  
         [0021]     Wireless network  102  may use any of a number of wireless network technologies for communications on the network  102 . Wireless network technologies include wireless wide are network (WWAN), wireless local area network (WLAN) and wireless personal area network (WPAN) technologies. WWAN technologies typically include cellular and related technologies such as Global System for Mobile Communication (GSM), General Packet Radio Service (GPRS), Cellular Digital Packet Data (CDPD), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Wideband Code Division Multiple Access (WCDMA), etc. WWAN networks are high power, long range networks that typically have an access range on the order of several kilometers on up. WLAN technologies, on the other hand, are medium power, medium range networks that have an access range on the order of tens of meters while WPAN networks are low power, short range networks that typically have an access range of about 10 meters or less. Examples of WLAN technologies include IEEE 802.11(b) technologies (also known as WiFi) and examples of WPAN technologies include Bluetooth, HomeRF, and IEEE 802.15 technologies.  
         [0022]     In some embodiments, a game application executing on a wireless device  104 ,  106 ,  108  may obtain location information from a game server  140 . Game server  140  may communicate on another network  120 , such as a public wide-area network (e.g., the Internet), a Virtual Private Network (VPN), or a local area network (LAN). Thus, wireless network  102  may be communicatively coupled with network  120  so that communications may be transmitted between game server  140  and wireless devices  104 ,  106 ,  108 . As those skilled in the art will appreciate, an enabler or other type of component (not shown) may be used to communicatively couple wireless network  102  with network  120 .  
         [0023]     Game server  140  may obtain information about locations from one or more content providers  130 . By way of example, content providers  130  may provide terrain information, landmark information, man-made attraction information, map information, weather information, traffic information, population information or other census data, property value information, crime rate information or other information about locations. Game server  140  may store information obtained from content provider(s)  130  and/or may obtain information dynamically. Content provider(s) may alternatively or additionally provide location information to wireless devices  104 ,  106 ,  108 .  
         [0024]     A device location service  110  (e.g., a Location Based Service) may also be communicatively coupled with wireless network  102  and/or to network  120 . Device location service  110  may provide the current location of a wireless device  104 ,  106 ,  108  to a requesting wireless device  104 ,  106 ,  108 , game server  140 , or other requester. Alternatively, a wireless device  104 ,  106 ,  108  may include a location component to determine the device&#39;s current location.  
         [0025]     It should be appreciated that in alternative embodiments, variations may be made to the system depicted in  FIG. 1 . For instances, some embodiments may not include a game server  140 , content provider  130 , and/or device location service  110 . In other aspects, the system may include non-wireless clients (e.g., personal computer) implementing a game application which creates game elements as described below. As another example, game server  140  may communicate on wireless network  102  instead of network  120 . Other variations are also contemplated.  
         [0026]      FIG. 2  illustrates exemplary embodiment of a wireless device  200 . Wireless device  200  includes a wireless network interface  204  to communicate on a wireless network and a game application  202 . Game application  202  may be any type of computer game that may be implemented on a wireless device  200 . The instructions for the game application  202  may be stored in a memory (not shown) of wireless game device. A processor component (not shown) of wireless game device may execute the instructions for the game application  202 .  
         [0027]     At one or more points of execution, the game application  202  may create one or more game element(s) based on a location of the wireless device  200 . In some embodiments, the wireless device  200  may include a location component  206  (e.g., a global position sensor (GPS), a component that determines location based on cell tower triangulation or other estimating technique, etc.) to provide the location of the wireless device  200  to the game application  202 . In alternative embodiments, the wireless device  200  may not include a location component  206 . In these embodiments, the location of the wireless device  200  may be obtained from a device location service  110  or other location based service (LBS), either by wireless device  200  or by a game server  140 . Other techniques may also be used to obtain the location of the wireless device  200 .  
         [0028]     Wireless device  200  may further include a data storage  208  which stores location information for a plurality of locations. Data storage  208  may be one or more databases, spreadsheets, text files, internal software structures, or other type of files or structures suitable for storing data. Data storage  208  may store any type of information about locations in the real world. Some examples of the type of information that may be stored include terrain information, landmark information, man-made attraction information, map information, population information, property value information, road information, traffic information and/or weather information. Additional or different types of information about locations may also be stored by data storage  208 .  
         [0029]     Game application  202  may retrieve information associated with the location of the wireless device from data storage  208 . Alternatively, wireless device  200  may request information about a location from game server  140  or content provider(s)  130 . In these embodiments, wireless game device  200  may not include data storage  208 . Wireless device  200  may also use a combination of data storage  208  and requests to game server  140  or content provider(s)  130  to obtain information associated with a location of the wireless device  200 . As will be described in more detail with reference to  FIGS. 5 and 6 , game application may abstract the information obtained about a location to create element(s) of the game.  
         [0030]      FIG. 3  illustrates exemplary components of a game server  300  that may provide location information to game applications executing on wireless devices. Game server  300  may comprise logic  304  communicatively coupled with a communications interface  302  and a data storage  306 . The communicative coupling may be any type of coupling that allows communication between the components  302 ,  304 ,  306 . Thus, in some instances, data storage  306  or portions of logic  304  may be on different physical devices.  
         [0031]     Communications interface  302  may be any type of interface that allows game server  200  to send and receive communications. By way of example, communications interface may be an interface to a WAN (e.g., the Internet) or LAN, a peripheral interface or other type of interface that may be used to transmit communications to/from game server  300 . Communications interface  302  receives requests for location information from game applications executing on wireless devices or other types of clients and transmits location information back to requesting wireless devices. In some aspects, communications interface  302  may also be used to send request for location information to content provider(s)  130  and to receive the information back from content provider(s)  130 .  
         [0032]     Information about locations in the real world may be stored in data storage  306 . Data storage  306  may be one or more relational databases, spreadsheet(s), text file(s), internal software list(s), and/or other type of data structure(s) suitable for storing data. Information stored by data storage  306  may be obtained from content providers, may be automatically pushed to data storage  306 , and/or may be loaded into data storage  306  by an operator. As previously described, location information stored by data storage  306  may be any type of information about locations in the real world (e.g., terrain information, man-made attraction information, landmark information, map information, road information, weather information, traffic information, property value information, population information). Some embodiments of game server  300  may not include data storage  306 .  
         [0033]     Logic  204  comprises one or more software programs, one or more components of a software program (e.g., function or program object), firmware, or other type of machine-executable instructions that may be used to provide location information for game applications. After a request for location information has been received at communications interface  302 , logic  304  may retrieve information associated with a location of the wireless device from data storage  306  and/or may request information associated with the location from content provider(s). The information may then be sent back to the requesting wireless device. In other embodiments, logic  204  may abstract some or all of the real-world location information into game element(s) before transmitting the information to the requesting game application. Further details of a process that may be performed by game server  300  will be described in more detail below with reference to  FIG. 7 .  
         [0034]      FIG. 4  illustrates one embodiment of a computer system  400  upon which a game server  200  (or components of a game server) may be implemented. The computer system  400  is shown comprising hardware elements that may be electrically coupled via a bus  455 . The hardware elements may include one or more central processing units (CPUs)  405 ; one or more input devices  410  (e.g., a mouse, a keyboard, etc.); and one or more output devices  415  (e.g., a display device, a printer, etc.). The computer system  400  may also include one or more storage device  420 . By way of example, storage device(s)  420  may be disk drives, optical storage devices, solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like.  
         [0035]     The computer system  400  may additionally include a computer-readable storage media reader  425 ; a communications system  430  (e.g., a modem, a network card (wireless or wired), an infra-red communication device, etc.); and working memory  440 , which may include RAM and ROM devices as described above. In some embodiments, the computer system  400  may also include a processing acceleration unit  435 , which can include a DSP, a special-purpose processor and/or the like  
         [0036]     The computer-readable storage media reader  425  can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s)  420 ) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. The communications system  430  may permit data to be exchanged with a network and/or any other computer.  
         [0037]     The computer system  400  may also comprise software elements, shown as being currently located within a working memory  440 , including an operating system  445  and/or other code  450 , such as an application program. The application program may implement a game server application. It should be appreciate that alternate embodiments of a computer system  400  may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed.  
         [0038]      FIG. 5  illustrates an exemplary method that may be used by a game application implemented on a wireless device or other type of computer device to create game elements based on location information. At one or more points in the execution of the game application, the game application may determine  502  it needs location information to create one or more elements of the game. For example, the game application may need to determine a type of enemy to create. Other elements that may determined based on location information will be described in more detail with reference to  FIG. 6 .  
         [0039]     In some aspects, the game application may use different types of location information to create game element(s). Thus, determining  502  that the game application needs location information may also include determining the type of location information currently needed.  
         [0040]     The location of the wireless device may then be determined  504  by the game application. The location may be determined  504  by requesting the location from a location component of the wireless device (e.g., a GPS component or component that estimates location based on cell tower triangulation). Alternatively, the location information may be determined  504  by requesting the current location of the wireless device from a device location service external to the wireless device. In still further embodiments, the location may be determined  504  by a game server or content provider to which the game application issues a request for location information as described below. Location information may, in some cases, be estimated based on information such as the prefix of a mobile telephone number or other type of information (e.g., zip code). Other suitable techniques of determining  504  the location, such as requesting a user to enter the location information, may also be used.  
         [0041]     The method further includes obtaining  506  real world data associated with the location of the wireless device. Location information obtained  506  by the game application may include any of the types of location information previously described. A number of different processes may be used to obtain  506  the data associated with the location of the wireless device. For example, the data may be obtained  506  from a data storage component of the wireless device. As another example, the data may be obtained from a game server or content provider. The data may also be obtained using a combination of a data storage component of the wireless device and request(s) to a game server or content provider. Thus, the process used to obtain  506  the location data may vary depending upon the type of information needed.  
         [0042]     The game application may then abstract  508  the real world location information into one or more elements of the game. The abstraction  508  process takes the location data and converts it into elements which are different than the real world location information. For example, the current weather may be used to determine the strength of an enemy. Other examples of abstracting  508  data are described with reference to  FIG. 6 . It should be appreciated that by abstracting the location based data into elements of the game, a user of the game may be provided with an unique play experience in which the game is different or changes as the user&#39;s location changes.  
         [0043]      FIG. 6  illustrates exemplary abstractions of location data  600  into game elements. One exemplary manner in which location data may be abstracted is to use the location data to determine  602  an enemy type in the game. The type of enemy may be determined  602  based on terrain information associated with the location of the wireless device. For example, a canyon may be equated to create trolls. As other examples, a city may be equated to orcs, a sea may be equated to a monster, or a desert may be equated to no enemies. Other types of location information previously described may also be used to determine  602  an enemy type.  
         [0044]     Location data may also be abstracted and used to determine  604  a strength associated with an enemy, hero, or other characters in the game. Again, any of the different types of location data described may be used to determine  604  strength of characters. By way of example, the strength of a character may be determined  604  based on the depth or height of a landmark feature (e.g., water body, canyon, mountain), the size of a landmark feature (water body, etc.), population information, or current traffic information. Other location data may also be used.  
         [0045]     Game environment elements may also be determined  606  based on abstractions of location data. For instances, a highway may be abstracted to a river element in the game. The current traffic rate on the highway may be used to determine the flow rate of the river. Property values may also be used to determine  606  game elements (e.g., property values may be used to determine an amount of gold ore). There are numerous other ways in which location data may be abstracted to determine  606  game environment elements.  
         [0046]     Another example of abstracting location data is to abstract location data to determine  608  a chance of an event occurring. Weather patterns, traffic patterns, crime rates, or other type of location information may be used. By way of example, a weather pattern, such as precipitation, may be used to determine a chance of a random monster. The location information may be also used in any number of other different ways to determine  608  a chance of an event.  
         [0047]     Other examples of abstraction include determining  610  a reward amount based on location data (population density, landmarks, weather patterns, traffic, etc.) and/or determining  612  a reward type based on location data (landmarks, terrain information, weather, etc.). The aforementioned examples  602 - 612  of abstracting location information to create game elements are intended to be illustrative in nature only. It should be appreciated that numerous other types of game elements may alternatively or additionally be created by abstracting location data.  
         [0048]      FIG. 7  illustrated an exemplary method that may be used by a game server to provide location information to a game application executing on a wireless device. The method may begin by receiving  702  a request from a game application executing on a wireless device. The received request may include an identifier associated with a wireless device.  
         [0049]     The location of the wireless device may then be obtained  704 . In some embodiments, the location may also be provided in the received  702  request. Alternatively, the location may be obtained  704  by requesting the location from a device location service.  
         [0050]     Data associated with the location of the wireless device is obtained  706 . The request may specify a specific type of location data to obtain, the game server may make a determination about the type of data to obtain based on any number of factors, or the game server may obtain  706  all data available to the game server about the current location of the wireless device. Some, or all, of the location data may be obtained  706  by retrieving the information from a data storage associated with the game server. Location data may be also or alternatively be obtained  706  by requesting information from a content provider of the information. By way of example, a request (e.g., a web services request) may be issued to a content provider providing current weather or traffic information. Other types of location data may also be obtained  706  from content providers. After the location data is obtained  706 , the game server transmits  708  the location information to the game application.  
         [0051]     In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. Additionally, the methods may include fewer, additional, or different blocks than those described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor (e.g., a processor component of a wireless device) or logic circuits programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.  
         [0052]     While illustrative and presently preferred embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art