throbber
III iii1111111111111191fg11111111111111111111111
`
`(12) United States Patent
`Kirmse et al.
`
`(to) Patent No.:
`(45) Date of Patent:
`
`US 6,699,125 B2
`Mar. 2, 2004
`
`(54)
`
`GAME SERVER FOR USE IN CONNECTION
`WITH A MESSENGER SERVER
`
`(75)
`
`Inventors: Chris Kirmse, Sunnyvale, CA (US);
`Brian Gottlieb, Palo Alto, CA (US)
`
`(73)
`
`Assignee: Yahoo! Inc., Sunnyvale, CA (US)
`
`* )
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 149 days.
`
`(21)
`
`Appl. No.: 09/898,746
`
`(22)
`
`Filed:
`
`Jul. 2, 2001
`
`(65)
`
`Prior Publication Data
`
`US 2002/0086732 Al Jul. 4, 2002
`
`(60)
`
`Related U.S. Application Data
`Provisional application No. 60/215,710, filed on Jul. 3,
`2000.
`
`(51)
`(52)
`(58)
`
`Int. C1.7
`U.S. Cl.
`Field of Search
`
` A63F 13/12
` 463/42; 709/203
` 463/42; 709/203-205;
`345/758, 759
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`6,466,969 B1 * 10/2002 Bunney et al.
`
` 709/206
`
`* cited by examiner
`
`Primary Examiner Andrew M. Dolinar
`(74) Attorney, Agent, or Firm—Townsend and Townsend
`and Crew, LLP; Philip H. Albert
`
`(57)
`
`ABSTRACT
`
`A game and messenger client-server system is provided
`including a plurality of game clients, a game server, a
`plurality of messenger clients, and a messenger server. The
`game server includes logic to operate a multiplayer game
`using inputs from and outputs to an active game set of game
`clients, wherein game clients other than those in the active
`game set can join an active game by supplying the game
`server with a reference to the active game. Additionally,
`logic is included for coupling a game client to a messenger
`client to allow the game client to send the messenger client
`data used to initiate joining a game, whereby a message sent
`by the messenger client includes the data used to initiate
`joining a game. Also, logic is included for initiating a join of
`a game at an invitee client, using data received in a message
`to the invitee.
`
`6,179,713 B1 * 1/2001 James et al.
`
` 463/42
`
`18 Claims, 13 Drawing Sheets
`
`12(1)
`
`20(1)
`
`Game Client
`
`Inv Msg
`
`[Messenger Client
`
`22(1)
`
`12(2)
`
`LLylessenger Client
`
`22(2)
`
`24
`
`26
`
`26
`
`16
`
`10
`
`14
`
`18
`
`Game Server
`
`Active
`Game
`
`Active
`Game
`
`Messenger Server
`
`ti
`Buddy
`Lists
`
`Apple Inc.
`Ex. 1005 - Page 1
`
`

`

`Waled *S11
`
`CI JO 1 lamIS
`
`ZS SZT`669`9 Sa
`
`14
`
`18
`
`Game Server
`
`Active
`Game
`
`Active
`Game
`
`Messenger Server
`
`Buddy
`Lists
`
`16
`
`10
`
`FIG. 1
`
`20(1)
`
`L
`
`Game Client
`
`Inv Msg
`
`V
`Messenger Client
`
`---"'-- 24
`
`26
`
`22(1)
`
`122)
`
`Messenger Client -4-
`
`22(2)
`
`26
`
`Apple Inc.
`Ex. 1005 - Page 2
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 2 of 13
`
`US 6,699,125 B2
`
`12(1)
`
`20(1)
`
`34
`
`Game Client
`
`30
`
`Invocation
`Instructions
`
`Network Interface
`
`To Game
`Server
`
`36
`
`Client
`Variables
`
`32
`
`/
`0/S Messaging
`Interface
`
`r
`
`38
`
`0/S
`Message
`
`22(1)
`
`?
`
`Messenger Client
`
`FIG. 2
`
`Apple Inc.
`Ex. 1005 - Page 3
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 3 of 13
`
`US 6,699,125 B2
`
`12(2)
`
`22(2)
`
`?
`Game Client
`
`42
`
`/
`
`40
`
`Buddy List
`
`Message List
`
`44
`
`Invoker
`
`46
`
`26
`
`SM
`
`From
`Messenger
`Server
`
`V
`0/S System
`Services
`
`1
`
`Invokes Invitee
`Game Client with
`Correct Parameters
`
`FIG. 3
`
`Apple Inc.
`Ex. 1005 - Page 4
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 4 of 13
`
`US 6,699,125 B2
`
`Inviter
`
`Game Server
`
`Messenger Server
`
`Invitee
`
`I 1
`I 1
`I 1
`I 1
`I 1
`1 1
`I 1
`I 1
`1
`I
`
`( Start
`r S1
`
`Inviter Invokes A
`Game Client
`
`S2
`
`Game Client
`Starts Or Joins
`A Game
`
`11°
`
`r S5
`
`Inviter Creates
`Message For
`Invitee Including
`Invocation Data
`
`r S6
`
`Inviter Sends The
`State Update
`Message
`Indicating "In
`Game" State
`
`r S3
`
`Game Server
`Serves An
`Active Game
`S4
`
`Game Server
`Provides
`Connection
`Details To
`Inviter Client
`
`r S7
`
`Messenger
`Server Routes
`Message To
`Invitee
`
`Game Server
`Accepts New
`Player
`
`FIG. 4
`
`--I-o-
`
`Invitee
`Messenger Client
`Receives
`Message,
`Including
`Revocation Data
`
`,
`I ,
`I
`
`(- S9
`
`Invitee Decides
`To Join Game
`
`( -S10
`
`Invitee Invokes
`Game Client
`Listing Invocation
`Data
`
`( -S11
`
`Game Client
`Joins Game
`Using Invocation
`Data
`
`Apple Inc.
`Ex. 1005 - Page 5
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 5 of 13
`
`US 6,699,125 B2
`
`24
`
`Invocation Message
`
`Message Header
`
`Game ID = "Chase and Race 2000"
`
`Game # = 176
`
`Commandline = "+Connect IP: 192.168.0.17:28001"
`
`ServerDesc = "The Game Server"
`
`Registry Entry = ".../software/ChaseandRace/location"
`
`Faltback URL = ".../nogameinstalled.html"
`
`Version = 1
`
`State = 1
`
`. . .
`
`FIG. 5
`
`Apple Inc.
`Ex. 1005 - Page 6
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 6 of 13
`
`US 6,699,125 B2
`
`Invitor Game Client
`
`(
`
`Start
`
`)
`
`S100
`
`User Joins
`Online Game
`
`S101
`
`Is
`Messenger Client
`Present?
`
`S102
`
`Send Information Message
`Through 0/S Messaging System
`
`S104
`
`FIG. 6
`
`
`
` S103
`
`•
`Invoke Game
`Client For
`Current User
`
`V
`
`User Plays
`Online Game
`
`Invitee Messenger Client
`
`(
`
`Start
`
`)
`
`Get State Message From
`Messenger Server
`
`..., — S200
`
`Display States From Invitor
`Game Clients Using A
`Game Specific Icon
`
`S201
`
`S202
`
`Has
`User Selected
`Game-Specific
`Icon?
`
`Yes
`
`S203
`/
`Invoke Game Client
`Using Invocation Data
`From State Message
`
`(
`
`Done )
`
`FIG. 7
`
`Apple Inc.
`Ex. 1005 - Page 7
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 7 of 13
`
`US 6,699,125 B2
`
`Yahoo Messenger
`_ q X
`Login Message Friends Y! Help
`:18 Friends for - debbie95055
`...Friends
`o brian_the_dork
`o priscilla1us
`o tom123494949
`
`Connected
`
`FIG. 8
`
`Yahoo Messenger
`_ n X
`Login Message Friends YI Help
`iS Friends for - debbie95055
`Friends
`0 brian_the_dork
`o priscillalus
`Dumb tom123494949 (DumbChat)
`Chat
`
`Connected
`
`
`
`4
`
`FIG. 9
`
`Apple Inc.
`Ex. 1005 - Page 8
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 8 of 13
`
`US 6,699,125 B2
`
`0 x.
`Yahoo Messenger
`Login Message Friends YI Help
`
`rig Friends for - debbie95055
`Friends
`0 brian the dork
`O •riscillai us
`Dumb
`Chat
`
`Send a Message
`Call
`Invite to Conference
`Invite to Voice Connection
`Send a File
`
`Go To Chat User
`
`Conne
`
`View Profile
`View File.
`Delete
`
`Edit Contactlnfo
`
`PlayDumbChatwith tom123494949
`More information on DumbChat
`
`FIG. 10
`
`Apple Inc.
`Ex. 1005 - Page 9
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 9 of 13
`
`US 6,699,125 B2
`
`Y! Messenger Server
`
`Y!
`
`Game Client
`
`Yahoo Messenger
`
`FIG. 11B
`
`(Yahoo Messenger
`
`Game Client
`
`Tom's Computer
`
`FIG. 11A
`
`Y! Web
`Server
`
`Y!
`
`Game Clier7D
`
`FIG. 11C
`
`FIG. 11D
`
`Y! Web Server
`
`Y! Messenger Server
`
`Yahoo Messenger
`
`Game
`Server
`
`Game Client
`
`Tom's Computer
`
`FIG. 11E
`
`L
`
`Y!
`
`V
`
`(Yahoo
`Messenger)
`
`T
` ( Game Client
`
`Debbie's Computer
`
`Apple Inc.
`Ex. 1005 - Page 10
`
`

`

`Waled *S'Il
`
`CI JO OI 1331IS
`
`ZS SZT`669`9 Sa
`
`Java VM
`
`122
`
`Messenger Client
`
`122
`
`Messenger Client
`
`16
`
`I
`
`114
`
`Game Server
`
`116
`
`Start
`Message
`
`118
`
`7
`
`Messenger Server
`
`112
`
`Java
`Game
`Client
`
`FIG. 12
`
`Apple Inc.
`Ex. 1005 - Page 11
`
`

`

`Waled *S11
`
`CI JO II lamIS
`
`ZS SZT`669`9 Sa
`
`16
`
`200
`
`0/
`
`14
`
`Game Server
`
`12
`
`12
`
`Game Client
`
`Messenger Client
`
`Messenger Client
`
`204
`
`/
`
`TCP/IP
`
`I
`1
`
`FIG. 13
`
`Apple Inc.
`Ex. 1005 - Page 12
`
`

`

`U.S. Patent
`
`Mar. 2, 2004
`
`Sheet 12 of 13
`
`US 6,699,125 B2
`
`300
`
`_ 0 X
`
`' Yahoo Messenger
`Login Edit Messenger y! Help
`eia
`ce
`AV
`Messages Add
`
`Friends
`
`Info
`
`302 -[
`
`308
`
`lier'° Friends for - Yahoolnvitee
`w Fellow Garners
`304 El Yahoo X Game Expert
`306 1 Game Friend
`w Friends
`0 Mom
`0 Dad
`w Yahoo! Help
`0 YahooHelper
`
`Status► I'm Available
`
`pc)
`IN =
`me
`Connected HTTP
`
`ffii 1',±
`
`R - 4
`
`FIG. 14
`
`Apple Inc.
`Ex. 1005 - Page 13
`
`

`

`Waled *S11
`
`O
`O
`
`CI JO CI PaqS
`
`ZS SZT`669`9 Sa
`
`LOGO
`
`Play Now
`
`Create Table,
`
`Options
`
`Exit Games
`
`#1
`
`#2
`
`Connected to games server
`Say: I
`Llimama44601: Imao Ind
`greatlakesfisherman2001: n
`blaze027: try It fan, rub a litti
`creed_on: ya know what
`Illmama44601: what
`Indnsfarcyyeeeeeee000
`unfmichigan2: I need a p in
`creed_on: I'm giving cover s
`Illmama44601:Imfao
`
`Social Lounge 3
`North
`Table
`JOIN
`#54 Watch I
`Options: stick to driving, Read
`RUDYA10
`Watch I musicprince
`#58
`Cpryk: Unread
`mysliceyesl
`Watch
`Cpryk: Unread
`Watch I lamariposal
`Cpryk: Unread
`Watch I deband2001
`#4
`Cpryk: Unread
`Options
`#7 Watch I koklketli
`Cpryk: Unread
`l Let my friends
`Watch I peachy=
`find me
`508
`Decline All
`Invitations
`i Ims From
`Friends Only
`512
`Profanity Filter
`® None 0 Weak OStrong
`0 Small Windows
`Done
`
`r- 502
`
`Home I MessageBoard I Feedback I Help I Messenger
`West Who Is Watching
`South
`crispy420692000
`JOIN
`JOIN
`
`East
`JOIN
`
`504
`
`JOIN
`
`I natedog212
`
`krichohiou
`
`I
`
`1
`
`robot212
`
`robot2
`
`relaxersize
`
`greuterl3
`
`JOIN
`
`I
`
`fessarafi
`
`robot3
`
`I DrOp DeAd_
`
`( Learn More))
`
`Avatars
`
`510
`
`FIG. 15
`
`_ 0 X
`Yahoo Messenger
`Login View Tools Help
`oP
`Ar+
`
`c52?
`
`It
`
`2s Friends for - sammyjo7867
`Group1
`0 Freakazoid
`O kelly
`0 mikey
`0 Pootchie
`O Snookey
`+ Yahoo! Help
`0 YahooHelper
`
`506
`
`. .
`co
`1 i 1 R. = m; to
`•0
`I, Search
`Search Yahoo!
`0 I'm Available
`
`
`
`Apple Inc.
`Ex. 1005 - Page 14
`
`

`

`1
`GAME SERVER FOR USE IN CONNECTION
`WITH A MESSENGER SERVER
`
`CROSS-REFERENCES TO RELATED
`APPLICATIONS
`
`The present application claims the benefit of priority from
`U.S. Provisional Patent Application No. 60/215,710, filed on
`Jul. 3, 2000, which is hereby incorporated by reference as if
`set forth in full in this document for all purposes.
`
`FIELD OF THE INVENTION
`
`The present invention relates to the use of a game server
`in connection with a messenger server in a multi-user
`networked computing environment.
`
`BACKGROUND OF THE INVENTION
`
`With the advent of the global inter-network of networks
`generally referred to as "the Internet," communication
`between users connected to the Internet has been facilitated
`by programs such as email and instant messaging. Instant
`messaging allows users connected to the Internet to com-
`municate between each other in real-time. Typically, a first
`user downloads an instant message program into their Inter-
`net connectable computing device that can invoke a window
`that includes a section for typing messages and for showing
`a list of other online users designated as "buddies" or as
`"friends" by the first user. Users can chat with any number
`of online buddies by selecting the desired users from their
`buddy list. A connection is then made between the user and
`selected buddy. Once the connection is completed, the users
`can communicate by typing and sending messages. Unlike
`email, the instant messages are designed to appear on the
`other user's instant message window as soon as they are sent
`and while the recipient is online. Thus, an interactive chat
`can be held using the instant message system.
`Additionally, interactive games can be played through the
`Internet. For example, a card game, such as hearts, can be
`played between users. A user who desires to play in an
`interactive game can log on to a web site to join a game. At
`the web site, the user could decide to join a game with
`random players or can join a game with friends if the user
`has a reference to the game the friends are playing. However,
`to join a friend's game, the user must have reference to the
`specific game on the web site, such as a directory or uniform
`resource locator ("URL"). The user might have received the
`reference to the friends' game through email, or any other
`communications means, or alternatively, the user could have
`searched the site for games the user's friends were playing.
`Once locating the game, the web site typically facilitates
`joining the user to the game by providing a link or URL for
`the user to select to join the game. Once joining the game,
`the players of the game would then all view the same game
`and interact with the game through their respective browsers
`or user interfaces. As each player interacts with the game,
`the results of the interactions appear on all players' screens
`that are participating in the game. For example, if a player
`discards a card in the hearts game, all players would see the
`card discarded. Thus, users in remote locations can play an
`interactive game of hearts.
`Using an instant messenger program, buddies can facili-
`tate joining an interactive game between themselves. A text
`message can be sent to another online user through the
`instant messaging system asking the user if they want to play
`the desired game. Once receiving the message, the user can
`decide to join the game with the requester. However, to join
`
`US 6,699,125 B2
`
`5
`
`2
`the game, the user must have downloaded the game before-
`hand. Thus, if the game that the requester wants to play has
`not been downloaded, the user would have to find out where
`the game is located and download the game before proceed-
`ing. Once downloaded, the user launches the game in the
`user's computer. The game then finds connection informa-
`tion for the game from the user's instant messenger program
`and connects to the game. In conventional instant messaging
`configurations, the only communication sent between the
`10 requester and user is a text message asking the user to play
`a game. No other information regarding the game is sent to
`the user. Thus, the user must affirmatively find the game
`requested or download the game and connect to the game the
`requester is playing.
`15 Additionally, the only users that can participate in the
`game are the users that were invited by the user who sent the
`original invitation. The invitation is sent out to the invited
`users and a game is launched with only the invited users as
`possible players. If there are other buddies who want to
`20 participate, the buddies must be affirmatively invited by a
`player of the game. Also, the players of the game are
`transparent to other buddies on the players' buddies lists. In
`other words, other buddies do not know the players are
`participating in an interactive game. Rather, the buddies only
`25 know that the players are currently on-line.
`
`BRIEF SUMMARY OF THE INVENTION
`
`The present invention relates to a game and messenger
`30 client-server system. In one embodiment of the present
`invention, end users connect game clients to a game server
`to allow multiple users to interact in a game. End users can
`use messenger clients to notify other end users that the
`notifier is currently in an online game and provide instruc-
`35 tions for others to join a multiplayer game. In some
`embodiments, the messages sent to messenger clients of
`invitees contain sufficient data to allow an invitee to join a
`specific game that the inviter is playing.
`In one embodiment of the present invention, a client-
`40 server system includes a plurality of game clients, a game
`server, a plurality of messenger clients, and a messenger
`server. The game server includes logic to operate a multi-
`player game using inputs from and outputs to an active game
`set of game clients of the plurality of game clients, wherein
`45 game clients other than those in the active game set can join
`an active game by supplying the game server with a refer-
`ence to the active game. The messenger server includes logic
`to forward messages from a sender messenger client to a
`receiving messenger client. Additionally, logic is included
`so for coupling a game client to a messenger client to allow the
`game client to send the messenger client data used to initiate
`joining a game, whereby a message sent by the messenger
`client includes the data used to initiate joining a game. Also,
`logic is included for initiating a join of a game at an invitee
`55 client, using data received in a message to the invitee.
`In another embodiment, a method of operating a multi-
`player game having a plurality of game clients and a
`plurality of messenger clients in communication with a
`game server and a messenger server is provided. The method
`60 includes the steps of joining the game by sending a reference
`to the game to the game server; sending, from an inviter
`game client to an inviter messenger client, data used to
`initiate joining the game; sending a message including the
`data used to initiate joining the game to the messenger
`65 server; routing the message to an invitee messenger client;
`and using the data in the routed message to invoke a game
`client and join the game.
`
`Apple Inc.
`Ex. 1005 - Page 15
`
`

`

`US 6,699,125 B2
`
`3
`In one embodiment, the present invention provides for a
`software development kit (SDK) including novel software
`and processes. An exemplary game according to the present
`invention supports a SDK in connection with a local mes-
`senger client when the game connects to or disconnects from
`a game server, where such connects and disconnects use a
`small piece of code to effectuate multi-player gaming. When
`connecting to a game server, the game creates a command
`line that another player could use to launch his/her copy of
`the game and connect to the same game server. This com-
`mand line (along with a short game name and description of
`the particular server) is sent from the messenger client to
`everyone in a player's friend list. The buddies' messenger
`clients download some additional game information and
`then shows an icon for the game next to the game player's
`name. When a friend selects "Join game," the messenger
`attempts to launch the game executable with the command
`line to join the same game server. If the users agree, the
`friends can remotely play a game together according to the
`present invention.
`A further understanding of the nature and advantages of
`the invention herein may be realized by reference of the
`remaining portions in the specifications and the attached
`drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram of a game-messenger client-
`server system according to one embodiment of the present
`invention;
`FIG. 2 is a block diagram showing the inviter client of
`FIG. 1 in more detail;
`FIG. 3 is a block diagram showing the invitee client of
`FIG. 1 in more detail;
`FIG. 4 is a flowchart illustrating actions of an inviter
`client, a game server, a messenger server and an invitee
`client, as part of a process of inviting an invitee into a game
`and having the invitee join the game;
`FIG. 5 is an illustration of an invocation message sent
`from an inviter game client to an inviter messenger client;
`FIG. 6 is a flowchart of a process used by a game client
`to send a message if a messenger client is available;
`FIG. 7 is a flowchart of a process used by an invitee
`messenger client to display messages from invitees and
`invoke games;
`FIG. 8 shows an example of a user's messenger window
`as displayed on an user interface;
`FIG. 9 shows an example of an invitee's messenger
`window configured to receive a notification or invitation to
`play a game;
`FIG. 10 shows an exemplary invitee's messenger window
`as displayed on a user interface for participating in a game;
`FIGS. 11A—E are simplified block diagrams of an exem-
`plary game-messenger system;
`FIG. 12 shows another embodiment of the system accord-
`ing to the present invention;
`FIG. 13 illustrates yet another embodiment of the game-
`messenger client system, wherein messages between user
`clients are sent peer-to-peer;
`FIG. 14 illustrates a screen shot of an exemplary mes-
`senger window for an invitee messenger client; and
`FIG. 15 illustrates a screen shot for an exemplary inviter
`having a game and messenger client according to one
`embodiment of the present invention.
`
`DETAILED DESCRIPTION OF SPECIFIC
`EMBODIMENTS OF THE INVENTION
`In one embodiment of a game-messenger system that is
`described below, each of a plurality of end users operates a
`
`4
`game client and a messenger client. The game clients
`interface with a central game server and the messenger
`clients interface with a central messenger server. Notwith-
`standing that description, it should be understood that the
`5 game client and messenger client can be merged into a single
`program or plug-ins to a single program, the central game
`server and the central messenger server can be operated as
`a unified server, and the central game server and/or the
`central messenger server can be replaced with a distributed
`10 server, all without necessarily departing from the scope of
`the invention. It should also be understood that the present
`invention is not limited to games, but that where a multi-
`player game (i.e., a game configured to allow two or more
`players) is used as an example herein, another non-game
`15 multi-user application could be used instead. For example,
`instead of notifying other players of multiplayer game play,
`an inviter could invite other computer or computing device
`users to join in some other multi-user activity.
`In this description, the terms "inviter" and "invitee" are
`20 used to distinguish end users between those that are playing
`a game and notifying others and those that are notified and
`given a notice of the playing. Often, the "inviter" will not so
`much be making an invitation to invitees to join a game but
`would be simply notifying buddies of the inviter that the
`25 inviter is playing an online game. Thus, instead of "inviter,"
`"invitee" and "invitation," the terms "notifier," "notifyee"
`and "notification," respectively, might be used instead. On
`the other hand, in some embodiments, an inviter is actively
`inviting invitees. One implementation of such an embodi-
`30 ment might include a list of invitees maintained for the
`inviter that is used to limit the notification to only those users
`that the inviter specifically invites.
`FIG. 1 is a block diagram of an exemplary game-
`messenger client-server system 10 according to one embodi-
`35 ment of the present invention. In system 10, users connect
`for online game play by connecting user computers 12 to a
`game server 14 via a network 16. In a specific
`implementation, user computers 12 are Internet-connectable
`computers (desktop computers, laptop computers, palm-
`40 sized computers, wearable computers, set-top boxes, embed-
`ded TCP/IP clients, wireless phones with a user interface,
`and the like), game server 14 is an Internet-connected server
`responsive to requests at a URL designated by the operator
`of the game server and network 16 is the global inter-
`45 network of networks generally referred to as the "Internet".
`The typical computer 12 includes a browser or other HTTP
`(Hyper Text Transport Protocol) client that is used to provide
`a user with HTTP access to the Internet and the collection of
`documents served by HTTP servers that is generally referred
`so to as the "World Wide Web", "WWW", or simply "the
`Web". A messenger server 18 is also provided, often over
`network 16, so that one or more user can send messages
`(typically "instant messages") over network 16 to other
`users.
`55 An exemplary computer 12 includes a display and display
`screen (e.g., monitor, flat panel LCD, etc.) for presenting to
`a user a graphical user interface (GUI). Computer 12 com-
`prises standard computer components (not shown) such as a
`disk drive, CDROM drive, display adapter, network card,
`60 random access memory (RAM), central processing unit
`(CPU), and other components, subsystems and devices. User
`input devices such as mouse having buttons, keyboard,
`trackball, touch-screen, digitizing tablet, etc. may be used to
`by a user to enter information into computer 12.
`Computer 12 includes also subsystems that are typically
`be found in a computing device such as computer 12.
`Subsystems generally include an input/output (I/O)
`
`65
`
`Apple Inc.
`Ex. 1005 - Page 16
`
`

`

`US 6,699,125 B2
`
`5
`controller, a system memory (or random access memory
`"RAM"), a central processing unit (CPU), a display adapter,
`a communications port, a fixed hard drive disk, a network
`interface adapter, which in turn is coupled electrically to a
`network, and any other like subsystems. The use of a bus
`allows each of the subsystems to transfer data among
`subsystems and, most importantly, with the CPU, where the
`CPU might be a Sparc, an Intel CPU, a PowerPC, or the like.
`External devices can communicate with the CPU or other
`subsystems via the bus by interfacing with a subsystem on
`the bus. Thus, a monitor connects with the display adapter
`and relative pointing device (e.g., a mouse) connects
`through one of the communication ports. Some devices such
`as keyboard can communicate with the CPU by direct means
`without using the main data bus as, for example, via an
`interrupt controller and associated registers. Accord to some
`embodiments described herein, a game client and a messen-
`ger client operate to present a user with graphical informa-
`tion on a user interface for playing a game as well as
`notifying other friends of one's action of playing a game.
`The network provides the communication means, such as
`physical inter-connective links comprising copper wire,
`fiber optic cable, or the like, for transmitting and receiving
`signals. Wireless communication means, such as radio
`waves or the like, are also understood to provide means to
`transfer information from a source to a destination.
`As is well known in the art of network communications,
`networks are configured to communicate electrical
`information, such as a computer data signal comprising data
`(e.g., binary data bits) superimposed upon a radio or any
`other carrier wave. A person having ordinary skill in the are
`would appreciate that a carrier wave is electromagnetic
`energy propagated from a source by radiation, optical or
`conduction waves and is suitable for embodying an
`information-bearing signal, such as a computer data signal.
`In one embodiment, a carrier wave behaves, or is modulated,
`according to a network protocol, such as Ethernet, IEEE
`1394, TCP/IP, or any other communication protocol, so as to
`include computer data information. The carrier wave can be,
`for example, a direct current, an alternating current, or a
`pulse chain. In modulation of the carrier wave, it may be
`processed in such a way that its amplitude, frequency, or
`some other property varies so as to embody data for transfer.
`In the figures, distinct instances of like objects are dis-
`tinguished with parenthetical indices. For example, user
`computer 12 might refer to 12(1) or 12(2). In this example,
`12(1) refers to an inviter client operated by an inviter, who
`invites a user operating invitee client 12(2) to join a game.
`In a typical system, there may be many inviters, many games
`and many invitees. Also, if allowed by a game, an invitee
`might be an invitee in one instance and later be an inviter.
`As shown in FIG. 1, invitee client 12(2) is in a state prior to
`being invited and joining a game.
`Game server 14 can be a conventional game server or one
`specially designed for this application. A typical game server
`maintains data, such as game state, user position, and user
`statistics, for active users participating in a game. While data
`storage for only two games are shown in FIG. 1, a game
`server often hosts many more simultaneous games. A game
`server might be referenced by a URL for the game server,
`with a specific port reference or URL string that specifies a
`specific game in progress. The reference to the game being
`served to client 12(1) is known to a game client 20(1)
`running on client 12(1), or can be obtained by game client
`20(1). As shown, a messenger client 22(1) is also running on
`client 12(1) and is capable of receiving an operating system
`("O/S") message from game client 20(1).
`
`6
`As shown, messenger clients 22 are coupled to messenger
`server 18 for sending messages, such as instant messages,
`between clients 12. Messenger server 18 is shown with two
`databases, a buddy list database and a user list database.
`5 Generally, the user list database maintains information about
`a user, such as their connection address and their connection
`status (i.e., off-line or on-line). Buddy list database main-
`tains a list, for each enrolled user, of other enrolled users that
`the user wishes to notify when they are online, typically
`10 friends, family and other users with which the user associ-
`ated with the buddy list has chosen to alert when the user is
`online. Thus, if a user A were to get online and if user B is
`on or is associated with user A's buddy list, then user B
`would be notified when User A is online, affording user B a
`15 chance to send an instant message to user A when user B is
`online and notified that user A is also online. It should be
`understood that the databases can be embodied in many
`different forms of data structures, such as relational tables
`maintained by a relational database management system or
`20 text files containing data in predetermined formats.
`Referring now to FIG. 2, additional details of a game
`client and a messaging client are there shown. Game client
`20(1), in this case the inviter game client, is shown including
`a network interface 30, an 0/S messaging interface 32,
`25 invocation program code 34 and client variables 36. Net-
`work interface 30 connects game client 20(1) to network 16,
`in turn connecting game client 20(1) to a game server. 0/S
`messaging interface 32 allows game client 20(1) to send
`messages to other processes running on client 12(1), such as
`30 a messenger client. Invocation program code 34 is informa-
`tion usable by an invitee to invoke their own game client and
`connect to a game in which game client 20(1) is currently
`playing. Client variables 36 include data (i.e., game data)
`such as an identifier of the particular game being played and
`35 how to invoke the game client.
`This game data can be provided in an 0/S message 38 to
`messenger client 22(1). Where a multiplayer game is already
`written, it can be simply retrofitted by the maker of the game
`to output 0/S message 38 when a messenger client is
`40 running in a space reachable by 0/S message 38, typically
`running on the same computer as the game client. For
`example, a small subroutine might be added to a game client
`such that upon initiation of the game client and connection
`to a game server the game client checks for the presence of
`45 a messenger client (or at least the ability of a messenger
`client to receive a message) and, if present, sends an 0/S
`message containing invocation data (described in more
`detail below, with reference to FIG. 5).
`As shown in FIG. 3, a messenger client 22(2) running on
`so an invitee client 12(2), is coupled to receive messages, such
`as state message 26 indicating that a particular buddy
`changed state (e.g., changed from online to offline or any
`other state relevant to the game-messenger application).
`Messenger client 22(2) is shown including a local copy of a
`55 buddy list 40, a message list 42 and invoker program code
`(an "invoker") 44. When messenger client 22(2) receives a
`state message indicating that an inviter has joined a game,
`messenger client 22(2) changes the status of that inviter in
`buddy list 40 and may add a message to message list 42. The
`60 status message can be construed as an invitation, but it might
`just be construed as an indication or a notice to the buddies
`of the inviter that the inviter is playing a particular game, as
`well as an indication of how to join the game.
`If the invitee opts to join the game, invoker 44 handles
`65 sending an invocation command to operating system ser-
`vices 46. In one embodiment, game programs are invoked
`using command lines and registry entries and the invocation
`
`Apple Inc.
`Ex. 1005 - Page 17
`
`

`

`US 6,699,125 B2
`
`7
`parameters are sufficient to join the game client to the correct
`game at the correct server.
`Since the game clients are preferably provided from a
`common source, the 0/S message sent from the inviter game
`client to the inviter messenger client can easily be designed
`to contain enough information to invoke that game client on
`another machine, assuming that the invitee owns and has
`installed the game client in a condition to be invoked on the
`invitee client. Also, if the game clients are provided from a
`common source, the messenger clients and servers do not
`have to necessarily understand the contents of the message
`or specially process the message, except for the optional
`display of a game-specific icon. Of course, a good security
`design for a messaging system would require that the
`messages conform to some limits set by the system to
`control the uses of the messaging system. The messages
`might be constrained to conform to the formats shown for
`the returned file described in more detail below.
`Where in

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket