Activision Publishing Patent 10/17
Cargado por
Alex Wawro
0 calificaciones
0% encontró este documento útil (0 votos)
7K vistas
28 páginas
Información del documento
hacer clic para expandir la información del documento
Descripción:
A patent awarded to Activision Publishing for a "system and method for driving microtransactions in multiplayer video games."
Título original
Activision Publishing patent 10/17
Derechos de autor
© © All Rights Reserved
Formatos disponibles
PDF o lea en línea desde Scribd
Compartir este documento
Compartir o incrustar documentos
Opciones para compartir
Compartir en Facebook, abre una nueva ventana
Facebook
Compartir en Twitter, abre una nueva ventana
Twitter
Compartir en Linkedin, abre una nueva ventana
LinkedIn
Compartir por correo electrónico, abre un cliente de correo electrónico
Correo electrónico
Copiar enlace
Copiar enlace
¿Le pareció útil este documento?
0%
0% encontró este documento útil, Marcar este documento como útil
0%
A un 0% le pareció que este documento no es útil, Marcar este documento como no útil
¿Este contenido es inapropiado?
Denunciar este documento
Descripción:
A patent awarded to Activision Publishing for a "system and method for driving microtransactions in multiplayer video games."
Copyright:
© All Rights Reserved
Formatos disponibles
Descargue
como PDF o lea en línea desde Scribd
Marcar por contenido inapropiado
Descargar ahora
Guardar
Guardar Activision Publishing patent 10/17 para más tarde
0 calificaciones
0% encontró este documento útil (0 votos)
7K vistas
28 páginas
Activision Publishing Patent 10/17
Título original:
Activision Publishing patent 10/17
Cargado por
Alex Wawro
Descripción:
A patent awarded to Activision Publishing for a "system and method for driving microtransactions in multiplayer video games."
Copyright:
© All Rights Reserved
Formatos disponibles
Descargue
como PDF o lea en línea desde Scribd
Marcar por contenido inapropiado
Guardar
Guardar Activision Publishing patent 10/17 para más tarde
0%
0% encontró este documento útil, Marcar este documento como útil
0%
A un 0% le pareció que este documento no es útil, Marcar este documento como no útil
Insertar
Compartir
Imprimir
Descargar ahora
Saltar a página
Está en la página 1
de 28
Buscar dentro del documento
2) United States Patent oy ow 2 3) en @ 6s) (60) Gt Marr et al. SYSTEM AND METHOD FOR DRIVING MICROTRANSACTIONS IN MULTIPLAYER VIDEO GAMES| Applicant: ACTIVISION PUBLISHIN Santa Monica, CA (US) INC Inventors: Michael D, Marr, Monroe, WA (US), Keith 8. Kaplan, Bothell, WA (US): Nathan T. Lewis, Woodinville, WA ws) Assignee: Activision Publishing, Ine, Saat Monica, CA (US) Notice: Subject to any disclaimer, the team ofthis, patent is extended ot adjusted under 35 USC. 154() by 154 days. Appl. Nos 14/712.566 Filed: May 14, 2015 ‘ior Publication Data US 201610005270 AL Jaa, 7, 2016 Related U.S. Application Data Provisional application No. 624020,732, filed on Ju 3.2014, provisional application No, 62020,739, fled fon Jul. 3, 2014, provisional application | No. 62020,743, filed ‘on Jul. 3, 2014, provisional pplication No. 62/020,750, fled on Jul. 3, 2014. Im. Cl, AGGIE 924 (2006.01) GSP 137798 (201401) GSE 13930 (01401) AOSF 1560 (201401), GOrR 1732 (2006.01) ASE 13/847 (201401), rae 'US009789406B2 (10) Patent No.: (4s) Date of Patent: US 9,789,406 B2 Oct. 17, 2017 (62) US.CL coc AGP 13/795 (2014.09), ARE 1230 (2014.09): 463F 13/60 (201409); GOTF 178285 (201301). GOP 173272 (2013.01) 463F 13/847 (201408), A63F 23005566 (2013.01); 463 2300575 (2013.01) (58) Fleld of Classitieation Search None ‘See application file for complete search history 60) References Cited US. PATENT DOCUMET 6.012.095 81/2000 Link et yo393 aeRO BL 10002 Engst ea S06 Seuasl BL 112003 Maret al. 4632 Soman B2 "42000 Morais aa 2st 7030868 BL $2006 Groupe eal 098 J3m6a74 BE $2008 Gracpt ta. 09s 2000148675 AL* 82003 Amat AGP 1310 20060184260 AL 82006. Graepel tl, ao070020% AL 22007 Hetrick eal (Continved) Primary Examiner (74) Attornes, Agent, or Firm Jason Yen Novel IP 6 ABSTRACT A system and method is provided that drives microtrnsae~ ‘ions in multiplayer video games. The system may include a nerotransaction arrange matches to influence game-elated purchases. For instance, the system may match a more exper/marqee player with a junior player to encourage the junior player to make game-elated purchases of items possessoditsed by the marguee player. junior player may ‘wish to enmulate the marquee player by obtaining weapons or other items used by the marquee player 18 Claims, 9 Drawing SheetsUS 9,789,406 B2 Page 2 66) References Cited USS. PATENT DOCUMENTS. 20070112706 At 52007 Hsbrch ta 706021 aoon0R6S718 AL 11/2007 Grapel 70091 aoosionTstis AL* "32009 Pearce Gore TAD “46382 200910254494 AL* 102000 Fich ASF 1312 “46428 201310296046 AL? 11/2019 Mian AGED “46331 20140011595 AL* 12014 Muller AGF “Gua 2010038253 AI* 22015. Rom AGM 13795 46382 * cited by examinerUS 9,789,406 B2 Sheet 1 of 9 Oct. 17, 2017 U.S. Patent [=] <——S <> ‘UIT (S)WALSAS uaLNdWOO | Der @eeudueg Vi Old Ber eurbug Bulutjedig (a) DET eubug in ver aur6ug yoeqpee4 ue sonvieuy Ber eubug uonsesuenoroI cr ‘eutfug Buuoog ZT NOLLVONdd¥ ONDIVNHO.LWN ¥ST (S)SOINSG FOVHOLS ‘@r (s)4OSS300Nd ‘OST (s)u3ANaS 4US 9,789,406 B2 Sheet 2 of 9 Oct. 17, 2017 U.S. Patent dt Old HAYES goo! a ser eurbug Buluyedig er Det eubug in || eu6ua yoeqpecy pue sonfjeuy BET eurbug wr uoRoesuEOIOI, ‘eui6u3 Buuoos. UZE NOLO dd V ONDIVINHO LVI PIT (S)S0INIG SOVYOLS Zt (s)yoss300ud TIT WALSAS H3LNdWOOU.S. Patent Oct. 17, 2017 Sheet 3 of 9 US 9,789,406 B2 a 140A | 1104 150 1408 }|—j 1108 110N 140N FIG. 2A oe 140A 110A 1108 ~ 410N 140N FIG. 2B cr a] ie EU.S. Patent Oct. 17, 2017 Sheet 4 of 9 US 9,789,406 B2 sien NC sien |@ @ CNC) | ee XY [320A 3208; £3206 y_£320N Match Score Match Score L Match Score Match Score FIG. 3U.S. Patent Oct. 17, 2017 Sheet 5 of 9 US 9,789,406 B2 t 400 Lratoa ‘ny |}_—+] Match score bo ‘Pw ~ 4108 : | -a208 |_»] Match Score AION [____,} match score [~420N FIG. 4U.S. Patent Oct. 17, 2017 502| IDENTIFY POTENTIAL 2} MATCH 504 “4 OBTAIN A MATCH VARIABLE 506 [ OBTAINANDAPPLYA | “| COEFFICIENT TO THE MATCH VARIABLE 508 | DETERMINE WEIGHTED “VALUE FOR THE MATCH ‘VARIABLE Lo MORE MATCH VARIABLES? Sheet 6 of 9 US 9,789,406 B2 FIG. 5 /~ 800 DETERMINE MATCH SCORE BASED ON WEIGHTED VALUES MATCH SCORE > THRESHOLD? DO NOT CONSIDER POTENTIAL MATCH DETERMINE MATCH SCORE. BASED ON WEIGHTED VALUES 812 Yes 516 ‘818U.S. Patent Oct. 17, 2017 Sheet 7 of 9 US 9,789,406 B2 OBTAIN QUALITY — | ean FACTOR(S) RELATED TO ¢ MATCH 602 eo4 | __ GENERATE QUALITY SCORE BASED ON QUALITY FACTORS) | ‘QUALITY SCORE > THRESHOLD? 1 [ 60g | ASSOCIATE MATCH WITH | ASSOCIATE MATCH WITH Lgi2 LOW QUALITY | HIGH QUALITY ¥ aio | DENTIFY AND CORRETATE [IDENTIFY AND CORRETATE “MATCH VARIABLES AND | MATCH VARIABLES AND 1-614 COEFFICIENTS WITH LOW COEFFICIENTS WITH HIGH [___quatity { QUALITY 816 | TUNE MATCH VARIABLE(S) AND/OR COEFFICIENTS. FIG. 6U.S. Patent Oct. 17, 2017 Sheet 8 of 9 US 9,789,406 B2 702_| OBTAIN AVAILABILITY OF FIRST PLAYER, ——__+ ’ IDENTIFY GAMEPLAY SESSION THAT MAY BE RELEVANT FOR FIRST PLAYER MAKE SOFT RESERVATION FOR FIRST PLAYER TO JOIN THE GAMEPLAY SESSION - 700 704 708 [__ OBTAIN AVAILABILITY OF 708_| SECOND PLAYER WHO MAY BE A GOOD MATCH WITH THE FIRST PLAYER ot MAKE SOFT RESERVATION FOR | SECOND PLAYER TO JOIN THE GAMEPLAY SESSION 719 oe m2 PROVIDE INTERIM BOTH PLAYERS NO, GAMEPLAY TO AN AVAILABLE? AVAILABLE PLAYER 714 YES 746 | INVITE PLAYERS TO JOIN THE GAMEPLAY SESSION FIG. 7U.S. Patent Oct. 17, 2017 Sheet 9 of 9 IDENTIFY ITEM THAT MAY 802.) BE RELEVANT TO AFIRST Facou PLAYER: ' 04 [_ IDENTIFY ASECOND_ PLAYER THAT POSSESSES THE ITEM ¥ TUNE MATCH VARIABLES) 808 /AND/OR COEFFICIENT(S) TO MATCH FIRST AND SECOND | 808 | MATCH FIRST AND SECOND PLAYERS FIRST PLAYER PURCHASED ITEM? iz | PLAGEFIRGT PLAYER NA ©) GAMEPLAY SESSION FOR WHICH THE ITEM IS EFFECTIVE UPDATE PLAYER PROFILE TO INDICATE NON- PURCHASE e14 FIG. 8 US 9,789,406 B2US 9,789,406 B2 1 SYSTEM AND METHOD FOR DRIVING. MICROTRANSACTIONS IN MULTIPLAYER VIDEO GAMES. RELATED APPLICATIONS ‘This application claims priority to U.S, Provisional Patent Application Ser. No, 62/020,732, filed on Jul. 3, 2014; US. Provisional Patent Application Ser. No. 62/020.730, filed on Jul. 3, 2014: U.S. Provisional Patent Application See. No. (21020.743. fied on Jul. 3, 2014; and US. Provisional Patent Application Ser. No. 62020,79, iledon Jul. 3, 2014, the entities of which are hereby incorporated by reference herein in theit entireties. This application is related 10 ‘co-pending and concurrently fled US. patent application Ser, No, 14/712,514, entitled "MATCHMAKING SYSTEM AND METHOD FOR MULTIPLAYER VIDEO GAMES US. patent application Ser. No. 14/712,541, entitled “SOFT RESERVATION SYSTEM AND METHOD FOR MULTI- PLAYER VIDEO GAMES"; and U.S. patent application Ser. No. 14/712,608, ented “GROUP COMPOSITION MATCH-MAKING SYSTEM AND METHOD FOR MUL- TIPLAYER VIDEO GAMES”, all of which are hereby nconporated by reference herein in thir entireties, FIELD OF THE INVENTION ‘The invention relates to a system and method for driving rmicretransactions in multiplayer video games. BACKGROUND OF THE INVENTION ‘Maltiplayer video games have exploded! in popularity ‘due, in pat, to serviees such as Mirosoft’s Xbox LIVE and Sony's PlayStation Network which enable gamers all ‘over the world t play with or against one another. Gener ally, a multiplayer video game isa video game in which two ‘or more players play in a gameplay session ina cooperative ‘or adversarial relationship. At least one of the players may ‘comprise a human player, while one ar more ether players may comprise either non-player charicters andlor other human players Typically, when a player logs in to 2 game system oF platform to play @ multiplayer video game, the player may ‘enguge in a gameplay session in which he or she is matched ‘with other players to play together (on the same team or as ‘opponents). given player may engage in multiple game- play sessions during. a login session. In addition, eaeh ameplay session may be played with either the same or a ‘iffeent group of matched players. Conventionally, when interested in playing ina group with other players, an individual player may ask fiends 10 orm a player group, may ask other players who are of the same skill evel to form a player group, andlor may other wise form a group by sending invitations to other players. ‘Somie systems may automatically group oF match players based solely on a Fimited number of hard-coded character istics (eg, skill level), which are not dynamically adjusted. Such systems may ereate a hand set of segregated pools of players. For example, in some conventional systems, player who is at a certain skill level may never be matched ‘with a player at a higher skill level, which may result in one dimensional and unsatisfying gameplay. Purhermore, conventional systems filo assess a quality ‘of gameplay used to tune matchmaking processes to opt ‘ize player combinations. Conventional systems also fil t0 reserve gameplay sessions for players in a way that 0 o 2 sizes the time that a player must wait 10 be matehed. Conventional systems luther fail o leverage matchmaking processes in other contexts, such as influencing gume- related purchases, suggesting group formations, taining! identifying non-player characters, andor otherwise extend- ing the use of the matchmaking process. These and other drawbacks exist with current matchmaking processes uti lized in mutiplayer video games. SUMMARY OF THE INVENTION The invention addressing these and other drawbacks relates toa matchmaking system and method that facilitates ‘optimization of player matches for multiplayer vdeo games. The system may provide a generalized framework for ‘matchmaking using historical player data and analytics. The framework may facilitate automatic determinations of an ‘optimal mix of players and styles to produce more satist¥ing player experiences, Additionally, the system may dynami- cally update analytical processes based on statistical or cherwise observed data related to gameplay ata given time, In this manner, the system may continually tune the mateh- making process based on observations af player behavior, gameplay quality andor other information. ‘While aspects of the iavention may be described here with reference to various game levels or modes, characters, roles, game items, ele. associated with a FirtPerson. Shooter (FPS) game, it should be appreciated that any such ‘examples are for illustrative purposes only, and are not intended 19 be limiting. The matchmaking system and smthod described in detail herein may’ he used in any genre ‘of multiplayer video game, without limitation ‘one implementation ofthe inventioa, the system may include a scoring engine tht identities a potential match. As ‘used herein, the lnm “match” refers to a matching of (60 oF ‘more players, athor than a contest. For example, potential rmateh refers to a potential grouping of two or more players ‘The scoring engine may obtain one or more match variables used to generate a match score forthe potential match, The fone or more match variables may inclde, without imita- tion, a Tateney between players, a relative skill evel, @ presence of prefered players (eq. clan mates o fends), a team composition, atime dit-a given player has boca Waiting 10 be matched (ex, in a game lobby), a player preference, andlor other information wsed 10 assess a poten: ‘ial mate ‘A given match variable may be assigned a coeiient that indicates a level of importnce, or weight, of the given ‘mafeh variable. The scoring engine may generate a match score based on the match variables and ther coresponding oeficints. In this manner, the scoring engine may consider ‘multiple variables, each of which may be assigned With varying degrees of importance, when asessing the sutabil ty of a potential match 'A game designer or others may assign a default value to 1 given coeficient based on the game designer's opinion of the relative importance of a conesponding match variable. The default valve of a coelicieat may’ be used unless it is changed. ‘A coeficient may be tuned by changing its default value Coefficients may be tunedin various ways, and by various partes, t respond to preferences, changing game condi- tions, andior other information. In this manner, the scoring engine may determine match scores based on dynamically changing information, and adjust the matchmaking process ‘cordinglyUS 9,789,406 B2 3 Tue coeients by nating gameplay pretence, such as through user irlice tsoctfed witha game. For example, player may prioritize teing matched ith rcs even over sore wal ies © joins nich The rystem aay respond to sich a preference fy tuning a coeicint related ty playing with profred players (ea, fiends, clan members et) such tet playing ih prefered players bs mote importance when generating {math score. Aertel o atonal the sem may tune coetcent related wa tines sh thi wat tines has es importance when generating a mach sore Tn some implemrtatons, the string engine may aut matically tne the cocficints based on changing circum stances, game hint, andor other amalyicl dita. For ‘example, ia player has been wating in a game lob for more tha a reetemined eth f time, the corng engine may place more weight on getting the player into a match sooner (eg. tinea coetient related to wat times) in another example i a player as been performing poorly (ea, geting ied trate higher han the player's historical rit) the scoring engine may dynamically aust fone or more cvefiients to match the ployer a game that oul improve the player's performance. For example the player ay be atched with easier open, matched with Batter teammtes, anor ploeed it zane that is more tioned othe plyers preferences (eg peyes that play in ames more closely alled with thet prferences tend © perform bette) “o fine-tune the matchmaking proces, the sytem may inclnde an analytic amd eedbork engine that analy player and match da to determine wheter a given match Sav good. Amatch may be deemed "good weno players ‘determined o have enjoyed gameplay associated with the tats based en one or more quai factor hat ate wed as 4 proxy for player satisfaction. The quality factors may ince for example,» ration of gompsy session © tin analysis of player historical dat) playerpeychologa ate (eg, fst lvl). andor other information Tnone implementation, the anatis and feedback naine nay ana game data (eg, whcthen gven game level oF nach favors play styles) historia player dete (eg. typ sles of plier song wesknesscof payers et) an! ‘or other information Io sass 4 ality of plyer exper- “The anastics and feedback engine may’ analyze game data to determine satisfying type of gameplay tht should be provided hrovgh the matchmaking proces For exam, the males and esvek xine may dstemne whether given combinations of role types (es shiner rande umes, ct) lead (0 sasiying gameplsy. Soe analysis may be permet for specific potions of game (eas & tame level andlor genonly fora game “fhe amasties and fedhack engine may analyze player data to determine the player svete that mont eotive forthe player based on historical information associated vith the player For example, the analytes an foiback gine may determine that a payer is most effective of ‘otherwise most enjoys paying aa sipe, which may ease matchmaking to skew towards matches where the player tay play in a sper ole “Ie ansstics and eedhck engine may analyze game and player combinations to infer wht makes a goed match for {povtc ployer and specie games, andlor which Kinds of players siles might he favored by apc match Tihs manos the analytes and feeds engine may nse various data and mercy To asses whither «-gomeay 0 o 4 session was a good one, and/or whether a fature gameplay session will similarly be good fora given player. ‘According to an aspect ofthe iaventon, the system may include a pipelining engine that may generate one or more “soft reservations” for a player based on a match score, a game profile, a player profile, andr other information, Soft reservation may comprise a match between two or more players for one or more subsequent gameplay sessions that fare reserved for the players, The match may be generated as described herein (eg. based on match seores exceeding a threshold mateh score), ‘The pipelining engine may, for instance, anticipate an intrest by players ina subsequent gameplay session (e.g. based on a game profile and/or a player profile) and make soft reservation for two or more players. For example, a soft reservation may be generated before the players have expressed an interest in the subsequent gameplay sessions. For example, and without limitation, the pipelining engine may ansiyze # game progression of a player (eg ‘which may be stow in a player profile) and predict a game: mode (eg, capture the flag) that will likely interest the player. The pipelining engine may then make a soft reser Yation forthe player fora gameplay session that includes the game mode, ‘In another example, the pipelining engine may determine whether prefered players (ea. clan members or friends) of given player have loaged on. Upon obisining information that indicates tht a player's clan members oF friends have logged on, and that the player prefers to play with clan members or friends, the pipelining engine may make a soft reservation forthe player to playin a subsequent gameplay session with his or her lan members or fiends ‘Once a soft reservation has boen made, a player may be avited to join an associated gameplay session. The player ‘may accep te invitation, in which ease the player may start playing in the yameplay session. On the other hand, ifthe player rejects the invitation, then other players may be invited to join the gameplay session to replace the player Such acceptances and rejections may be added to a player profile so that future soft reservations may be fine-tuned based on acceptances (which may indicate a relevant soft reservation was made) and rejections (which may indicate a rnon-relevant soft reservation was made) Because a player may meet an invitation to join a gameplay session associated with a soft reservation, the Pipelining engine may make soft reservations for @ number ff players that exceeds a maximum mimber allowed by a aiven gameplay session, For example, if maximum oum- ber players in a clan for a gameplay session is ten, the pipelining engine may make a soft reservation for a greater number (¢g. fifteen) of players for the gameplay session. ln this manner, the pipelining engine may expoct a certain numberof rejections 10 be made (eg. five in the foregoing ‘example, and may therefore “overbook" the numberof sft reservations (hereinaer,“overbook number”). An overbook number may be predefined or atomically determined based on a game profile, a player profile, andor other information. For example, certain game modes, games, players, ee, may’ be associated with a propeasity to aecept soft reservations than others. The pipelining engine may ‘monitor such tendencies over ime to dynamically adjust the ‘overbook number for a game mode, a game, a player, te. Tn one implementation, a player for which a soft reser- vation fas been made for 8 gameplay session may be added to the gameplay session “in progress” after if has started) For example, a player who has a soft reservation for a particular gameplay session may join the particular game-US 9,789,406 B2 5 play session affer the player’s curent gameplay session is ‘over In this manner, te particular gameplay sestion may be reserved for the player even aller the gameplay session has stared, A player waiting to be matched into a future gameplay session may be required to wait for the future gameplay session to slat. For example, a fist player who prefers 10 play with friends may prefer to wait to be match with Iiens, instead of being placed into gameplay session with ‘only strangers. If the two friends of the first player are ‘currently playing in a gameplay session, whieh has not yet ‘completed, the pipelining engine may make a soll reserva tion for the three players 10 play” togethor in a future pameplay session. Inthe meantime, the first player ean continue to wait until the two friends are available or may jon a zameplay sessir that the pipelining engine determines will likely finish at approximately the same time tht the two fiends” gameplay session is expected t0 finish. For example, the pipelining ‘engine may determine that the two Iriends will complete their gameplay session in ton minutes and may match the frst player into a gameplay session that is expected to be ‘complete in ten mines, In this manner, all three friends may’ be expected to become available at approximately the system and method may be leveraged in various contexts as wel, such ast influence game-telated purchases, recommend a composition of groups of players, train or identify non-player characters (NPCs) that should be used, and/or other contexts For example, in one implementation, the system may include a mierotransaction engine that arranges matches 10 influence game-rclated purchases. For instance, the microtransaction engine may match a more expert marquee player witha junior player to encourage the junior player to ‘make game-rélated purchases of items possessed sed by the ‘marguse player. A junior player may wish to emulate the ‘marquee player by obtaining weapons o other items used hy the marquee player. The mierotransiction engine may analyze various items used by manguce players and, if the items are being pro- moted for sale, match the marquee player with anther player (e.. a junior player) that does not use or own the stems. Similalj, the microtransaction engine may identify items to be promoted, identify marquee players that use those items, and match the marquee players with other players who do not use those items. In this manner, the microtransaction engine may leverage the matchmaking bilities deseribed herein to inluenee purchase decisions for pame-related purchases. In one implementation, the microtrnssetion engine may target paricular players to make game-related purchases based on their interests. For example, the mierotransaction ‘engine may identify junior playerto match with a manque player based on a player profile of the junior player. In a Panicular example, the junior player may wish ta become an ‘expert sniper ina game (eg, a8 detemmined from the player profile) The microteansaction engine may match the junioe player with a player tht 8 a highly skilled suiper in the game. In this manner, te junior player may be encouraged ‘o make game-related purchases suel asa rile or other item tied by the manguce player, In one implementation, when a player makes a game- related purchase, the micotransaction engine may encour ‘age fmure purchases by matching the player (eg., using ‘matchmaking described herein) in a gameplay session that will utilize the game-related purchase. Doing so may 0 o 6 enhance @ level of enjoyment by the player for the game- related purchase, which may encourage future purchases. For example, i the player purchased a particular weapon, the microtrusoction engine may match the player in a ‘gameplay session in which the particular weapon is highly cffoctve, giving the player an impression thatthe particular ‘weapon was & good purchase. This may encourage the player to make future purchases to achieve similar gameplay results, ‘one implementation, the system may suggest a com- position of @ group of players using the matchmaking races, For example, one or more players may’ wish to form or join a group of players fora given game, but not know ‘what would be an appropriate mix of player styles, player roles, skill levels, and/or other player characteristics that ‘would make an optimal group, given the player's own characteristics. ‘The system may identify optimal groups based on match ‘making related information such as, without limitation, zane profile, player profile (ee. explicit preferences, pur: chases made, player syle, ec), prior match seores, prior quality scores, and/or other information. Optimal groups say be those that have performed sucessfully (c plished the most wins, abjectives, ete), are assoc the highest player enjoyment (e_2, based on match andlor quality scores), andor otherwise are daomed to be desirable. According (0 one aspect ofthe invention, the matehmak- ‘ng may be used fo manage NPCs, For example, the system may be used fo selet‘generate a NPC to fill a gap ina clan fr team, generate eam or clan of NPCs, analyze NPCs post-game session to identify successful NPCS, andor per {orm other actions with respect to NPCs. ‘The system may identify a gap in a number of players required for a given gameplay session such as, for example ‘when only nine (or less) human players have joined in @ game that requires fen players in a clan, In this case, the system may assign one or more NPCs to play along with the ‘human players i the clan. The system may penerate poten- tial matches between the human players who have joined ‘nd potential NPCS to fll the paps. The system may score cach potential match and select NPCs that are associated ‘ith the highest match seores, For example, in a game ia Which the system has determined tha five saipers and five run-and-gunners represent an optimal mix of player roles, ‘the system may select NPCs to fil gaps such that the desired combination of five snipers and five run-and-gunners is ‘achieved 0 the extent possible (because poteatial matches ‘having this ratio will have higher match Score). ‘In some implementations, the system may identify one or more NPCs to serve as an opponent to one oF more human players. The system may generate a match score fora proup fof NPCs and se the match score asa proxy for the group's level of dificulty. For example, a combination of NPCs having higher match scores that resulted from higher values {ora match variable related to performance may represent 3 “more dificult” t0 beat opponent than those with lower smateh seores. The system may therefore dynamically select [NPC opponents based on match scores and an appropriate level of dfculty to be provided to the player (ez, more skilled players may be presented with NPCs having higher ‘match sores) ‘In one implementation, the system may generate NPC profiles analogous to player profiles. In this manner, the System may analyze NPCs in a manner similar to player analysis. The system may therefore continually improveUS 9,789,406 B2 1 NPC perfomance and selection based oa NPC profiles, Which may take into account NPC log, stateg, andor ‘other NPC characterises These and other objects, features, and characteristics of the system andior metbod disclosed herein, as well as the methods of operation and functions of the related elements ‘of stricture andthe combination of parts and economics of ‘manufacture, wil become more apparent ypon consideration ‘of the following description and the appended claims with reference to the accompanying drawings, all of whieh for 4 ptt of this specification, wherein lke reference numerals ‘designate corresponding pars in the various figures. Its (0 be expressly understood, however, thatthe drawings are for the purpose of illstation and description only and are not ‘intended a definition of the limits of the invention, As used in the specification and in the elaims, the singular orm ‘of “a, “an”, and “the” include plural referents unless the ‘context clearly dictates otherwise BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1A illustrates an exemplary system for providing matclunaking for multiplayer video games, according © an implementation of the invention. FIG. 1B illustrates an exemplary system for providing matchmaking for muliplayer video games, according (0 ua implementation ofthe invention, IG. 2A illustrates an exemplary system configuration in ‘which a server hosts a plurality of computer devices to facilitate @ multiplayer game, according to an implementa- tion of the inveation. TIG. 2B illustrates an exemplary system configuration ia hich s plurality of networked servers communicate with ‘one another to facilitate a multiplayer game, oeconding to an implementation ofthe invention, FIG. 2C illustrates an exemplary system configuration in ‘which @ plurality of computer devices are networked together 10 fclitate a multiplayer game, acconling to an implementation ofthe invention. FIG. 3 depicts a schematic diagram illustrating the gen ‘eration of an initial match between players, according fo an implementation of the invention. IG. 4 depicts a schematic diagram illustrating the adi- tion ofa player toa group of matched players, according t0 fn implementation of the invention. FIG. 5 depicts a process of providing statistical match. ‘making for auliplayer video games, according to an imple- mentation of the iavento FIG. 6 depts « process of analyzing matchmaking scones and feedback to fine tune the matchmaking process, accon- jing tan implementation of the invention. IG. 7 depicts a process of scheduling gaming sessions, socorting to an implementation ofthe invention FIG. 8 depicts a process of influencing in-aame purchases rough ed matali, cording 6 ample DETAILED DESCRIPTION OF THE INVENTION “The invention described herein relates to a matchmaking system and method that facilitates optimization of player matches for multiplayer video games, ‘Exemplary System Architecture FIGS, 1A and 11 each illustrate a system for providing ‘matchmaking for multiplayer video games, according to one ‘implementation of the inveation, FIG, 1A illstates aa 0 o 8 ‘implementation in which servers) 180 faction a6 2 host computer that hosts gameplay between other devices, sch as computer system(s) 110, FIG. 1B illustrates an imple- ‘mentation in which a given computer system 110 functions as a host computer that hosts gameplay becween (or with) other devices, sich as other compte system(s) 110. Unless specifically stated otherwise, the description of various ‘System components may refer to either or both of FIGS, 18 and 1B. The system may generate a match (eg. interchangeably referred to herein as engaging in “matehmaking”) between ‘60 or more players (e.g, one or more human players andlor ‘one oF more noa-player charaeters). In some instances, the rmateh, if accepted by the matched players, may result in initiation of a gameplay session that includes the matched players. In other instances, the match may result in auto- ‘mati initiation of a gameplay’ session without intervention for specific action taken by a matched player to accept the match, System 100 may be used fo score potential matches and termine which match will ikely lad to postive gameplay ‘outcomes fr the matched players. For example, system 100 ‘may generate matches that are predicted to resll in greater performance by the matched players, result in greater sat- ‘shictionlenjoyment by the matched players, andlor other wise will lead to positive gameplay outcomes for the smatehed players. In one implementation, system 100 may inelude one or ‘more computer systems 110, one or more servers 180, one ‘oF more databases 160, and/or other components Computer System 110 Computer system 110 may be configured as a gaming console, a handheld gaming device, a personal computer (ex, a desktop computer, laptop computer, et.) a smart- phone, a tablet computing device, a smart television, andior ‘ther device that ean be used 0 iateract with an instance of 8 video game. Referring to FIG. 1B, computer system 110 may include ‘one o more processors 112 (also interchangeably referred to harein as processors 112, processor(s) 12, or processor 12 for convenience), one oF more storage devices 114 (which may store a matchmaking application 120), one oF more peripherals 140, andior other components. Processors 112 ‘may be programmed by one or more computer program insictions. For example, processors 112 muy be pro- grammed by matchmaking application 120 andor other instrctons (such as gaming instructions used to instantiate the game) Depending on the system configuration, matchmaking application 120 (or portions thereof) may be part ofa game application, which creates a game instance to facilitate gameplay. Alternatively or additionally, matchmaking appli cation 120 may run on a device such as a server 180 10 {determine matches for users in an “online” game hosted by server 150, ‘Matchmaking application 120 may include instructions that program computer system 110. The instructions may ‘include, without limitation, a scoring engine 122, an ana- Ivties and Feedback engine 124, a pipelining engine 126, a mierotransaetion engine 128, a User Interface (*UY”) engine 130, andr other instructions tht program computer system 110 to perform various operations, each of which are described in greater detail herein. AS used herein, for eon- venience, the various instrctions will be doscribed as per- {orming an operation, when, in fat, the various insteetions gram the processors 112 (end therefore computer system 110) t perform the operationUS 9,789,406 B2 9 Peripherals 140 Peripherals 140 may be used to obtain an input (e.. ‘direct input, measured input, ee.) from a player. Peripherals 140 may include, without limitation, a game controller, 2 amepad, a keyboard, # mouse, an imaging device such as camera, a motion sensing device, alight sensor, a biomel- rie senso, andor other peripheral device that ean obtain an ‘input from andor relating to player. Peripherals 140 may be coupled to a eomresponding computer system 110 via & wired andlor wireless connection, Server 180 Server 180 muy include one or more computing devies. Referring t FIG. 1A, Server 150 may include one oF ‘more physical processors 152 (also interchangeably referred to herein as processors 152, processors) 152, or processor 152 for convenience) programmed by computer program Instructions, one or more storage devices 184 (which may store a matchmaking application 120), andor other compo- nents. Processors 152 may be programmed by one or more ‘computer program instwctioas. For example, processors 182 may be programmed by gaming insinictions used to instantiate the game. Depending on the system configuration, matchmaking application 120 (or portions thercof) may be part of a game application, which creates a game instance to facilitate pameplay. Alternatively or additionally, portions or all of ‘matclumaking application 120 may run on computer system 10 or server 150, ‘Matchmaking application 120 may include instrations that program server 180, The instructions may include, ‘without limitation, a scoring engine 122, an anal Tesack engine 124, a pipelining engine 126, a microtrans- action engine 128, a User Interface (*UM) engine 130. ‘and/or other instructions that program server 180 to perform various operations, each of which are described in greater desailherein, 'As usod hersin, for convenience, the varius instrations| ‘wil be described as performing an operation, when, in ict, the various instnictions program the processors 152 (and therefore server 150) to perform the operation "Although illustrated in FIG. 1 as & single component, ‘computer system 110 and server 150 may each include & plurality of individual componeats (e., computer devices) ‘each programmed with at least some of the functions described herein. In this mannee, some components of ter system 110 andi server 180 may perform some tons while other components may perform other func~ tions, 2s would be appreciated, The one or more processors (112, 182) may eae inclide one oF more physical proces: sor that are programmed! by computer program insinictions. ‘Thus, either or both server 150 and computer system 100 may Tunetion as a host computer programmed by match- ‘making application 120, The various instections deseribed herein are exemplary only. Other configurations and mum- bers of instructions may be used, so long as the processor(s) (112,152) are programmed. to perform the functions ‘described herein, Furthermore it should be appreciated that although the various instructions are illustrated in FIG. 1 as being co- located within a single processing unit, in implementations Jn whieh processors) (112, 152) includes multiple process jing units, one of more instructions may be executed remotely ftom the other instructions "The description of the fnetionality provided by the different insiruetions described herein 8 for illustrative Purposes, and is not intended to be limiting, as any of Instructions may provide more or less functionality than is 0 o 10 described. For example, one or more ofthe instructions may be eliminated, and some or all oF its functionality may be provided by other ones of the instructions. AS another ‘example, processor(s) (112, 152) may be programmed by ‘one oF mote additional instevetions that may perform some for all of the fimctionality stibuted herein to one of the instructions. ‘The various instructions described herein may be stored in a storage device (114, 154) which may comprise random access memory (RAM), read only memory (ROM), andior other memory. The storage device may store the computer program instructions (eg. the uforementioned instructions) {o be executed by processor (112, 152) as well a data that may be manipulated by processor (112, 152). The storage device may comprise floppy disks, land disk, optical disks, ‘apes, or other storage media for sloring computer-execut- able insttions andlor data, The various components illustrated ia PIG. 1 may be coupled to at least one other component via network, Which may include any one or more of, for instance, the Internet, an ntranct, a PAN (Personal Avea Network), a LAN (Local Area Network),a WAN (Wide Area Network), SAN ‘Storage Arca Network), a MAN (Metropolitan Aret Net- ork), a wireless network, acellular communications net- ‘work, @ Public Switched Telephone Network, andlor other rework, In FIG. 1, a8 well a in other drawing Figures, diferent numbers of entities than those depicted may be used. Furthermore, aeeonding to various implementations, the components deseribed herein may be implemented in hardware andor software that configure hardware "The various datahases 160 described herein may be include, oF interface to, for example, an Oracle™ relational database sold commercially by Oracle Corporation. Other databases, sueh a8 lnformix™™, DB2 (Database 2) of other data storoge, including file-based. or query formas, pla forms, or resources such as OLAP (On Line Analytical Processing), SQL (Structured Query Language), a SAN (storage area network), Microsoft Access™ or others may also be used, incorporated, or accessed. The database may ‘comprise one or more such databases that reside in one or ‘more physical device and in one or more physical locations. The database may store a plurality of types of data andor files and associated data or fle descriptions, administrative information, or any other data FIG. 2A illustrates an exemplary system configuration 200A in which a server hosts plurality of computer devices ‘© filtate a multiplayer game, according to an implemen- ‘ation of the invention. In one implementation, one ar more servers 150 (lusirted in FIG. 1) may host a number of computer systems 110 (illustrated as computer systems TIOA, 110B, .. . HON) via a neswork 102. Foch computer system 110 may include one or mote peripheral (illustrated as peripherals 140A, 1408, ... 140). In this manner, one for more servers 150° may facilitate the gameplay of different players using different computer systems 110 andor other ‘wise provide one or more operations of matchmaking spp cation 120 (illustrated in FIG. 1, In some instances, a given server 150 may be associated witha proprietary pameplay network system, such as, with ‘out limitation, SONY PLAYSTATION” NETWORK, MICROSOFT XBOX LIVE, andlor another type of gume- play network system. In this implementation, a given com puter system 110 may be associated with a panicular type of ‘gaming console. Other types of computer systems 110 sing ther types of gameplay networks may be used as wel FIG. 20 illustmtes aa exemplary system configuration 2008 in which a plurality of computer systems 110 areUS 9,789,406 B2 uw networked together to fivilitate a multiplayer game, aecord- Jing to an implementation ofthe invention, Any one or more ‘of the computer devices 110 may serve as a host and/or blherwise provide one oF more operations of matchmaking application 120 (lustated in FIG. 1, TIG, 2C illustrates an exemplary system configuration 200C in which a computer system 10 is used by a plurality ‘of wers to facilitate a multiplayer game, according to an ‘implementation of the invention. In an implementation, ‘computer system 110 may be considered to host the multi- player game andor otherwise provide one or more opera- tions of matchmaking application 120 (illustrated in FIG. 1). Referring to FIGS. 24.2C, in an implementation, a host may facilitate the muliplayer game by generating match scores, selecting potential matches, performing analytics, making soft reservations, influencing game-elated. pure ‘chases andor performing other operations described herein, Iman implementation, t least some ofthese opeeations may albo or instead be performed by one or more individual ‘computer systems 110. Furthermore, the ilustated system, ‘configurations are exemplary only and should not be viewed, as limiting in aay way. Other system conligurations may be used as well, as would be appreciated by those having skill jin the at In an implementation, system 100 may identify players that are waiting to be matched, such as players whose characters are waiting in a virwial game lobby to join a pameplay session. System 100 may generate one oF more Potential matehes by grouping two or more ofthe identified players andor adding atleast one of the identified players to ‘an existing potential match, The number of players placed in, ‘each potential match may depend on a number of players ‘waiting to be matched, a number of players needed for a ‘game session (e.g, number of players needed to form a twam), 2 numberof players that can be accommeslated by & ame session, anor other information, Generating Match Score for Potential Matches According to an aspect ofthe invention, scoring engine 122 may generate a match score fora potential match based ‘om one ce more match variables associated with each player inthe potential match. A match score may be generated for ‘each potential match and may be used to determine an ‘optimal mix of players in a grouping to prodace the most satisfying player experiences. In other words, match scare may indicate a predicted level of satisfaction of players that ‘are placed in a potential match. A match variable may be ‘obtained from a memory (e.g. a database). measured by scoring engine 122, andlor otherwise oblained by seoring ‘engine 122. The one ar more match variables may relate to at least one player's characteristic that may influence whether a player ‘enjoys gameplay while placed ina math, Por example, and without limitation, a match variable may include a Tatency between players (e.24 delay time for data communication between players” gaming systems or platforms such that lower lateney is preferentially matched), a player sil level ‘team composition (ei, 2 role played by each player of 3 potential mateh),a presence or absence of preferred players (ex, clan members, friends, ee), a time that a player has waited to be matched (eg., a player having a longer wait time may be preferentially matched), a location ofa player (ex, players geographically close to one another may be preferentially matched), anc or more explicit user prefer ‘ences received from a player, andor other match variables, 0 o 12 Assigning and Tuning. Coelic Importance of Match Variables A given match variable may be associated with a corre- sponding coelcient that indicates a level of importance of the given match variable. A game designer or others may assign a default value to one or more cocllciens. Por ‘example, a match variable related to a compesition ofa team may, by default, be more important than a match variable related 10 lateney and may therefore be weighted more Deavily when generating a mateh score. Other mateh vari ables may be weighted 2s well, ‘The coeficient may be expressed asa multiplier, a per- centage, andlor other value that can be used to weight & ‘match variable relative w one or more oer match Variables. ‘The coefficient may be set to zero (or an equivalent metric) such thatthe given match variable isnot considered when generating a match score. For example, if the latency variable s assigned with a coeficient of zero (or other valve that indicates that latency should not be used), scoring engine 122 may jgnore the latency variable when generating ‘match score. In this manner a game designer or others may Sdtermine which match variables will be wed to generate ‘mateh scores andior weights forthe match variables. Alter natively or aditionally, the game designer or others may remove match variables from consideration altogether (and! fr ad new mitch variables). A ivencoellicient may be tmwed by modifying the default valus to genorate a tuned value, which may be used instoad of the defaut value. In an implementation, two oF more cocflcients may be tuned together. For example, 2 first rmateh variable may be de-emphasized by adjusting a frst coeflcient downward while a second match variable may be emphasized by adjusting a second eveficient upward. In this ‘manner, ope match variable may be weighted more heavily ‘and nother mateh variable may be weighted les heavily. la some instances, the runing of one coeflicient may necessarily result in the tuning of another eveficient. For example, when the vale ofa coeficient i expressed a ratio that sums to 1, inereasing the valve of a frst coetficient may necessitate decreasing the value of second coeficicat ‘A coeficient may be tuned in various ways (and respon- sive to various conditions) to adjust how its coresponding ‘match variable will be weighted. A tuned eoetliient may itself be iteratively tuned. In this manner, the peneration of ‘match scores, and therefore matches made, may be tuned according to particular needs, preferences, changing condi- ‘ions, andor other information. For example, a game dovel- ‘oper. a player, scoring engine 122, andr others may tune the cooficiens ‘A game designer or match administrator (ea compu erizedor human game session moderato), for example, may tune one or more coeficieals based on whit the game {designer or match administrator believes are more important ‘match variables, andor based on game requirements to suit the particular game for which matchmaking is performed. In fone example, a game designer may assign relatively high coeflicients (et, high relative to other coeficients) 0 a patch variable related to latency for games in whieh a high degree of collaboration with other players is require. In some instances, a player may tune one or more coef ficients (eg,, coeficoats originally assigned by a game ‘developer or others) according to user preferences through a game User Interface, a settings interface, or other interface. For example, a player may indicate a preference to play with fiends, in which case the player may tune a coeficient associated with a match vatiable that relates to preferred ts to Customize theUS 9,789,406 B2 13 players such thatthe coeflicient is weighted more heavily than other coelliciats, The tuned cocllicient may allect & mmatelumaking decision, For example, a potential match that includes the player ‘and strangers may receive alow value forthe match variable related to the presence of preferred players. The tuned ‘coctlcient may cause the low value © affect the overall, ‘match scare more so than ollier match variables, Thus, the ‘corresponding match score may be skewed toward a valve that indicates poor match and the potential match will aot be selected. In this manner, tuning of one oF more coetl- cients by the player may impact match Scones and therefore mmatelimaking decisions In another example, the player may tune a coefficient related fo game roles to be high (to more heavily weight ame roles when considering & match score) and set a value ‘ofa match variable related fo game roles to be “sniper” In this example, « potential match in which the player would play using a sniper role (e.,thove matches where a sniper role is postble or otherwise available) will have a higher ‘match score than a potential match in which the player would not play as a sniper role. In this manner, the player may indicate a preference for being matched in 9 gameplay session in which the player plays as a sniper role Inyet another example, a player may valve a better match ‘over shorter wait times. The player may therefore tune 2 ‘ovtlcient related to wait times 10 be low (or zero) so that ‘ait imes are not weighted heavily (or at all) when gener- ting potential matches forthe player. “According to an aspect of the invention, scoring engine 122 may tune the one or more coeficents based on changing circumstances. yame history, andor other analytical data For example, Ifa given player has performed poorly daring previous game sessions (as determined from historical ameplay information), scoring engine 122 may adjust one for more coeficients for the player such that gameplay bocomes easier forthe player For example, if player has been getting killed ata rate higher than the players histori- cal rate, scoring engine 122 may dynamically tne a cack ficient associated with a match variable related 10 skill evel to match him with casier opponents, higher-skilled callah- ‘orate team members, same sessions that are more sited to the player's gameplay style (eg. a mp that favors stiper), ‘and/or eaher coelicients that can allect the outcome of 8 match soore Scoring engine 122 may also tune the one or more ‘coefficients based on system requirements unrelated 1 user preferences or game design. For example, scoring engine 122 may determine (eg, measure or receive an indication) that a load on a given server that offers minimal Tatency ‘compared to other servers needs to be reduced and load balanced onto another server with greater lateney. ln this scenario, scoring engine 122 may adjust the coeficent related to the latency match variable 30 that latency is “disregarded or is importance in generating a match sore is diminished (for potential matches that would have been, hosted by the given server). In another example, scoring ‘engine 122 may detemnine that a given server is associated With a higher network cost and should be avoided. Scoring ‘engine 122 may adjust coefficients for match variables that may alleet whether a potential match will play on the piven serve, in order to minimize or eliminate matches that will use the given server, ‘Table 1 (€epicted below) illustrates a non-limiting ‘example of four match variables, their comesponding coef ficients, and resulting match score for a potential match between two more players. Table I is presented solely for 0 o 14 illustrative purposes and should not be viewed as limiting, Any number of other match variables and coedcients may be used. Furthermore, other techniques to generate the smatch score may be used as well TABLE 1 Til of Mach ‘eam Compostion bs 1 : Mc Sor: sa As illustrated in Table 1, each of three exemplary match variables Latency, team composition, and skill level) may be ‘normalized o havea valve that ranges from 010 10 (e "0" referring to a “poor” value, and 10 refering to a “good valuc—although other numerical values and/or anges may be used). The coelicients may be expressed asa ratio that stim to one. Thus, ning one eveficient ill ease another coefcient to he tuned as well. In this manner, the match Score may be havea maxinaim value of 10(10 being the best ‘match score and zero being the worst match score). In the foregoing example, the various values may be based on percentiles from a population of players. For example, the 95% to 100" percentile may be associated with a value of "10", the 90°" to 95" is 80 10 90 is 8, et. The percentile ranges may be equal in size or different in siz. For instance, a match variable related to latency may be associated with a value of 8. In this cas, latency is consid- ered to be “good” forthe group of players in the potential In other words, laeney between devices afsociated with the group of players is considered 10 be low. The precise translation between the actual latency measurement (sich may be measured in milliseconds) and a value of a ‘match variable (in this example, 8) may be made using a predefined translation scale. Other match variables may be Similarly translated from corresponding ew meastirements ‘or data value of the eoeficient corresponding to the match variable related to lateney may be set (eg. by default oF tuned) t0 be 0.1, indicating a relatively low importance relative to the olher cocllicients, The weighted value is 800.1, of 08, "The match variable related vo team composition may be a relatively ow 2, indicating that a good mix of players forthe particular gameplay session is “poor” However, the value of the corresponding coefficient may be a relatively high 0.5, indicating that team composition is relatively important for the gameplay session. The weighted value is 240.5, or 0. The value of the match variable related to skill level is relatively high 9, indicating thatthe level of skill of the players is a good mix forthe gameplay session, The value of the corresponding cocficient i a roltively high 0.4. Thus, the weighted value is 9x04, or 3.6. ‘Summing the weighted values of all match variables, the smateh score forthe potential match may be determined to be 56. ‘an implementation ofthe invention, scoring engine 122 ‘may score a match based on emulating match variables that fare used 10 match players who are experiencing actual conditions similar to virtal or game’ conditions. For instane, an external match variable may include, without imitation, a time of day, weathor conditions, trending nows, andor other environmental or contextual information, ‘Use of the time of day external match variable may take {no account a Virtual tine of day with actual time of day for
También podría gustarte
Zynga Case vs. 2 Former Employees and Scopely
Zynga Case vs. 2 Former Employees and Scopely
Alex Wawro
"Majestic Revolutions" design doc
"Majestic Revolutions" design doc
Alex Wawro
Benzies v Rockstar
Benzies v Rockstar
Michael Futter
Fallout 1 Vision Statement
Fallout 1 Vision Statement
Alex Wawro
FTC Complaint Against Sony Re: Misleading Vita Ads
FTC Complaint Against Sony Re: Misleading Vita Ads
Alex Wawro
Oculus responds to ZeniMax Lawsuit
Oculus responds to ZeniMax Lawsuit
Polygondotcom
The Subtle Art of Not Giving a F*ck: A Counterintuitive Approach to Living a Good Life
The Subtle Art of Not Giving a F*ck: A Counterintuitive Approach to Living a Good Life
Mark Manson
The Yellow House: A Memoir (2019 National Book Award Winner)
The Yellow House: A Memoir (2019 National Book Award Winner)
Sarah M. Broom
Shoe Dog: A Memoir by the Creator of Nike
Shoe Dog: A Memoir by the Creator of Nike
Phil Knight
Hidden Figures: The American Dream and the Untold Story of the Black Women Mathematicians Who Helped Win the Space Race
Hidden Figures: The American Dream and the Untold Story of the Black Women Mathematicians Who Helped Win the Space Race
Margot Lee Shetterly
The Little Book of Hygge: Danish Secrets to Happy Living
The Little Book of Hygge: Danish Secrets to Happy Living
Meik Wiking
Never Split the Difference: Negotiating As If Your Life Depended On It
Never Split the Difference: Negotiating As If Your Life Depended On It
Chris Voss
Grit: The Power of Passion and Perseverance
Grit: The Power of Passion and Perseverance
Angela Duckworth
Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future
Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future
Ashlee Vance
Yes Please
Yes Please
Amy Poehler
A Heartbreaking Work Of Staggering Genius: A Memoir Based on a True Story
A Heartbreaking Work Of Staggering Genius: A Memoir Based on a True Story
Dave Eggers
On Fire: The (Burning) Case for a Green New Deal
On Fire: The (Burning) Case for a Green New Deal
Naomi Klein
The Emperor of All Maladies: A Biography of Cancer
The Emperor of All Maladies: A Biography of Cancer
Siddhartha Mukherjee
Devil in the Grove: Thurgood Marshall, the Groveland Boys, and the Dawn of a New America
Devil in the Grove: Thurgood Marshall, the Groveland Boys, and the Dawn of a New America
Gilbert King
The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers
The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers
Ben Horowitz
Team of Rivals: The Political Genius of Abraham Lincoln
Team of Rivals: The Political Genius of Abraham Lincoln
Doris Kearns Goodwin
Principles: Life and Work
Principles: Life and Work
Ray Dalio
Fear: Trump in the White House
Fear: Trump in the White House
Bob Woodward
The Outsider: A Novel
The Outsider: A Novel
Stephen King
The Sympathizer: A Novel (Pulitzer Prize for Fiction)
The Sympathizer: A Novel (Pulitzer Prize for Fiction)
Viet Thanh Nguyen
The Handmaid's Tale
The Handmaid's Tale
Margaret Atwood
The Light Between Oceans: A Novel
The Light Between Oceans: A Novel
M.L. Stedman
The Alice Network: A Reese's Book Club Pick
The Alice Network: A Reese's Book Club Pick
Kate Quinn
The Woman in Cabin 10
The Woman in Cabin 10
Ruth Ware
Life of Pi
Life of Pi
Yann Martel
Brooklyn: A Novel
Brooklyn: A Novel
Colm Tóibín
A Man Called Ove: A Novel
A Man Called Ove: A Novel
Fredrik Backman
Wolf Hall: A Novel
Wolf Hall: A Novel
Hilary Mantel
The Perks of Being a Wallflower
The Perks of Being a Wallflower
Stephen Chbosky
Manhattan Beach: A Novel
Manhattan Beach: A Novel
Jennifer Egan
Little Women
Little Women
Louisa May Alcott
The Art of Racing in the Rain: A Novel
The Art of Racing in the Rain: A Novel
Garth Stein
A Tree Grows in Brooklyn
A Tree Grows in Brooklyn
Betty Smith
The Lord of the Rings: One Volume
The Lord of the Rings: One Volume
J.R.R. Tolkien
Sing, Unburied, Sing: A Novel
Sing, Unburied, Sing: A Novel
Jesmyn Ward
Everything Is Illuminated
Everything Is Illuminated
Jonathan Safran Foer
Her Body and Other Parties: Stories
Her Body and Other Parties: Stories
Carmen Maria Machado
The Constant Gardener: A Novel
The Constant Gardener: A Novel
John le Carré