Abstract:
Providing a location-based online game for a plurality of mobile devices, including: assigning a force field around a player corresponding to each mobile device of the plurality of mobile devices, wherein a radius of the force field is proportional to a score or experience point of the player in the online game; determining a location of said each mobile device; calculating colliding forces among the plurality of mobile devices and virtual environment created in the online game; providing a forum to enable a battle among the plurality of mobile devices and the virtual environment which are calculated as being in the colliding forces and sampling metadata including water, highway, road, grass, forest, business area and residential area to generate the online game.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation application of U.S. application Ser. No. 14/225,278 filed on Mar. 25, 2014 (now U.S. Pat. No. 9,108,111), which is a continuation application of U.S. application Ser. No. 13/744,199 filed on Jan. 17, 2013 (now U.S. Pat. No. 8,678,931), which claims the benefit of priority under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 61/587,602, filed Jan. 17, 2012, entitled “Location-Based Online Games for Mobile Devices and In-Game Advertising.” The disclosure of the above-referenced application is incorporated herein by reference. 
    
    
     SUMMARY 
     The present invention provides for a location-based online game for a plurality of mobile devices. 
     In one implementation, a non-transitory computer-readable storage medium storing a computer program for a location-based online game for a plurality of mobile devices is disclosed. The program including executable instructions that cause the computer to: assign a force field around a player corresponding to each mobile device of the plurality of mobile devices, wherein a radius of the force field is proportional to a score or experience point of the player in the online game; determine a location of said each mobile device; calculate colliding forces among the plurality of mobile devices and virtual environment created in the online game; provide a forum to enable a battle among the plurality of mobile devices and the virtual environment which are calculated as being in the colliding forces; and sample metadata including water, highway, road, grass, forest, business area and residential area to generate the online game. 
     In another implementation, a location-based online game system is disclosed. The system includes: a processor configured to assign a force field around a player corresponding to each mobile device of the plurality of mobile devices, the processor also configured to determine a location of said each mobile device, wherein a radius of the force field is proportional to a score or experience point of the player in the online game; a collision detector configured to calculate colliding forces among the plurality of mobile devices and virtual environment created in the online game, the collision detector operating in conjunction with the processor to provide a forum to enable a battle among the plurality of mobile devices and the virtual environment which are calculated as being in the colliding forces; and a terrain builder configured to build a height map and terrain metadata including water, highway, road, grass, forest, business area and residential area. 
     Other features and advantages of the present invention will become more readily apparent to those of ordinary skill in the art after reviewing the following detailed description and accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a functional block diagram of a location-based online game system in accordance with one implementation of the present invention. 
         FIG. 2  shows one example of a PVP mode collision. 
         FIG. 3  shows one example of a PVE mode collision. 
         FIG. 4  shows one example of terrain building. 
         FIG. 5  shows one example of advertising on the preview map screen. 
         FIG. 6  shows one example of an instantiated advertiser&#39;s landmark asset in the game. 
         FIG. 7  is one example of a spawned event PVE monster and the collision scenario. 
         FIG. 8  is one example of an event PVE monster in the game space. 
         FIG. 9  is a flow diagram illustrating a method of generating a location-based online game for a plurality of mobile devices in accordance in accordance with one implementation of the present invention. 
         FIG. 10A  illustrates a representation of a computer system and a use. 
         FIG. 10B  is a functional block diagram illustrating the computer system hosting a location-based online game generator to define user interaction scenarios for an online game for mobile devices illustrated in  FIG. 9 . 
     
    
    
     DETAILED DESCRIPTION 
     Certain implementations as described herein provide for location-based online games for mobile devices and in-game advertising. Some implementations define user interaction scenarios for a 3-D online game for mobile devices that merge real and virtual space to create strong interactions between players in the real world. Implementations also generate 3-D game spaces on-the-fly that are different every time a user plays the game. Implementations also include in-game advertising techniques. After reading this description it will become apparent how to implement the invention in various implementations and applications. Although various implementations of the present invention will be described herein, it is understood that these implementations are presented by way of example only, and not limitation. As such, this detailed description of various implementations should not be construed to limit the scope or breadth of the present invention. 
       FIG. 1  is a functional block diagram of a location-based online game system  100  in accordance with one implementation of the present invention. The system  100  comprises a game server  110 , database  120 , and a plurality of mobile clients  130 . The server  110  includes a terrain builder  112 , a collision detector  114 , a push notification handler  116 , and a network interface, and is responsible for detecting collisions between players (represented by mobile clients  130 ) in the real world, generating the 3-D game world, initiating games and managing user database  122 . In one implementation, the server  110  uses the network interface  118  to call on HTTP Rest APIs and communicate with client devices and other web-based servers. 
     Collision Detector 
     In the game using this system  100 , in one implementation, each player has the supernatural psychic force that spherically surrounds the player and its radius is proportional to the player&#39;s score or experience point in the game. Once a player creates an account in the game, the force of the player becomes detectable by other players and a mobile client  130  starts uploading its GPS data to the game server  110 . In one implementation, the force coexists in both real and virtual space but the players cannot sense another player&#39;s force without a mobile device on which the game is installed. 
     For every pre-defined time interval, the game server  110  calculates all pairs of “colliding forces” through GPS coordinate distance calculations (e.g., by the collision detector  114 ). The server  110  then sends notification messages (e.g., by the push notification handler  116 ) to the players whose forces are intersecting with others so that the players can realize the “colliding forces”. 
     There are two collision modes. One is the player-vs-player (PVP) mode and the other is player-vs-environment (PVE) mode. PVP mode is when only the players&#39; forces are colliding. In this mode, the game would be a free-for-all competing mode.  FIG. 2  shows one example of a PVP mode collision. 
     For the diversity of the game play, the game server  110  randomly spawns virtual characters or monsters on geo-points. As a virtual monster also has a psychic force, there could be the force field collisions between the monster and players and it triggers a battle of the PVE mode, which is a cooperating mode against a virtual monster.  FIG. 3  shows one example of a PVE mode collision. 
     Terrain Builder 
     After the collision detection is complete, the server  110  generates height maps (e.g., the terrain builder  112 ) that clients  130  can download for each collision pair. Initially, a rectangular target area that includes all players&#39; geo-locations is decided. The server  110  then calculates a sampling rate of the raw earth elevation data set in geographic information system (GIS) database  124 , which is a high resolution digital topographic database of Earth because the size of the 3D game map is fixed regardless of the actual size of the target areas. Therefore, the varying sampling rate implies that the smaller the target area is, the finer the details of the real terrain are preserved and vice versa. Next step is to sample the elevation data and mosaic them to build a 2-D array of the height map of the target area. 
     Morphological transforms such as smoothing, erosion and dilation are applied on the 2-D array in order to make the generated terrain continuous for the game. Finally, the post processing that modifies the height map for the landmark objects, the road objects and the ocean object is applied.  FIG. 4  shows one example of terrain building. 
     Database 
     The user database  122  is a general database that manages the player&#39;s information such as name, ID, geo location, force radius, log-in status and so on. The GIS database  124  includes various kinds of geospatial data such as Earth elevation, water-land mask, highway structure, geo-points and game assets of landmark buildings and so on. Some of them are public data such as Shuttle Radar Topography Mission (SRTM) and Tiger DB, and some of them could be proprietary data sets from other data providers. If needed, it is also possible for the game provider or developer to create his or her own geospatial database for the game. What database to adopt is dependent on the game that will use this system  100  and the system itself is totally separated from the decision of the data sets. 
     Mobile Client 
     Mobile clients  130  are responsible for capturing GPS locations and uploading them in the background, handling collisions and game triggering signals from the game server  110  and running the game  132 . Any kind of games can be installed if the mobile device supports required functions and the game  132  makes use of this system  100 . 
     One useful feature in the mobile client is the vibration motor pattern control  134 . It is possible for the game server  110  to categorize players into a couple of characters based on their game play history and each character has its own vibration pattern. The opponent&#39;s character data is embedded in the notification signal so that the client device can generate unique vibration pattern when it receives the push notification. It will help the receiver intuitively sense the battle event and recognize his or her opponents with intriguing feedbacks. 
     In-Game Advertising 
     There are three different ways of advertising for the mobile games using this system  100 : advertising on the preview map screen; advertiser&#39;s landmarks in the game space; and advertising through PVE battles. 
     Advertising on The Preview Map Screen 
     This is a general advertising that is widely adopted now. An advertisement can be directly embedded on the top or bottom of the preview map screen without blocking the map view and other control buttons.  FIG. 5  shows one example of advertising on the preview map screen. 
     Advertiser&#39;s Landmarks in the Game Space (Selling Landmark Assets) 
     As the landmark buildings in the game space are visually distinctive and play important roles during the battle, it is also possible to sell the landmark itself to the clients. That is, the advertiser purchases the opportunity to promote the brand identity by exposing the landmark object they designed in the game space. The advertiser can design their own landmark building they want to be instantiated in the game as well as the list of actual geo-locations and the landmark DB in the game server is updated with those data. Once the battle is triggered, the advertising landmark buildings can be instantiated if their geo-locations are included in the battle region.  FIG. 6  shows one example of an instantiated advertiser&#39;s landmark asset in the game. 
     Advertising Through PVE Battles (Selling PVE Battles) 
     This is to sell the PVE battle events themselves to advertisers. The clients have opportunities to design unique PVE monsters that can represent the company&#39;s identity. The clients also can choose the virtual monster&#39;s spawning position (actual geo-point) and the time. As the PVE monster has a huge Force, a large number of players can sense the monster and engage in the event battle, which means that this advertisement could be more efficient and impressive than other two advertisements. Once the client sets the time and location of the event battle, processes after that flow the same as the normal PVE battle. 
     Other than the time and location, the client can design unique rewards for the players who defeated the monster such as a trophy with the company&#39;s logo, the unique title for the players and so on. This kind of reward has a prolonged effect because the reward is exposed to other players during ordinary battles so that they also can recognize the advertiser.  FIG. 7  is one example of a spawned event PVE monster and the collision scenario.  FIG. 8  is one example of an event PVE monster in the game space. 
       FIG. 9  is a flow diagram  900  illustrating a method of generating a location-based online game for a plurality of mobile devices in accordance with one implementation of the present invention. A force field around a player corresponding to each mobile device is assigned, at box  910 . A radius of the force field is proportional to a score or experience point of the player in the online game. A location of each mobile device is then determined, at box  920 . Colliding forces are calculated, at box  930 , among the plurality of mobile devices and virtual environment created in the online game. Finally, at box  940 , a forum is provided to enable a battle among the plurality of mobile devices and the virtual environment which are calculated as being in the colliding forces. 
       FIG. 10A  illustrates a representation of a computer system  1000  and a user  1002 . In one implementation, the user  1002  uses the computer system  1000  to generate a location-based online game. 
       FIG. 10B  is a functional block diagram illustrating the computer system  1000  hosting a location-based online game generator  1090  to define user interaction scenarios for an online game for mobile devices illustrated in  FIG. 9 . The controller  1010  is a programmable processor and controls the operation of the computer system  1000  and its components. The controller  1010  loads instructions (e.g., in the form of a computer program) from the memory  1020  or an embedded controller memory (not shown) and executes these instructions to control the system. 
     Memory  1020  stores data temporarily for use by the other components of the computer system  1000 . In one implementation, memory  1020  is implemented as RAM. In another implementation, memory  1020  also includes long-term or permanent memory, such as flash memory and/or ROM. 
     Storage  1030  stores data temporarily or long term for use by other components of the computer system  1000 , such as for storing data and program of the location-based online game generator  1090 . Storage  1030  is sometimes referred to as a computer-readable storage medium which stores non-transitory data. In one implementation, storage  1030  is a hard disk drive. 
     In its execution, the location-based online game generator  1090  is loaded into the memory  1020  or storage  1030  as a software system. Alternatively, this service can be implemented as separate hardware components (e.g., field programmable gate array (FPGA)) in the computer system  1000 . 
     The media device  1040  receives removable media and reads and/or writes data to the inserted media. In one implementation, for example, the media device  1040  is an optical disc drive. 
     The user interface  1050  includes components for accepting user input from the user of the computer system  1000  and presenting information to the user. In one implementation, the user interface  1050  includes a keyboard, a mouse, audio speakers, and a display. The controller  1010  uses input from the user to adjust the operation of the computer system  1000 . 
     The I/O interface  1060  includes one or more I/O ports to connect to corresponding I/O devices, such as external storage or supplemental devices (e.g., a printer or a PDA). In one implementation, the ports of the I/O interface  1060  include ports such as: USB ports, PCMCIA ports, serial ports, and/or parallel ports. In another implementation, the I/O interface  1060  includes a wireless interface for communication with external devices wirelessly. 
     The network interface  1070  includes a wired and/or wireless network connection, such as an RJ-45 or “Wi-Fi” interface (including, but not limited to 302.11) supporting an Ethernet connection. 
     The computer system  1000  includes additional hardware and software typical of computer systems (e.g., power, cooling, operating system), though these components are not specifically shown in  FIG. 10B  for simplicity. In other implementations, different configurations of the computer system can be used (e.g., different bus or storage configurations or a multi-processor configuration). 
     The above description of the disclosed implementations is provided to enable any person skilled in the art to make or use the invention. Various modifications to these implementations will be readily apparent to those skilled in the art, and the generic principles described herein can be applied to other implementations without departing from the spirit or scope of the invention. Accordingly, additional implementations and variations are also within the scope of the invention. Further, it is to be understood that the description and drawings presented herein are representative of the subject matter which is broadly contemplated by the present invention. It is further understood that the scope of the present invention fully encompasses other implementations that may become obvious to those skilled in the art and that the scope of the present invention is accordingly limited by nothing other than the appended claims.