throbber
Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 1 of 63 PageID #: 17584
`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 1 of 63 PagelD #: 17584
`
`
`
`
`
`
`
`
`
`EXHIBIT 1
`EXHIBIT1
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 2 of 63 PageID #: 17585
`
`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 2 of 63 PagelD #: 17585
`
`AO 88B (Rev. 02/14) Subpoena to Produce Documents, Information, or Objects or to Permit Inspection of Premises in a Civil Action
`
`UNITED STATES DISTRICT COURT
`for the
`District of Delaware
`
`Acceleration Bay LLC
`
`Plaintiff
`¥.
`
`Activision Blizzard., Electronic Arts Inc., Take-Two
`Interactive Software lnc., et al,
`Defendant
`
`Civil Action No. 16-453, 16-454, 16-455
`
`SUBPOENA TO PRODUCE DOCUMENTS, INFORMATION, OR OBJECTS
`OR TO PERMIT INSPECTION OF PREMISES IN A CIVIL ACTION
`
`To: Microsoft Corporation, 3460 157" Avenue, NE, Redmond, WA 98052-5393, United States
`
`(Name ofperson to whomthis subpoena is directed)
`
`ix] Production: YOU ARE COMMANDEDto produceat the time, date, and place set forth below the following
`documents, electronically stored information, or objects, and to permit inspection, copying, testing, or sampling of the
`
`ATTACHMENTA, attached
`
`Place: Seattle Deposition Reporters
`600 University Street, Suite 320
`1 Union Square
`
`Seattle, WA 98101
`
`Date and Time:
`July 31, 2017
`
`[_] Inspection ofPremises: YOU ARE COMMANDEDtopermit entry onto the designated premises, land, or
`other property possessed or controlled by you at the time, date, and location set forth below,so that the requesting party
`may inspect, measure, survey, photograph, test, or sample the property or any designated object or operationonit.
`Date and Time:
`
`
`The following provisions of Fed. R. Civ. P. 45 are attached — Rule 45(c), relating to the place of compliance;
`Rule 45(d), relating to yourprotection as a person subject to a subpoena; and Rule 45(e) and (g), relating to your duty to
`respond to this subpoena and the potential consequences of not doing so.
`
`eee mo
`
`Date: 7/20/2017
`
`CLERK OF COURT
`
`i
`
`b
`
`if a
`
`
`
`Signature ofClerk ar Deputy Clerk
`
`Ny oo
`
`/ “Attorneys signature
`
`The name, address, e-mail address, and telephone numberofthe attorney representing (name-ofpartys Activision Blizzard
`Inc., Electronic Arts Inc., Take-Two Interactive SoftwareInc., et al.
`, who issues or requests this subpoena, are:
`David K. Lin, Esq.
`Email: Dlin@winston.com: Telephone: 213-615-1700
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 3 of 63 PageID #: 17586
`
`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 3 of 63 PagelD #: 17586
`
`AO 88B (Rey, 02/14) Subpoena to Produce Documents, Information, or Objects or to Permit Inspection of Premises in a Civil Action
`
`Notice to the person who issues or requests this subpoena
`If this subpoena commandsthe production of documents, electronically stored information, or tangible things orthe
`inspection of premises beforetrial, a notice and a copy of the subpoena must be served on eachparty in this case before
`it is served on the person to whom it is directed. Fed. R. Civ. P. 45{a){4).
`
`
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 4 of 63 PageID #: 17587
`
`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 4 of 63 PagelD #: 17587
`
`AO 88B (Rev. 02/14) Subpoena to Produce Documents,Information, or Cbjects or to Permit Inspection of Premises in a Civil Action (Page 2}
`
`Civil Action No,
`
`(This section should not befiled with the court unless required by Fed, R, Civ, P, 45.)
`
`PROOF OF SERVICE
`
`I received this subpoena for(name ofindividual andfille, ifany)
`
`I served the subpoena by delivering a copy to the named person as follows:
`
`
`
`on (dete)
`
`; or
`
`Iveturned the subpoena unexecuted because:
`
`
`
`Unless the subpoena was issued on behalf of the United States, or one ofits officers or agents, I have also
`tendered to the witness the fees for one day’s attendance, and the mileage allowed by law, in the amount of
`
`My fees are $
`
`for travel and $
`
`for services, for a total of $0.00
`
`I declare underpenaity of perjury that this informationis true.
`
`Server's signature
`
`Printed name and title
`
`Server's address
`
`Additional information regarding attempted service, etc.:
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 5 of 63 PageID #: 17588
`
`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 5 of 63 PagelD #: 17588
`
`AO 88B (Rev. 02/14) Subpoena to Produce Documents, Information, or Objects or io Permit Inspection of Premises in a Civil Action (Page 3)
`
`Federal Rule of Civil Procedure 45 (c), (d), (e), and (g) (Effective 12/1/13)
`
`(ec) Place of Compliance.
`
`(ii) disclosing an unretained expert’s opinion or information that does
`not describe specific occurrences itt dispute and results from the expert’s
`(1) For a Trial, Hearing, or Deposition, A sabpoena may command a
`study that was not requested by a party.
`person to aftendatrial, hearing, or deposition only as follows:
`(C} Specifying Conditions as an Alternative. In the circumstances
`(A) within 100 miles of where the person resides, is employed, or
`described in Rule 45(d)(3)(B), the court may, instead of quashing or
`regularly transacts business in person; or
`modifying a subpoena, order appearance or production underspecified
`(B} within the state where the person resides, is employed, or regularly
`conditions if the serving party:
`transacts business in person, if the person
`(i) shows a substantial need for the testimony or material that cannot be
`(i) is a party or a party’s officer; or
`otherwise met without undue hardship; and
`(ii) is commanded to attend a trial and would not ineur substantial
`(ti) ensures that the subpoenaedperson will be reasonably compensated.
`
`(2) Fer Other Discovery, A subpoena may command:
`{A) preduction of documents, electronically stored information,or
`tangible things at a place within 100 miles of where the personresides,is
`employed, or regularfy transacts business in person; and
`(B} inspection of premises at the premises to be inspected.
`
`(d) Protecting a Person Subject to a Subpoena; Enforcement,
`
`(1) Avoiding Undue Burden or Expense; Sanctions. A parly or attorney
`responsible for issuing and serving a subpocna rust take reasonable steps
`to avoid imposing undue burden or expense on a person subject to the
`subpoena. The court forthe district where compliance is required must
`enforce this duty and impose an appropriate sanction—which may include
`lost earnings and reasonable attorney’s fees—ona party or attorney who
`
`(2) Command to Preduce Materials or Permit Inspection.
`(A) Appearance Not Required. A person commanded to produce
`documents, electronically stored information, or tangible things, orto
`permit the inspection of premises, need not appear in person at ihe place of
`production or inspection unless also commanded to appearfor a deposition,
`hearing,ortrial.
`(B) Odjections, A person commanded to produce documents or tangible
`things or fo permit inspection may serve on the party or attorney designated
`in the subpecna a written objection to inspecting, copying, testing, or
`sampling any orall of the materials or to inspecting the premises—orto
`producing electronically stored information in the form or forms requested.
`The objection must be served before the earlier of the time specified for
`compliance or 14 days after the subpoenais served. If an objection is made,
`the following rules apply:
`(i) At any time, on notice to the commandedperson, the serving party
`may movethe court forthe district where compliance is required for an
`order compelling production or inspection.
`(ii) These acts may be required only as directed in the order, and the
`order must protect a person whois netther a party nor a party’s officer from
`significant expense resulting from compliance.
`
`(3) Quashing er Modifying a Subpoena.
`(A} Ihen Required. On timely motion, the court for the district where
`compliance is required must quash or modify a subpoenathat:
`(i) fails to allow a reasonable time to comply;
`(ii) requires a person to comply beyond the geographical limits
`specified in Rule 45(c);
`(iii) requires disclosure of privileged or other protected matter, if no
`exception or waiver applies; or
`(iv) subjects a person to undue burden,
`(B) Hhen Permitted. To protect a person subject to or affected by a
`subpcena, the court forthe district where compliance is required may, on
`mation, quash or modify the subpoenaif it requires:
`(i) disclosing a trade secret or other confidential research,
`development, or commercial information; or
`
`(e) Duties in Responding to a Subpoena,
`
`(1) Producing Documents er Electronically Stored rforimation, These
`procedures apply to producing documents orelectronically stored
`information:
`
`(A) Documents. A person responding to a subpoena to produce documents
`must produce them as they are keptin the ordinary course of busiaess or
`must erganize and label them to correspond to the categories in the demand.
`(B) Formfor Producing Electronically Stored Information Not Specified.
`Ifa subpoena does not specify a form for producing electronically stored
`information, the person responding must produce it in a form or forms in
`whichit is ordinarily maintained or in a reasonably usabie form or forms.
`(C} Electronically Stored Information Produced in Only One Form. The
`person responding need not produce the same electronically stored
`information in more than one form.
`(D) Inaccessible Electronically Stored Information. The person
`responding need not provide discovery ofelectronically stored information
`from sourcesthat the person identifies as not reasonably acecssible because
`of undue burdenorcost. On motion to compel discovery orfor a protective
`order, the person responding must showthat the information is not
`reasonably accessible because of undue burden orcost. If that showing is
`made, dhe court may nonetheless order discovery from such sources if the
`requesting party shows good cause, considering the limitations of Rule
`26(b}H2MC). The court may specify conditions for the discovery.
`
`(2) Claiming Privilege or Protection,
`(A) Information Jithheld. A person withholding subpoenaed information
`undera claim thatit is privileged or subject to protectionas trial-preparation
`material must:
`(i) expressly make the claim; and
`(ii) describe dhe nature of the withheld documents, communications, or
`tangible things in a manner that, without revealing information itself
`privileged or protected, will enable the parlies to assess the claim,
`(B) nformation Produced. Uf information produced in response to a
`subpoenais subject to # claim of privilege orof protection as
`trial-preparation material, the person making the claim may notify any party
`ihal received the information ofthe claim andthe basis forit. After being
`notified, a party must promptly return, sequester, or destroy the specified
`information and any copies it has; must not use or disclose the information
`until the claim is resolved; must take reasonable steps to retrieve the
`informationif the party disclosed it before being notified; and may promptly
`present the information underseal to the court for dhe district where
`compliance is required for a determination of the claim. The person who
`produced the information must preserve the informationuntil the claim is
`resolved,
`
`(g} Contempt.
`The court for the districl where compliance is required—and also, after a
`motion is transferred, the issuing cour(—may hold in contempt a person
`who, having been served, fails without adequate excuse to obey the
`subpoenaoran orderrelatedto it.
`
`
`
`For access to subpoena materials, see Fed, R, Civ. P. 45(a) Committee Note (2043).
`
`
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 6 of 63 PageID #: 17589
`
`ATTACHMENT A
`
`DEFINITIONS
`
`1.
`
`“Defendants” shall mean Activision Blizzard, Inc., Electronic Arts Inc., Take-
`
`Two Interactive Software, Inc., Rockstar Games, Inc., and 2K Sports, Inc., including but not
`
`limited to their predecessors, all parent companies, partners, wholly or partially owned
`
`subsidiaries, divisions, past or present affiliated corporations, and each of their present and
`
`former employees, agents, officers, directors, representatives, consultants, accountants, and
`
`attorneys.
`
`2.
`
`“Acceleration Bay” or “Plaintiff” means and includes Acceleration Bay LLC
`
`together with each of its respective departments, divisions, subsidiaries, predecessors, and
`
`affiliates, past and present, and all employees, representatives, and/or agents acting or purporting
`
`to act on any or all of their respective behalves.
`
`3.
`
`4.
`
`“You,” “your,” and “Microsoft” means Microsoft Corporation.
`
`“This Case” shall mean the lawsuit(s) filed by Acceleration Bay in the District of
`
`Delaware, C.A. Nos. 16-453 (RGA), 16-454 (RGA), 16-455 (RGA).
`
`5.
`
`6.
`
`“Age of Empires” shall mean Age of Empires 1 and Age of Empires 2.
`
` “Communication,” “communications,” or “communicated” shall mean and shall
`
`include any oral or written expression, statements, or utterance of any nature whatsoever,
`
`including but not limited to, correspondence, conversations, memoranda, notes, computer or
`
`electronic expressions and statements and telecommunications.
`
`7.
`
`“Documents” shall have the meaning ascribed to that term in Rule 34 of the
`
`Federal Rules of Civil Procedure, and shall also include, without limitation, all writings,
`
`printouts, graphical material, and recordings as defined by Rule 1001 of the Federal Rules of
`
`
`
`
`1
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 7 of 63 PageID #: 17590
`
`Evidence, drawings, graphs, charts, photographs, film, audio or video recordings, facsimile
`
`transmissions, computer files, and electronic mail messages, and all data compilations from
`
`which information can be obtained, translated, if necessary, through detection devices into
`
`reasonably useable form. “Documents” also includes, without limitation, anything that can be
`
`classified as a “writing,” “original,” or “duplicate. “Documents” also include all drafts, all
`
`attachments to Documents, and all copies of Documents that are not identical duplicates of the
`
`original (for example, because handwriting, marginalia, or notes appear on the duplicate or are
`
`attached to it), whether or not the originals are in Acceleration Bay’s possession, custody or
`
`control.
`
`8.
`
`“Entity” or “entities” include natural persons, proprietorships, partnerships, firms,
`
`private corporations, public corporations, municipal corporations, governments (including
`
`foreign national governments, the government of the United States or any state or local
`
`government), all departments and agencies thereof, and any governmental agencies of any
`
`country, political subdivisions, groups, associations, or organizations.
`
`9.
`
`“Thing” or “things” shall mean any tangible object other than a document as
`
`defined herein, and includes objects of every kind and nature.
`
`10.
`
`“Relating to,” “related to” or “concerning” shall mean anything pertaining to,
`
`comprising, evidencing, alluding to, responding to, connected with, commenting on, with respect
`
`to, about, regarding, resulting from, embodying, explaining, supporting, discussing, showing,
`
`describing, reflecting, analyzing, constituting, setting forth, in respect of, or having any direct or
`
`indirect logical or factual connection with the subject matter in question.
`
`11.
`
`“Including” shall not be construed as limiting any request, and shall mean the
`
`same as “including, but not limited to.”
`
`
`
`
`2
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 8 of 63 PageID #: 17591
`
`12.
`
`The use of the term “the” shall not be construed as limiting the scope of any
`
`document request.
`
`13.
`
`“Any” or “each” shall be understood to include and encompass “all;” “or” shall be
`
`understood to encompass “and;” “and” shall be understood to include and encompass “OR.”
`
`14.
`
`“And,” “or,” and “and/or” shall be construed conjunctively or disjunctively as
`
`necessary to make the request inclusive rather than exclusive.
`
`15.
`
`The plural of any word shall be construed as the singular, and vice versa, as
`
`necessary, in order to bring within the scope of these requests any information, documents, or
`
`things that might otherwise be construed to be outside their scope.
`
`INSTRUCTIONS
`
`16.
`
`You are to search all documents and things within your possession, custody or
`
`control or within the possession, custody or control of your attorneys, accountants, or other
`
`agents or representatives, wherever located, including but not limited to documents and things
`
`placed in storage facilities and documents and things in the possession of any employee, agent,
`
`representative, or person acting or purporting to act on your behalf whether located at his or her
`
`residence(s) and/or place(s) of business(es).
`
`17.
`
`Pursuant to Fed. R. Civ. P. 34(b), you are instructed to produce documents as they
`
`are kept in the usual course of business or the documents shall be organized and labeled to
`
`correspond to the categories for each Request. In addition, documents are to be produced in full
`
`and unexpurgated form; redacted documents will not constitute compliance with a Request.
`
`18.
`
`Different versions of the same documents, handwritten notes or notations in any
`
`form, draft documents and documents with handwritten notations or marks not found in the
`
`
`
`
`3
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 9 of 63 PageID #: 17592
`
`original or on other copies are considered to be different documents for the purpose of
`
`production in compliance with these requests, and each form should be produced independently.
`
`19.
`
`Electronic and computerized information must be produced in an intelligible
`
`format or together with a description of the system from which it was derived sufficient to permit
`
`rendering the materials intelligible.
`
`20.
`
`All documents produced in response to these Requests shall be produced in toto
`
`notwithstanding the fact that portions thereof may contain information not requested.
`
`21.
`
`All documents produced in response to these Requests shall be produced along
`
`with any and/or all attachments and/or enclosures as have ever been attached to and/or enclosed
`
`with such documents at any time.
`
`22.
`
`All documents requested herein shall be produced in the same sequence as they
`
`are contained or found and with the file folders and other identifying documents or containers
`
`(e.g., copy of envelope, file cabinet market, binder tab) in which such documents were located
`
`when these requests were served.
`
`23.
`
`If you object or otherwise refuse to respond or produce documents or things in
`
`response to any portion of a document request, you shall (1) state the objection or reason for such
`
`refusal, and (2) provide all documents or things called for by that portion of the request for
`
`production to which you do not object or refuse to respond.
`
`24.
`
`These Requests are submitted for the purpose of discovery and are not to be taken
`
`as waiving any objections that may be made at trial to the introduction of evidence on subjects
`
`covered by these Requests or as an admission of the relevance or materiality at trial of any of the
`
`matters covered by these Requests.
`
`
`
`
`4
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 10 of 63 PageID #: 17593
`
`25.
`
`Pursuant to Fed. R. Civ. P. 26(e)(2), these Requests shall be deemed continuing so
`
`as to require further and supplemental production by you in the event that you or any person
`
`acting on your behalf, obtains or discovers additional documents or information that may
`
`augment or otherwise modify your responses hereto, between the time of initial production and
`
`the time of any trial in this Case.
`
`REQUESTS FOR PRODUCTION
`
`1.
`
`Documents sufficient to explain the design, architecture, and implementation of
`
`the multiplayer features of Age of Empires prior to July 31, 2000, as described in the Exhibit 1.
`
`2.
`
`Documents sufficient to show the earliest date on which Age of Empires 1 and
`
`Ages of Empires 2 were offered for sale or sold in the United States.
`
`
`
`
`5
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 11 of 63 PageID #: 17594
`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 11 of 63 PagelD #: 17594
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`EXHIBIT 1
`EXHIBIT 1
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 12 of 63 PageID #: 17595
`
`1500 Archers on a 28.8: Network Programming in Age
`of Empires and Beyond
`
`Paul Bettner
`pbettner@ensemblestudios.com
`
`Mark Terrano
`mterrano@ensemblestudios.com
`
`(Presented at GDC2001 - 03/22/2001 2:30p)
`
`Introduction
`
`This paper explains the design architecture, implementation, and some of the
`lessons learned creating the multi-player (networking) code for the Age of
`Empires I & II games; and discusses the current and future networking
`approaches used by Ensemble Studios in its game engines.
`
`Age of Empires multi-player - Design Goals
`
`When the multi-player code for Age of Empires ™ was started in early 1996 there
`were some very specific goals that had to be met to deliver the kind of game
`experience we had in mind.
`
`
`• Sweeping epic historical battles with a great variety of units
`• Support for 8 players in multi-player
`•
`Insure a smooth simulation over LAN, modem-to-modem, and the Internet
`• Support a target platform of: 16Mb Pentium 90 with a 28.8 modem
`• The communications system had to work with existing (Genie) engine
`• Target consistent frame rate of 15 fps on the minimum machine config
`
`
`The Genie Engine was already running and the game simulation was shaping up
`into a compelling experience in single player. The Genie Engine is a 2D single-
`threaded (game loop) engine. Sprites are rendered in 256 colors in a tile-based
`world. Randomly-generated maps were filled with thousands of objects, from
`trees that could be chopped down to leaping gazelles. The rough breakdown
`(post optimization) of processing tasks for the engine was: 30% graphic
`rendering, 30% AI and Pathing, and 30% running the simulation & maintenance.
`
`At a fairly early stage, the engine was reasonably stable - and multi-player
`communications needed to work with the existing code without substantial
`recoding of the existing (working) architecture.
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 13 of 63 PageID #: 17596
`
`To complicate matters further, the time to complete each simulation step varied
`greatly: the rendering time changed if the user was watching units, scrolling, or
`sitting over unexplored terrain, and large paths or strategic planning by the AI
`made the game turn fluctuate fairly wildly by as much as 200 msec.
`
` few quick calculations would show that passing even a small set of data about
`the units, and attempting to update it in real time would severely limit the number
`of units and objects we could have interacting with the player. Just passing X &
`Y coordinates, status, action, facing and damage would have limited us to 250
`moving units in the game at the most.
`
`We wanted to devastate a Greek city with catapults, archers, and warriors on one
`side while it was being besieged from the sea with triremes. Clearly, another
`approach was needed.
`
`
`Simultaneous Simulations
`
`Rather than passing the status of each unit in the game, the expectation was to
`run the exact same simulation on each machine, passing each an identical set of
`commands that were issued by the users at the same time. The PCs would
`basically synchronize their game watches in best war-movie tradition, allow
`players to issue commands, and then execute in exactly the same way at the
`same time and have identical games.
`
`This tricky synchronization was difficult to get running initially, but did yield some
`surprising benefits in other areas.
`
`
`Improving on the basic model
`
`At the easiest conceptual level, achieving a simultaneous simulation seems fairly
`straightforward. For some games, using lock-step simulations and fixed game
`timings might even be feasible.
`
`Since the problem of moving hundreds or thousands of objects simultaneously
`was taken care of by this approach - the solution still had to be viable on the
`Internet with latency swings of 20-1000 milliseconds, and handle changes in
`frame processing time.
`
`Sending out the player commands, acknowledging all messages, and then
`processing them before going on to the next turn was going to be a gameplay
`nightmare of stop-start or slow command turnover. A scheme to continue
`processing the game while waiting for communications to happen in the
`background was needed.
`
`
` A
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 14 of 63 PageID #: 17597
`
`No
`
`Analyze game &
`ping speed
`
`Accept player
`commands
`
`Has turn-time
`elapsed?
`
`Yes
`
`TX 'Done'
`message w /
` timing & count
`
`Increment
`'command turn'
`
`AoE Turn Processing
`
`Mark used a system of tagging
`commands to be executed two
`‘communications turns’ in the
`future (Comm. turns were
`separated in AoE from actual
`rendering frames).
`
`So commands issued during turn 1000 would be scheduled for execution during
`turn 1002. On turn 1001 commands that were issued on turn 0999 would be
`executed. This allowed messages to be received, acknowledged, and ready to
`process while the game was still animating and running the simulation.
`
`Turns were typically 200 msec in
`length, with commands being sent
`out during the turn. After 200
`msec, the turn was cut off and the
`next turn was started. At any
`point during the game, commands
`were being processed for one
`turn, received and stored for the
`next turn, and sent out for
`execution two turns in the future.
`
`‘Speed Control’
`
`Since the simulations must always
`have the exact same input, the
`game can really only run as fast
`as the slowest machine can
`process the communications,
`render the turn, and send out new
`commands. Speed Control is
`what we called the system to
`change the length of the turn to
`keep the animation and gameplay
`smooth over changing conditions
`in communications lag and
`processing speed.
`
`There are two factors that make
`the gameplay feel ‘laggy’: If one machine’s frame rate drops (or is lower than the
`rest) the other machines will process their commands, render all of the allocated
`time, and end up waiting for the next turn - even tiny stops are immediately
`noticeable. Communications lag - due to Internet latency and lost data packets
`would also stop the game as the players waited around for enough data to
`complete the turn.
`
`RX
`'Done' msgs for all
`players?
`
`No
`
`Process drop &
`timeout checks
`
`Yes
`
`Advance turn
`counter
`
`Adjust timing for
`new turn
`
`Do game turn
`(render, etc.)
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 15 of 63 PageID #: 17598
`
`
`Each client calculated a frame rate that it thought could be consistently
`maintained by averaging the processing time over a number of frames. Since
`this varied over the course of the game with the visible line-of-sight, number of
`units, map size and other factors - it was sent with each ‘Turn Done’ message.
`
`Each client would also measure a round trip ‘ping time’ periodically from it to the
`other clients. It would also send the longest average ping time it was seeing to
`any of the clients with the ‘Turn Done’ message. (Total of 2 bytes was used for
`speed control)
`
`Each turn the designated host would analyze the ‘done’ messages, figure out a
`target frame rate and adjustment for Internet latency. The host would then send
`out a new frame rate and communications turn length to be used. The following
`diagrams show how the communications turn was broken up for the different
`conditions.
`
` Single Communication Turn
`
` A
`
`
`
`Communications turn (200 msec) - scaled to 'round-trip ping' time estimates
`
`Process all messages
`
`Frame
`
`50 msec
`
`50 msec
`
`Frame
`Frame
`Frame - scaled to rendering speed
`50 msec
`50 msec
`
`20 fps
`
`
`High Internet Latency with normal machine performance
`
`
`Communications turn (1000 msec) - scaled to 'round-trip ping' time estimates
`
`Process all
`messages
`
`Frame
`
`Frame
`
`Frame
`
`Frame
`
`Frame
`
`Frame
`
`Frame
`
`Frame
`
`Frame
`
`50 msec
`
`20 frames, 50 msec each
`
`
`Poor machine performance with normal latency
`
`
`20 fps
`
`Communications turn (200 msec) - scaled to 'round-trip ping' time estimates
`
`Process all messages
`
`100 msec
`
`Frame
`Frame - scaled to rendering speed
`100 msec
`
`10 fps
`
`
`The ‘communications turn’ which was roughly the round-trip ping time for a
`message, was divided up into the number of simulation frames that on average
`could be done by the slowest machine in that period.
`
`
`
`
`
`
`
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 16 of 63 PageID #: 17599
`
`The communications turn length was weighted so it would quickly rise to handle
`Internet latency changes, and slowly settle back down to the best average speed
`that could be consistently maintained. The game would tend to pause or slow
`only at the very worst spikes- command latency would go up but would stay
`smooth (adjusting only a few milliseconds per turn) as the game adjusted back
`down to best possible speed. This gave the smoothest play experience possible
`while still adjusting to changing conditions.
`
`Guaranteed Delivery
`
`At the network layer UDP was used, with command ordering, drop detection and
`resending being handled by each client. Each message used a couple of bytes
`to identify the turn that execution was scheduled and the sequence number for
`the message. If a message was received for a past turn, it was discarded, and
`incoming messages were stored for execution. Because of the nature of UDP,
`Mark’s assumption for message receipt was that “When in doubt , assume it
`dropped”. If messages were received out of order, the receiver immediately sent
`out re-send requests for the dropped messages. If an acknowledgement was
`later than predicted, the sender would just resend without being asked
`anticipating the message had been dropped.
`
`Hidden Benefits
`
`Because the game’s outcome depended on all of the users executing exactly the
`same simulation, it was extremely difficult to hack a client (or client
`communication stream) and cheat. Any simulation that ran differently was
`tagged as ‘out of sync’ and the game stopped. Cheating to reveal information
`locally was still possible, but these few leaks were relatively easy to secure in
`subsequent patches and revisions. Security was a huge win.
`
`Hidden Problems
`
`At first take it might seem that getting two pieces of identical code to run the
`same should be fairly easy and straightforward - not so. The Microsoft product
`manager - Tim Znamenacek told Mark early on “In every project, there is one
`stubborn bug that goes all the way to the wire - I think out-of-sync is going to be
`it” - he was right. The difficulty with finding out-of-sync errors is that very subtle
`differences would multiply over time. A deer slightly out of alignment when the
`random map was created would forage slightly differently - and minutes later a
`villager would path a tiny bit off, or miss with his spear and take home no meat.
`So what showed up as a checksum difference as different food amounts had a
`cause that was sometimes puzzling to trace back to the original cause.
`
`As much as we check-summed the world, the objects, the Pathfinding, targeting
`and every other system - it seemed that there was always one more thing that
`slipped just under the radar. Giant (50Mb) message traces and world object
`
`

`

`Case 1:16-cv-00455-RGA Document 201-1 Filed 07/21/17 Page 17 of 63 PageID #: 17600
`
`dumps to sift through made the problem even more difficult. Part of the difficulty
`was conceptual - programmers were not used to having to write code that used
`the same number of calls to random within the simulation (yes, the random
`numbers were seeded and synchronized as well).
`
`Lessons Learned
`
` few key lessons were learned in the development of the networking for Age of
`Empires that are applicable to development of any game’s multi-player system.
`
`Know your user
`
`Studying the user is key to understanding what their expectations are for multi-
`player performance, perceived lag, and command latency. Each game genre is
`different, and you need to understand what is right for your specific gameplay
`and controls.
`
`Early in the development process Mark sat down with the Le

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