Efficient social networking for online games
20230218995 · 2023-07-13
Inventors
Cpc classification
A63F13/53
HUMAN NECESSITIES
International classification
Abstract
A system for use with players playing on respective clients includes a processor configured to receive, from a first client, a notification message indicating a win by the player playing on the first client, to verify, in response to receiving the notification message, that one or more predefined notification criteria are satisfied, to communicate the notification message to a subset of the clients in response thereto, thereby causing the subset of the clients to display a notification of the win, to receive, from a second client, a reaction message indicating a reaction to the notification by the player playing on the second client, to verify, in response to receiving the reaction message, that one or more predefined reaction criteria are satisfied, and to communicate the reaction message to the first client in response thereto, thereby causing the first client to display the reaction.
Claims
1. A system for use with a plurality of players playing respective online games on respective clients, the system comprising: a network interface; and a processor, configured to: receive via the network interface over a computer network, from a first client of the clients, a notification message indicating a win by the player playing on the first client, in response to receiving the notification message, verify that one or more predefined notification criteria are satisfied, in response to verifying that the notification criteria are satisfied, communicate the notification message over the computer network to a subset of the clients, thereby causing the subset of the clients to display a notification of the win, receive over the computer network, from a second client of the subset of the clients, a reaction message indicating a reaction to the notification by the player playing on the second client, in response to receiving the reaction message, verify that one or more predefined reaction criteria are satisfied, and in response to verifying that the reaction criteria are satisfied, communicate the reaction message to the first client, thereby causing the first client to display the reaction.
2. The system according to claim 1, wherein the notification criteria include a criterion that no previous notification message was communicated by the processor within a predefined threshold amount of time.
3. The system according to claim 1, wherein the notification criteria include a criterion that a size of the win exceed at least one of one or more predefined thresholds.
4. The system according to claim 1, wherein the processor is further configured to select the subset of the clients based on respective locations at which the clients are located.
5. The system according to claim 4, wherein the processor is configured to select the subset of the clients by, for each of at least some of the locations, selecting those of the clients located at the location with a probability that depends on a current time at the location.
6. The system according to claim 5, wherein the processor is further configured to, prior to selecting the subset of the clients, compute the probability based on a number of previous reaction messages communicated from the location during a recurring period of time that includes the current time.
7. The system according to claim 1, wherein the reaction criteria include a criterion that the reaction message is received within a predefined interval of the communicating of the notification message.
8. The system according to claim 1, wherein the reaction criteria include a criterion that a type of the reaction is one of a predefined plurality of types.
9. The system according to claim 1, wherein the reaction criteria include a criterion that no previous reaction message was communicated by the processor to the first client within a predefined threshold amount of time.
10. A method for use with a plurality of players playing respective online games on respective clients, the method comprising: receiving by a server over a computer network, from a first client of the clients, a notification message indicating a win by the player playing on the first client; in response to receiving the notification message, verifying that one or more predefined notification criteria are satisfied; in response to verifying that the notification criteria are satisfied, communicating the notification message over the computer network to a subset of the clients, thereby causing the subset of the clients to display a notification of the win; receiving over the computer network, from a second client of the subset of the clients, a reaction message indicating a reaction to the notification by the player playing on the second client; in response to receiving the reaction message, verifying that one or more predefined reaction criteria are satisfied; and in response to verifying that the reaction criteria are satisfied, communicating the reaction message to the first client, thereby causing the first client to display the reaction.
11. The method according to claim 10, wherein the notification criteria include a criterion that no previous notification message was communicated by the server within a predefined threshold amount of time.
12. The method according to claim 10, wherein the notification criteria include a criterion that a size of the win exceed at least one of one or more predefined thresholds.
13. The method according to claim 10, further comprising selecting the subset of the clients based on respective locations at which the clients are located.
14. The method according to claim 13, wherein selecting the subset of the clients comprises, for each of at least some of the locations, selecting those of the clients located at the location with a probability that depends on a current time at the location.
15. The method according to claim 14, further comprising, prior to selecting the subset of the clients, computing the probability based on a number of previous reaction messages communicated from the location during a recurring period of time that includes the current time.
16. The method according to claim 10, wherein the reaction criteria include a criterion that the reaction message is received within a predefined interval of the communicating of the notification message.
17. The method according to claim 10, wherein the reaction criteria include a criterion that a type of the reaction is one of a predefined plurality of types.
18. The method according to claim 10, wherein the reaction criteria include a criterion that no previous reaction message was communicated by the server to the first client within a predefined threshold amount of time.
19. A computer software product for use with a plurality of players playing respective online games on respective clients, the computer software product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a processor, cause the processor to: receive over a computer network, from a first client of the clients, a notification message indicating a win by the player playing on the first client, in response to receiving the notification message, verify that one or more predefined notification criteria are satisfied, in response to verifying that the notification criteria are satisfied, communicate the notification message over the computer network to a subset of the clients, thereby causing the subset of the clients to display a notification of the win, receive over the computer network, from a second client of the subset of the clients, a reaction message indicating a reaction to the notification by the player playing on the second client, in response to receiving the reaction message, verify that one or more predefined reaction criteria are satisfied, and in response to verifying that the reaction criteria are satisfied, communicate the reaction message to the first client, thereby causing the first client to display the reaction.
20. The computer software product according to claim 19, wherein the instructions further cause the processor to select the subset of the clients based on respective locations at which the clients are located.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
DETAILED DESCRIPTION OF EMBODIMENTS
Overview
[0021] Embodiments of the present invention provide a server configured to provide efficient social networking between players of online games on respective client computers connected to a computer network. In particular, when a player wins an amount of money, the server may send a notification of the win to other players. The other players may then react to the win, and the reactions may be sent from the server to the winning player. Advantageously, the notifications and reactions are communicated selectively, in that the timing, content, and volume of these messages are carefully controlled. Thus, embodiments of the present invention help conserve bandwidth on the computer network, reduce the computational load on the server and clients, and provide an improved social-networking experience.
[0022] For example, the server may refrain from notifying a first player of a second player's win unless the size of the win exceeds a predefined threshold, which may be specific to the currency in which the first player is playing. As another example, the server may refrain from communicating a notification or a reaction unless a predefined threshold amount of time has passed since the communication of the previous notification or reaction. As yet another example, the server may refrain from sending a notification to a player for whom the local time belongs to a predefined recurring period of time in which players are less likely to react to notifications.
System Description
[0023] Reference is initially made to
[0024]
[0025] Typically, the online games are serviced by respective gaming servers 28, which communicate with clients 26 over a computer network 22 such as the Internet. Gaming servers 28 may be operated by any number of different operators.
[0026] System 20 comprises at least one server 30 comprising a network interface 32, such as a network interface controller (NIC), and a processor 34. Processor 34 is configured to communicate with clients 26, over computer network 22, via network interface 32.
[0027] In particular, as further described below with reference to
[0028] Subsequently, the processor may decide to send the notification message to a subset of the clients. In response thereto, the processor may communicate the notification message to the subset, thereby causing each client 26b in the subset to display a notification of the win. Prior to communicating the notification message, the processor may add information to, and/or remove information from, the message. For example, the processor may add the currency of the win and the notification ID, and/or remove the socket ID.
[0029] Typically, each client 26b is configured to display the win notification in a widget 36. (Typically, widget 36 is placed at the edge of the display 38 of the client, so as to minimize interference with the game that is being played on client 26b.) Typically, the notification includes the amount and currency of the win. Optionally, the notification may also include information relating to the player 24 who executed the win, such as the player's location, provided that this information is included in the notification message from processor 34.
[0030] Typically, in addition to displaying the notification, client 26b displays a graphical user interface (GUI) 40 including one or more icons 42. For example, GUI 40 may be displayed beneath or beside the win notification in widget 36. The player playing on client 26b may thus react to the notification by selecting one of icons 42. Alternatively or additionally, the player may react to the notification by selecting or entering next, such as “Well done!”
[0031] As further described below with reference to
[0032] Typically, notifying client 26a is configured to display the reaction (e.g., the selected icon 42) in a widget 41. (Typically, widget 41 is placed at the edge of display 38, as described above for widget 36.) Optionally, widget 41 may further contain explanatory text, as shown in
[0033] Each of the aforementioned messages may specify information in any suitable format, such as JavaScript Object Notation (JSON). For example:
[0034] (i) A notification message sent to server 30 may include a JSON object including a first name-value pair for the size of the win and a second name-value pair for the socket ID.
[0035] (ii) A notification message sent from the server may include a JSON object including a first name-value pair for the size of the win, a second name-value pair for the currency of the win, and a third name-value pair for the notification ID.
[0036] (iii) A reaction message sent to the server may include a JSON object including a first name-value pair for a description of the selected icon and a second name-value pair for the notification ID.
[0037] (iv) A reaction message sent from the server may include a JSON object including a single name-value pair for a description of the selected icon.
[0038] In general, processor 34 may be embodied as a single processor, or as a cooperatively networked or clustered set of processors. For example, processor 34 may be embodied as a cooperatively networked set of processors belonging to respective servers 30 belonging, for example, to a cloud-computing service.
[0039] The functionality of processor 31 may be implemented solely in hardware, e.g., using one or more fixed-function or general-purpose integrated circuits, Application-Specific Integrated Circuits (ASICs), and/or Field-Programmable Gate Arrays (FPGAs). Alternatively, this functionality may be implemented at least partly in software. For example, processor 34 may be embodied as a programmed processor comprising, for example, a central processing unit (CPU) and/or a Graphics Processing Unit (GPU). Program code, including software programs, and/or data may be loaded for execution and processing by the CPU and/or GPU. The program code and/or data may be downloaded to the processor in electronic form, over a network, for example. Alternatively or additionally, the program code and/or data may be provided and/or stored on non-transitory tangible media, such as magnetic, optical, or electronic memory. Such program code and/or data, when provided to the processor, produce a machine or special-purpose computer, configured to perform the tasks described herein.
Example Algorithms
[0040] Reference is now made to
[0041] At a notification-receiving step 46, the processor receives a notification message from one of clients 26, as described above with reference to
[0042] (i) No previous notification message was communicated by the server within a predefined threshold amount of time.
[0043] (ii) The size of the win (i.e., the amount of money won) exceeds at least one of one or more predefined thresholds.
[0044] If the notification criteria are not all satisfied, algorithm 44 ends. Otherwise, in response to verifying that the notification criteria are satisfied, the processor assigns a notification ID to the notification at an ID-assigning step 49.
[0045] Subsequently to assigning a notification ID, the processor selects a subset of the clients at a client-subset-selecting step 50. For example, the processor may select the subset of the clients based on the respective locations at which the clients are located. For example, as further described below with reference to
[0046] Subsequently, at a notification-communicating step 52, the processor communicates the notification message (with any appropriate modifications) to the subset of the clients, thereby causing the subset of the clients to display the notification as described above with reference to
[0047] Reference is now made to
[0048] At a reaction-receiving step 56, the processor receives a reaction message indicating a reaction to a win notification. Subsequently, at a matching step 57, the processor matches the reaction to the notification, based on the notification ID contained in the reaction message.
[0049] Next, the processor checks, at another checking step 58, whether one or more predefined reaction criteria are satisfied. For example, as further described below with reference to
[0050] (i) The reaction message is received within a predefined interval of the communicating of the notification message.
[0051] (ii) The reaction is valid, i.e., the type of the reaction is one of a predefined plurality of types. For example, the icons shown in GUI 40 (
[0052] (iii) No previous reaction message was communicated by the server to the notifying client (i.e., the client that sent the win notification) within a predefined threshold amount of time. (Thus, the winning player is not inundated with reactions.)
[0053] If the reaction criteria are not all satisfied, algorithm 54 ends. Otherwise, in response to verifying that the reaction criteria are satisfied, the processor, at a reaction-communicating step 60, communicates the reaction message (with any appropriate modifications) to the notifying client. The communication of the reaction message causes the client to display the reaction as described above with reference to
[0054] Reference is now made to
[0055] Typically, the notification criteria include a criterion that no previous notification message was communicated by the processor within a predefined threshold amount of time. The processor may assess whether this criterion is satisfied at an assessing step 62. For example, if the most recent notification message was sent at time t0, the processor may compare t1-t0 to the predefined threshold, t1 being the current time.
[0056] If the criterion is not satisfied, checking step 48 returns a negative output. Otherwise, the processor may check whether one or more other criteria are satisfied. Typically, these criteria include a criterion that the size of the win exceed at least one of one or more predefined thresholds. In some embodiments, these thresholds include one or more currency-specific thresholds corresponding to different respective currencies.
[0057] For example, in some embodiments, following assessing step 62, the processor assesses, at another assessing step 66, whether the win amount exceeds a predefined threshold amount in a base currency, referred to herein as a base-currency threshold. (It is noted that the base currency need not necessarily be an “active currency,” i.e., there need not necessarily be any players currently playing in the base currency.) In performing this assessment, the processor may perform a currency conversion in case the currency of the win is different from the base currency. In other words, the processor may convert the win amount to the base currency or the base-currency threshold to the currency of the win.
[0058] If the win amount exceeds the base-currency threshold, checking step 48 returns a positive output. Otherwise, the processor assesses, at another assessing step 68, whether any active currencies, other than the base currency, have yet to be selected. (As noted above, an active currency is any currency in which at least one player is currently playing.) If yes, the processor selects the next active currency at a currency-selecting step 70. Next, the processor assesses, at another assessing step 72, whether the size of the win (i.e., the amount of money that was won) exceeds the currency-specific threshold corresponding to the selected currency. (If a currency conversion is required, the processor performs this conversion.) If yes, the selected currency is flagged at a flagging step 74. Subsequently, or if the win amount does not exceed the currency-specific threshold, the processor returns to assessing step 68.
[0059] Upon ascertaining, at assessing step 68, that no active currencies have yet to be selected, the processor assesses, at another assessing step 76, whether at least one active currency was flagged. If yes, checking step 48 returns a positive output; otherwise, checking step 48 returns a negative output.
[0060] Reference is now made to
[0061] In some embodiments, client-subset-selecting step 50 begins with an initial selecting step 18, at which the processor selects all the clients on which the game in which the win was achieved is being played. (For example, if the win was achieved in Game XYZ, the processor may select all the client on which Game XYZ is being played.) In other embodiments, the processor initially selects a larger subset of the clients, including clients on which one or more other games are being played.
[0062] Next, at assessing step 76, the processor assesses whether at least one active currency was flagged. If yes, the processor, at an unselecting step 80, unselects the clients of players in those currencies that are not flagged. Subsequently, or if no active currencies are flagged, the processor, at a location-selecting step 82, selects a location at which at least one of the selected clients is located. For example, the processor may select a time zone, a country, or a time zone within a particular country.
[0063] Subsequently to selecting a location, the processor decides, at a deciding step 84, whether to notify the location (i.e., the clients at the location) of the win. For example, the processor may load a predefined lookup table specifying respective notification probabilities for multiple locations and multiple recurring time periods. (Each time period may have any suitable length, such as 30 minutes or one hour, and may be specified in Coordinated Universal Time (UTC) or the local time at the location.) The processor may then decide whether to notify the location based on the probability p specified for the location and the recurring time period to which the current time belongs. For example, the processor may generate a random number between 0 and 1. Subsequently, the processor may decide to notify the location in response to the random number being less than p (or in response to the random number being greater than 1−p). Alternatively, each of the notification probabilities may be zero or one, such that no generation of random numbers is required.
[0064] By way of illustration, Table 1 below shows a portion of an example lookup table specifying notification probabilities for two recurring time periods and several different countries:
TABLE-US-00001 TABLE 1 Time (UTC) Location Probability 00:00-00:59 Colombia 0.8 00:00-00:59 Peru 0.8 00:00-00:59 United Kingdom 1 00:00-00:59 Italy 1 00:00-00:59 Greece 1 16:00-16:59 Colombia 0.1 16:00-16:59 Peru 0.1 16:00-16:59 United Kingdom 0.8 16:00-16:59 Italy 0.8 16:00-16:59 Greece 0.8
[0065] (Although, in this example, the probability is the same for any two countries in the same time zone, it is noted that probabilities may differ between two countries in the same time zone.)
[0066] Given this example, and assuming that the selected location is Colombia and the current time is 00:30 UTC, the processor may decide to notify Colombia if the random number is less than 0.8.
[0067] Typically, the processor computes the probability for each location and time period based on the number of reaction messages communicated from the location during the period. (This computation may be performed periodically.) For example, the processor may compute the probability as a function of the average percentage of players at the location who reacted to any win notification. This average may be computed over a preceding interval of time (e.g., over the preceding month) or over a number of preceding win notifications. Thus, for example, on average, a relatively large percentage of the players reacted, the processor may compute a probability of one.
[0068] If the processor decides not to notify the location, the processor unselects the clients in the location at another unselecting step 86. Subsequently, or if the processor decides to notify the location, the processor checks, at another checking step 88, whether there are any more locations at which at least one selected player is located. If yes, the processor returns to location-selecting step 82.
[0069] Subsequently to ascertaining, at checking step 88, that no more locations remain to be selected, the processor checks, at another checking step 90, whether there are any settings for the operator of the server servicing the game in which the win was achieved. If yes, the processor, at a filtering step 92, filters the selected clients per the operator settings.
[0070] For example, it will be supposed the win was achieved in Game XYZ serviced by a server operated by Operator ABC. The settings for Operator ABC may specify that only clients serviced by a server operated by Operator ABC should be notified of the win. The processor may therefore filter out (i.e., unselect) other clients, including those on which Game XYZ is being played under operation of a different operator.
[0071] Subsequently to performing filtering step 92, or if there are no operator settings, the processor proceeds to notification-communicating step 52 (
[0072] It is noted that the steps of client-subset-selecting step 50 may be performed in any suitable order. For example, checking step 90 and filtering step 92 may be performed prior to assessing step 76.
[0073] Reference is now made to
[0074] In some embodiments, checking step 58 begins with an assessing step 94, at which the processor assesses whether the reaction message was received within a predefined interval of the sending of the notification message to which the reaction pertains. If not, checking step 58 returns a negative output. Otherwise, the processor assesses, at another assessing step 96, whether the reaction is valid. If not, checking step 58 returns a negative output. Otherwise, the processor assesses, at another assessing step 98, whether the amount of time from the most recent communication of a reaction message to the notifying client exceeds a predefined threshold. If not, checking step 58 returns a negative output; otherwise, checking step 58 returns a positive output.
[0075] It is noted that the steps of checking step 58 may be performed in any suitable order.
[0076] It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of embodiments of the present invention includes both combinations and subcombinations of the various features described hereinabove, as well as variations and modifications thereof that are not in the prior art, which would occur to persons skilled in the art upon reading the foregoing description. Documents incorporated by reference in the present patent application are to be considered an integral part of the application except that to the extent any terms are defined in these incorporated documents in a manner that conflicts with the definitions made explicitly or implicitly in the present specification, only the definitions in the present specification should be considered.