Details

Algorithms and Networking for Computer Games


Algorithms and Networking for Computer Games


2. Aufl.

von: Jouni Smed, Harri Hakonen

70,99 €

Verlag: Wiley
Format: PDF
Veröffentl.: 06.06.2017
ISBN/EAN: 9781119259824
Sprache: englisch
Anzahl Seiten: 416

DRM-geschütztes eBook, Sie benötigen z.B. Adobe Digital Editions und eine Adobe ID zum Lesen.

Beschreibungen

<p><b>The essential guide to solving algorithmic and networking problems in commercial computer games, revised and extended</b></p> <p><i>Algorithms and Networking for Computer Games, Second Edition</i> is written from the perspective of the computer scientist. Combining algorithmic knowledge and game-related problems, it explores the most common problems encountered in game programing. </p> <p>The first part of the book presents practical algorithms for solving “classical” topics, such as random numbers, procedural generation, tournaments, group formations and game trees. The authors also focus on how to find a path in, create the terrain of, and make decisions in the game world.</p> <p>The second part introduces networking related problems in computer games, focusing on four key questions: how to hide the inherent communication delay, how to best exploit limited network resources, how to cope with cheating and how to measure the on-line game data. </p> <p>Thoroughly revised, updated, and expanded to reflect the many constituent changes occurring in the commercial gaming industry since the original, this <i>Second Edition</i>, like the first, is a timely, comprehensive resource offering deeper algorithmic insight and more extensive coverage of game-specific networking problems than ordinarily encountered in game development books.</p> <p><i>Algorithms and Networking for Computer Games, Second Edition:</i></p> <ul> <li>Provides algorithmic solutions in pseudo-code format, which emphasises the idea behind the solution, and can easily be written into a programming language of choice</li> <li>Features a section on the Synthetic player, covering decision-making, influence maps, finite-state machines, flocking, fuzzy sets, and probabilistic reasoning and noise generation</li> <li>Contains in-depth treatment of network communication, including dead-reckoning, local perception filters, cheating prevention and on-line metrics</li> <li>Now includes 73 ready-to-use algorithms and 247 illustrative exercises</li> </ul> <p><i>Algorithms and Networking for Computer Games, Second Edition</i> is a must-have resource for advanced undergraduate and graduate students taking computer game related courses, postgraduate researchers in game-related topics, and developers interested in deepening their knowledge of the theoretical underpinnings of computer games and in learning new approaches to game design and programming.</p>
<p>Preface xiii</p> <p><b>1 Introduction 1</b></p> <p>1.1 Anatomy of Computer Games 4</p> <p>1.2 Game Development 6</p> <p>1.2.1 Phases of development 7</p> <p>1.2.2 Documentation 8</p> <p>1.2.3 Other considerations 11</p> <p>1.3 Synthetic Players 12</p> <p>1.3.1 Humanness 13</p> <p>1.3.2 Stance 14</p> <p>1.4 Multiplaying 14</p> <p>1.5 Interactive Storytelling 15</p> <p>1.5.1 Approaches 16</p> <p>1.5.2 Storytelling in games 17</p> <p>1.6 Outline of the Book 19</p> <p>1.6.1 Algorithms 20</p> <p>1.6.2 Networking 20</p> <p>1.7 Summary 21</p> <p>Exercises 21</p> <p><b>I Algorithms 25</b></p> <p><b>2 Random Numbers 26</b></p> <p>2.1 Linear Congruential Method 27</p> <p>2.1.1 Choice of parameters 30</p> <p>2.1.2 Testing the randomness 32</p> <p>2.1.3 Using the generators 33</p> <p>2.2 Discrete Finite Distributions 36</p> <p>2.3 Random Shuffling 40</p> <p>2.4 Summary 44</p> <p>Exercises 44</p> <p><b>3 Noise 49</b></p> <p>3.1 Applying Noise 50</p> <p>3.2 Origin of Noise 51</p> <p>3.3 Visualization 52</p> <p>3.4 Interpolation 55</p> <p>3.4.1 Utility routines for value conversions 56</p> <p>3.4.2 Interpolation in a single parameter 58</p> <p>3.4.3 Interpolation in two parameters 61</p> <p>3.5 Composition of Noise 62</p> <p>3.6 Periodic Noise 65</p> <p>3.7 Perlin Noise 68</p> <p>3.8 Worley Noise 73</p> <p>3.9 Summary 83</p> <p>Exercises 83</p> <p><b>4 Procedural Generation 88</b></p> <p>4.1 Terrain Generation 89</p> <p>4.2 Maze Algorithms 96</p> <p>4.2.1 Depth-first algorithm 98</p> <p>4.2.2 Randomized Kruskal’s algorithm 99</p> <p>4.2.3 Randomized Prim’s algorithm 101</p> <p>4.3 L-Systems 101</p> <p>4.3.1 Examples 103</p> <p>4.3.2 City generation 105</p> <p>4.4 Hierarchical Universe Generation 108</p> <p>4.5 Summary 109</p> <p>Exercises 111</p> <p><b>5 Tournaments 115</b></p> <p>5.1 Rank Adjustment Tournaments 118</p> <p>5.2 Elimination Tournaments 123</p> <p>5.3 Scoring Tournaments 131</p> <p>5.4 Summary 135</p> <p>Exercises 138</p> <p><b>6 Game Trees 143</b></p> <p>6.1 Minimax 144</p> <p>6.1.1 Analysis 147</p> <p>6.1.2 Partial minimax 148</p> <p>6.2 Alpha-Beta Pruning 152</p> <p>6.2.1 Analysis 156</p> <p>6.2.2 Principal variation search 157</p> <p>6.3 Monte Carlo Tree Search 157</p> <p>6.4 Games of Chance 166</p> <p>6.5 Summary 168</p> <p>Exercises 170</p> <p><b>7 Path Finding 177</b></p> <p>7.1 Discretization of the Game World 178</p> <p>7.1.1 Grid 179</p> <p>7.1.2 Navigation mesh 180</p> <p>7.2 Finding the Minimum Path 182</p> <p>7.2.1 Evaluation function 183</p> <p>7.2.2 Properties 184</p> <p>7.2.3 Algorithm A* 185</p> <p>7.3 Realizing the Movement 187</p> <p>7.4 Summary 189</p> <p>Exercises 190</p> <p><b>8 Group Movement 194</b></p> <p>8.1 Flocking 195</p> <p>8.2 Formations 200</p> <p>8.2.1 Coordinating formations 200</p> <p>8.2.2 Behaviour-based steering 204</p> <p>8.2.3 Fuzzy logic control 205</p> <p>8.2.4 Mass-spring systems 207</p> <p>8.3 Summary 208</p> <p>Exercises 208</p> <p><b>9 Decision-Making 211</b></p> <p>9.1 Background 211</p> <p>9.1.1 Levels of decision-making 212</p> <p>9.1.2 Modelled knowledge 213</p> <p>9.1.3 Methods 214</p> <p>9.2 Finite State Machines 218</p> <p>9.2.1 Computational FSM 221</p> <p>9.2.2 Mealy and Moore machines 224</p> <p>9.2.3 Implementation 227</p> <p>9.2.4 Discussion 228</p> <p>9.3 Influence Maps 231</p> <p>9.4 Automated Planning 235</p> <p>9.5 Summary 237</p> <p>Exercises 240</p> <p><b>10 Modelling Uncertainty 246</b></p> <p>10.1 Statistical Reasoning 246</p> <p>10.1.1 Bayes’ theorem 246</p> <p>10.1.2 Bayesian networks 248</p> <p>10.1.3 Dempster–Shafer theory 249</p> <p>10.2 Fuzzy Sets 252</p> <p>10.2.1 Membership function 253</p> <p>10.2.2 Fuzzy operations 255</p> <p>10.2.3 Defuzzification 255</p> <p>10.3 Fuzzy Constraint Satisfaction Problem 257</p> <p>10.3.1 Modelling the criteria as fuzzy sets 259</p> <p>10.3.2 Weighting the criteria importances 262</p> <p>10.3.3 Aggregating the criteria 262</p> <p>10.3.4 Making a decision 263</p> <p>10.4 Summary 263</p> <p>Exercises 265</p> <p><b>II Networking 268</b></p> <p><b>11 Communication Layers 269</b></p> <p>11.1 Physical Platform 270</p> <p>11.1.1 Resource limitations 271</p> <p>11.1.2 Transmission techniques and protocols 272</p> <p>11.2 Logical Platform 274</p> <p>11.2.1 Communication architecture 274</p> <p>11.2.2 Data and control architecture 275</p> <p>11.3 Networked Application 277</p> <p>11.4 Summary 278</p> <p>Exercises 278</p> <p><b>12 Compensating Resource Limitations 283</b></p> <p>12.1 Aspects of Compensation 284</p> <p>12.1.1 Consistency and responsiveness 284</p> <p>12.1.2 Scalability 287</p> <p>12.2 Protocol Optimization 291</p> <p>12.2.1 Message compression 291</p> <p>12.2.2 Message aggregation 292</p> <p>12.3 Dead Reckoning 293</p> <p>12.3.1 Prediction 293</p> <p>12.3.2 Convergence 295</p> <p>12.4 Local Perception Filters 297</p> <p>12.4.1 Linear temporal contour 301</p> <p>12.4.2 Adding bullet time to the delays 305</p> <p>12.5 Synchronized Simulation 307</p> <p>12.6 Interest Management 308</p> <p>12.6.1 Aura-based interest management 310</p> <p>12.6.2 Zone-based interest management 310</p> <p>12.6.3 Visibility-based interest management 312</p> <p>12.6.4 Class-based interest management 312</p> <p>12.7 Compensation by Game Design 314</p> <p>12.7.1 Short active turns 314</p> <p>12.7.2 Semi-autonomous avatars 315</p> <p>12.7.3 Interaction via proxies 316</p> <p>12.8 Summary 317</p> <p>Exercises 318</p> <p><b>13 Cheating Prevention 321</b></p> <p>13.1 Technical Exploitations 322</p> <p>13.1.1 Packet tampering 323</p> <p>13.1.2 Look-ahead cheating 324</p> <p>13.1.3 Cracking and other attacks 330</p> <p>13.2 Collusion 331</p> <p>13.2.1 Classification 333</p> <p>13.2.2 Collusion detection 335</p> <p>13.3 Rule Violations 337</p> <p>13.4 Summary 338</p> <p>Exercises 338</p> <p><b>14 Online Metrics 341</b></p> <p>14.1 Players 344</p> <p>14.2 Monetization 345</p> <p>14.3 Acquisition 347</p> <p>14.4 Game Session 347</p> <p>14.5 Summary 348</p> <p>Exercises 348</p> <p><b>A Pseudocode Conventions 351</b></p> <p>A.1 Changing the Flow of Control 355</p> <p>A.1.1 Expressions 355</p> <p>A.1.2 Control structures 357</p> <p>A.2 Data Structures 360</p> <p>A.2.1 Values and entities 360</p> <p>A.2.2 Data collections 360</p> <p>A.3 Format of Algorithms 365</p> <p>A.4 Conversion to Existing Programming Languages 367</p> <p><b>B Practical Vectors and Matrices 371</b></p> <p>B.1 Points and Vectors 372</p> <p>B.2 Matrices 381</p> <p>B.3 Conclusion 387</p> <p>Bibliography 391</p> <p>Ludography 408</p> <p>Index 409</p>
<p>“More than 70 algorithms are presented, covering random numbers, noise in data (a realistic world is full of imperfections), procedural generation, tournaments, game trees, path finding, group movement, decision making, and modelling uncertainty – as well as networking problems, including dealing with cheating. The exercises at the end of each chapter range from simple thought exercises to studying Braben and Bell’s namegeneration algorithm from Elite (1984) … use of pseudocode throughout ensures the book works equally well for C, C++, Java, Python, or even C# programmers.” <b>MagPi, Issue 64, December 2017</b></p> <br /><br /><br /><br />
<p><b>Jouni Smed</b> holds a doctorate in Computer Science and acts as a Senior Lecturer and Adjunct Professor at the University of Turku, Finland. He is also the co-founder of Turku Game Lab, which aims at bringing together technologically- and artistically-oriented students to collaborate on game projects and jump-start their careers in the game industry. For the past twenty years, his research interests have focused on various areas of game development: from code tweaking to software processes and from simple puzzles to multisite game development. <p><b>Harri Hakonen</b> works as a senior software developer at Ericsson, being a member of a small team implementing embedded real-time products over Linux. He has thirty years of computer-related experience, covering various professions at academy, software industry and startups. Harri has always been keen on concrete software construction, from implementing low level bit-fiddling to catalyzing teamwork, and he will never stop programming.
<p><b>The essential guide to solving algorithmic and networking problems in commercial computer games, revised and extended</b> <p><i>Algorithms and Networking for Computer Games, Second Edition</i> is written from the perspective of the computer scientist. Combining algorithmic knowledge and game-related problems, it explores the most common problems encountered in game programming. <p>The first part of the book presents practical algorithms for solving "classical" topics, such as random numbers, procedural generation, tournaments, group formations and game trees. The authors also focus on how to find a path in, create the terrain of, and make decisions in the game world. <p>The second part introduces networking related problems in computer games, focusing on four key questions: how to hide the inherent communication delay, how to best exploit limited network resources, how to cope with cheating and how to measure the on-line game data. <p>Thoroughly revised, updated, and expanded to reflect the many constituent changes occurring in the commercial gaming industry since the original, this Second Edition, like the first, is a timely, comprehensive resource offering deeper algorithmic insight and more extensive coverage of game-specific networking problems than ordinarily encountered in game development books. <p><i>Algorithms and Networking for Computer Games, Second Edition:</i> <ul> <li>Provides algorithmic solutions in pseudo-code format, which emphasises the idea behind the solution, and can easily be written into a programming language of choice</li> <li>Features a section on the Synthetic player, covering decision-making, influence maps, finite-state machines, flocking, fuzzy sets, and probabilistic reasoning and noise generation</li> <li>Contains in-depth treatment of network communication, including dead-reckoning, local perception filters, cheating prevention and on-line metrics</li> <li>Now includes 73 ready-to-use algorithms and 247 illustrative exercises</li> </ul> <br> <p><i>Algorithms and Networking for Computer Games, Second Edition</i> is a must-have resource for advanced undergraduate and graduate students taking computer game related courses, postgraduate researchers in game-related topics, and developers interested in deepening their knowledge of the theoretical underpinnings of computer games and in learning new approaches to game design and programming.

Diese Produkte könnten Sie auch interessieren:

Strategies to the Prediction, Mitigation and Management of Product Obsolescence
Strategies to the Prediction, Mitigation and Management of Product Obsolescence
von: Bjoern Bartels, Ulrich Ermel, Peter Sandborn, Michael G. Pecht
PDF ebook
116,99 €