Synchronized, fully programmable game controllers

Information

  • Patent Grant
  • 10981051
  • Patent Number
    10,981,051
  • Date Filed
    Tuesday, December 19, 2017
    6 years ago
  • Date Issued
    Tuesday, April 20, 2021
    3 years ago
Abstract
Embodiments of the present specification provide systems and methods for operating game controllers. Microprocessor-controlled game controllers enable recreation of identical gaming scenarios with precision and accuracy. At least one microprocessor is connected to one or more game controllers. The microprocessor is programmed to synchronize the game controllers externally. Additionally, the microprocessor is programmed to modify one or more game controls that are provided by the game controllers. In embodiments of the present specification, game controllers are embedded with a wireless microcontroller that allow for remote feeding of commands to the microcontrollers.
Description
FIELD

The present specification discloses systems and methods for testing, analyzing and improving multiplayer gaming environments. More specifically, the present specification is related to programmatically synchronizing multiple game controllers in order to evaluate the effects of external conditions on a video game gameplay session.


BACKGROUND

Game developers are often faced with the challenge of simulating gaming scenarios, and repeatedly recreating the stimulated gaming scenarios, in order to analyze and/or test the game for various factors and under various external conditions. In one example, it may be required to measure the impact of network traffic on the gaming traffic and, ultimately, the gameplay experience. The impact can be significant given playing video games or role-playing games, such as First Person Shooter (FPS) games, wirelessly on the Internet, is increasing.


Contention and prioritization of video packets over other packets (like FPS packets) could potentially result in a streaming event (external condition) improperly changing the outcome of a match. Stated differently, a match that one player would have won has now been lost because FPS packets were not prioritized over other packets, such as video packets. One potential solution would be to program routers to prioritize the gaming console of the player, but this only helps once the packets enter the Service Set Identifier (SSID) of the player. However, after the packets are on their way to a dedicated server, the packets do not receive prioritized treatment over the myriad video packets constantly transmitted through the Internet. With the increasing popularity and adoption of electronic sports (ESports), this could be detrimental to match fairness.


The impact of streaming delay caused by packet prioritization can be demonstrated by creating a reproducible scenario where two players in a video game end up in a very close match. The game or match would need to be created repeatedly while providing the same outcome. Once the gaming scenario is constantly repeated, other factors, such as network traffic, can be varied to observe and analyze the influence over the constantly repeated gaming scenario. Recreating the scenario would require extreme precision to stage a close match where one opponent narrowly defeats another opponent. A conventional approach may require modifying the gaming program or source code to achieve the desired scenario with repeatable precision. However, such a modification could be cumbersome and internal to the game scenario. Additionally, the modification made at the gaming program-level may be fixed, and to recreate any other scenario would require a renewed effort at programming the game differently to suit the new scenario. Therefore, this approach can be time-consuming and inefficient.


Therefore, what is needed is a system and method for creating and recreating game scenarios with accuracy and precision such that control over the game is provided externally and is independent of the game itself to thereby demonstrate what external factors influence the game and to what extent such external factors influence the game.


SUMMARY

The following embodiments and aspects thereof are described and illustrated in conjunction with systems, tools and methods, which are meant to be exemplary and illustrative, not limiting in scope.


In some embodiments, the present specification discloses a system for synchronizing multiple game controllers, the system comprising: a first game controller; a second game controller; a first programmable microprocessor communicating with the first game controller, wherein the first programmable microprocessor provides first program instructions executable by the first game controller; and a second programmable microprocessor communicating with the second game controller and the first programmable microprocessor, wherein the second programmable microprocessor provides second program instructions executable by the second game controller; wherein the first programmable microprocessor is configured to initiate an execution of the first program instructions and signal the second programmable microprocessor to begin execution of the second program instructions such that execution operation of the first and the second game controllers are synchronized.


Optionally, the first and the second programmable microcontrollers are each embedded within the first and the second game controllers respectively.


Optionally, the first and the second programmable microcontrollers are respectively connected externally with a cable to the first and the second game controllers.


Optionally, the first and the second game controllers are respectively in communication with a first gaming console and a second gaming console.


Optionally, the first gaming console and the second gaming console each are a part of a first local network and a second local network, respectively.


Optionally, the first gaming console and the second gaming console are in communication with each other over the Internet.


Optionally, at least one of the first and the second game controllers are operated wirelessly.


In some embodiments, the present specification discloses a method for synchronizing multiple game controllers, the method comprising: initiating a program execution by a first programmable microprocessor, wherein the first programmable microprocessor is in data communication with a first game controller; and signaling by the first programmable microprocessor to a second programmable microprocessor to begin the program execution, wherein the second programmable microprocessor is in data communication with a second game controller and the first programmable microprocessor, wherein the program execution is synchronized for the first and the second game controllers.


Optionally, the method further comprises embedding the first and the second programmable microcontrollers each within the first and the second game controllers respectively.


Optionally, the method further comprises connecting the first and the second programmable microcontrollers externally with a cable to the first and the second game controllers respectively.


Optionally, the first and the second game controllers are respectively in communication with a first gaming console and a second gaming console.


Optionally, the method comprises operating the at least one of the first and the second game controllers wirelessly.


In some embodiments, the present specification discloses a system for operating a game controller, the system comprising: a wireless module embedded within the game controller, wherein the game controller comprises a plurality of inputs configured to be manually activated by a human player; and a processor remotely located from the game controller, wherein the processor communicates wirelessly with the wireless module for activating one or more of the plurality of inputs without requiring manual activation by the human player.


Optionally, the processor communicates commands to the wireless module and wherein said commands activate the one or more plurality of inputs.


Optionally, the processor comprises at least one of a personal computer, a laptop, and a portable computing device.


Optionally, the wireless module comprises one of a Radio Frequency (RF) module, a Wi-Fi module, and a Bluetooth module.


Optionally, the wireless module is located or embedded within the game controller.


Optionally, the wireless module is attached to an exterior physical housing defining an outer periphery of the game controller.


In some embodiments, the present specification discloses a method for operating a game controller, the method comprising: using a processor located remotely from the game controller, wirelessly communicating at least one command for execution by the game controller, wherein the game controller comprises a plurality of inputs configured to be manually activated by a human player; using a wireless module in data communication with the game controller, receiving the at least one command; and using the game controller, executing the at least one command, wherein, when executed by the game controller, the at least one command is configured to activate one or more of the plurality of inputs without requiring manual activation by the human player.


Optionally, the communicating from the processor comprises communicating from at least one of a personal computer, a laptop, and a portable computing device.


Optionally, the receiving the at least one command by the wireless module comprises using one of a Radio Frequency (RF) module, a Wi-Fi module, and a Bluetooth module.


In some embodiments, the present specification discloses a method for operating a game controller, the method comprising: using a processor located remotely from the game controller, wirelessly communicating at least one command for execution by the game controller, wherein the game controller comprises a plurality of inputs configured to be manually activated by a human player; using a wireless module embedded within the game controller, receiving the at least one command; and using the game controller, executing the at least one command, wherein, when executed by the game controller, the at least one command is configured to activate one or more of the plurality of inputs without requiring manual activation by the human player.


Optionally, said embedded wireless module is located within an exterior physical housing defining an outer periphery of the game controller.


Optionally, said embedded wireless module is attached to an exterior physical housing defining an outer periphery of the game controller.


The aforementioned and other embodiments of the present specification shall be described in greater depth in the drawings and detailed description provided below.





BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages of the present specification will be appreciated, as they become better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:



FIG. 1 illustrates an exemplary arrangement for synchronizing a first game controller and a second game controller, in accordance with some implementations of the present specification;



FIG. 2A illustrates an exemplary implementation of an arrangement for synchronizing two game controllers, in accordance with some embodiments of the present specification;



FIG. 2B illustrates another view of the exemplary implementation of FIG. 2A, in accordance with some embodiments of the present specification;



FIG. 3 is a flow chart describing a method for synchronizing two game controllers, in accordance with some embodiments of the present specification;



FIG. 4 illustrates an exemplary layout for implementing the embodiments of the present specification;



FIG. 5A is a flowchart illustrating an exemplary testing process that is implemented using some embodiments of the present specification;



FIG. 5B is a flowchart illustrating another exemplary testing process that is implemented using some embodiments of the present specification;



FIG. 6 illustrates an exemplary system environment for operating a game controller, in accordance with some embodiments of the present specification; and,



FIG. 7 is a flow chart detailing a method for operating a game controller as described in FIG. 6, in accordance with some embodiments of the present specification.





DETAILED DESCRIPTION

The present specification relates to synchronizing multiple game controllers and driving a game play session through programmatic logic applied to each of the game controllers, replacing a user's manual input. Game controllers are programmable and can be synchronized externally and independently of a gaming program. Embodiments of the present specification enable repeatable creation of a gaming scenario with precision and accuracy. In some embodiments, microprocessor-controlled game controllers are provided, wherein at least one microprocessor (or microcontroller) is connected to one or more game controllers and wherein the microprocessor is programmed to synchronize the game controllers externally. Additionally, the microprocessor is programmed to modify one or more game controls that are provided by the game controllers. In embodiments of the present specification, wireless microcontrollers are embedded within game controllers to allow for the remote transmission of commands to the microcontrollers. Integrating a wireless microcontroller within the game controller allows for commands to be transmitted in real time or near real time to one or more game controllers without requiring commands to be customized and pre-programmed into an embedded microcontroller. Therefore, a wireless microcontroller allows for customization of game controller as needed.


The present specification is directed towards multiple embodiments. The following disclosure is provided in order to enable a person having ordinary skill in the art to practice the invention. Language used in this specification should not be interpreted as a general disavowal of any one specific embodiment or used to limit the claims beyond the meaning of the terms used therein. The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Also, the terminology and phraseology used is for the purpose of describing exemplary embodiments and should not be considered limiting. Thus, the present invention is to be accorded the widest scope encompassing numerous alternatives, modifications and equivalents consistent with the principles and features disclosed. For purpose of clarity, details relating to technical material that is known in the technical fields related to the invention have not been described in detail so as not to unnecessarily obscure the present invention.


In the description and claims of the application, each of the words “comprise” “include” and “have”, and forms thereof, are not necessarily limited to members in a list with which the words may be associated.


It should be noted herein that any feature or component described in association with a specific embodiment may be used and implemented with any other embodiment unless clearly indicated otherwise.


It should be appreciated that the programmatic methods described herein may be performed on any computing device, including a laptop, desktop, smartphone, tablet computer, specialized gaming console, or virtual reality system. The computing device comprises at least one processor and a nonvolatile memory that stores the programmatic instructions which, when executed by the processor, perform the methods or steps disclosed herein, including the generation of a graphical user interface that is communicated to a local or remote display. The computing device is in communication with at least one remotely located server through a network of any type.


For purposes of the present specification, a gaming console is a computing device that displays a video game that one or more players can play.


For purposes of the present specification, a game controller is an interactive module that is manually manipulated by a player to interface with a video game, typically to provide controlling input to the video game. The game controller is in communication with a gaming console through a wired or a wireless connection. Game controllers may include all its variants, such as but not limited to, joystick, steering wheel, keyboard and mouse, touchscreen, light gun, yoke, pedal, paddle, trackball, and gamepad.


While aspects of the present specification may be described herein with reference to various game levels or modes, characters, roles, or game items, associated with a First-Person-Shooter (FPS) game, it should be appreciated that any such examples are for illustrative purposes only, and are not intended to be limiting. The systems and methods described in detail herein may be used in any genre of multiplayer video game, without limitation.


The terminology used within this specification and detailed description of the various embodiments is for the purpose of describing particular embodiments only and is not intended to limit the invention.



FIG. 1 illustrates an exemplary arrangement 100 for synchronizing a first game controller 102 and a second game controller 104, in accordance with some implementations of the present specification. In an embodiment, first game controller 102 and second game controller 104 interface with first and second (separate) gaming consoles, respectively. In some embodiments, each gaming console is operational within different local networks and the game consoles communicate with each other over the Internet. In an alternative embodiment, first game controller 102 and second game controller 104 interface with a single gaming console. First game controller 102 and second game controller 104 each have multiple buttons that enable a player to provide control input to their respective gaming consoles. A front perspective view 102a of first game controller 102 shows additional buttons that may be provided with game controller 102. Similarly, a front perspective view 104a of second game controller 104 shows additional buttons that may be provided with game controller 104. While FIG. 1 illustrates one type of game controllers, other types of game controllers with different provisions for providing controlling input to the gaming consoles may be applicable in different embodiments of the present specification.


A first programmable microprocessor 106 communicates with game controller 102, and a second programmable microprocessor 108 communicates with game controller 104. In embodiments, microprocessors 106 and 108 are respectively embedded within game controllers 102 and 104. In some alternative embodiments, microprocessors 106 and 108 are connected externally through one or more cables with their corresponding game controllers 102 and 104, respectively. In yet other embodiments, microprocessors 106 and 108 are connected wirelessly. Microprocessors 106 and 108 are programmable, and may be programmed to execute a specific set of commands or instructions. In an embodiment, microprocessors 106 and 108 are programmed remotely and wirelessly. In one embodiment, microprocessor 106 is programmed to execute a first set of commands to control operation of game controller 102, while microprocessor 108 is programmed to execute a second set of commands to control operation of game controller 104. FIG. 1 illustrates a physical wiring scheme 110 to enable connections between microprocessor 106 and different buttons of game controller 102 and to enable connections between microprocessor 108 and different buttons of game controller 104. In embodiments, microprocessors 106 and 108 are programmed to execute any set of commands that can be performed by their corresponding game controllers. A typical command, for example, may be to enable a game controller to shift left for 1.75 seconds, shift right for 1.73 seconds, aim weapon, and pull a trigger, within a video game. In embodiments, microprocessors 106 and 108 are any type of microprocessors that provide sufficient input-output (I/O) ports to interface with game controllers 102 and 104. In one embodiment, microprocessors 106 and 108 are Arduino Nano microprocessors. In embodiments, microprocessors 106 and 108 are connected to each other with a trigger wire 112. In some other embodiments, microprocessors 106 and 108 are connected to each other wirelessly. In one embodiment, microprocessor 106 is a primary processor and microprocessor 108 is a secondary processor. Once microprocessor 106 is activated to execute its program, it signals microprocessor 108 through wire 112 to initiate execution of the program on microprocessor 108 as well, thereby achieving synchronization between execution of programs by game controllers 102 and 104.


In alternative embodiments, the present specification is extended to multiple game controllers configured with corresponding programmable microprocessors. One of the microprocessors may be a primary processor that signals all other microprocessors to synchronize program execution on their respective game controllers.



FIG. 2A illustrates an exemplary implementation of an arrangement to synchronize two game controllers, in accordance with some embodiments of the present specification. Microprocessors 206 and 208 are connected to separate game controllers and to each other through a trigger wire 212. FIG. 2A shows a connector 214 that is used for connecting microprocessor 206 to a game controller. FIG. 2B illustrates another view of the actual implementation of the arrangement of FIG. 2A, in accordance with some embodiments of the present specification. Referring together to FIGS. 2A and 2B, in one embodiment, a first programmable microprocessor 206 and a second programmable microprocessor 208 are connected respectively to a first game controller 202 and a second game controller 204.



FIG. 3 is a flow chart describing a method for synchronizing two game controllers, in accordance with some embodiments of the present specification. The first programmable microprocessor, comprising code for a first program, is placed in communication with a first game controller in step 302. The first program may comprise instructions for execution by the first game controller. A second programmable microprocessor is placed in communication with a second game controller in step 304. In embodiments, both microprocessors are pre-programmed. In other embodiments, both microprocessors can be custom-programmed on demand. The second programmable microprocessor is placed in communication with the first programmable microprocessor in step 306. In embodiments, a trigger wire connects the two programmable microprocessors. In some other embodiments, the two programmable microprocessors are connected wirelessly. At 308, a first programmable microprocessor initiates execution of the first program. At 310, the first programmable microprocessor sends a signal over the trigger wire to initiate execution of a second program, which comprises instructions for execution by the second game controller. In an embodiment, the first microprocessor sends current over the trigger wire while the second microprocessor detects positive voltage on the trigger wire as a signal to initiate execution of its program. In embodiments where the two microprocessors communicate wirelessly, a trigger would execute a similar process as with a trigger wire, with appropriate acknowledgement, e.g. Ack/Nak, messaging. Additionally, a synchronized timer function may be incorporated to minimize potential wireless latency. Therefore, the first and the second game controllers are synchronized in operating the programs meant for their execution.


Embodiments of the present specification enable the writing of a control program that works independently of any game and could be reproduced for other gaming systems. FIG. 4 illustrates an exemplary scenario for implementing embodiments of the present specification. In an exemplary scenario, it is desirable to test whether due to the contention and prioritization of video packets over other packets (such as gaming packets) a streaming event in a local network in which a gaming console operates, changes the outcome of a match. A match that an opponent would win could be lost because the packets in the network of the opponent were not prioritized over the video packets in a streaming event.



FIG. 5A is a flowchart illustrating an exemplary testing process that is implemented using some embodiments of the present specification. Referring simultaneously to components shown in FIG. 4, and the steps of FIG. 5A, the test is performed under a first scenario where a scenario represents a unique environmental condition. For the purposes of the present specification, an environmental condition may be a factor external to a gaming console that affects the performance of a player using that gaming console. The environmental condition may be varied to test the outcome in the form of impact on the operation of the game controllers interfacing with gaming consoles 402 and 404.


In a first scenario, at 502, the two gaming consoles 402 and 404, are configured within different local networks 406 and 408, respectively. At 504, gaming consoles 402 and 404 communicate with each other wirelessly over the Internet so that a first player using gaming console 402 plays against an opponent who is a second player using gaming console 404. In an exemplary embodiment involving an FPS game, a “close call” scenario is generated where the second player wins by one bullet. The scenario is generated with programming of the game controllers associated with the two gaming consoles 402 and 404. Programming of the game controllers enables configuration of a desired scenario repeatedly, with precision, and without any human intervention. The scenario requires millisecond precision which is achieved by leveraging programmable microprocessors connected to the game controllers of the first gaming console 402 and the second gaming console 404, in accordance with the embodiments of the present specification. In some embodiments, avatars of the gaming scenario are lined up in the same position repeatedly, followed by repeated execution of the scenario where the second player wins by one bullet in an identical manner. The scenario where the second player wins by one bullet is programmed through a series of commands residing within code at the first and the second microprocessors, and executable by the first and second game controllers of consoles 402 and 404, respectively. In one embodiment, the commands are programmed separately for each microprocessor. In another embodiment, both microprocessors execute the same set of commands when the primary microprocessor signals the secondary microprocessor to do so. Once a reference or baseline is provided, where the second player barely wins in the same manner over and over again, over the first player, other factors may be varied to perform the test. At 506, the results of the match are recorded. In a test conducted by the applicants, it was noted that the results of the match remained constant on repeated execution of the scenario where the second player wins by one bullet.



FIG. 5B is a flowchart illustrating an exemplary testing process in a different scenario that is implemented using some embodiments of the present specification. Referring simultaneously to components shown in FIG. 4, and the steps of FIG. 5B, the test is performed under a different scenario. In a second scenario, at 510, the two gaming consoles 402 and 404, are configured within different local networks 406 and 408, respectively. At 512, gaming consoles 402 and 404 communicate with each other wirelessly over the Internet so that a first player using gaming console 402 plays against an opponent who is a second player using gaming console 404. In an exemplary embodiment involving an FPS game, the same “close call” scenario is re-created where the second player wins by one bullet. The scenario requires millisecond precision which is achieved by leveraging programmable microprocessors connected to the game controllers of the first gaming console 402 and second gaming console 404, in accordance with the embodiments of the present specification. Programming the game controllers provides repeatable precision while executing the same scenario, and without any human intervention. In some embodiments, avatars of the gaming scenario are lined up in the same position repeatedly, followed by repeated execution of the scenario where the second player wins by one bullet in an identical manner. The scenario where the second player wins by one bullet is programmed through a series of commands residing within code at the first and the second microprocessors, and executable by the first and second game controllers of consoles 402 and 404, respectively. Once a reference or baseline is provided, where the second player barely wins in the same manner over and over again, over the first player, other factors may be varied to perform the test. In the second scenario, the variable factor involves enabling a streaming event in one of the networks. At 514, another device 410 streams video content through the Internet, within the local network of console 404, which could potentially affect bandwidth and packet prioritization within that network. The streaming event is enabled in parallel to the execution of the “close-call” scenario in an ongoing gaming session between the first and the second players. At 516, the results of the match are recorded. In a test conducted by the applicants, it was noted that the results of the match indicated that the second player loses the match, demonstrating that packet delivery based on the streaming activity at device 410 was prioritized over the gaming console.


Thus, in using the present specification, results of the match can be observed with and without the streaming activity in the network of the player who is programmed to win repeatedly to determine if other activity on the network (such as streaming) affects the game output due to packet prioritization.


It should be appreciated that the game testing being performed is done expressly through the user control devices and not through any other means. Specifically, while games are frequently tested using bots or programs that interface directly with the video game logic, they are not tested via the actual input control devices manipulated by users in a manner that is both precise and repeatable.



FIG. 6 illustrates an exemplary system environment for operating a game controller, in accordance with some embodiments of the present specification. In embodiments, a wireless module 602 is embedded within a game controller 604. The embedded wireless module 602, is, in one embodiment, a WiFi microprocessor that enables game controller 604 to execute instructions provided by the microprocessor. Wireless module 602 is in data communication with game controller 604. In some embodiments, wireless module 602 is a microcontroller that is small enough and low powered enough to run off of the power bus housed within controller's 604. In this case, no external wiring or power is required. In some embodiments, wireless module 602 is fitted within the housing of controller 604. In some embodiments, slight structural modifications are required to controller 604 housing to provide sufficient room for wireless module 602. In yet other embodiments, wireless module 602 is located within game controller 604, or is attached to an exterior physical housing defining an outer periphery of game controller 604. In yet other embodiments, wireless module 602 is embedded within game controller 604 such that it is located within or attached to an exterior physical housing defining an outer periphery of game controller 604.


A remotely located processor 606 communicates wirelessly with wireless module 602 to operate the game controller 604. In accordance with embodiments of the present specification, ‘remotely located’ is defined as located external to a housing defining the outer periphery or exterior surface of game controller 604. In embodiments, and accordingly, a processor is not remote to a game controller if it is located in the same physical housing defining the exterior surface of the game controller. In embodiments, processor 606 communicates commands or instructions that are executable by game controller 604. Processor 606 may be a personal computer, a laptop, a portable computing device, or any other electronic device that enables creating instructions that are executable by game controller 604, and can communicate those instructions wirelessly to wireless module 602. In embodiments, wireless module 602 is a Radio Frequency (RF) module, a Wi-Fi module, a Bluetooth module, or any other module capable of facilitating wireless communication between processor 606 and game controller 604. In embodiments of the present specification decoupling of the command loading to the game controller is enabled so that it happens remotely. Implementing wireless communication within the microprocessor allows for commands to be transmitted in real time or near real time to one or more game controllers 604 without requiring commands to be customized and pre-programmed into an embedded microcontroller. Therefore, a wireless microcontroller allows for customization of game controller as needed.



FIG. 7 is a flow chart illustrating an exemplary method for operating a game controller as described in FIG. 6, in accordance with some embodiments of the present specification. At 702, a processor that is remotely located from a game controller wirelessly communicates one or more commands to the game controller. In embodiments, the game controller comprises a wireless module to facilitate the communication between the processor and the game controller. At 704, the wireless module receives one or more commands from the processor. At 706, the game controller executes the received commands. In embodiments, a series of instructions may be wirelessly preloaded on the wireless module, for execution by the game controller at a later time. Preloading the commands may address wireless latency in certain remote systems. In some embodiments, means for synchronizing the time of execution of the program by the game controllers is provided. In one example, a Network Time Protocol (NTP) server is utilized to enable synchronized communication between the processor and the game controller.


Various embodiments of the present specification enable precise control over the microcontroller within one or more game controllers. Embodiments of the present specification may be used to simulate exploits by the player community. In one example, the development of scripting exploits based on movement and button presses of the controller are simulated. Also, once there is a fix for the exploit, embodiments of this system may be used to test the fix to ensure it defeats the exploit.


Gaming systems can be tested precisely for multiplayer scenarios. There are known situations where players use latency to their advantage. In one example, a foot pedal switch may be imagined that cuts or disables transmissions within the network cable of a player. When the switch is applied, the game console used by the player does not transmit packets, and when released the game controller resumes. Players are known to have used these types of systems to “peak” into a room on the map of games to see if any other players are in that room. To implement this, players press the foot pedal and then quickly go into the room, jump back out and release the pedal. During that brief time they may be able to easily assess if there were any other players and their exact positions, allowing the player to exploit that knowledge. In the scenario where the pedal was pressed, the packets were never transmitted, therefore the other players never even saw the exploiting player quickly jump in and out of the room. A scenario like this could be repeated in the testing embodiments of the present specification and enable developing of proper defensive code to defeat such exploits.


In another exemplary scenario, a specific set of button sequences may be entered, which allow players to cause unusual things to happen. In one example, players may be issuing a set of button sequences that cause their avatar to sit down which normally would make their avatar immobile. However, due to a timing window of the button presses, the players may be able to move their avatars around the playfield while seated. Embodiments of the present specification can be used to recreate the exact timing that causes the effect of the button presses with precision, which can in turn be used to remedy the exploit.


Additionally, game developers may be able to test multiple scenarios that could affect a gaming experience. The developers may repeat an exact gaming scenario and vary other parameters to observe their impact.


Moreover, it is common for players who are idle or inactive players for a certain time be kicked from a video game that they were playing. Embodiments of the present specification may be used to avoid being kicked due to inactivity. The player may program a game controller used to play the game to keep the game session live while not having to pay attention to the game controller. This is also useful when a player participates in a game session to observe the match.


Embodiments of the present specification may be adapted for players with disabilities. A player who is unable to interface with a game controller due to a physical disability, may be able to control the game through a remote processor.


Alternatively, any player could remotely control the game controller in accordance with implementations of the present specification. In some embodiments, two players could play a match while they are remotely located from their game controllers.


The above examples are merely illustrative of the many applications of the system of present invention. Although only a few embodiments of the present invention have been described herein, it should be understood that the present invention might be embodied in many other specific forms without departing from the spirit or scope of the invention. Therefore, the present examples and embodiments are to be considered as illustrative and not restrictive, and the invention may be modified within the scope of the appended claims.

Claims
  • 1. A system for synchronizing multiple game controllers, the system comprising: a first game controller adapted to be manually manipulated by a player to interface with a video game;a second game controller adapted to be manually manipulated by a player to interface with the video game;a first programmable microprocessor communicating with the first game controller, wherein the first programmable microprocessor provides first program instructions executable by the first game controller; anda second programmable microprocessor communicating with the second game controller and the first programmable microprocessor, wherein the second programmable microprocessor provides second program instructions executable by the second game controller;wherein the first programmable microprocessor is configured to initiate an execution of the first program instructions and signal the second programmable microprocessor to begin execution of the second program instructions such that execution operation of the first and the second game controllers are synchronized.
  • 2. The system of claim 1 wherein the first and the second programmable microprocessors are respectively connected externally with a cable to the first and the second game controllers.
  • 3. The system of claim 1 wherein the first and the second game controllers are respectively in communication with a first gaming console and a second gaming console.
  • 4. The system of claim 3, wherein the first gaming console and the second gaming console each are a part of a first local network and a second local network, respectively.
  • 5. The system of claim 3, wherein the first gaming console and the second gaming console are in communication with each other over the Internet.
  • 6. The system of claim 1 wherein the first and the second programmable microprocessors are connected to each other via a trigger wire.
  • 7. A method for synchronizing multiple game controllers, the method comprising: initiating a program execution by a first programmable microprocessor, wherein the first programmable microprocessor is in data communication with a first game controller and wherein the first game controller is adapted to be manually manipulated by a player to interface with a video game; andsignaling by the first programmable microprocessor to a second programmable microprocessor to begin the program execution, wherein the second programmable microprocessor is in data communication with a second game controller and the first programmable microprocessor, wherein the program execution is synchronized for the first and the second game controllers, and wherein the second game controller is adapted to be manually manipulated by a player to interface with the video game.
  • 8. The method of claim 7 wherein the method further comprises connecting the first and the second programmable microprocessors externally with a cable to the first and the second game controllers respectively.
  • 9. The method of claim 7 wherein the first and the second game controllers are respectively in communication with a first gaming console and a second gaming console.
  • 10. The method of claim 9, wherein the first gaming console and the second gaming console each are a part of a first local network and a second local network, respectively.
  • 11. The method of claim 7 wherein the first and the second programmable microprocessors are in data communication with each other via a trigger wire.
  • 12. A system for synchronizing multiple game controllers, the system comprising: a primary game controller adapted to be manually manipulated by a player to interface with a video game;at least one secondary game controller adapted to be manually manipulated by a player to interface with the video game;a primary programmable microprocessor communicating with the primary game controller, wherein the primary programmable microprocessor provides primary program instructions executable by the primary game controller; andat least one secondary programmable microprocessor communicating with the at least one secondary game controller and the primary programmable microprocessor, wherein the at least one secondary programmable microprocessor provides respective program instructions executable by the at least one secondary game controller;wherein the primary programmable microprocessor is configured to initiate an execution of the primary program instructions and signal the at least one secondary programmable microprocessor to begin execution of the respective program instructions such that execution operation of the primary and the at least one secondary game controllers are synchronized.
  • 13. The system of claim 12 wherein the primary and the at least one secondary programmable microprocessors are respectively connected externally with a cable to the primary and the at least one secondary game controllers.
  • 14. The system of claim 12 wherein the primary and the at least one secondary game controllers are respectively in communication with a first gaming console and at least one secondary gaming console.
  • 15. The system of claim 14, wherein the first gaming console and the at least one secondary gaming console each are a part of a first local network and at least one secondary local network, respectively.
  • 16. The system of claim 14, wherein the first gaming console and the at least one secondary gaming console are in communication with each other over the Internet.
  • 17. The system of claim 12 wherein the primary and the at least one secondary programmable microprocessors are connected to each other via at least one trigger wire.
US Referenced Citations (286)
Number Name Date Kind
5530796 Wang Jun 1996 A
5561736 Moore Oct 1996 A
5563946 Cooper Oct 1996 A
5649092 Price Jul 1997 A
5671365 Binford Sep 1997 A
5685775 Bakoglu Nov 1997 A
5699518 Held Dec 1997 A
5706507 Schloss Jan 1998 A
5708764 Borrel Jan 1998 A
5736985 Lection Apr 1998 A
5737416 Cooper Apr 1998 A
5745678 Herzberg Apr 1998 A
5745781 Ekanadham Apr 1998 A
5768511 Galvin Jun 1998 A
5768528 Stumm Jun 1998 A
5825877 Dan Oct 1998 A
5835692 Cragun Nov 1998 A
5835727 Wong Nov 1998 A
5878228 Miller Mar 1999 A
5878233 Schloss Mar 1999 A
5883628 Mullaly Mar 1999 A
5900879 Berry May 1999 A
5903266 Berstis May 1999 A
5903271 Bardon et al. May 1999 A
5911045 Leyba Jun 1999 A
5918013 Mighdoll Jun 1999 A
5920325 Morgan Jul 1999 A
5923324 Berry Jul 1999 A
5956709 Xue Sep 1999 A
5969724 Berry Oct 1999 A
5977979 Clough Nov 1999 A
5990888 Blades Nov 1999 A
6014145 Bardon Jan 2000 A
6025839 Schell Feb 2000 A
6059842 Dumarot May 2000 A
6069632 Mullaly May 2000 A
6081270 Berry Jun 2000 A
6081271 Bardon et al. Jun 2000 A
6091410 Lection Jul 2000 A
6094196 Berry Jul 2000 A
6098056 Rusnak Aug 2000 A
6104406 Berry Aug 2000 A
6111581 Berry Aug 2000 A
6134588 Guenthner Oct 2000 A
6144381 Lection Nov 2000 A
6148328 Cuomo Nov 2000 A
6185614 Cuomo Feb 2001 B1
6201881 Masuda Mar 2001 B1
6222551 Schneider Apr 2001 B1
6271842 Bardon Aug 2001 B1
6271843 Lection Aug 2001 B1
6282547 Hirsch Aug 2001 B1
6311206 Malkin Oct 2001 B1
6334141 Varma Dec 2001 B1
6336134 Varma Jan 2002 B1
6337700 Kinoe Jan 2002 B1
6353449 Gregg Mar 2002 B1
6356297 Cheng Mar 2002 B1
6411312 Sheppard Jun 2002 B1
6426757 Smith Jul 2002 B1
6445389 Bossen Sep 2002 B1
6452593 Challener Sep 2002 B1
6462760 Cox, Jr. Oct 2002 B1
6469712 Hilpert, Jr. Oct 2002 B1
6473085 Brock Oct 2002 B1
6499053 Marquette Dec 2002 B1
6505208 Kanevsky Jan 2003 B1
6525731 Suits Feb 2003 B1
6549933 Barrett Apr 2003 B1
6567109 Todd May 2003 B1
6618751 Challenger et al. Sep 2003 B1
RE38375 Herzberg Amir Dec 2003 E
6657617 Paolini Dec 2003 B2
6657642 Bardon Dec 2003 B1
6684255 Martin Jan 2004 B1
6717600 Dutta Apr 2004 B2
6734884 Berry May 2004 B1
6765596 Lection Jul 2004 B2
6781607 Benham Aug 2004 B1
6819669 Rooney Nov 2004 B2
6832239 Kraft Dec 2004 B1
6836480 Basso Dec 2004 B2
6886026 Hanson Apr 2005 B1
6948168 Kuprionas Sep 2005 B1
RE38865 Dumarot Nov 2005 E
6993596 Hinton Jan 2006 B2
7028296 Irfan Apr 2006 B2
7062533 Brown Jun 2006 B2
7143409 Herrero Nov 2006 B2
7209137 Brokenshire et al. Apr 2007 B2
7230616 Taubin Jun 2007 B2
7249123 Elder Jul 2007 B2
7263511 Bodin Aug 2007 B2
7287053 Bodin Oct 2007 B2
7305438 Christensen Dec 2007 B2
7308476 Mannaru Dec 2007 B2
7404149 Fox Jul 2008 B2
7426538 Bodin Sep 2008 B2
7427980 Partridge Sep 2008 B1
7428588 Berstis Sep 2008 B2
7429987 Leah Sep 2008 B2
7436407 Doi Oct 2008 B2
7439975 Hsu Oct 2008 B2
7443393 Shen Oct 2008 B2
7447996 Cox Nov 2008 B1
7467181 McGowan Dec 2008 B2
7475354 Guido Jan 2009 B2
7478127 Creamer Jan 2009 B2
7484012 Hinton Jan 2009 B2
7503007 Goodman Mar 2009 B2
7506264 Polan Mar 2009 B2
7515136 Kanevsky Apr 2009 B1
7525964 Astley Apr 2009 B2
7552177 Kessen Jun 2009 B2
7565650 Bhogal Jul 2009 B2
7571224 Childress Aug 2009 B2
7571389 Broussard Aug 2009 B2
7580888 Ur Aug 2009 B2
7596596 Chen Sep 2009 B2
7640587 Fox Dec 2009 B2
7667701 Leah Feb 2010 B2
7698656 Srivastava Apr 2010 B2
7702784 Berstis Apr 2010 B2
7714867 Doi May 2010 B2
7719532 Schardt May 2010 B2
7719535 Tadokoro May 2010 B2
7734691 Creamer Jun 2010 B2
7737969 Shen Jun 2010 B2
7743095 Goldberg Jun 2010 B2
7747679 Galvin Jun 2010 B2
7765478 Reed Jul 2010 B2
7768514 Pagan Aug 2010 B2
7773087 Fowler Aug 2010 B2
7774407 Daly Aug 2010 B2
7782318 Shearer Aug 2010 B2
7792263 D Amora Sep 2010 B2
7792801 Hamilton, II Sep 2010 B2
7796128 Radzikowski Sep 2010 B2
7808500 Shearer Oct 2010 B2
7814152 McGowan Oct 2010 B2
7827318 Hinton Nov 2010 B2
7843471 Doan Nov 2010 B2
7844663 Boutboul Nov 2010 B2
7847799 Taubin Dec 2010 B2
7856469 Chen Dec 2010 B2
7873485 Castelli Jan 2011 B2
7882222 Dolbier Feb 2011 B2
7882243 Ivory Feb 2011 B2
7884819 Kuesel Feb 2011 B2
7886045 Bates Feb 2011 B2
7890623 Bates Feb 2011 B2
7893936 Shearer Feb 2011 B2
7904829 Fox Mar 2011 B2
7921128 Hamilton, II Apr 2011 B2
7940265 Brown May 2011 B2
7945620 Bou-Ghannam May 2011 B2
7945802 Hamilton, II May 2011 B2
7970837 Lyle Jun 2011 B2
7970840 Cannon Jun 2011 B2
7985138 Acharya Jul 2011 B2
7990387 Hamilton, II Aug 2011 B2
7996164 Hamilton, II Aug 2011 B2
8001161 Finn Aug 2011 B2
8004518 Fowler Aug 2011 B2
8005025 Bodin Aug 2011 B2
8006182 Bates Aug 2011 B2
8013861 Hamilton, II Sep 2011 B2
8018453 Fowler Sep 2011 B2
8018462 Bhogal Sep 2011 B2
8019797 Hamilton, II Sep 2011 B2
8019858 Bauchot Sep 2011 B2
8022948 Garbow Sep 2011 B2
8022950 Brown Sep 2011 B2
8026913 Garbow Sep 2011 B2
8028021 Reisinger Sep 2011 B2
8028022 Brownholtz Sep 2011 B2
8037416 Bates Oct 2011 B2
8041614 Bhogal Oct 2011 B2
8046700 Bates Oct 2011 B2
8051462 Hamilton, II Nov 2011 B2
8055656 Cradick Nov 2011 B2
8056121 Hamilton, II Nov 2011 B2
8057307 Berstis Nov 2011 B2
8062130 Smith Nov 2011 B2
8063905 Brown Nov 2011 B2
8070601 Acharya Dec 2011 B2
8082245 Bates Dec 2011 B2
8085267 Brown Dec 2011 B2
8089481 Shearer Jan 2012 B2
8092288 Theis Jan 2012 B2
8095881 Reisinger Jan 2012 B2
8099338 Betzler Jan 2012 B2
8099668 Garbow Jan 2012 B2
8102334 Brown Jan 2012 B2
8103640 Lo Jan 2012 B2
8103959 Cannon Jan 2012 B2
8105165 Karstens Jan 2012 B2
8108774 Finn Jan 2012 B2
8113959 De Judicibus Feb 2012 B2
8117551 Cheng Feb 2012 B2
8125485 Brown Feb 2012 B2
8127235 Haggar Feb 2012 B2
8127236 Hamilton, II Feb 2012 B2
8128487 Hamilton, II Mar 2012 B2
8131740 Cradick Mar 2012 B2
8132235 Bussani Mar 2012 B2
8134560 Bates Mar 2012 B2
8139060 Brown Mar 2012 B2
8139780 Shearer Mar 2012 B2
8140340 Bhogal Mar 2012 B2
8140620 Creamer Mar 2012 B2
8140978 Betzler Mar 2012 B2
8140982 Hamilton, II Mar 2012 B2
8145676 Bhogal Mar 2012 B2
8145725 Dawson Mar 2012 B2
8149241 Do Apr 2012 B2
8151191 Nicol, II Apr 2012 B2
8156184 Kurata Apr 2012 B2
8165350 Fuhrmann Apr 2012 B2
8171407 Huang May 2012 B2
8171408 Dawson May 2012 B2
8171559 Hamilton, II May 2012 B2
8174541 Greene May 2012 B2
8176421 Dawson May 2012 B2
8176422 Bergman May 2012 B2
8184092 Cox May 2012 B2
8184116 Finn May 2012 B2
8185450 McVey May 2012 B2
8185829 Cannon May 2012 B2
8187067 Hamilton, II May 2012 B2
8199145 Hamilton, II Jun 2012 B2
8203561 Carter Jun 2012 B2
8214335 Hamilton, II Jul 2012 B2
8214433 Dawson Jul 2012 B2
8214750 Hamilton, II Jul 2012 B2
8214751 Dawson Jul 2012 B2
8217953 Comparan Jul 2012 B2
8219616 Dawson Jul 2012 B2
8230045 Kawachiya Jul 2012 B2
8230338 Dugan Jul 2012 B2
8233005 Finn Jul 2012 B2
8234234 Shearer Jul 2012 B2
8234579 Do Jul 2012 B2
8239775 Beverland Aug 2012 B2
8241131 Bhogal Aug 2012 B2
8245241 Hamilton, II Aug 2012 B2
8245283 Dawson Aug 2012 B2
8265253 D Amora Sep 2012 B2
8310497 Comparan Nov 2012 B2
8334871 Hamilton, II Dec 2012 B2
8360886 Karstens Jan 2013 B2
8364804 Childress Jan 2013 B2
8425326 Chudley Apr 2013 B2
8442946 Hamilton, II May 2013 B2
8506372 Chudley Aug 2013 B2
8514249 Hamilton, II Aug 2013 B2
8554841 Kurata Oct 2013 B2
8607142 Bergman Dec 2013 B2
8607356 Hamilton, II Dec 2013 B2
8624903 Hamilton, II Jan 2014 B2
8626836 Dawson Jan 2014 B2
8692835 Hamilton, II Apr 2014 B2
8721412 Chudley May 2014 B2
8827816 Bhogal Sep 2014 B2
8838640 Bates Sep 2014 B2
8849917 Dawson Sep 2014 B2
8911296 Chudley Dec 2014 B2
8992316 Smith Mar 2015 B2
9083654 Dawson Jul 2015 B2
9152914 Haggar Oct 2015 B2
9205328 Bansi Dec 2015 B2
9286731 Hamilton, II Mar 2016 B2
9299080 Dawson Mar 2016 B2
9364746 Chudley Jun 2016 B2
9457281 Lam Oct 2016 B1
9525746 Bates Dec 2016 B2
9583109 Kurata Feb 2017 B2
9682324 Bansi Jun 2017 B2
9764244 Bansi Sep 2017 B2
9789406 Marr Oct 2017 B2
9808722 Kawachiya Nov 2017 B2
20060068917 Snoddy Mar 2006 A1
20090113448 Smith Apr 2009 A1
20140344725 Bates Nov 2014 A1
20160191671 Dawson Jun 2016 A1
20170266552 Paradise Sep 2017 A1
Foreign Referenced Citations (81)
Number Date Country
768367 Mar 2004 AU
2005215048 Oct 2011 AU
2143874 Jun 2000 CA
2292678 Jul 2005 CA
2552135 Jul 2013 CA
1334650 Feb 2002 CN
1202652 Oct 2002 CN
1141641 Mar 2004 CN
1494679 May 2004 CN
1219384 Sep 2005 CN
1307544 Mar 2007 CN
100407675 Jul 2008 CN
100423016 Oct 2008 CN
100557637 Nov 2009 CN
101001678 May 2010 CN
101436242 Dec 2010 CN
101801482 Dec 2014 CN
668583 Aug 1995 EP
0770965 May 1997 EP
0935194 Aug 1999 EP
0627728 Sep 2000 EP
0717337 Aug 2001 EP
0679977 Oct 2002 EP
0679978 Mar 2003 EP
0890924 Sep 2003 EP
1377902 Aug 2004 EP
0813132 Jan 2005 EP
1380133 Mar 2005 EP
1021021 Sep 2005 EP
0930584 Oct 2005 EP
0883087 Aug 2007 EP
1176828 Oct 2007 EP
2076888 Jul 2015 EP
2339938 Oct 2002 GB
2352154 Jul 2003 GB
10177495 Jun 1998 JP
3033956 Apr 2000 JP
3124916 Jan 2001 JP
3177221 Jun 2001 JP
3199231 Aug 2001 JP
321055 Sep 2001 JP
3275935 Feb 2002 JP
3361745 Jan 2003 JP
3368188 Jan 2003 JP
3470955 Sep 2003 JP
3503774 Dec 2003 JP
3575598 Jul 2004 JP
3579823 Jul 2004 JP
3579154 Oct 2004 JP
3701773 Oct 2005 JP
3777161 Mar 2006 JP
3914430 Feb 2007 JP
3942090 Apr 2007 JP
3962361 May 2007 JP
4009235 Sep 2007 JP
4225376 Dec 2008 JP
4653075 Dec 2010 JP
5063698 Aug 2012 JP
5159375 Mar 2013 JP
5352200 Nov 2013 JP
5734566 Jun 2015 JP
117864 Aug 2004 MY
55396 Dec 1998 SG
200836091 Sep 2008 TW
200937926 Sep 2009 TW
201002013 Jan 2010 TW
201009746 Mar 2010 TW
201024997 Jul 2010 TW
201028871 Aug 2010 TW
9744747 Nov 1997 WO
2002073457 Sep 2002 WO
20020087156 Oct 2002 WO
2004086212 Oct 2004 WO
2005079538 Sep 2005 WO
2007101785 Sep 2007 WO
2008037599 Apr 2008 WO
2008074627 Jun 2008 WO
2008095767 Aug 2008 WO
2009037257 Mar 2009 WO
2009104564 Aug 2009 WO
2010096738 Aug 2010 WO
Non-Patent Literature Citations (3)
Entry
Abstract of Abdelzaher et al., “Web Content Adaptation to Improve Server Overload Behavior”, Computer Networks, May 1999, vol. 31, No. 11-16, pp. 1563-1577.
Himonas et al., “A Robust Real-Time Transport Protocol for Multimedia Information Retrieval in an ATM Network”, IEEE International Performance, Computing and Communications Conference, 1997, pp. 177-183.
Abstract of Chen et al., “A Queueing Approach to the Performance Evaluation of DQDB”, IEEE International Phoenix Conference on Computers and Communications, 1992, pp. 636-643.
Related Publications (1)
Number Date Country
20190184282 A1 Jun 2019 US