Interactive Sports Training System
20240181323 ยท 2024-06-06
Assignee
Inventors
- Glen David Meloy (Salado, TX, US)
- Jason Gossiaux (Leander, TX, US)
- Ryland Reed (Keller, TX, US)
- Justin Dean Pendleton (The Colony, TX, US)
- Alfredo Carnera (Coppell, TX, US)
- Danny Ohman (Flower Mound, TX, US)
Cpc classification
A63B2220/833
HUMAN NECESSITIES
A63B71/03
HUMAN NECESSITIES
A63B2225/50
HUMAN NECESSITIES
A63B69/0053
HUMAN NECESSITIES
A63B71/0622
HUMAN NECESSITIES
International classification
Abstract
A method, system, and apparatus, including a program encoded on computer-readable medium, for interactive training or entertainment. Each of multiple platform components interconnects with at least one other platform component and includes visual indicators, a detector substantially adjacent to each indicator for detecting a proximate game accessory, and a detector microcontroller. A main control unit receives data frames from the detectors and determines a quantity of detectors in an interconnected set of platform components based on data contained in the data frames. A memory stores a plurality of routines. The main control unit is adapted to execute a selected routine based at least in part on the determined quantity of detectors. The selected routine defines a sequence of activation of the indicators in the interconnected set of platform components.
Claims
1.-20. (canceled)
21. An interactive training apparatus comprising: a plurality of platform components, each platform component configured to interconnect with at least one of the other platform components to form a planar playing surface of the interactive training apparatus, wherein each of the platform components comprises a plurality of interactive targets, each interactive target comprising: one or more visual indicators; and a detector configured to detect a presence of a game accessory in proximity to the detector; a main control unit; and one or more memory units storing instructions that, when executed by the main control unit, cause the main control unit to perform operations comprising: receiving data frames from the interactive targets of the plurality of platform components; determining a quantity of detectors in an interconnected set of platform components based on data contained in the data frames; and executing a selected routine of a plurality of routines stored in the one or more memory units based at least in part on the determined quantity of detectors, wherein the selected routine defines a sequence of activation of the visual indicators in the interconnected set of platform components.
22. The interactive training apparatus of claim 21, wherein each particular interactive target comprises a microcontroller unit configured to control activation and deactivation of the one or more visual indicators of the particular interactive target.
23. The interactive training apparatus of claim 21, wherein each platform component comprises an interconnection mechanism along one edge of the platform component, the interconnection mechanism configured to physically couple the platform component to an adjacent platform component.
24. The interactive training apparatus of claim 23, wherein the interconnection mechanism comprises a plurality of tabs and a plurality of slots.
25. The interactive training apparatus of claim 23, wherein the interconnection mechanism comprises a physical cable interconnection that provides an electrical connection between the platform component and the adjacent platform component.
26. The interactive training apparatus of claim 21, the operations further comprising: wirelessly communicating with a software application installed on a mobile device; receiving an identification of a particular routine from a subset of available routines identified based at least in part on the determined quantity of detectors; sending one or more scores to the software application; and sending performance data to the software application.
27. The interactive training apparatus of claim 21, wherein the detectors in the plurality of platform components communicate with the main control unit via at least one communication bus; or the detectors in the plurality of platform components communicate with the main control unit via a daisy chain configuration.
28. The interactive training apparatus of claim 21, wherein: each of the detectors comprises one of a reed switch or a hall effect sensor; and the game accessory comprises an embedded magnet.
29. The interactive training apparatus of claim 21, wherein: the game accessory comprises an embedded radio frequency identification chip or an embedded near field communication chip; and each of the detectors is configured to detect the radio frequency identification chip or the embedded near field communication chip.
30. The interactive training apparatus of claim 21, the operations further comprising: receiving data identifying a sequence and timing of the detector detecting a presence of the game accessory in proximity to the detector during execution of the selected routine; and storing data relating to a degree of correspondence between the identified sequence and timing of the detection of the presence of the game accessory in proximity to the detector and the sequence of activation of the indicators in the interconnected set of platform components.
31. An interactive training apparatus comprising: a platform comprising a planar playing surface of the interactive training apparatus; a plurality of interactive targets embedded in the planar playing surface, each interactive target comprising: one or more visual indicators; and a detector configured to detect a presence of a game accessory in proximity to the detector; a wireless module configured to transmit and receive wireless signals; a main control unit; and one or more memory units storing instructions that, when executed by the main control unit, cause the main control unit to perform operations comprising: receiving data indicating a presence of the game accessory in proximity to one or more of the interactive targets; wirelessly communicating with a software application executed on a mobile device using the wireless module; executing a routine defining a sequence of activation of the visual indicators; and communicating using the wireless module, to the software application executed on a mobile device, results data relating to a degree of correspondence between the detection of the presence of the game accessory in proximity to the one or more interactive targets and the activation of the visual indicators.
32. The interactive training apparatus of claim 31, the operations further comprising wirelessly linking to the software application using a short-range wireless connection to authenticate the mobile device.
33. The interactive training apparatus of claim 31, wherein wirelessly communicating with the software application executed on the mobile device comprises utilizing Bluetooth.
34. The interactive training apparatus of claim 31, wherein wirelessly communicating with the software application executed on the mobile device comprises utilizing WiFi.
35. The interactive training apparatus of claim 31, the operations further comprising wirelessly communicating, with the software application using the wireless module, a current configuration of the interactive training apparatus, the current configuration indicating a number of interconnected platform components forming the planar playing surface.
36. The interactive training apparatus of claim 35, the operations further comprising wirelessly communicating, with the software application using the wireless module, a status of whether the platform components are properly interconnected to one another.
37. The interactive training apparatus of claim 31, wherein the routine defining the sequence of activation of the visual indicators is received from the software application.
38. The interactive training apparatus of claim 31, the operations further comprising receiving data frames from the plurality of interactive targets.
39. The interactive training apparatus of claim 38, the operations further comprising determining a quantity of detectors in an interconnected set of platform components based on data contained in the data frames.
40. The interactive training apparatus of claim 39, wherein the routine defining the sequence of activation of the visual indicators is based on the determined quantity of detectors.
Description
DESCRIPTION OF DRAWINGS
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027] Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
[0028] In accordance with aspects described in this specification, a physical, interactive sports training system simulates the anticipation, responsiveness, and unpredictability of a real-world, multi-player sports game in which the player is competing with, or playing against, other players whose strategy, movements, and actions are neither known nor predictable. The training system can be used to require the player to respond to signals, the location, frequency, and occurrence of which are unknown and unpredictable, or respond to signals that are intentionally sequenced to produce stronger muscle memory or physical strength and endurance for specific skills through repetition. Thus, performance can improve for both known and unknown challenges. The training system can be used to improve a player's hand-eye coordination, stick handling, ball handling, passing, and shooting ability in a real game environment, while practicing without an opponent.
[0029]
[0030] The training board 100, in some implementations, includes rebound bars 125 at each end. The rebound bars 125 can be constructed of a pair of posts 130 with an elastic loop 135 stretched around and between the posts 130. The rebound bars 125 can operate to prevent a puck, ball, or the like from exiting either end of the training board 100. Depending on the degree of elasticity of the elastic loop 135, the rebound bar 125 can cause the puck to be propelled back in the general direction of the middle of the training board 100. The rebound bar may be of various lengths, heights, and elasticity, as suitable, to accommodate a particular sport or a variety of sports.
[0031] In operation, software running on a microcontroller (or microprocessor) embedded within the substrate 110 of the training board 100 and coupled to the light sources 115 and sensors controls the light sources 115 and causes specific individual light sources 115 to illuminate according to a selected training routine. For example, the light sources 115 spaced across the training board can be illuminated in a specific sequence that is unpredictable to a user. Depending on the training routine, the light sources 115 may be illuminated one at a time, where a first light source 115 is illuminated and a second light source 115 is only illuminated after the first light source 115 is deactivated. Alternatively, more than one light source 115 may be illuminated at a time or illuminated in a staggered manner, in which a first light source 115 is illuminated and then a second light source 115 is illuminated before the first light source 115 is deactivated. The illuminated light sources 115 serve to signal to the user where the user needs to deliver the puck. In some implementations, the light sources 115 can illuminate in different colors (or different light sources having different colors can be used) to signal different requirements (e.g., scores can be incremented for blue lights and decremented for red lights). In some implementations and/or in some situations, audible signals can be used in addition to or instead of illuminated light sources. To deactivate each light source 115, the puck has to be brought into close proximity to the light source 115 to cause the proximity sensor associated with that light source 115 to detect the presence of the puck. As a result, a signal from proximity sensor can be detected or received by the microcontroller, which can deactivate the light source 115 and, for example, illuminate another light source 115 according to the selected training routine. In alternative implementations, the light sources 115 may be illuminated for a predetermined amount of time regardless of whether the puck is detected in close proximity to the light source 115.
[0032] In some implementations, the level of precision, in terms of proximity, necessary to deactivate a light source 115 can vary. For example, novice users may desire a lesser degree of precision, while higher skilled users may desire the greater challenge presented by requiring a higher degree of precision. In some implementations, the proximity sensor can be a reed switch or hall effect sensor, which is activated by a magnet embedded in the puck or the like. Other suitable types of proximity sensors (e.g., an optical sensor, a radio frequency identification (RFID) detector for detecting an embedded RFID chip or a detector for detecting an embedded near field communication chip) can also be used. The degree of precision required to activate the reed switch or other sensor (and thus deactivate the light source 115) can be adjusted based on the magnetic strength of the magnet embedded in the puck, the proximal sensitivity of the sensor, or through other suitable techniques. As one example, different pucks having different sized or strength magnets, corresponding to different degrees of required precision, can be used depending on the user's skill level, desired challenge level, or type of training routine. In alternative implementations, the training board 100 can use other techniques for adjusting the level of precision required to deactivate the light source 115. For example, each light source 115 may have a plurality of proximity sensors (e.g., spaced around the periphery and/or at varying distances from the center of the light source 115). In such an implementation, the microcontroller can control the level of precision required (or can simply record the level of accuracy) based on the number and/or location of the proximity sensors that are activated by the puck (e.g., a higher level of desired precision can require activating a proximity sensor located in the center of the light source 115, while a lower level of precision can be satisfied by activating any one of a plurality of proximity sensors located around the periphery of the light source 115). In other implementations, the voltage level signal from a hall sensor can indicate a degree of proximity and different voltage levels necessary to count as a detection can be used to adjust the level of precision required. Other techniques for adjusting the level of challenge accordingly to skill level, or for working on different skills can include using different sized or weights of pucks, balls, or the like, which, in some cases, may necessitate using a different sized magnet.
[0033] Scoring of the user's performance by software running on the microcontroller (or on another device) can be based, at least in part, on how quickly the user delivers the puck to the correct location. Scoring can also be based on whether the puck is detected by one or more other proximity sensors other than the proximity sensor associated with the currently illuminated light source 115. For example, detection of the puck by a number of proximity sensors that are not generally in line with a path from a preceding light source 115 to the currently illuminated light source 115 may suggest a lack of control of the puck and can result in a deduction from a maximum possible score for delivering the puck to the appropriate location. In some implementations, scoring can further be based on the degree of precision in cases where varying degrees of precision in delivering the puck to the correct location is detectable.
[0034]
[0035]
[0036] In an example implementation, the mats 105 can be square or rectangular units (e.g., around 30-36 inches in width and length), and each mat 105 can contain at least five light sources 115. As illustrated in
[0037] Although the system is described herein primarily in connection with hockey and the use of a puck, other configurations are also possible. For example, the training board 100 can instead be implemented in a vertical configuration (e.g., in a net). In some implementations, the training board 100 is. In addition, instead of a puck, a ball or other playing object (e.g., with an embedded magnet) can be used in either a vertical or horizontal configuration.
[0038]
[0039] The user interface 235 of the app can also allow the user 240 to start and stop training routines for a player 245, who moves a puck 250 across the training board 205 to deliver the puck 250 to locations indicated by illuminated light sources embedded (e.g., contained at or below the playing surface 225) within the training board 205. Data relating to player performance can be sent from the training board 205 to the mobile device 210. In various implementations, scores or analysis of performance can be calculated by the microcontroller in the training board 205, by the app, or by centralized or distributed servers accessed via the Internet. In some implementations, the training board 205 can be used without a smartphone app or other connectivity (e.g., by providing training routines or games that are pre-stored on the training board 205).
[0040] In many cases, the user 240 and the player 245 can be the same individual. In other cases, the user 240 and the player 245 can be different individuals, and in such cases, a user 240 (e.g., a coach or parent) can have read only access to display data. In some implementations, the training board can include controls that allow a user 240 or the player 245 to perform at least some functions on the training board 205. For example, the training board 205 can include a start and/or stop button to allow a training routine selected through the app can be started by the player 245 without having to use the mobile device 210. In some implementations, the training board 205 can include additional controls (e.g., allowing selection among multiple training routines loaded onto the training board 205) and/or a display, which can display a score, a timer (e.g., to display a remaining time in a training routine), statistics, and/or other information. In some implementations,
[0041] Different training routines may be designed to focus on different skills and can have varying levels of difficulty. For example, the training routines can be designed to improve a user's hand-eye coordination, stick handling, object maneuvering, passing and/or shooting skills and accuracy. The training routines may be defined by data (e.g., a program) that specifies a sequence and/or timing of illumination of the lighting sources and/or audible indicators from a speaker. In some cases, some training programs do not define a static sequence and/or timing but can include decision trees or contingencies that change the training routine based, for example, on performance of the player 245 or, in an online head-to-head competition, based on performance of another local or remote player on another training board. Software or firmware running on the microcontroller of the training board 205 can interpret the program and execute the training routine on the training board 205. In some implementations, such as when the training program does not define a static sequence or timing, execution of the training routine may further involve communication with the mobile device or with a remote server, which can provide additional instructions for altering the training routine.
[0042]
[0043] When a user initiates a training session through the software app 302 (at 312), the user can be prompted as to whether to play online at 314. When the user selects online play through a user interface on the mobile device 304, a determination is made as to whether the user is a new user at 316. If the user is a new user or the training board is not already registered, the user is prompted to register with an online service (e.g., to create an account for the individual user and/or the training board) at 318. In some implementations, a new user who has not previously registered with the online service may initially be required to select the online option at 314. In other implementations, offline play may be allowed. In some implementations, registration may be required to create an account and store data associated with that account in the cloud environment 308. In the interim, performance data can be stored (e.g., on the mobile device 304) until an account is created, and the performance data can be uploaded to the cloud environment at a later time.
[0044] Once the registration process is completed at 318, the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 320. The software app 302 can communicate with the training board (e.g., with a built-in microcontroller or microprocessor in the training board) to perform a system check at 322, which can confirm the current onboard software or firmware installed on the training board, whether the mats of the training board are properly interconnected to one another, whether the proximity sensors and lighting sources are responding properly, the current configuration of the training board (e.g., the number of interconnected mats), and the like. Once the system check is completed, the software app 302 can determine whether a training board software or firmware update is needed at 324. If so, update data (e.g., downloaded from the cloud environment 308) is sent to the training board at 326. Once the update is complete, or if no update is needed, training or game play can be performed at 328. As described above, training or game play can involve initiating and executing a selected training routine on the training board. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 330 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.
[0045] If, after online play is selected at 314, the user is not a new user (as determined at 316), the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 340. The software app 302 can communicate with the training board to perform a system check at 342, similar to the system check described above in connection with operation 322. Once the system check is completed, the software app 302 can determine whether a training board software or firmware update is needed at 344. If so, update data is sent to the training board at 346. After the update is complete, or if no update is needed, training or game play can be performed at 348. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 350 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.
[0046] If offline play is selected at 314, the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 360. The software app 302 can communicate with the training board to perform a system check at 362, similar to the system check described above in connection with operation 322. Once the system check is completed, training or game play can be performed at 364. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 370 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.
[0047] The cloud environment 308 can store a variety of different types of data that can be uploaded from users, mobile devices, and/or training boards, or that can be stored for downloading to mobile devices and training boards. The data can include game data (e.g., statistics, player ratings, etc.); user data (e.g., subscription level, demographics, social media links, etc.); UX/UI content (e.g., dashboard, game templates, etc.); website data and pages (e.g., including backend); AI analysis software (e.g., for use in learning and predicting player performance, equipment recommendations, and trend analysis); content management system software (e.g., user game creation data, archives, etc.); stakeholder notification software (e.g., for sending SMS, text, and email notifications and messages to stakeholders, such as users, parents, coaches, third parties and vendors etc.); and sharing software (e.g., links to social network platforms).
[0048]
[0049] The PCB 410 includes a number of functional modules. In some implementations, the functions of the modules can be combined in a fewer number of separate modules, or the functions of each module can be distributed among multiple physical or conceptual modules without departing from the intended meaning of a module as used herein. The modules can be implemented as software, firmware, hardware, or a combination thereof. A wireless module 425 can be configured to handle the transmission and reception of signals to and from the PCB 410 of the training board 400 (e.g., to and from a mobile device via a short-range radio frequency signal) through a connected antenna 430. A buttons module 435 can be configured to receive and interpret signals received from a control panel on the training board 400. An LCD module 440 can be configured to control a display interface on the training board 400. In some implementations, the display interface can be a touch screen and can thus the display interface and the control panel can be combined in a single component. A USB module 445 can be configured to control one or more USB ports that can be used, for example, to provide a wired connection to the PCB 410 as an alternative to the wireless connectivity (e.g., to reinstall software or firmware in cases of device failure, or to transfer data stored on the training board 400 to a computing device). A power module 450 can be used to manage power usage from, and charging of, an internal battery and to manage power usage and charging from an external power supply (e.g., a 120 volt AC power supply or a 5 volt DC power supply). A sensor module 455 can be configured to receive signals from the hall sensors 415 via the serial cables 420. In some implementations, the sensor module 455 can also send communications to the hall sensors 415 (e.g., to confirm proper operation). Serial communication provides a low-cost technique for communications, although other types of communication can also be used and managed by the sensor module 455. A microcontroller unit (MCU) module 460 can perform overall control of the various modules on the training board 400 and can include memory that stores operating software and training programs. Alternatively, a separate memory can also be used and accessed by the MCU module 460. A speaker module 465 can be configured to control a speaker, which can provide audio alerts or other audio signals (e.g., to signal detection of a puck by an appropriate hall sensor 415, to alert a user to an expiring timer, or for providing other feedback to a user). In some implementations, the speaker module 465 can be used to play audio alerts, audio signals, or other audible information through a mobile device, Bluetooth speaker, or other external device.
[0050]
[0051]
[0052] At least one of the end mats 605 includes a microcontroller unit 620 that can provide main control of the training board 600. The microcontroller unit 620 can communicate with a memory 625. The memory 625 can be external or internal to the microcontroller unit 620 (or there can be multiple memories) and can store software or firmware instructions for controlling operation of the training board 600 and instructions for specific training routines. The microcontroller unit 620 can further communicate with an interface 630, which can include a user interface (e.g., display screen, control buttons or keys, and/or a touchscreen), which can display information (e.g., a score or timer) and receive user input (e.g., a start or stop instruction or a selection among training routines previously loaded into the memory 625). The interface 630 can include a wireless interface for communicating with a mobile device (e.g., to receive start/stop instructions input through software on the mobile device, downloading additional training routines, and communicating scores and other performance data). In some implementations, these functions can be combined in a single unit, while in other implementations, the training board 600 can include multiple separate interface units.
[0053] The microcontroller unit 620 can communicate with each of a plurality of interactive targets 635 via one or more communication cables 640. The interactive targets 635 can include a visual indicator (e.g., an LED light source) and a detector (e.g., a reed switch or other proximity sensor). As described above, the visual indicator of each interactive target 635 can be used to signal to a user that a game accessory (e.g., a ball, puck, bean bag, or the like) is a current target on the training board 600. The detector of each interactive target 635 can detect when the game accessory is delivered to an area of the training board 600 proximate to the interactive target 635. The microcontroller unit 620 can send a signal via the cables 640 to selectively and individually activate the visual indicator in each interactive target 635. In addition, the detector in each interactive target 635 can send a signal via the cables 640 to the microcontroller unit 620 when a game accessory is detected in the vicinity of the interactive target 635. In response to receiving such a signal from the appropriate detector, the microcontroller unit 620 can send a signal to the interactive target 635 to deactivate the visual indicator.
[0054] The interconnection mechanism 615 of each end mat 605 includes a physical cable interconnection 645 that provides a connection between the cables 640 in each end mat 605. The cable interconnection 645 can include physical contacts suitable to electrically connect the cables 640 in the end mats 605. Accordingly, signals from the microcontroller unit 620 in one end mat 605 can be transmitted through the cables 640 to interactive targets 635 in the other end mat 605. In some implementations, each end mat 605 can include a microcontroller unit 620, memory 625, and interface 630. In such an implementation, the microcontroller units 620 can communicate through the cables 640 and cable interconnection 645 to negotiate which one will act as a primary microcontroller unit 620. The other microcontroller unit 620 can remain dormant or can operate under control of the primary microcontroller unit 620 to, for example, control a display on a second interface 630, forward user interaction with control buttons on the second interface 630, and the like.
[0055] In some implementations, the cables 640 can include a shared communication bus that is used to implement a serial communication protocol. In other implementations, the cables can include multiple communication buses to implement parallel communications and/or separately enable each interactive target 635. In addition, the cables can also include a separate power supply wire to, for example, provide power for illuminating LED light sources and provide power to control units in each interactive target 635.
[0056] The two-mat configuration of
[0057] To control the interactive targets 635 in different configurations, the microcontroller unit 620 first discovers the number of interactive targets 635 by exchanging data (e.g., in frames) between the microcontroller unit 620 and the interactive targets 635. Based, at least in part, on the known potential configurations of the training board 600, and/or on unique identifiers associated with each interactive target 635, the microcontroller unit 620 can determine the number of interactive targets 635 in a current configuration, as further discussed below. The microcontroller unit 620 can then select training routines appropriate for the current configuration. For example, the microcontroller unit 620 may select among a subset of available training routines that match the current configuration, while omitting training routines that correspond to other configurations. In some implementations, the microcontroller unit 620 can store or can generate different sequences for a selected training routine based on the number of interactive targets 635 and/or the current configuration of the training board 600. However, because the sequences differ for a given training routine in such a situation, the result is a different training routine when executed on the training board 600. In some implementations, the microcontroller unit 620 selects an appropriate training routine in consultation with a software app executing on a wirelessly connected mobile device (e.g., by sending data relating to a number of interactive targets 635 and/or a current configuration of the training board 600, and receiving instructions for, or an identification of, an appropriate training routine from the mobile device).
[0058]
[0059] In some implementations, data packets that control the light 710 and data packets that indicate detection of a game accessory by the sensor 715 can be sent on the same data line. In other implementations, separate data lines can be used. In addition, different controllers can be included in the interactive target for the lights 710 and the sensors 715. The lights 710 and the corresponding sensors 715 can be contained in a shared interactive target housing or can be separate components (e.g., located in close proximity to one another).
[0060]
[0061] Based on the received data frames, the main microcontroller unit determines a number of detectors in the current training board configuration at 815. In addition, the main microcontroller may determine the presence of other components or interconnections based on data in the received data frames. Using this data (i.e., the number of detectors and/or the presence of other components or interconnections), along with knowledge of the possible types of mats or other components), the current training board configuration is determined at 820. This determination can be made by the main microcontroller unit independently or the main microcontroller unit can determine the current configuration by sending data over a wireless interface to a mobile device, which can process the data to identify the current configuration. Based on the current configuration, the main microcontroller unit or the mobile device identifies a subset of available training routines appropriate for the current configuration, and a training routine is selected automatically or manually by a user from the identified subset of training routines at 825. The selected training routine is executed at 830.
[0062]
[0063]
[0064]
[0065] A vendor portal 1150 can include features that allow vendors to view user game data, analyze player data (e.g., scores and ratings), analyze game data, make predictions relating to equipment performance with AI assistance, and make marketing decisions. A recruiter portal 1155 can include features that allows recruiters to view user game data (e.g., performance) and make recruiting decisions.
[0066] Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions tangibly stored on a computer readable storage device for execution by, or to control the operation of, data processing apparatus. In addition, the one or more computer program products can be tangibly encoded in a propagated signal, which is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer. The computer readable storage device can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.
[0067] The term computing device encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The computing device can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, or a combination of one or more of them. In addition, a computing device can employ various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
[0068] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0069] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
[0070] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, mobile device, a tablet computer, a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; and magnetic disks, e.g., internal hard disks or removable disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0071] To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., an LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackpad, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
[0072] Implementations of the subject matter described in this specification can be implemented in a computing system that includes a backend component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such backend, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
[0073] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0074] While this specification contains many implementation details, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular implementations of the invention. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
[0075] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0076] Thus, particular implementations of the invention have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.