U.S. Pat. No. 9,744,458

METHOD FOR SIMULATING VIDEO GAMES ON MOBILE DEVICE

AssigneeGaijin Entertainment Corp.

Issue DateDecember 29, 2016

Illustrative Figure

Abstract

A system and method for providing players with real-time information on any device capable of running a web browser is provided. The system solves the problem of game interface overloads and also brings the following benefits: provides for control optimization and for more options for a team game play. A usual game play experience is completely simulated on any remote mobile device by allowing remote input of the game controls from the mobile device to the base platform (PC/MAC, etc) and streaming the video from the base platform to the mobile device. The mobile device acts as a “thin client” for the base platform. Adoption of the game to the mobile device is not required.

Description

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings. According to an exemplary embodiment, a method, system and computer program product for solving interface overloads and implementing video games on mobile devices are provided. In one aspect of the invention, a system providing players with real-time information on any device capable of running a web browser is provided. The system can also solve the problem of game interface overloads on the base system by transferring interface elements (e.g., interface windows, chats, control elements of an airplane or tank or ship, buttons and switches, and so on) onto a mobile device. The exemplary embodiment also brings the following benefits: Controls optimization—most of the players use a keyboard and a mouse to interact with an action or a simulation game. In a simulation game, the player usually needs to remember and use a large number of keys and switches. According to the exemplary embodiment, the controls are simulated on iPad or other similar device, turning it into a virtual cockpit, where all necessary functions can be bound to standard tap or swipe gestures, thus making a simulator game session a lot more casual. The iPad turns into a gamepad for the PC game. Note that additional hardware, such as a joystick, is not required. Thus, while no additional hardware is used, a better immersion into the game is achieved. It is easier for a player to imagine himself being a pilot while tapping on an iPad dashboard rather than on a PC keyboard. The exemplary embodiment provides for more options for team game play, especially with regards to those players who prefer to play in an Internet café. The information on ...

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings.

According to an exemplary embodiment, a method, system and computer program product for solving interface overloads and implementing video games on mobile devices are provided.

In one aspect of the invention, a system providing players with real-time information on any device capable of running a web browser is provided. The system can also solve the problem of game interface overloads on the base system by transferring interface elements (e.g., interface windows, chats, control elements of an airplane or tank or ship, buttons and switches, and so on) onto a mobile device. The exemplary embodiment also brings the following benefits:

Controls optimization—most of the players use a keyboard and a mouse to interact with an action or a simulation game. In a simulation game, the player usually needs to remember and use a large number of keys and switches. According to the exemplary embodiment, the controls are simulated on iPad or other similar device, turning it into a virtual cockpit, where all necessary functions can be bound to standard tap or swipe gestures, thus making a simulator game session a lot more casual. The iPad turns into a gamepad for the PC game. Note that additional hardware, such as a joystick, is not required. Thus, while no additional hardware is used, a better immersion into the game is achieved. It is easier for a player to imagine himself being a pilot while tapping on an iPad dashboard rather than on a PC keyboard.

The exemplary embodiment provides for more options for team game play, especially with regards to those players who prefer to play in an Internet café. The information on every player's location, state of his vehicle, how much fuel he has left, etc. can be made available to the entire team, thus allowing them to allocate their forces better and generally have a better strategy in the game. The following game-related data can be transmitted within the game:a map with friends/enemies locations and movements;a chat data;system events;current tasks;a dashboard, which shows any of:a speedometer—two types (ground speed, air speed);an altimeter;a compass;a gyroscopic horizon;G-meter;a clock;a manifold pressure;an oil pressure;an oil temperature;an engine rpm;a water pressure;a water temperature;a carburetor temperature;an amount of fuel left;a fuel pressure;a fuel consumption;a throttle;ammo left;flaps indicator;gears indicator; andoxygen level;devices:pedals;aileron switches;rudder;supercharger;propeller pitch; andweapons.

According to the exemplary embodiment, the elements of functionality of a game client are made available for access from a third device. The conventional online gaming systems may allow users to access some of the features from outside the main client (for example, some client-based online games have mini-games for Facebook, where a player can earn game currency; mobile chat/news apps for online games are also common). However, in these cases, the software interacts with the game provider's game server—i.e., the Facebook mini-game or chat/news connects to the game server to retrieve data from it and can be called an abbreviated version of the full-fledged game client. In present invention, some or all of the functions of the game client running on desktop or console can be made available for access through a mobile or portable device

According to the exemplary embodiment, a standard game experience can be completely simulated on any remote device by allowing remote input of game controls from the mobile device to the base platform (PC/MAC, etc) and streaming the video from the base platform to the mobile device. In this case, the mobile device acts as a “thin client” for the base platform (while the desktop acts as a server vis-à-vis the mobile device). Gameplay information such as chat windows and popup notifications is transferred to the mobile device where it can either be available in a separate browser window or can be shown in an overlay.

According to the exemplary embodiment, a game executable binary file runs a web server and transmits in-game information and optionally game play audiovisual stream to a specific address in the local network (for example, http://localhost:8111). Note that technically no client software is launched—the browser remotely connects to the game client running on a PC/MAC or other platform. The exemplary embodiment has advantages over conventional cloud gaming platforms. These systems use Adobe Flash-based client (or a separate browser plug-in) used for streaming video, authorization and controls input via a browser window. The games need to be adapted to be run on these systems.

According to the exemplary embodiment, only the game and a browser are needed. No administration rights are required. The exemplary embodiment includes a video compression and streaming algorithm designed specifically for use with video games. This has advantages over conventional remote desktop systems that use system-level software requiring installation with system administrator rights. The aforementioned software need to be installed on both devices—the client and the server. The software captures keyboard/mouse inputs and transfers back sequence of images from the server computer. The system is mostly utilized for remote system control and operation. Such system is a poor fit for gaming and video streaming.

According to the exemplary embodiment, a browser runs Java script or similar, which retrieves data from the web-server in the game client and, also, receives streaming video and audio. Technically, no game binary code is run on the device connected to a PC with a game client. No third party software is required, apart from the game itself. This has advantages over virtualization solutions that run part of the program code on the client by virtualizing necessary server OS components on the client. Also, the virtualization solutions may contain a separate file system to store some of the data retrieved from the server for off-line usage.

The exemplary embodiment is independent of the system requirements. The gaming solution allows users to play on any device that has enough processing power to play a video. Tablets, low-end laptops and low-end PCs can be used as an auxiliary device for the game to reduce interface overload on the desktop or to remotely play the game running on desktop. A typical use case is a family with one powerful desktop and several devices such as netbooks or tablets. The game can be launched on a desktop and rolled down, so a parent can do some work while a child is playing a video game remotely on the same desktop. The “reverse” can also be implemented—the game is played on the desktop, while some or all of the in-game interface windows, such as chat, mission planning, vehicle controls, and so on, are distributed to one or more mobile devices/netbooks/tablets.

The popups (or game widgets) can be used in two different ways. One is when only the windows from the game are transferred into the external device. The benefit of this implementation is that the main screen is reserved entirely for the game and not overloaded with the widgets. Also, the user can use the mobile devices for other activities, such as for browsing, other games, reading blogs, etc., since in many games, there might be long periods when little is happening (e.g., the game aircraft has taken off and is flying relatively uneventfully, for several minutes, towards the target area). The popups can show the user events from the game only when they occur (e.g., the aircraft is low on fuel, engine overheating, etc.)

The other one is the full game play on the external device. The exemplary embodiment provides for complete portability. The game does not occupy the PC screen. The game client can be rolled down and other family members can utilize the PC for their needs.

FIG. 1illustrates system architecture, in accordance with the exemplary embodiment. User hardware110can be PS4, MAC or PC. Also, the hardware110includes peripheral devices, such as keyboard, mouse, speakers or display. Operating system and drivers120are low-level software that act as an intermediate between game binary130and the user hardware110. The game binary130is the game code running on the user hardware and interacting with its devices via OS and drivers. The game binary includes any of the following functions:a chat module135allows users to send and receive text messages;a graphic module140processes game graphics and handles their outputs;an audio module145responsible for sound input and output in the game;audio/video codecs150—integrated software modules that compress and output game audio and video data;controls input module155responsible for reading controls-related inputs from the user hardware110(e.g., from a keyboard, a mouse, a joystick or any other peripheral device);a Web Server160broadcasts in-game data and audio-video stream to a certain address or port (e.g., port80) in the network (by default http:**localhost:8111 or another address defined by the user or the game provider). The Web Server160module is normally loaded at the time of game activation, when the game binary is loaded. The Web Server160module typically provides web page(s) using a network protocol for the browser on the PC or mobile device that represent the game video and audio. The Web Server160receives controls input from external devices, such a mouse or joystick or other interface devices;a game mechanics module165responsible for AI, experience, damage calculation, in-game controls visualization (cockpit) and other calculations related to the game play.

According to the exemplary embodiment, the game mechanics module165translates game data (map, dashboard, etc.) from in-game format into web-readable format (e.g., HTML) and transmits it to the in-game web-server160for publishing. The in-game web server160transmits HTML data to a certain address in the network. The system receives compressed audio/video stream of game play from the codecs150and transmits it to the Web Server160. The system receives control input from the third devices and passes it to the game mechanics module165for processing. The system receives chat data from the chat module135and transmits the chat inputs from the mobile device170into the chat module135. Note that the chat window can be hidden on the mobile device or displayed in an overlay fashion.

FIG. 2illustrates a workflow between system objects, in accordance with the exemplary embodiment. A video output object210sends video to the OS. An in-game audio output object220sends the audio to the OS. The audio and video streams are provided to a compressor object230, which compresses the data from the in-game format using one of the common audio/video compression algorithms, such as x264. The compressor object230sends data to a translator object240, which translates the signals into in-game actions. The compressor object230also provides data to an in-game logic object250. The game actions and the game logic are provided to a web server160. The web server160runs scripts that visualize game data using HTML data, streaming game audio and video signals and inputs from external devices received by the compressor object230. Note that audiovisual stream compression and control inputs are optional and require simple authorization from the user, such as a one-time password, while the stream of in-game data is always on and is accessible without authorization. The reason for this is that if an opponent sees the same thing that the user sees on his screen, there is usually little harm in that, in terms of winning or losing for the user—but if an opponent were to execute commands (such as “lower landing gear”), this would interfere with the game of the user.

The web server160prompts the user for authorization260through a user authorization object255. If the authorization is successful, a mobile device object170is authorized to have a full access to the game on host machine, including controls. Authorization is not required for accessing in-game information which is always transmitted by the webserver to the designated address in local network. The web server160can send game mechanics data and game audio/video streams to the mobile device object170and receive control inputs from mobile device object170.

If the authorization is not successful, the mobile device object170is only granted a read-only access to in-game information transmitted by webserver. The web server160can send game mechanics data—map position, enemy position, vehicle condition, vehicle device data, etc. Note that the in-game webserver is not much different from other web server technologies, only simplified due to the limited amount of the tasks it needs to perform. The only requirement for the client side is to have a browser supporting HTML 5 technology or similar.

FIG. 3illustrates a flow chart of a method for executing a desktop video game on a mobile device, in accordance with the exemplary embodiment. In step310, a video game is launched on a host desktop. An in-game audio and video data is sent to the OS in step320. The audio and video data optionally may be compressed by a compressor module in step330. Note that the audio and video data is compressed from the in-game format into a widely-used video streaming format such as MP4 or similar. The compressed signals are translated into game actions in step340. In step350, the translated signals are processed by the game logic module. The process provides the game logic data and game actions to the web server in step360. The web server generates access code which is shown on host machine and prompts a mobile device user to input this code in step370. If the user is successfully authorized by using this code in step380, the web server sends the game mechanics data to the mobile device and receives control inputs (including the inputs from web-based mission editor) from the mobile device in step395. Otherwise, the web server sends the game mechanics data to the mobile device, but does not receive the control input in step390. According the exemplary embodiment, the mobile device gets the necessary data from the game. The additional windows can be hidden on the mobile device or they can be rendered on an overlay.

With reference toFIG. 4, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer/server20or the like including a processing unit21, a system memory22, and a system bus23that couples various system components including the system memory to the processing unit21.

The system bus23may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read-only memory (ROM)24and random access memory (RAM)25. A basic input/output system26(BIOS), containing the basic routines that help transfer information between elements within the computer20, such as during start-up, is stored in ROM24.

The computer20may further include a hard disk drive27for reading from and writing to a hard disk, not shown, a magnetic disk drive28for reading from or writing to a removable magnetic disk29, and an optical disk drive30for reading from or writing to a removable optical disk31such as a CD-ROM, DVD-ROM or other optical media. The hard disk drive27, magnetic disk drive28, and optical disk drive30are connected to the system bus23by a hard disk drive interface32, a magnetic disk drive interface33, and an optical drive interface34, respectively. The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the computer20.

Although the exemplary environment described herein employs a hard disk, a removable magnetic disk29and a removable optical disk31, it should be appreciated by those skilled in the art that other types of computer readable media that can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read-only memories (ROMs) and the like may also be used in the exemplary operating environment.

A number of program modules may be stored on the hard disk, magnetic disk29, optical disk31, ROM24or RAM25, including an operating system35. The computer20includes a file system36associated with or included within the operating system35, one or more application programs37, other program modules38and program data39. A user may enter commands and information into the computer20through input devices such as a keyboard40and pointing device42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner or the like.

These and other input devices are often connected to the processing unit21through a serial port interface46that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or universal serial bus (USB). A monitor47or other type of display device is also connected to the system bus23via an interface, such as a video adapter48. In addition to the monitor47, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.

The computer20may operate in a networked environment using logical connections to one or more remote computers49. The remote computer (or computers)49may be another computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer180, although only a memory storage device50has been illustrated. The logical connections include a local area network (LAN)51and a wide area network (WAN)52. Such networking environments are commonplace in offices, enterprise-wide computer networks, Intranets and the Internet.

When used in a LAN networking environment, the computer20is connected to the local network51through a network interface or adapter53. When used in a WAN networking environment, the computer180typically includes a modem54or other means for establishing communications over the wide area network52, such as the Internet.

The modem54, which may be internal or external, is connected to the system bus23via the serial port interface46. In a networked environment, program modules depicted relative to the computer20, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

FIG. 5is a block diagram of a mobile device59on which the invention can be implemented. The mobile device59can be, for example, a personal digital assistant, a cellular telephone, a network appliance, a camera, a smart phone, a tablet, an enhanced general packet radio service (EGPRS) mobile phone, a network base station, a media player, a navigation device, an email device, a game console, or a combination of any two or more of these data processing devices or other data processing devices.

In some implementations, the mobile device59includes a touch-sensitive display73. The touch-sensitive display73can implement liquid crystal display (LCD) technology, light emitting polymer display (LPD) technology, or some other display technology. The touch-sensitive display73can be sensitive to haptic and/or tactile contact with a user.

In some implementations, the touch-sensitive display73can comprise a multi-touch-sensitive display73. A multi-touch-sensitive display73can, for example, process multiple simultaneous touch points, including processing data related to the pressure, degree and/or position of each touch point. Such processing facilitates gestures and interactions with multiple fingers, chording, and other interactions. Other touch-sensitive display technologies can also be used, e.g., a display in which contact is made using a stylus or other pointing device.

In some implementations, the mobile device59can display one or more graphical user interfaces on the touch-sensitive display73for providing the user access to various system objects and for conveying information to the user. In some implementations, the graphical user interface can include one or more display objects74,76. In the example shown, the display objects74,76, are graphic representations of system objects. Some examples of system objects include device functions, applications, windows, files, alerts, events, or other identifiable system objects.

In some implementations, the mobile device59can implement multiple device functionalities, such as a telephony device, as indicated by a phone object91; an e-mail device, as indicated by the e-mail object92; a network data communication device, as indicated by the Web object93; a Wi-Fi base station device (not shown); and a media processing device, as indicated by the media player object94. In some implementations, particular display objects74, e.g., the phone object91, the e-mail object92, the Web object93, and the media player object94, can be displayed in a menu bar95. In some implementations, device functionalities can be accessed from a top-level graphical user interface, such as the graphical user interface illustrated in the figure. Touching one of the objects91,92,93or94can, for example, invoke corresponding functionality.

In some implementations, the mobile device59can implement network distribution functionality. For example, the functionality can enable the user to take the mobile device59and its associated network while traveling. In particular, the mobile device59can extend Internet access (e.g., Wi-Fi) to other wireless devices in the vicinity. For example, mobile device59can be configured as a base station for one or more devices. As such, mobile device59can grant or deny network access to other wireless devices.

In some implementations, upon invocation of device functionality, the graphical user interface of the mobile device59changes, or is augmented or replaced with another user interface or user interface elements, to facilitate user access to particular functions associated with the corresponding device functionality.

For example, in response to a user touching the phone object91, the graphical user interface of the touch-sensitive display73may present display objects related to various phone functions; likewise, touching of the email object92may cause the graphical user interface to present display objects related to various e-mail functions; touching the Web object93may cause the graphical user interface to present display objects related to various Web-surfing functions; and touching the media player object94may cause the graphical user interface to present display objects related to various media processing functions.

In some implementations, the top-level graphical user interface environment or state can be restored by pressing a button96located near the bottom of the mobile device59. In some implementations, functionality of each corresponding device may have corresponding “home” display objects displayed on the touch-sensitive display73, and the graphical user interface environment can be restored by pressing the “home” display object.

In some implementations, the top-level graphical user interface can include additional display objects76, such as a short messaging service (SMS) object, a calendar object, a photos object, a camera object, a calculator object, a stocks object, a weather object, a maps object, a notes object, a clock object, an address book object, a settings object, and an app store object97. Touching the SMS display object can, for example, invoke an SMS messaging environment and supporting functionality; likewise, each selection of a display object can invoke a corresponding object environment and functionality.

Additional and/or different display objects can also be displayed in the graphical user interface. For example, if the device59is functioning as a base station for other devices, one or more “connection” objects may appear in the graphical user interface to indicate the connection. In some implementations, the display objects76can be configured by a user, e.g., a user may specify which display objects76are displayed, and/or may download additional applications or other software that provides other functionalities and corresponding display objects.

In some implementations, the mobile device59can include one or more input/output (I/O) devices and/or sensor devices. For example, a speaker60and a microphone62can be included to facilitate voice-enabled functionalities, such as phone and voice mail functions. In some implementations, an up/down button84for volume control of the speaker60and the microphone62can be included. The mobile device59can also include an on/off button82for a ring indicator of incoming phone calls. In some implementations, a loud speaker64can be included to facilitate hands-free voice functionalities, such as speaker phone functions. An audio jack66can also be included for use of headphones and/or a microphone.

In some implementations, a proximity sensor68can be included to facilitate the detection of the user positioning the mobile device59proximate to the user's ear and, in response, to disengage the touch-sensitive display73to prevent accidental function invocations. In some implementations, the touch-sensitive display73can be turned off to conserve additional power when the mobile device59is proximate to the user's ear.

Other sensors can also be used. For example, in some implementations, an ambient light sensor70can be utilized to facilitate adjusting the brightness of the touch-sensitive display73. In some implementations, an accelerometer72can be utilized to detect movement of the mobile device59, as indicated by the directional arrows. Accordingly, display objects and/or media can be presented according to a detected orientation, e.g., portrait or landscape.

In some implementations, the mobile device59may include circuitry and sensors for supporting a location determining capability, such as that provided by the global positioning system (GPS) or other positioning systems (e.g., systems using Wi-Fi access points, television signals, cellular grids, Uniform Resource Locators (URLs)). In some implementations, a positioning system (e.g., a GPS receiver) can be integrated into the mobile device59or provided as a separate device that can be coupled to the mobile device59through an interface (e.g., port device90) to provide access to location-based services.

The mobile device59can also include a camera lens and sensor80. In some implementations, the camera lens and sensor80can be located on the back surface of the mobile device59. The camera can capture still images and/or video. The mobile device59can also include one or more wireless communication subsystems, such as an 802.11b/g communication device86, and/or a BLUETOOTH communication device88. Other communication protocols can also be supported, including other 802.x communication protocols (e.g., WiMax, Wi-Fi, 3G, LTE), code division multiple access (CDMA), global system for mobile communications (GSM), Enhanced Data GSM Environment (EDGE), etc.

In some implementations, the port device90, e.g., a Universal Serial Bus (USB) port, or a docking port, or some other wired port connection, is included. The port device90can, for example, be utilized to establish a wired connection to other computing devices, such as other communication devices59, network access devices, a personal computer, a printer, or other processing devices capable of receiving and/or transmitting data. In some implementations, the port device90allows the mobile device59to synchronize with a host device using one or more protocols, such as, for example, the TCP/IP, HTTP, UDP and any other known protocol. In some implementations, a TCP/IP over USB protocol can be used.

FIG. 6is a block diagram2200of an example implementation of the mobile device59. The mobile device59can include a memory interface2202, one or more data processors, image processors and/or central processing units2204, and a peripherals interface2206. The memory interface2202, the one or more processors2204and/or the peripherals interface2206can be separate components or can be integrated in one or more integrated circuits. The various components in the mobile device59can be coupled by one or more communication buses or signal lines.

Sensors, devices and subsystems can be coupled to the peripherals interface2206to facilitate multiple functionalities. For example, a motion sensor2210, a light sensor2212, and a proximity sensor2214can be coupled to the peripherals interface2206to facilitate the orientation, lighting and proximity functions described above. Other sensors2216can also be connected to the peripherals interface2206, such as a positioning system (e.g., GPS receiver), a temperature sensor, a biometric sensor, or other sensing device, to facilitate related functionalities.

A camera subsystem2220and an optical sensor2222, e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, can be utilized to facilitate camera functions, such as recording photographs and video clips.

Communication functions can be facilitated through one or more wireless communication subsystems2224, which can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the communication subsystem2224can depend on the communication network(s) over which the mobile device59is intended to operate. For example, a mobile device59may include communication subsystems2224designed to operate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMax network, and a BLUETOOTH network. In particular, the wireless communication subsystems2224may include hosting protocols such that the device59may be configured as a base station for other wireless devices.

An audio subsystem2226can be coupled to a speaker2228and a microphone2230to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions. The I/O subsystem2240can include a touch screen controller2242and/or other input controller(s)2244. The touch-screen controller2242can be coupled to a touch screen2246. The touch screen2246and touch screen controller2242can, for example, detect contact and movement or break thereof using any of multiple touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen2246.

The other input controller(s)2244can be coupled to other input/control devices2248, such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus. The one or more buttons (not shown) can include an up/down button for volume control of the speaker2228and/or the microphone2230.

In one implementation, a pressing of the button for a first duration may disengage a lock of the touch screen2246; and a pressing of the button for a second duration that is longer than the first duration may turn power to the mobile device59on or off. The user may be able to customize a functionality of one or more of the buttons. The touch screen2246can, for example, also be used to implement virtual or soft buttons and/or a keyboard.

In some implementations, the mobile device59can present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, the mobile device59can include the functionality of an MP3 player. The mobile device59may, therefore, include a 32-pin connector that is compatible with the MP3 player. Other input/output and control devices can also be used.

The memory interface2202can be coupled to memory2250. The memory2250can include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR). The memory2250can store an operating system2252, such as Darwin, RTXC, LINUX, UNIX, OS X, ANDROID, IOS, WINDOWS, or an embedded operating system such as VxWorks. The operating system2252may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, the operating system2252can be a kernel (e.g., UNIX kernel).

The memory2250may also store communication instructions2254to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers. The memory2250may include graphical user interface instructions2256to facilitate graphic user interface processing including presentation, navigation, and selection within an application store; sensor processing instructions2258to facilitate sensor-related processing and functions; phone instructions2260to facilitate phone-related processes and functions; electronic messaging instructions2262to facilitate electronic-messaging related processes and functions; web browsing instructions2264to facilitate web browsing-related processes and functions; media processing instructions2266to facilitate media processing-related processes and functions; GPS/Navigation instructions2268to facilitate GPS and navigation-related processes and instructions; camera instructions2270to facilitate camera-related processes and functions; and/or other software instructions2272to facilitate other processes and functions.

Each of the above identified instructions and applications can correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures or modules. The memory2250can include additional instructions or fewer instructions. Furthermore, various functions of the mobile device59may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.

Having thus described a preferred embodiment, it should be apparent to those skilled in the art that certain advantages of the described method and apparatus have been achieved. In particular, those skilled in the art would appreciate that the proposed system and method provide for execution of a desktop video game on a remote mobile device.

It should also be appreciated that various modifications, adaptations and alternative embodiments thereof may be made within the scope and spirit of the present invention. The invention is further defined by the following claims.

Claims

  1. A computer-implemented method for distributing video game entities between a host machine and mobile devices, the method comprising: launching a video game from a game binary on the host machine, wherein the game binary includes a built-in web server, and wherein the game interface includes additional in-game interface windows;translating controls input data into game actions;processing the in-game audio and video data by a game logic module;providing the in-game audio and video data and game logic data from the game binary to the built-in web server;using the built-in web server, sending the in-game audio and video data to a browser running on the host machine;prompting a mobile device for an authorization to connect to the built-in web server, wherein accessing the in-game audio and video data does not require the authorization;sending game mechanics data to a local network address for display by the browser;receiving game control inputs from the mobile device once the mobile device is authorized;and hiding or minimizing the additional in-game interface windows on the host machine and displaying them instead on the mobile device.
  1. The method of claim 1 , wherein an entire game process is transferred to the mobile device.
  2. The method of claim 1 , further comprising running HTML scripts on the built-in web server to visualize the game data.
  3. The method of claim 1 , wherein the in-game interface windows displayed on the mobile device are widgets while a main display of the video game is shown on the host machine.
  4. The method of claim 1 , wherein the mobile device acts as a thin client for the built-in web server running on the host desktop.
  5. The method of claim 1 , wherein popups showing notifications from the built-in web server are displayed on the mobile device as an overlay.
  6. The method of claim 1 , further comprising compressing the in-game audio and video data.
  7. The method of claim 1 , wherein the game control inputs include swipes and taps on a touch screen of the mobile device.
  8. The method of claim 1 , wherein the game control inputs include a dashboard for control of an aircraft.
  9. The method of claim 1 , wherein the game control inputs include a virtual cockpit that is simulated on the mobile device while a main display of the video game is shown on the host desktop.
  10. The method of claim 1 , wherein a chat interface is displayed on the mobile device while a main display of the video game is shown on the host desktop.
  11. The method of claim 1 , wherein a map with locations of friends and/or enemies is displayed on the mobile device while a main display of the video game is shown on the host desktop.
  12. The method of claim 1 , wherein instrument data of an aircraft is displayed on the mobile device while a main display of the video game involving the aircraft is shown on the host desktop.
  13. The method of claim 1 , wherein the mobile device connects to the network using a one-time password.
  14. A system for simulating a video game on a mobile device, the system comprising: a processor;a memory coupled to the processor;a computer program logic stored in the memory and executed on the processor, the computer program logic is configured to implement the steps of: launching a video game from a game binary on the host machine, wherein the game binary includes a built-in web server, and wherein the game interface includes additional in-game interface windows;translating controls input data into game actions;processing the in-game audio and video data by a game logic module;providing the in-game audio and video data and game logic data from the game binary to the built-in web server;using the built-in web server, sending the in-game audio and video data to a browser running on the host machine;prompting a mobile device for an authorization to connect to the built-in web server, wherein accessing the in-game audio and video data does not require the authorization;sending game mechanics data to a local network address for display by the browser;receiving game control inputs from the mobile device once the mobile device is authorized;and hiding or minimizing the additional in-game interface windows on the host machine and displaying them instead on the mobile device.
  15. A system for distributing video game entities between a host machine and mobile devices, the system comprising: an the host machine, a video game launched from a game binary, wherein the game binary includes a built-in web server, and wherein the game interface includes additional in-game interface windows;wherein controls input data is translated into game actions;a game logic module that processes the in-game audio and video data;wherein the in-game audio and video data and game logic data is provided from the game binary to the built-in web server;wherein the built-in web server sends the in-game audio and video data to a browser running on the host machine;for a mobile device authorized to connect to the built-in web server, the built-in web server receives game control inputs from the mobile device once the mobile device;wherein the in-game audio and video data does not require the authorization for access;wherein the game mechanics data is sent to a local network address for display by the browser;and wherein the additional in-game interface windows are hidden or minimized on the host machine and are displayed instead on the mobile device.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.