The disclosure relates to video game systems to allow for secure gaming in a controlled-environment facility.
Video games have become as ubiquitous and profitable as the film industry in recent years. Globally, in 2014 the gaming industry is estimated to have produced 83.6 billion dollars in revenue, dwarfing global film box office receipts by nearly 50 billion dollars. In 2015, 155 million of the U.S. population was found to play at least some form of video games, with ˜80% out of every five households containing at least one device that can be used to play video games, and 51% of all households owning a dedicated game console such as an Xbox or Playstation console. Video games have also been found to have potential therapeutic effects in a variety of environments. Finally, video game spectating, wherein people view either live broadcasts or on-demand replays of video game sessions, has also exploded in the last decade.
In the context of controlled environment facilities, such as correctional facilities, video gaming has huge potential to impact the lives of the tenants within those environments. However, many video games are by nature co-operative or competitive are played between multiple live users. This may cause security issues in controlled environment facilities. Thus, systems and measures must be designed that allow for the beneficial and entertaining aspects of video gaming to be exploited within a controlled environment while addressing the myriad security concerns of that environment.
The accompanying drawings, which are incorporated herein and form a part of the 10 specification, illustrate embodiments of the present disclosure and, together with the description, further serve to explain the principles of the disclosure and to enable a person skilled in the pertinent art to make and use the embodiments.
The present disclosure will be described with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar modules.
The following Detailed Description refers to accompanying drawings to illustrate exemplary embodiments consistent with the disclosure. References in the Detailed Description to “one exemplary embodiment,” “an exemplary embodiment,” “an example exemplary embodiment,” etc., indicate that the exemplary embodiment described may include a particular feature, structure, or characteristic, but every exemplary embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same exemplary embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an exemplary embodiment, it is within the knowledge of those skilled in the relevant art(s) to affect such feature, structure, or characteristic in connection with other exemplary embodiments whether or not explicitly described.
The exemplary embodiments described herein are provided for illustrative purposes, and are not limiting. Other exemplary embodiments are possible, and modifications may be made to the exemplary embodiments within the spirit and scope of the disclosure. Therefore, the Detailed Description is not meant to limit the invention. Rather, the scope of the invention is defined only in accordance with the following claims and their equivalents.
Embodiments may be implemented in hardware (e.g., circuits), firmware, software, or any combination thereof. Embodiments may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), and others. Further, firmware, software, routines, instructions may be described herein as performing certain actions. However, it should be appreciated that such descriptions are merely for convenience and that such actions in fact result from computing devices, processors, controllers, or other devices executing the firmware, software, routines, instructions, etc. Further, any of the implementation variations may be carried out by a general purpose computer, as described below.
For purposes of this discussion, any reference to the term “module” shall be understood to include at least one of software, firmware, and hardware (such as one or more circuit, microchip, or device, or any combination thereof), and any combination thereof. In addition, it will be understood that each module may include one, or more than one, component within an actual device, and each component that forms a part of the described module may function either cooperatively or independently of any other component forming a part of the module. Conversely, multiple modules described herein may represent a single component within an actual device. Further, components within a module may be in a single device or distributed among multiple devices in a wired or wireless manner.
The following detailed description of the exemplary embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge of those skilled in relevant art(s), readily modify and/or adapt for various applications such exemplary embodiments, without undue experimentation, without departing from the spirit and scope of the disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and plurality of equivalents of the exemplary embodiments based upon the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by those skilled in relevant art(s) in light of the teachings herein.
Electronic devices 115A-B may be connected to LAN 140 via wireless access point 120A, and electronic devices 115C-D may be connected to LAN 160 via wireless access point 120B. In embodiments, wireless access points 120A and 120B may be operating on a wireless standard such as IEEE 802.11, or a base station operating on 3G or 4G standards such as Universal Mobile Telecommunication System (UMTS), Global System for Mobile Communications (GSM), Long-term Evolution (LTE), etc. The base station could be a “small-cell” or “femtocell” technology similar to a commercially available base station meant to cover smaller or confined areas. In any case, security parameters and settings available with the equipment allow secure transmission of voice and other data to LANs 140 and 160. Wireless access points 120A and 120B may be connected to LANs 140 and 160 respectively via a wired interface using IEEE 802.3 “Ethernet” connections. Similarly, electronic devices 135A-B may be connected to LAN 140 via a wired connection via a wired interface using IEEE 802.3 “Ethernet” connections. Electronic devices 135C-D may be connected to LAN 160 via a wired connection via a wired interface using IEEE 802.3 “Ethernet” connections.
LANs 140 and 160 serve to connect the various electronic devices within controlled environment facilities 110A and 110B to the video game server 150. Video game server 150 serves the various functions that allow video games to be played on electronic devices 115A-D and 135A-D. In addition, the video game server 150 performs the functions to allow interactive video game playing between the users of electronic devices 115A-D and 135A-D, allowing for cooperative or competitive gameplay between different tenants of controlled environment facilities 110A and 110D. In embodiments, video game server 150 may be implemented on one or many server devices, each of which include processors, memory, long-term storage, and various communicative ports such as IEEE 802.3 Ethernet that allow the servers to interlink with each other and with LANs 140 and 160. In embodiments, video game server 150 may store some or all of the game data for the video games that are deemed suitable for tenants of controlled environment facilities 110A and 110B. In embodiments, some or all of the game data may be transmitted to electronic devices 115A-D and 135A-D during a game session. Different configurations that allow video game server 150 to serve video gaming to controlled environment facilities 110A and 110B will be discussed in greater detail below with respect to
In embodiments, video game server 150 may also be connected to jail management server (JMS) 170. JMS 170 can consist of one or many servers, and hosts a database that stores broad information on tenants of controlled environment facilities 110A and 110B. JMS 170 is maintained by controlled environment facility administration or by the provider of video game server 150. The behavioral history will contain information regarding an tenant's past infractions within the controlled environment facility itself (e.g., altercations with other tenants) and also infractions related to video gaming behavior.
JMS 170 may also include information relating to the financial accounts for tenants of controlled environment facilities 110A and 110B. In embodiments, a tenant of a controlled environment facility may have a financial account associated with the tenant that can be used to purchase items and services from the controlled environment facility. This financial account may be debited when such services and items are purchased. In embodiments, for a tenant that wishes to engage in video gaming, the financial account associated with the tenant may be debited to pay a registration fee associated with creating an account within video game server 150, or purchase games offered by video game server 150.
Network interface 210 serves to connect the other elements of video game server 200 to outside networks. Network interface 210 is responsible for routing packets to and from video game server 200. This may include routing both game data and voice packet data between video game server 200 and LANs, such as LAN 140 and 160 of
In another embodiment, instructions for a video game may execute in local devices at a controlled environment facility, such as devices 115A-D and 135A-D of
User database 230 stores information related to any tenants from controlled environment facilities that have registered with video game server 200 to play video games. In an embodiment, user database 230 is implemented on long-term storage such as a hard disk, storage area network, or network-attached storage. In embodiments, user database 230 may store a user profile for each registered user that has information such as a legal name, behavioral record, criminal record, and “block list” of other users that the user may not interact with. The user profiles stored in user database 230 may also include several other pieces of user information as related to video gaming conventions, which is described in greater detail relative to
Chat server 240 performs functions related to both audio and textual communication between users during a competitive or cooperative game session. In embodiments, chat server 240 may be implemented on one or many servers, each of which include processors, memory, long-term storage, and various communicative ports such as IEEE 802.3 Ethernet that allow the servers to interlink with each other and with LANs such as LAN 140 and 160 of
In embodiments, users who engage in either a competitive or cooperative game session may communicate via microphones that capture audio, such as a microphone on the electronic device they are using to access video game server 200, or a separate microphone that is communicatively coupled to the electronic device. The audio data may be sent as voice over internet protocol (VOIP) data packets that are received and sent by video game server 200 via network interface 210. In another embodiment they may also type text messages to each other that appear on-screen during a game session via a keyboard (either tactile or touch screen) that is included on the electronic device being used to access video game server 200, or a separate keyboard that is communicatively coupled to the electronic device. This text data may also be sent and received as data packets by video game server 200 via network interface 210.
Chat server 240 establishes a chat session by which the users participating in a game session may exchange communication data, either audio or text data as described above. Audio module 242 of chat server 240 may handle audio data received by chat server 240, while text module 244 may handle text data received by chat server 240. In an embodiment, audio module 242 receives audio data from different users engaging in a shared game session (either cooperative or competitive) and ensures that the audio data received is mixed properly and sent to other users that are permitted to receive the audio. The mixing of the audio data is required so that audio communication between different users is received in a timely fashion so that users are able to engage in intelligible conversation during a game session. Audio module 242 also ensures that audio data only be sent to users who are permitted to receive the audio information within the context of the game session. For example, a user may only wish to communicate with members of his own team during a team competition style of game (e.g. a football video game) to plan out strategy during a game session, or may wish to communicate with all users in the game session to engage in friendly or competitive banter.
Game stats database 250 stores information related to a video game served by video game server 200 that may be appropriate for public viewing. For example, high score data for either individuals or teams may be made available publically to users of a particular video game, or even to any users of the services offered by video game server 200. This may encourage competition and camaraderie between different tenants of the controlled environment facilities.
Video storage 260 stores videos of game sessions that may be played back by users of video game server 200. Video of a particular user's screen during a game session may be stored on video storage 260 which may then be played back by a user of video game server 200 for entertainment purposes. In an embodiment, user database 230 is implemented on long-term storage such as a hard disk, storage area network, or network-attached storage. In an embodiment, a user of video game server 200 may search through a library of videos to view playback of another user's game session, subject to security constraints such as the user not being on the block list of the other user, or vice versa. In addition, video storage 260 may store videos that may be investigated for potential security concerns, as will be described in more detail below.
Validation server 270 handles the validation steps required before a game session is initiated by video game server 200. In an embodiment, validation server 270 stores fingerprint samples and voice print samples of each user registered with video game server 200, so that when a user attempts to access the system, various comparison test can be performed to determine that the user has properly identified himself and is allowed to access video game server 200 to initiate a game session. Validation server 270 may also handle PIN inputs by the inmate.
Game repository 280 stores game data for any game offered by video game server 200. In an embodiment, user database 230 is implemented on long-term storage such as a hard disk, storage area network, or network-attached storage. In an embodiment, game data for a particular video game may be stored in game repository 280 and loaded onto application server 200 so that a user of video game server 200 may play the video game. In another embodiment, upon purchase of a video game by a user of video game server 200, game repository 280 sends the game data via network interface 210 to an electronic device being used by the user to access video game server 200. The game data for the video game is then permanently stored on the electronic device. When a user logs into video game server 200 using the electronic device, the video game is then made accessible to the user of the electronic device. If the user logs into the video game server 200 using a different electronic device, game repository 280 may again send the game data for the video game to the different electronic device.
Security module 290 handles detection of potential security issues during game sessions handled by video game server 200. In embodiments, users of video game server 200 may engage in illicit communications using a game session as a cover. For example, during a game session involving multiple users in either cooperative or competitive games, users may communicate via audio or text communications as described above. Users may communicate about illicit activity during a game session rather than about happenings in the game session. Furthermore, users may be able to alter the environment of a game session such that images may appear on screen that may also signal some kind of illicit communication.
In order to monitor potential for illicit activity, security module 290 may receive the audio packets, such as VoIP packets, or text data packets, as described above, and monitor their contents for potential security concerns. In embodiments, security module 290 receives packets from audio module 242 or text module 244 from within chat server 240. In embodiments, security module may monitor text data packets to see if key words or phrases are used that may signal some kind of illicit activity. In another embodiment, security module 290 uses speech recognition techniques to monitor audio decoded from audio packets, such as VoIP packets, for key words spoken by a user within the game session. In another embodiment, security module 290 uses speaker recognition techniques to inspect audio decoded from audio packets, such as VoIP packets, to determine if a particular user within the game session represents a voice that is not associated with the user, or if multiple voices are present within the audio packets received from a single user.
During the game session, session data 312 may be sent to video game server 320 via LAN 310. In embodiments, session data 312 may include video of the game session to be stored in video storage within video game server 320, such as video storage 326. Session data 312 may include high score information or timing information in the case of a speed run to be stored in game stats database 322.
Video game server 350 may then start a game session that is joined by the users of electronic devices 332A and 332B via application server 354. As was discussed above, application server 354 hosts a game session and is responsible for synchronizing the different session data such as action data, user positions, and other metadata to ensure that each user within the game session has an accurate and fair representation of the game session at any given time. Game data 335A and 335B are stored locally in electronic devices 332A and 332B.
During the game session, electronic devices 332A and 332B may send and receive data from video game server 350. In particular, electronic devices may send and receive session data 342, 344, 346, and 348. Session data 342, 344, 346 and 348 represents action data, user positions, and other metadata that represent the actions and statuses of the user of electronic devices 332A and 332B during a game session. For example, in a game involving a world map such as a strategy game or a role-playing game, session data 342, 344, 346, and 348 may represent the position of the users of devices 332A and 332B within the world map. If a user performs a particular action, such as attacking the other user within the game session, session data 342, 344, 346, and 348 may also reflect that this action is taken. As was discussed above, application server 354 is responsible for ensuring that all of this data is synchronized properly such that the various metadata represented by session data 342, 344, 346, and 348 is giving a fair representation of each user's status while the game session is ongoing.
As with the configuration illustrated in
In embodiments, the users of electronic devices 332A and 332B may also communicate with each other to coordinate their gameplay in a cooperative game, or to have friendly banter during a competitive game. Thus, electronic devices 332A and 332B may also send and receive a stream of communication data packets 341, 343, 345, and 347. In embodiments, communication data 341, 343, 345, and 347 may represent both audio data, represented by VoIP packets, and text data, represented by regular data packets. To handle these packets, video game server 350 employs chat server 356 to synchronize communication data packets 341, 343, 345, and 347 such that they are delivered in a timely and properly ordered fashion so that the users of electronic devices 332A and 332B are able to engage in intelligible conversation during a game session. In embodiments, chat server 386 may mix the audio derived from communication data packets and form mixed audio communication data packets. In such cases, communication data packets sent to electronic devices from video game server 350, such as communication data packets 343 and 347, may be mixed audio communication data packets reflecting the mixed audio of multiple users within the game session.
Because users may attempt to use the game session as a façade to engage in illicit conversations, security module 354 within video game server 350 may employ several algorithms to detect potential issues with the conversation between inmates. In an embodiment security module 354 may monitor text data packets to see if keywords or phrases are used that may signal some kind of illicit activity. In another embodiment, security module 354 uses speech recognition techniques to monitor audio decoded from audio packets, such as VoIP packets, for key words spoken by a user within the game session. In another embodiment, security module 354 uses speaker recognition techniques to inspect audio decoded from audio packets, such as VoIP packets, to determine if a particular user within the game session represents a voice that is not associated with the user, or if multiple voices are present within the audio packets received from a single user.
Video game server 380 may then start a game session that is joined by the users of electronic devices 362A and 362B via application server 389. As was discussed above, application server 389 hosts a game session and is responsible for synchronizing the different session data such as action data, user positions, and other metadata to ensure that each user within the game session has an accurate and fair representation of the game session at any given time. In an embodiment, application server 389 is responsible for sending game data stored in game repository 388 to electronic device 362A and 362B.
During the game session, electronic devices 362A and 362B may send and receive data from video game server 380. In particular, electronic devices may send and receive session data 372, 374, 376, and 378. Session data 372, 374, 376, and 378 represents action data, user positions, and other metadata that represent the actions and statuses of the user of electronic devices 362A and 362B during a game session. For example, in a game involving a world map such as a strategy game or a role-playing game, session data 372, 374, 376, and 378 may represent the position of the users of devices 362A and 362B within the world map. If a user performs a particular action, such as attacking the other user within the game session, session data 372, 374, 376, and 378 may also reflect that this action is taken. As was discussed above, application server 389 is responsible for ensuring that all of this data is synchronized properly such that the various metadata represented by session data 372, 374, 376, and 378 is giving a fair representation of each user's status while the game session is ongoing.
In embodiments, session data 372, 374, 376, and 378 may also include game data stored in game repository 388. Because in this configuration game data is not stored locally in electronic device 362A and 362B, application server 389 may also send game data regularly to electronic device 362A and 362B in addition to action data, user position, and other metadata.
As with the configuration illustrated in
In embodiments, the users of electronic devices 362A and 362B may also communicate with each other to coordinate their gameplay in a cooperative game, or to have friendly banter during a competitive game. Thus, electronic devices 362A and 362B may also send and receive a stream of communication data packets 371, 373, 375, and 377. In embodiments, communication data 371, 373, 375, and 377 may represent both audio data, represented by VoIP packets, and text data, represented by regular data packets. To handle these packets, video game server 380 employs chat server 356 to synchronize communication data packets 371, 373, 375, and 377 such that they are delivered in a timely and properly ordered fashion so that the users of electronic devices 362A and 362B are able to engage in intelligible conversation during a game session. In embodiments, chat server 386 may mix the audio derived from communication data packets and form mixed audio communication data packets. In such cases, communication data packets sent to electronic devices 362A and 362B from video game server 380, such as communication data packets 373 and 377, may be mixed audio communication data packets reflecting the mixed audio of multiple users within the game session.
Because users may attempt to use the game session as a façade to engage in illicit conversations, security module 384 within video game server 380 may employ several algorithms to detect potential issues with the conversation between inmates. In an embodiment security module 384 may monitor text data packets to see if keywords or phrases are used that may signal some kind of illicit activity. In another embodiment, security module 384 uses speech recognition techniques to monitor audio decoded from audio packets, such as VoIP packets, for key words spoken by a user within the game session. In another embodiment, security module 384 uses speaker recognition techniques to inspect audio decoded from audio packets, such as VoIP packets, to determine if a particular user within the game session represents a voice that is not associated with the user, or if multiple voices are present within the audio packets received from a single user.
Legal name 402 may be the legal name of the individual registered with the video game server. This name does not typically appear anywhere during a game session, and is only used for record keeping purposes. This allows the video game system to link with a JMS, such as JMS 170, to keep record of the activities of the user associated with the user profile. User handle 404 is the main identifying information by which users may identify each other and themselves during and prior to a game session. User handle 404 is used in game. In embodiments, during a game session, user handle 404 may appear on the screen of the user's electronic device when accessing the video game server, and on the screens of other users within the game session at various points during the game session. Prior to the game session beginning, this user handle may also appear on the screen of other users when selecting teams or competitors prior to a multi-player session beginning. This handle may also be associated with a high score list, where a high score in a game may be listed with the user handle that attained that high score in order to foster a competitive atmosphere for other users playing that game.
Reputation rating 406 is a rating that reflects the conduct of the user during game sessions. A user that is seen as a “poor sport”, who is verbally abusive, or may otherwise be thought to be cheating may receive a poorer rating than another more well-behaved user. This rating may be based on the ratings given to the user by other users that have played alongside the user during a game session, and may also be changed by the administrator of a controlled environment facility in which the user resides or by the administrator of the video game server itself. In embodiments, reputation rating 406 may be used by the video game server to determine if a user's access to the video game server or to particular games which the user has purchased should be restricted. In embodiments, reputation rating 406 may be viewed by other users in the system prior to initiating a game session with that user. In embodiments, the rating may be a verbal rating ranging from “poor” to “great”, or a numerical value from 1 to 10, or various other common reputation rating schemes.
Purchased game list 410 is a list of games which the user has purchased, and therefore may be permitted to play during a game session. In embodiments, this list will add an entry, such as video games 411-414, whenever a user purchases a video game. This list may be used by a validation server within the video game server, such as validation server of 270, to determine if a user may initiate a game session for a particular game.
Block list 420 is a list of user handles with which the user associated with handle 404 may not interact. In embodiments, this list may be changed by administrators of the controlled environment facility, an administrator of the video game server, or an authorized third party such as a law enforcement official. In embodiments, block list 420 may be based on a similar block list within a JMS, such as JMS 170 of
High risk list 430 is a list of user handles with which the user associated with handle 404 may interact, but is considered to be a high risk association. Thus, high risk list 430 is similar to block list 420 in that it flags user handles of users that may pose a security risk, but the security risk is not considered high enough to deny the initiation of a game session outright. In embodiments, this list may be changed by administrators of the controlled environment facility, an administrator of the video game server, or an authorized third party such as a law enforcement official. In embodiments, high risk list 420 may be based on a similar high risk list within a JMS, such as JMS 170 of
Each team may have a group handle, such as group handles 512, 522, 532, and 542, which are used to identify the team. In embodiments, during a game session, group handles 512, 522, 532, and 542, may appear on the screen of a user's electronic device when accessing the video game server, and on the screens of other users within the game session at various points during the game session. Prior to the game session beginning, this group handles 512, 522, 532, and 542, may also appear on the screen of other users when selecting teams or competitors prior to a multi-player session beginning. Each team may also have a record, such as records 514, 524, 534, and 544, which are associated with the team's performance in past game sessions. Each record 514, 524, 534, and 544, may have a win, loss and draw number associated with the group appearing in that order. For example, the team associated with team profile 410 may have a record of “15-5-2”, indicating 15 wins, 5 losses, and 2 draws in 22 prior game sessions of video game 505.
Based on records 514, 524, 534, and 544, each team may also have a rank 516, 526, 536 and 546. This rank reflects the relative performance of the respective team relative to the other teams for video game 505. In
Finally, each team has a member list, such as member lists 518, 528, 538, and 548, consisting of user handles 518A-D, 528A-D, 538A-D, and 548A-D respectively. These user handles reflect the members of each team. Thus, during a game session, user handles 518A-D may be considered part of the same team and may work cooperatively within the game session to defeat the members of the other team. In embodiments, the user handles of each team may be associated with their own respective block lists, such as block list 420 of
In step 602, a game session request is received from a requesting user by the video game server. The game session request is received by a validation server within the video game server, such as validation server 270 of
If the video game server does determine that the requesting user may play the game, then in step 610, the game data is loaded to the client. Depending on the video game configuration, such as those configurations depicted in
In step 615, the video game server determines if the game session request received in step 602 also includes one or more other user handles with which the requesting user wishes to initiate a game session. If the request includes no such other user handles, then in step 617, the game session may be initiated and the requesting user may begin playing the game.
In embodiments, a video of the game session may be recorded by the electronic device. The electronic device may then send the video to the application server at the conclusion of the game session, at which point the application server may store the video in video storage within the video game server, such as video storage 260 of
If other user handles do exist within the request, then in step 620 the video game server checks to determine if any of the user handles reflect users that the requesting user is not allowed to interact with. In embodiments, a validation server of the video game server, such as validation server 270 of
When the other user receives the request via another electronic device, the other user may accept the request. At this point, the game session may be initiated by the video game server. An application server within the video game server, such as application server 220 of
In embodiments, the application server may record a video of the game session, and then send the video to video storage of the video game server, such as video storage 260 of
In step 712, the video game server receives a challenge request from a requesting user that indicates a video game and a user handle which the requesting user wishes to challenge. In another embodiment, the requesting user may also associate the challenge request with a time limit which requires the challenged user to accept the challenge within a given time frame. If the time frame expires, then the challenge is rescinded. The video game server may vet the challenge request in step 714 to determine that the requesting user and the challenged user are allowed to engage each other in similar fashion to step 620 of
In step 730, the challenge request is sent to the challenged user. If the challenged user is not logged into the video game server at the time the challenge request is received, the challenge request may be stored in a user profile database, such as user profile database 230 of
In step 735, the video game server continuously monitors the challenge request to determine if the challenge request has expired. If the time limit has not expired, or if no time limit is associated with the challenge request, then video game server does not determine that the challenge request has expired. However, if the challenge request has expired, then in step 740 the challenge request is rescinded and the challenged user is not notified of the pending challenge request upon their accessing the video game server. In the case of tournament-style play, to be described below, the challenged user's place in a competition may also be forfeit if the challenged user fails to respond to a challenge request.
In embodiments, a video game server may also host a tournament competition of a particular video game, in which multiple users of the video game system may enter a competition to compete with each other. Video game server may schedule a series of match ups between the multiple users that enter the competition, and the users that are defeated in each match up are eliminated from the competition while the victorious user advances in the competition until all but one user remains in the tournament. In embodiments, the competition may also be a team competition in which different teams, such as those depicted in
In embodiments, the video game server performs steps 714-740 of
In step 910, a game session is initiated. In embodiments, the video game server may initiate a game session between two or more users as described above relative to flowcharts 600 and 700 of
In step 922, the video game server begins monitoring the chat session to if any illicit activity may be occurring within the conversation. A security module within the video game server, such as security module 290 of
If, in step 925, an infraction is detected by the security module, a corrective action may take place in step 927. In embodiments, the corrective action taken may be the termination of the game session. In another embodiment, conversation between the users may be muted but the game session may be allowed to continue. In another embodiment, a verbal or visual warning may appear on the screens of the electronic devices of the users that an infraction has occurred. In another embodiment, the video game server may then report to a JMS, such as JMS 170 of
Video game server 1020 may receive a request to watch a video of a game session from a requesting user via electronic device 1002A and 1002B. A validation server on video game server, such as validation server 270 of
In embodiments, once the validation server has confirmed that a requesting user of electronic device 1002A or 1002B is permitted to watch the requested video, video game server 1020 may send video to the user of electronic device 1002A as video data packets 1012A and 1013A, and to the user of electronic device 1002B as video data packets 1012B and 1013B. Electronic device 1002A may take video data packets 1012A and 1013A and convert them to a video using existing standards such as the Moving Picture Experts Group 3 (MPEG3) standard. Likewise, electronic device 1002B may take video data packets 1012B and 1013B and convert them to a video using existing standards such as the Moving Picture Experts Group 3 (MPEG3) standard.
A chat server within video game server 1020, such as chat server 240 of
In order to monitor potential for illicit activity, security module 1024 within video game server 1020 may receive the audio packets, such as VoIP packets, or text data packets and monitor their contents for potential security concerns. In embodiments, security module 1024 receives packets 1016A, 1017A, 1016B, and 1017B. In embodiments, security module may monitor text data packets to see if key words or phrases are used that may signal some kind of illicit activity. In another embodiment, security module 1024 uses speech recognition techniques to monitor audio decoded from audio packets, such as VoIP packets, for key words spoken by a user within the game session. In another embodiment, security module 1024 uses speaker recognition techniques to inspect audio decoded from audio packets, such as VoIP packets, to determine if a particular user within the game session represents a voice that is not associated with the user, or if multiple voices are present within the audio packets received from a single user.
In step 1102, a video game server is accessed by a requesting user via an electronic device. The requesting user, via the electronic device, may provide a user handle, such as user handle 404 of
In step 1104, the requesting user may request a video of a game session from the video game server via the electronic device. In an embodiment, the video may be a video of a previously played and completed game session. In another embodiment, the video may be live streaming video of an ongoing game session.
In step 1110, the validation server within the video game server may determine if the requesting user is permitted to view the video. In embodiments, the validation server within the video game server may determine if any user that appears within the video of the game session—in other words, any user that was/is playing within the game session of the video being requested—appears on the block list of the requesting user, such as block list 404 of
In step 1115, if any of the users within the video of the game session is on the requesting user's block list, then in step 1115 the request is determined to be disallowed. In an embodiment, a corrective action may be taken in step 1117 against the requesting user for making the video request. In step 1118, the request for the video may be rejected.
If, in step 1115, the request is determined to be allowable because no users either within the game session of the video being requested or, in the case of a live game session video, no users already viewing the video of the live game session are determined to be on the block list of the requesting user, the request may be accepted in step 1120. At this point, video game server may begin sending video as video packets to the electronic device of the requesting user.
In another embodiment, in step 1115, the request for a video of a live game session may still be allowed even if other users already watching the live game session are on the block list of the requested user. As was described above, the concern in this scenario is that spectators of the live game session may communicate with each other via audio or text chat, and some of those spectators may appear on the block lists of other spectators. In this scenario, audio or text chat may be disabled for the requesting user by the video game server. In another embodiment, audio and text chat may be allowed for the requesting user, but audio packets and text chat packets from a user on the requesting user's block list may simply be filtered such that no communication from the user on the requesting user's block list is allowed to reach the requesting user. Likewise, any audio and text chat packets from the requesting user may be filtered such that no communication from the requesting user is allowed to reach the user on the requesting user's block list.
It will be apparent to persons skilled in the relevant art(s) that various modules and features of the present disclosure, as described herein, can be implemented in hardware using analog and/or digital circuits, in software, through the execution of computer instructions by one or more general purpose or special-purpose processors, or as a combination of hardware and software.
Embodiments of the present disclosure can be implemented in hardware, or as a combination of software and hardware. Consequently, embodiments of the disclosure may be implemented in the environment of a computer system or other processing system. For example, video game server 200 depicted in
Computer system 1200 also includes a main memory 1208, preferably random access memory (RAM), and may also include a secondary memory 1230. Secondary memory 1230 may include, for example, a hard disk drive 1212 and/or a removable storage drive 1214, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, or the like. Removable storage drive 1214 reads from and/or writes to a removable storage unit 1218 in a well-known manner. Removable storage unit 1218 represents a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to by removable storage drive 1214. As will be appreciated by persons skilled in the relevant art(s), removable storage unit 1218 includes a computer usable storage medium having stored therein computer software and/or data.
In alternative implementations, secondary memory 1230 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 1200. Such means may include, for example, a removable storage unit 1222 and an interface 1220. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, a thumb drive and USB port, and other removable storage units 1222 and interfaces 1220 which allow software and data to be transferred from removable storage unit 1222 to computer system 1200.
Computer system 1200 may also include a communications interface 1224. Communications interface 1224 allows software and data to be transferred between computer system 1200 and external devices. Examples of communications interface 1224 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface 1224 are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 1224. These signals are provided to communications interface 1224 via a communications path 1226. Communications path 1226 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
As used herein, the terms “computer program medium” and “computer readable medium” are used to generally refer to tangible storage media such as removable storage units 1218 and 1222 or a hard disk installed in hard disk drive 1210. These computer program products are means for providing software to computer system 1200.
Computer programs (also called computer control logic) are stored in main memory 1208 and/or secondary memory 1230. Computer programs may also be received via communications interface 1224. Such computer programs, when executed, enable the computer system 1200 to implement the present disclosure as discussed herein. In particular, the computer programs, when executed, enable processor 1204 to implement the processes of the present disclosure, such as any of the methods described herein. Accordingly, such computer programs represent controllers of the computer system 1200. Where the disclosure is implemented using software, the software may be stored in a computer program product and loaded into computer system 1200 using removable storage drive 1214, interface 1220, or communications interface 1224.
In another embodiment, features of the disclosure are implemented primarily in hardware using, for example, hardware components such as application-specific integrated circuits (ASICs) and gate arrays. Implementation of a hardware state machine so as to perform the functions described herein will also be apparent to persons skilled in the relevant art(s).
This application is a continuation of U.S. patent application Ser. No. 15/674,344, filed on Aug. 10, 2017, which is incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5757417 | Aras et al. | May 1998 | A |
5796948 | Cohen | Aug 1998 | A |
6330537 | Davis et al. | Dec 2001 | B1 |
6684240 | Goddard | Jan 2004 | B1 |
6734900 | Mayhew | May 2004 | B2 |
6740802 | Browne, Jr. | May 2004 | B1 |
6810527 | Conrad et al. | Oct 2004 | B1 |
6829582 | Barsness | Dec 2004 | B1 |
6879828 | Virtanen et al. | Apr 2005 | B2 |
7027659 | Thomas | Apr 2006 | B1 |
7752274 | Pagan | Jul 2010 | B2 |
7818392 | Martino et al. | Oct 2010 | B1 |
7911513 | Garrison et al. | Mar 2011 | B2 |
7973230 | Mahowald | Jul 2011 | B2 |
8005913 | Carlander | Aug 2011 | B1 |
8358837 | Shakya et al. | Jan 2013 | B2 |
8380725 | Borst et al. | Feb 2013 | B2 |
8537981 | Cyriac et al. | Sep 2013 | B1 |
8548447 | Kirchhoff | Oct 2013 | B1 |
8700409 | Persson et al. | Apr 2014 | B1 |
8832374 | Schaefers | Sep 2014 | B1 |
8838719 | Faulk | Sep 2014 | B1 |
8917848 | Torgersrud et al. | Dec 2014 | B2 |
8929525 | Edwards | Jan 2015 | B1 |
9083850 | Higgs | Jul 2015 | B1 |
9106789 | Shipman, Jr. et al. | Aug 2015 | B1 |
9268734 | Ward et al. | Feb 2016 | B1 |
9282087 | Fredinburg et al. | Mar 2016 | B1 |
9332014 | Keiser et al. | May 2016 | B2 |
9485110 | Kim et al. | Nov 2016 | B2 |
9674198 | Hodge | Jun 2017 | B1 |
9930042 | Hodge | Mar 2018 | B2 |
11213754 | Hodge | Jan 2022 | B2 |
11394754 | Evans | Jul 2022 | B2 |
20010001159 | Ford | May 2001 | A1 |
20020147782 | Dimitrova et al. | Oct 2002 | A1 |
20030126267 | Gutta et al. | Jul 2003 | A1 |
20030192044 | Huntsman | Oct 2003 | A1 |
20040006767 | Robson et al. | Jan 2004 | A1 |
20040172652 | Fisk et al. | Sep 2004 | A1 |
20050022229 | Gabriel et al. | Jan 2005 | A1 |
20050071481 | Danieli | Mar 2005 | A1 |
20050075885 | Danieli | Apr 2005 | A1 |
20050268317 | Cormack et al. | Dec 2005 | A1 |
20060031870 | Jarman et al. | Feb 2006 | A1 |
20060075015 | Wu et al. | Apr 2006 | A1 |
20060080702 | Diez et al. | Apr 2006 | A1 |
20060081702 | Nandakumar | Apr 2006 | A1 |
20060095262 | Danieli | May 2006 | A1 |
20060126964 | Chen | Jun 2006 | A1 |
20060218611 | Son et al. | Sep 2006 | A1 |
20060280177 | Gupta et al. | Dec 2006 | A1 |
20070038567 | Allaire et al. | Feb 2007 | A1 |
20070157281 | Ellis et al. | Jul 2007 | A1 |
20080059991 | Romano | Mar 2008 | A1 |
20080102856 | Fortescue | May 2008 | A1 |
20080104227 | Birnie | May 2008 | A1 |
20080134282 | Fridman et al. | Jun 2008 | A1 |
20080171600 | Ostergren | Jul 2008 | A1 |
20080184284 | O'Hern | Jul 2008 | A1 |
20080201158 | Johnson et al. | Aug 2008 | A1 |
20080222717 | Rothstein | Sep 2008 | A1 |
20080250484 | Chong et al. | Oct 2008 | A1 |
20080268947 | Fyock | Oct 2008 | A1 |
20090013052 | Robarts et al. | Jan 2009 | A1 |
20090013359 | Butler et al. | Jan 2009 | A1 |
20090089828 | Carlsgaard et al. | Apr 2009 | A1 |
20090228557 | Ganz et al. | Sep 2009 | A1 |
20090234784 | Buriano et al. | Sep 2009 | A1 |
20090240586 | Ramer et al. | Sep 2009 | A1 |
20090254499 | Deyo | Oct 2009 | A1 |
20090264202 | Chen | Oct 2009 | A1 |
20090313546 | Katpelly et al. | Dec 2009 | A1 |
20090328093 | Cansler et al. | Dec 2009 | A1 |
20100094878 | Soroca et al. | Apr 2010 | A1 |
20100138455 | Alewine | Jun 2010 | A1 |
20110004831 | Steinberg et al. | Jan 2011 | A1 |
20110065419 | Book et al. | Mar 2011 | A1 |
20110093473 | Basso et al. | Apr 2011 | A1 |
20110153328 | Lim et al. | Jun 2011 | A1 |
20110237221 | Prakash et al. | Sep 2011 | A1 |
20110249073 | Cranfill et al. | Oct 2011 | A1 |
20110251901 | Kwon et al. | Oct 2011 | A1 |
20110307548 | Fisk et al. | Dec 2011 | A1 |
20120122438 | Renou | May 2012 | A1 |
20120201362 | Crossan et al. | Aug 2012 | A1 |
20120239763 | Musil | Sep 2012 | A1 |
20120257583 | Keiser et al. | Oct 2012 | A1 |
20120262271 | Torgersrud et al. | Oct 2012 | A1 |
20120283023 | O'Kelley, II | Nov 2012 | A1 |
20120324244 | Zipperer et al. | Dec 2012 | A1 |
20130090917 | Chalmers et al. | Apr 2013 | A1 |
20130110565 | Means, Jr. | May 2013 | A1 |
20130179491 | Bennett | Jul 2013 | A1 |
20130179949 | Shapiro | Jul 2013 | A1 |
20130252575 | Ewell et al. | Sep 2013 | A1 |
20130252737 | Mescon | Sep 2013 | A1 |
20140029615 | Baldwin et al. | Jan 2014 | A1 |
20140033230 | Hanna et al. | Jan 2014 | A1 |
20140196078 | Ow et al. | Jul 2014 | A1 |
20140215391 | Little et al. | Jul 2014 | A1 |
20140218466 | Bloms et al. | Aug 2014 | A1 |
20140229866 | Gottlieb | Aug 2014 | A1 |
20140253663 | Edwards | Sep 2014 | A1 |
20140267547 | Torgersrud et al. | Sep 2014 | A1 |
20140270126 | Torgersrud et al. | Sep 2014 | A1 |
20140273929 | Torgersrud | Sep 2014 | A1 |
20140279789 | Torgersrud | Sep 2014 | A1 |
20140280524 | Paradise et al. | Sep 2014 | A1 |
20140280559 | Torgersrud | Sep 2014 | A1 |
20140280632 | Torgersrud et al. | Sep 2014 | A1 |
20140282898 | Torgersrud | Sep 2014 | A1 |
20140325561 | Allen et al. | Oct 2014 | A1 |
20140344956 | Garben | Nov 2014 | A1 |
20140364201 | Tanibuchi | Dec 2014 | A1 |
20150025882 | Park | Jan 2015 | A1 |
20150050910 | Torgersrud | Feb 2015 | A1 |
20150070516 | Shoemake | Mar 2015 | A1 |
20150188925 | Gupta | Jul 2015 | A1 |
20150215254 | Bennett | Jul 2015 | A1 |
20150301703 | Steinberg et al. | Oct 2015 | A1 |
20150339461 | Min | Nov 2015 | A1 |
20160192033 | Kitahara et al. | Jun 2016 | A1 |
20160191484 | Gongaware | Jul 2016 | A1 |
20160243450 | Cotter | Aug 2016 | A1 |
20160246791 | Long et al. | Aug 2016 | A1 |
20160248766 | Tembey et al. | Aug 2016 | A1 |
20160300388 | Stafford et al. | Oct 2016 | A1 |
20170064384 | Sahoo et al. | Mar 2017 | A1 |
20170262635 | Strauss et al. | Sep 2017 | A1 |
20170272435 | Hodge | Sep 2017 | A1 |
20170272440 | Hodge | Sep 2017 | A1 |
20190046883 | Hodge | Feb 2019 | A1 |
20190069029 | Petty | Feb 2019 | A1 |
Number | Date | Country |
---|---|---|
WO 2013096944 | Jun 2013 | WO |
Entry |
---|
Copyright Registration Record for “iPhone: The Missing Manual,” 6th ed., 2012; 1 page. |
DSKeye Gigabit Product Brief, Bitec Ltd. 2007; 2 pages. |
Excerpt from Merriam-Webster's Collegiate Dictionary, Tenth Edition, 2002; p. 841. |
Excerpt from The American Heritage Dictionary, 5th Ed. (2016); p. 679. |
Excerpts from “iPhone: The Missing Manual,” 6th ed., Sebastopol, CA: O'Reilly Media, 2012; 556 (submitted in 10 parts). |
File History of U.S. Pat. No. 9,083,850, U.S. Appl. No. 13/931,857, filed Jul. 14, 2015. |
Gotsopoulos et al., “Remote Controlled DSP Based Image Capturing and Processing System Featuring Two-Axis Motion,” Proceedings of the 4th European DSP in Education and Research Conference, Dec. 1-2, 2010; pp. 32-36. |
International Search Report and Written Opinion directed to International Patent Appl. No. PCT/US2017/031317, mailed Aug. 2, 2017; 16 pages. |
International Search Report and Written Opinion directed to International Patent Application No. PCT/US2017/022163, mailed Jun. 9, 2017; 12 pages. |
Prosecution History of U.S. Pat. No. 8,929,525, U.S. Appl. No. 14/323,582, filed Jul. 3, 2014. |
U.S. Appl. No. 61/801,861, filed Mar. 15, 2013; 77 pages. |
OpenSong Getting Started. Online, retrieved from www.archive.org, Archive date: 2016. |
ScoreCioud, Online, retrieved from www.archive.org, Archive date: 2016. |
Censorship of Music (Wikipedia), retrieved from www.archive.org, Archive date: 2016. |
International Search Report and Written Opinion directed to International Patent Application No. PCT/US2018/046017, mailed Nov. 5, 2018; 10 pages. |
Number | Date | Country | |
---|---|---|---|
20220184501 A1 | Jun 2022 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15674344 | Aug 2017 | US |
Child | 17567521 | US |