Game coding complete:
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston, MA
Course Technology
2013
|
Ausgabe: | 4. ed. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XLIII, 911 S. Ill. |
ISBN: | 9781133776574 1133776574 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV040345540 | ||
003 | DE-604 | ||
005 | 20240903 | ||
007 | t | ||
008 | 120801s2013 a||| |||| 00||| eng d | ||
015 | |a GBB206920 |2 dnb | ||
020 | |a 9781133776574 |9 978-1-133-77657-4 | ||
020 | |a 1133776574 |9 1-133-77657-4 | ||
035 | |a (OCoLC)799008844 | ||
035 | |a (DE-599)BVBBV040345540 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-20 |a DE-91G |a DE-Aug4 |a DE-523 |a DE-384 |a DE-92 |a DE-M347 | ||
082 | 0 | |a 794.81526 | |
084 | |a ST 324 |0 (DE-625)143660: |2 rvk | ||
084 | |a DAT 758f |2 stub | ||
100 | 1 | |a McShaffry, Mike |e Verfasser |0 (DE-588)17396981X |4 aut | |
245 | 1 | 0 | |a Game coding complete |c Mike "MrMike" McShaffry and David "Rez" Graham |
250 | |a 4. ed. | ||
264 | 1 | |a Boston, MA |b Course Technology |c 2013 | |
300 | |a XLIII, 911 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Computer games / Programming | |
650 | 4 | |a Coding theory | |
650 | 0 | 7 | |a Computerspiel |0 (DE-588)4010457-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Computerspiel |0 (DE-588)4010457-6 |D s |
689 | 0 | 1 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Graham, David Rez |e Verfasser |0 (DE-588)1025517121 |4 aut | |
856 | 4 | 2 | |m SWB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=025199699&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-025199699 |
Datensatz im Suchindex
DE-BY-FWS_katkey | 489832 |
---|---|
_version_ | 1824553886355030017 |
adam_text |
IMAGE 1
CONTENTS
CHAPTER 1
CHAPTER 2
INTRODUCTION *.*******.*.*.*.*.***.*.*****.*****. XXXIII
WHAT IS GAME PROGRAMMING REALLY LIKE? 0 0 0 0 0' 0 0 000 0 0 0 0 0 000 0
1
THE GOOD 2
THE JOB 2
THE GAMERS .*. 3
YOUR COWORKERS 4
THE TOOLS-SOFTWARE DEVELOPMENT KITS (SDKS) 7
THE HARDWARE .*. 8
THE PLATFORMS .*.*. 8
THE SHOW .*. 13
THE HARD WORK 14
GAME PROGRAMMING IS FREAKING HARD 14
BITS AND PIECES 15
THAT'S NOT A BUG-THAT'S A FEATURE . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 15
THE TOOLS 17
THE DARK SIDE.*. 17
HITTING A MOVING TARGET .*.**. 18
CRUNCH MODE (AND CRUNCH MEALS) 19
BAH HUMBUG 20
OPERATING SYSTEM HELL 21
FLUID NATURE OF EMPLOYMENT .*.*. 22
IT'S ALL WORTH IT, RIGHT? .*. 23
WHAT'S IN A GAME? 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 25
GAME ARCHITECTURE .*.*. 26
XIX
IMAGE 2
XX CONTENTS
CHAPTER 3
APPLYING THE GAME ARCHITECTURE 28
APPLICATION LAYER 31
READING INPUT 31
FILE SYSTEMSAND RESOURCE CACHING 31
MANAGING MEMORY 33
INITIALIZATION, THE MAIN LOOP, AND SHUTDOWN 33
OTHER APPLICATION LAYER CODE 34
GAME LOGIC 35
GAME STATE AND DATA STRUCTURES 36
PHYSICSAND COLLISION .*. 37
EVENTS 38
PROCESSMANAGER 39
COMMAND INTERPRETER 40
GAME VIEW FOR THE HUMAN PLAYER 41
GRAPHICS DISPLAY 41
AUDIO 43
USER INTERFACE PRESENTATION 44
PROCESSMANAGER 44
OPTIONS 45
MULTIPLAYER GAMES 45
GAME VIEWS FOR AI AGENTS 45
NETWORKED GAME ARCHITECTURE 46
REMOTE GAME VIEW 47
REMOTE GAME LOGIC 47
DO I HAVE TO USE DIRECTX? 49
DESIGN PHILOSOPHY OF DIRECTX 49
DIRECT3D OR OPENGL 50
DIRECTSOUND OR WHAT? 50
DIRECTLNPUT OR ROLL YOUR OWN 51
OTHER BITS AND PIECES 51
FURTHER READING 52
CODING TIDBITS AND STYLE THAT SAVED ME 53
GENERAL CODING STYLES 54
BRACING .*. 55
CONSISTENCY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 56
SMART CODE DESIGN PRACTICES 58
AVOIDING HIDDEN CODE AND NONTRIVIAL OPERATIONS 59
CLASSHIERARCHIES: KEEP THEM FLAT 60
INHERITANCE VERSUS COMPOSITION 61
VIRTUAL FUNCTIONS GONE BAD 61
IMAGE 3
CHAPTER 4
CONTENTS XXI
USE INTERFACE CLASSES 64
CONSIDER USING FACTORIES 65
ENCAPSULATE COMPONENTS THAT CHANGE 66
USE STREAMS TO INITIALIZE OBJECTS 67
SMART POINTERS AND NAKED POINTERS 68
REFERENCE COUNTING 69
C++'S SHARED_PTR 71
USING MEMORY CORRECTLY 75
UNDERSTANDING THE DIFFERENT KINDS OF MEMORY 75
OPTIMIZING MEMORY ACCESS 78
MEMORY ALIGNMENT 80
VIRTUAL MEMORY 81
WRITING YOUR OWN MEMORY MANAGER 82
GRAB BAG OF USEFUL STUFF 84
AN EXCELLENT RANDOM NUMBER GENERATOR 85
PSEUDO-RANDOM TRAVERSAL OF A SET 87
MEMORY POOLS 88
DEVELOPING THE STYLE THAT'S RIGHT FOR YOU 95
FURTHER READING 95
BUILDING YOUR GAME **.*.*.***.*.****.*.*.**. 97
A LITTLE MOTIVATION 98
CREATING A PROJECT 99
BUILD CONFIGURATIONS 99
CREATE A BULLET-PROOF DIRECTORY STRUCTURE 100
WHERE TO PUT YOUR GAME ENGINE AND TOOLS 103
SETTING VISUAL STUDIO BUILD OPTIONS 104
MULTIPLATFORM PROJECTS. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 108
SOURCE CODE REPOSITORIES AND VERSION CONTROL 110
A LITTLE HISTORY-VISUAL SOURCESAFE FROM MICROSOFT 111
SUBVERSION AND TORTOISESVN 112
PERFORCE BY PERFORCE SOFTWARE . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 113
ALIENBRAIN FROM AVID 114
USING SOURCE CONTROL BRANCHES 115
BUILDING THE GAME: A BLACK ART? .*. 118
AUTOMATE YOUR BUILDS 120
THE BUILD MACHINE 120
AUTOMATED BUILD SCRIPTS 121
CREATING BUILD SCRIPTS 122
NORMAL BUILD 123
MILESTONE BUILD 124
IMAGE 4
XXII CONTENTS
CHAPTER 5
CHAPTER 6
MULTIPLE PROJECTS AND SHARED CODE 127
SOME PARTING ADVICE 128
GAME INITIALIZATION AND SHUTDOWN 129
INITIALIZATION 101 130
SOME C++ INITIALIZATION PITFALLS 130
THE GAME'S APPLICATION LAYER 133
WINMAIN: THE WINDOWS ENTRY POINT 133
THE APPLICATION LAYER: GAMECODEAPP .*.***.*****.**.*****. 135
INITLNSTANCE(): CHECKING SYSTEM RESOURCES 136
CHECKING FOR MULTIPLE INSTANCES OF YOUR GAME 137
CHECKING HARD DRIVE SPACE 138
CHECKING MEMORY . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 139
CALCULATING CPUSPEED 140
DO YOU HAVE A DIRTBAG ON YOUR HANDS? 141
INITIALIZE YOUR RESOURCE CACHE 141
LOADING TEXT STRINGS 142
YOUR SCRIPT MANAGER AND THE EVENTS SYSTEM 144
INITIALIZE DIRECTX AND CREATE YOUR WINDOW 145
CREATE YOUR GAME LOGIC AND GAME VIEW 145
SET YOUR SAVE GAME DIRECTORY 146
PRELOAD SELECTED RESOURCESFROM THE CACHE 147
STICK THE LANDING: A NICE CLEAN EXIT 147
HOW DO I GET OUT OF HERE? 148
FORCING MODAL DIALOG BOXESTO CLOSE. . . . . . . . . . . . . . . . . . .
. . . . . . . . 150
SHUTTING DOWN THE GAME 151
WHAT ABOUT CONSOLES?. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 152
GETTING IN AND GETTING OUT 153
GAME ACTORS AND COMPONENT ARCHITECTURE 155
A FIRST ATTEMPT AT BUILDING GAME ACTORS 155
COMPONENT ARCHITECTURE 159
CREATING ACTORS AND COMPONENTS 160
DEFINING ACTORS AND COMPONENTS 165
STORING AND ACCESSING ACTORS 168
PUTTING IT ALL TOGETHER 170
DATA SHARING 171
DIRECT ACCESS. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 172
EVENTS 173
THE BEST OF BOTH WORLDS. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 173
IMAGE 5
CHAPTER 7
CHAPTER 8
CHAPTER 9
CONTENTS XXIII
CONTROLLING THE MAIN LOOP .*.**.*.*.**.***.**. 175
ORGANIZING THE MAIN LOOP 175
HARD-CODED UPDATES 176
MULTITHREADED MAIN LOOPS 176
A HYBRID TECHNIQUE 178
A SIMPLE COOPERATIVE MULTITASKER . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 180
VERY SIMPLE PROCESSEXAMPLE: DELAYPROCESS 186
MORE USESOF PROCESS DERIVATIVES 187
PLAYING NICELY WITH THE OS 188
USING THE DIRECTX 11 FRAMEWORK 189
RENDERING AND PRESENTING THE DISPLAY . . . . . . . . . . . . . . . . . .
. . . . . . . 190
YOUR CALLBACK FUNCTIONS FOR UPDATING AND RENDERING 191
CAN I MAKE A GAME YET? 193
LOADING AND CACHING GAME DATA .***.*.**.**.*. 195
GAME RESOURCES:FORMATS AND STORAGE REQUIREMENTS 197
3D OBJECT MESHES AND ENVIRONMENTS. . . . . . . . . . . . . . . . . . . .
. . . . . . 197
ANIMATION DATA 200
MAP/LEVEL DATA 202
TEXTURE DATA 202
BITMAP COLOR DEPTH 202
SOUND AND MUSIC DATA 205
VIDEO AND PRERENDERED CINEMATICS 206
RESOURCE FILES 209
PACKAGING RESOURCESINTO A SINGLE FILE 211
OTHER BENEFITS OF PACKAGING RESOURCES 211
DATA COMPRESSION AND PERFORMANCE 212
ZLIB: OPEN SOURCE COMPRESSION 213
THE RESOURCE CACHE 218
IRESOURCEFLLELNTERFACE 222
RESHANDLE: TRACKING LOADED RESOURCES 222
IRESOURCELOADER INTERFACE AND THE DEFAULTRESOURCELOADER 224
RESCACHE:A SIMPLE RESOURCE CACHE 225
CACHING RESOURCESINTO DIRECTX ET AL. ., 233
WORLD DESIGN AND CACHE PREDICTION 233
I'M OUT OF CACHE 237
PROGRAMMING INPUT DEVICES .***.**.**.***. 239
GETTING THE DEVICE STATE 240
USING XLNPUT OR DIRECTLNPUT 243
A FEW SAFETY TIPS 245
WORKING WITH TWO-AXIS CONTROLS 249
IMAGE 6
XXIV CONTENTS
CAPTURING THE MOUSE ON DESKTOPS .*. 249
MAKING A MOUSE DRAG WORK 252
WORKING WITH A GAME CONTROLLER 255
DEAD ZONES .*.*. 256
NORMALIZING INPUT 259
ONE STICK, TWO STICK, RED STICK, BLUE STICK 261
RAMPING CONTROL VALUES 261
WORKING WITH THE KEYBOARD .*. 262
MIKE'S KEYBOARD SNOOPER 262
GETASYNCKEYSTATE() AND OTHER EVILS.*. 267
HANDLING THE ALT KEY UNDER WINDOWS .*. 267
WHAT, NO DANCE PAD? 267
CHAPTER 10 USER INTERFACE PROGRAMMING 269
DIRECTX'S TEXT HELPER AND DIALOG RESOURCE MANAGER 270
THE HUMAN'S GAME VIEW .*. 271
A WASD MOVEMENT CONTROLLER .*. 281
SCREEN ELEMENTS 283
A CUSTOM MESSAGEBOX DIALOG 286
MODAL DIALOG BOXES .*. 292
CONTROLS .*.*. 297
CONTROL IDENTIFICATION 298
HIT TESTING AND FOCUSORDER 300
CONTROL STATE 301
MORE CONTROL PROPERTIES 302
HOT KEYS.*.*. 303
TOOLTIPS 303
CONTEXT-SENSITIVE HELP 304
DRAGGING 304
SOUNDS AND ANIMATION 304
SOME FINAL USER INTERFACE TIPS 304
CHAPTER 11 GAME EVENT MANAGEMENT . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 307
GAME EVENTS .*. 308
EVENTS AND EVENT DATA . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 309
THE EVENT LISTENER DELEGATES 313
THE EVENT MANAGER 314
EXAMPLE: BRINGING IT ALL TOGETHER .*. 323
WHAT GAME EVENTS ARE IMPORTANT? .*. 324
DISTINGUISHING EVENTS FROM PROCESSES 326
FURTHER READING 327
IMAGE 7
CONTENTS XXV
CHAPTER12 SCRIPTINGWITH LUA 329
A BRIEF HISTORY OF GAME PROGRAMMING LANGUAGES 330
ASSEMBLY LANGUAGE .*.*.*. 331
AC++ 331
SCRIPTING LANGUAGES .**. 334
USING A SCRIPTING LANGUAGE .*. 334
RAPID PROTOTYPING 334
DESIGN FOCUSED.*.*. 335
SPEED AND MEMORY COSTS.*.*.*. 336
WHERE'S THE LINE? .*.*.*. 336
SCRIPTING LANGUAGE INTEGRATION STRATEGIES *.*.*.*. 337
WRITING YOUR OWN .*.**.* 337
USING AN EXISTING LANGUAGE .*. 337
CHOOSING A SCRIPTING LANGUAGE .**.*.* 338
PYTHON .***.**.*.*. 338
LUA.*.*.*.*.**.*.*.* 339
A CRASH COURSE IN LUA **.**.*.*.*.****. 340
COMMENTS .*.*.*.*.*. 340
VARIABLES .*.*.*.**.*.*.* 340
FUNCTIONS .*.*.*.*.*.*.*.*. 342
TABLES.*.*.*.**.*.*. 343
FLOW CONTROL. . * . . * * . . . * . * . . * . . . * * . . . . . * . . .
. . . * . * . . . . . . . . . . 346
OPERATORS. . . . . . . . . . . . . . . . * . . . . . * . . . * . . . . *
. . . . . . . . . . . . . . . . 348
WHAT'S NEXT? .*.*.*.**.**.*.*. 349
OBJECT-ORIENTED PROGRAMMING IN LUA.*.*. 349
METATABLES .***.*.*.*.*. 351
CREATING A SIMPLE CLASSABSTRACTION .*.*. 353
MEMORY MANAGEMENT .**. 356
BINDING LUA TO C++.*.*. 356
THE LUA C API.*.*. 356
TOLUA- 357
LUABIND .***. 357
LUAPLUS.*. 357
A CRASH COURSE IN LUAPLUS .*.*.*.*.****. 358
LUASTATE 358
LUAOBJECT .**.*.*.**.** 358
TABLES.*.*. 360
GLOBALS .*. 361
FUNCTIONS .*.*.****.*.*** 363
CALLING C++ FUNCTIONS FROM LUA .*. 363
IMAGE 8
XXVI CONTENTS
BRINGING IT ALL TOGETHER .*.*.*.*. 366
MANAGING THE LUA STATE .*.*.*.*. 367
SCRIPT EXPORTS .*.*.*.*.*.*. 368
PROCESSSYSTEM . . . . . . . . . . . . . . * . . . . . . . * . . . . . .
. * . . . . . . . * . . . . . 370
EVENT SYSTEM . . . . . . . . . . . . . . . * . . * . . * . * . . . . . .
. . . . . . . . . . . . . . . 380
SCRIPT COMPONENT .*.*.*.**. 387
LUA DEVELOPMENT AND DEBUGGING .*.*.*.*.*. 389
FINAL THOUGHTS .**.*.*.*.*.* 389
FURTHER READING .*.*. 390
CHAPTER 13 GAME AUDIO 391
HOW SOUND WORKS .*.** 392
DIGITAL RECORDING AND REPRODUCTION .*.*.*.*.*. 393
SOUND FILES.*.*.*.*.**.*. 395
A QUICK WORD ABOUT THREADS AND SYNCHRONIZATION .* 396
GAME SOUND SYSTEM ARCHITECTURE .*.*.*.*.***. 397
SOUND RESOURCESAND HANDLES .*.*.**.*. 398
IAUDI OBUFFER INTERFACE AND AUDI OBUFFER CLASS.*.*. 409
LAUD; 0 INTERFACE AND AUD; 0 CLASS.*.*.**. 411
DIRECTSOUND IMPLEMENTATIONS .*.**.*. 414
SOUND PROCESSES.*.*.*. 426
LAUNCHING SOUND EFFECTS .*. 431
OTHER TECHNICAL HURDLES .*.*.*.*. 432
SOUNDS AND GAME OBJECTS .*.**.*.*. 432
TIMING AND SYNCHRONIZATION .*.*.*.*.*.*. 432
MIXING ISSUES .*.*.*.*.*.*. 434
SOME RANDOM NOTES .*.*. '.*.**.*.*.***. 437
DATA-DRIVEN SOUND SETTINGS .*.*.*.*. 437
BACKGROUND AMBIENT SOUNDS AND MUSIC.*.*.*. 438
SPEECH .*.*.*.*.*.*. 439
THE LAST DANCE.*.**.*.*.*.*. 441
CHAPTER 14 3D GRAPHICS BASICS 443
3D GRAPHICS PIPELINE .*.*.*.*.*.*.**.*. 444
3D MATH 101 *.*.*.**.*.*.*.*. 445
COORDINATES AND COORDINATE SYSTEMS .*.* 446
VECTOR MATHEMATICS .***.*.*.*.*.*. 449
C++ MATH CLASSES.**.**.*.*. 456
VECTOR CLASSES.**.*.*.*. 456
MATRIX MATHEMATICS. . . . . . . . . . . . . . . . . * . . . . . . . . .
* . . . * . . . . . * . * 458
QUATERNION MATHEMATICS .*.*.*.*.* 469
TRANSFORMATIONS .*.*.*. 478
IMAGE 9
CONTENTS XXVII
GEOMETRY .*.**.**.****.*.**.*.**.*. 481
LIGHTING, NORMALS, AND COLOR .*.*.*.**.*.* 482
MATERIALS **.**.*.**.*.*.*.**.**.***. 484
TEXTURED VERTICES **.**.**.*.*.***.*.***.*. 487
TEXTURING .**.*.**.*.*.**. 487
SUBSAMPLING .*.*.*.*.*.**.*.*.***.*.*.* 488
MIP-MAPPING .*.*.*.*.*.*.*.*.**. 490
INTRODUCING ID3DLLDEV1CE AND ID3DLLDEV1CECONTEXT 491
LOADING TEXTURES IN 03011 491
TRIANGLE MESHES .******.**.*.*.**.******.**.*.*.*. 494
STILL WITH ME? .**.*.*.**.*.**.*.*. 497
CHAPTER 15 3D VERTEX AND PIXEL SHADERS 499
THE VERTEX SHADER AND SHADER SYNTAX .**.**.****.*.*.**. 501
COMPILING THE VERTEX SHADER .*.*.**.*.*.*. 505
C++ HELPER CLASSFOR THE VERTEX SHADER *.**.*.**.**.*** 507
THE PIXEL SHADER.*.*.****.*.*.***.*.*.**.**. 515
C++ HELPER CLASSFOR THE PIXEL SHADER .*.*.*.*.** 516
RENDERING WITH THE SHADER HELPER CLASSES.**.*.*.*.**. 520
SHADERS-IT'S JUST THE BEGINNING .*.*.***.**.***.**. 521
FURTHER READING .*.***.**.**.**.**.*.***.*.*.*. 521
CHAPTER 16 3D SCENES 523
SCENE GRAPH BASICS.**.*.***.**.**.****.****.*.* 523
I SCENENODEINTERFACE CLASS.**.******.*.**********.**.*. 524
SCENENODEPROPERT1 ES AND RENDERPASS .*.*.*. 526
SCENENODE-IT ALL STARTS HERE .**.**.**.***.*.*.**.**. 529
THE SCENE CLASS .***.*.*.*.*.*.*.*.*. 536
SPECIAL SCENE GRAPH NODES.*.*. ~.***.*.*.*. 545
IMPLEMENTING SEPARATE RENDER PASSES.*.***.*.**.*. 545
A SIMPLE CAMERA *.**.**.*.**.*****.***.* 548
PUTTING LIGHTS IN YOUR SCENE .**.*.*.**.*. 551
RENDERING THE SKY **.**.*.*.*.**.**.*. 554
USING MESHES IN YOUR SCENE.*.*.**.*.**.***.** 560
WHAT'S MISSING? **.*.***.***.*.***.***.*.*.**.*.**. 565
STILL HUNGRY? .*.**.**.*.*.*.*.**.*.* 565
FURTHER READING .*.**.*.**.*.***.*******. 565
CHAPTER 17 COLLISION AND SIMPLE PHYSICS 567
MATHEMATICS FOR PHYSICSREFRESHER .*.**.*.***. 569
METERS, FEET, CUBITS, OR KELLICAMS? *.*.*****.*.***.*.**** 569
DISTANCE, VELOCITY, AND ACCELERATION .**.***.** 569
IMAGE 10
XXVIII CONTENTS
MASS,ACCELERATION, AND FORCE.*.*. 571
ROTATIONAL INERTIA, ANGULAR VELOCITY, AND TORQUE .*.* 574
DISTANCE CALCULATIONS AND INTERSECTIONS .*. 575
CHOOSING A PHYSICSSDK .**.*. 576
OBJECT PROPERTIES .*.*.*. 578
COLLISION HULLS .*.*.*. 580
REQUIREMENTS OF GOOD COLLISION GEOMETRY 581
VISIBLE GEOMETRY VERSUS COLLISION GEOMETRY .*. 582
COLLISION HULLS FOR HUMAN CHARACTERS .*. 583
SPECIAL OBJECTS: STAIRS, DOORWAYS, AND TREES 585
USING A COLLISION SYSTEM.*.*.**.*. 586
INTEGRATING A PHYSICSSDK.***.*. 588
COMPONENTS OF THE BULLET SDK.*.* 593
INITIALIZATION .**. 594
SHUTDOWN .*.*.*. 595
UPDATING THE PHYSICSSYSTEM .**.*. 596
CREATING A SIMPLE PHYSICSOBJECT *.*. 599
CREATING A CONVEX MESH.**. 601
CREATING A TRIGGER .*.*.*.*. 602
APPLYING FORCE AND TORQUE .*.*.*. 603
THE PHYSICSDEBUG RENDERER. . * * . . . . . . * . . . . . . . . . . . . *
. . . . . . . . . . 604
RECEIVING COLLISION EVENTS.**. 606
A FINAL WORD ON INTEGRATING PHYSICSSDKS 609
BUT WAIT, THERE'S SO MUCH MORE .*.*.*. 610
CHAPTER 18 AN INTRODUCTION TO GAME AI. 611
AI TECHNIQUES .***.**.**.*.*.*. 612
HARD-CODED AI .*. 612
RANDOMIZATION .*.*. 614
WEIGHTED RANDOMS .*.*.*.*.* 616
FINITE STATE MACHINES .*.*.*.*. 616
DECISION TREES.*.**.**.*. 622
FUZZY LOGIC.*.*. 627
UTILITY THEORY *.*.*.**.*.*.* 630
GOAL-ORIENTED ACTION PLANNING .*.**. 635
PATHFINDING *.**.*.*.*.*. 636
A * (A-STAR) .*.**.**.*.*. 638
DYNAMIC AVOIDANCE *.**.*. 640
FURTHER READING .*.**.*.*.*.*. 641
CHAPTER 19 NETWORK PROGRAMMING FOR MULTIPLAYER GAMES 643
HOW THE INTERNET WORKS .*.*.*.*. 644
IMAGE 11
CONTENTS XXIX
WINSOCK OR BERKELEY? .*.**.*.**.*. 645
INTERNET ADDRESSES .*.*.*.*.*.*.*. 646
THE DOMAIN NAME SYSTEM .*. 648
USEFUL PROGRAMS AND FILES.*.*.***.**.*. 649
SOCKETS API.*.*.**.*.*. 650
SOCKETS UTILITY FUNCTIONS .**.*.**.*. 651
DOMAIN NAME SERVICE (DNS) FUNCTIONS .**.*.**. 653
SOCKETS INITIALIZATION AND SHUTDOWN .****.***. 654
CREATING SOCKETS AND SETTING SOCKET OPTIONS *.****.**. 655
SERVER FUNCTIONS .**.**.*.*.*.***.*.*.* 660
SOCKET READING AND WRITING .****.**.*.**. 663
MAKING A MULTIPLAYER GAME WITH SOCKETS *.*.*.*.**. 663
PACKET CLASSES. . . * . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . * . . . . 665
CORE SOCKET CLASSES.*.**.*. 666
A SOCKET CLASSFOR LISTENING .*.*.*. 673
A SOCKET MANAGER CLASS.***.*.**.***.*.**. 675
CORE CLIENT-SIDE CLASSES **.*.*.*.**.**. 683
CORE SERVER-SIDE CLASSES.*.*.*. 684
WIRING SOCKETS INTO THE EVENT SYSTEM.*.**.**. 686
GOSH, IF IT'S THAT EASY.**.**.*. 692
CHAPTER 20 INTRODUCTION TO MULTIPROGRAMMING 693
WHAT MULTIPROGRAMMING DOES.*.*.**.**.**. 693
CREATING THREADS .*.*.**.*.**.**. 696
PROCESSSYNCHRONIZATION .*.*.*.**.*.*.*.*. 698
TEST AND SET, THE SEMAPHORE, AND THE MUTEX *.*.*.**. 699
THE WINDOWS CRITICAL SECTION .*.*.**.*.***.*.*.***. 700
INTERESTING THREADING PROBLEMS .*.*.*.*.*.*.*.* 702
THREAD SAFETY .**.*.*.**.****.*.* 704
MULTITHREADING CLASSESIN GAMECODE4 .*.**.**. 704
THE REALTIMEPROCESS CLASS .*.*.*****.**.****.* 705
SENDING EVENTS FROM REAL-TIME PROCESSES.**.****.* 708
RECEIVING EVENTS IN REAL-TIME PROCESSES.*.*.**.*. 711
BACKGROUND DECOMPRESSION OF A ZIP FILE .*.*.*.**. 713
FURTHER WORK .*.**.**.*.*.***. 715
ABOUT THE HARDWARE .*.****. 717
ABOUT THE FUTURE .*.*.***.*.*.*. 718
FURTHER READING .*.*.*.*.*.*.*.* 718
CHAPTER 21 A GAME OF TEAPOT WARSL 719
MAKING A GAME .**.*.**.***********.**.***. 720
CREATING THE CORE CLASSES.*.***.*****.******.*.** 722
,
- I
IMAGE 12
XXX CONTENTS
THE TEAPOT WARS APPLICATION LAYER . . . * . . . . . . . . . * . . . . .
. . . . * . . . . 722
THE GAME LOGIC .*.*.*.*.*.*. 723
THE GAME VIEW FOR A HUMAN PLAYER.*.*.*.*.*. 733
GAME EVENTS .*.*.*.*.*.*.*. 737
GAMEPLAY .*.*.*.*.*.*.*. 737
LOADING THE LEVEL.*.*.*. 737
THE ACTOR MANAGER .*. 739
SENDING AND RECEIVING EVENTS .*.*.**.*. 741
PROCESSES . . . . . . . . . * * . * . . . . . . * . . . . . * . . . . .
* . . . * . . * . . . . . * . . . 743
AN EXERCISE LEFT TO THE READER .*.*.*.*.*.*. 745
CHAPTER 22 A SIMPLE GAME EDITOR IN C# .*.*.*.*.*.*. 747
WHY C#? .*.**.*.*. 747
HOW THE EDITOR IS PUT TOGETHER .*.**.*.*.*.*.*. 748
THE EDITOR ARCHITECTURE .*.*.* 748
THE APPLICATION LAYER.*.**.*.*. 749
THE EDITOR'S LOGIC CLASS 750
THE EDITOR VIEW *.*.*.*. 751
FUNCTIONS TO ACCESSTHE GAME ENGINE.*.*.*.*.*.* 753
CREATING THE DLL .**.*.**.*.*. 763
WRAPPING UP THE EDITOR ARCHITECTURE .**.* 764
THE C# EDITOR APPLICATION .*.*.*. 765
DIFFERENCES BETWEEN MANAGED CODE AND UNMANAGED CODE .* 766
NAT 1VEMETHODS CLASS.**.*.*.*.*.*.*.*.* 767
PROGRAM CLASS.**.***.*.*.*. 768
MESSAGEHANDL ER CLASS.*.*.*.**.*. 769
THE C# EDITOR USER INTERFACE .*.*.*. 772
THE EDITORFORM CLASS.*.*.*. 772
THE ACTORCOMPONENTED1 TOR CLASS.**.*.*.*.*.*.*.*. 784
FUTURE WORK .*.*.*.*.*.*.*.*.*.*. 795
FURTHER READING .*.*.**.*.*.**.*.*.*. 796
CHAPTER 23 DEBUGGING AND PROFILING YOUR GAME .*.*.*.*. 797
THE ART OF HANDLING FAILURE .**.***.*.*.*.*.*. 798
DEBUGGING BASICS.**.*.*.*.*.*. 800
USING THE DEBUGGER *.*.***.*. 803
INSTALLING WINDOWS SYMBOL FILES.**. 805
DEBUGGING FULL-SCREEN GAMES .*.*.*. 807
REMOTE DEBUGGING .*.*.*.*.***.*.*.*.*.*. 808
DEBUGGING MINIDUMPS .*.*.*.**.*.*.*.*.*.*. 810
GRAPHICS AND SHADER DEBUGGING .**.*.*.*.*.*. 812
DEBUGGING TECHNIQUES **.*.*.*.*.*.*.**. 813
IMAGE 13
CONTENTS XXXI
DEBUGGING ISAN EXPERIMENT 813
REPRODUCING THE BUG 817
ELIMINATING COMPLEXITY 817
SETTING THE NEXT STATEMENT 818
ASSEMBLY LEVEL DEBUGGING .*.*.*. 820
PEPPERING THE CODE 822
DRAW DEBUG INFORMATION 823
LINT AND OTHER CODE ANALYZERS 824
NU-MEGA'S BOUNDSCHECKER AND RUNTIME ANALYZERS .*. 825
DISAPPEARING BUGS 825
TWEAKING VALUES 825
CAVEMAN DEBUGGING 826
WHEN ALL ELSEFAILS 827
BUILDING AN ERROR LOGGING SYSTEM *.*. 828
DIFFERENT KINDS OF BUGS .*. 835
MEMORY LEAKS AND HEAP CORRUPTION 835
GAME DATA CORRUPTION 839
STACK CORRUPTION 841
CUT AND PASTE BUGS 842
RUNNING OUT OF SPACE 842
RELEASE MODE ONLY BUGS 843
MULTITHREADING GONE BAD 843
WEIRD ONES 844
PROFILING .*.* 846
MEASURING PERFORMANCE 846
OPTIMIZING CODE 847
TRADEOFFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 848
OVER-OPTIMIZATION 849
PARTING THOUGHTS 849
FURTHER READING 850
CHAPTER 24 DRIVING TO THE FINISH 851
FINISHING ISSUES 852
QUALITY 852
CODE.*. 857
CONTENT . . . . . . . . . . . . . . . . . . . . . . . . . . . * . . . .
. . . . . . . . . . . . . . . . . 862
DEALING WITH BIG TROUBLE 864
PROJECTS SERIOUSLY BEHIND SCHEDULE 865
PERSONNEL-RELATED PROBLEMS 872
YOUR COMPETITION BEATS YOU TO THE PUNCH 874
IMAGE 14
XXXII CONTENTS
THERE'S NO WAY OUT-OR ISTHERE? 875
ONE LAST WORD-DON'T PANIC 876
THE LIGHT-IT'S NOT A TRAIN AFTER ALL 876
TEST THE ARCHIVE 877
THE PATCH BUILD OR THE PRODUCT DEMO 878
THE POSTMORTEM. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 878
WHAT TO DO WITH YOUR TIME .*.*. 879
INDEX 881 |
any_adam_object | 1 |
author | McShaffry, Mike Graham, David Rez |
author_GND | (DE-588)17396981X (DE-588)1025517121 |
author_facet | McShaffry, Mike Graham, David Rez |
author_role | aut aut |
author_sort | McShaffry, Mike |
author_variant | m m mm d r g dr drg |
building | Verbundindex |
bvnumber | BV040345540 |
classification_rvk | ST 324 |
classification_tum | DAT 758f |
ctrlnum | (OCoLC)799008844 (DE-599)BVBBV040345540 |
dewey-full | 794.81526 |
dewey-hundreds | 700 - The arts |
dewey-ones | 794 - Indoor games of skill |
dewey-raw | 794.81526 |
dewey-search | 794.81526 |
dewey-sort | 3794.81526 |
dewey-tens | 790 - Recreational and performing arts |
discipline | Sport Informatik |
edition | 4. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV040345540</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240903</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">120801s2013 a||| |||| 00||| eng d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">GBB206920</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781133776574</subfield><subfield code="9">978-1-133-77657-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1133776574</subfield><subfield code="9">1-133-77657-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)799008844</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV040345540</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-20</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-M347</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">794.81526</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 324</subfield><subfield code="0">(DE-625)143660:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 758f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">McShaffry, Mike</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)17396981X</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Game coding complete</subfield><subfield code="c">Mike "MrMike" McShaffry and David "Rez" Graham</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">4. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston, MA</subfield><subfield code="b">Course Technology</subfield><subfield code="c">2013</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XLIII, 911 S.</subfield><subfield code="b">Ill.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer games / Programming</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Coding theory</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Computerspiel</subfield><subfield code="0">(DE-588)4010457-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Computerspiel</subfield><subfield code="0">(DE-588)4010457-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Graham, David Rez</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1025517121</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">SWB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=025199699&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-025199699</subfield></datafield></record></collection> |
id | DE-604.BV040345540 |
illustrated | Illustrated |
indexdate | 2025-02-20T06:43:00Z |
institution | BVB |
isbn | 9781133776574 1133776574 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-025199699 |
oclc_num | 799008844 |
open_access_boolean | |
owner | DE-20 DE-91G DE-BY-TUM DE-Aug4 DE-523 DE-384 DE-92 DE-M347 |
owner_facet | DE-20 DE-91G DE-BY-TUM DE-Aug4 DE-523 DE-384 DE-92 DE-M347 |
physical | XLIII, 911 S. Ill. |
publishDate | 2013 |
publishDateSearch | 2013 |
publishDateSort | 2013 |
publisher | Course Technology |
record_format | marc |
spellingShingle | McShaffry, Mike Graham, David Rez Game coding complete Computer games / Programming Coding theory Computerspiel (DE-588)4010457-6 gnd Programmierung (DE-588)4076370-5 gnd |
subject_GND | (DE-588)4010457-6 (DE-588)4076370-5 |
title | Game coding complete |
title_auth | Game coding complete |
title_exact_search | Game coding complete |
title_full | Game coding complete Mike "MrMike" McShaffry and David "Rez" Graham |
title_fullStr | Game coding complete Mike "MrMike" McShaffry and David "Rez" Graham |
title_full_unstemmed | Game coding complete Mike "MrMike" McShaffry and David "Rez" Graham |
title_short | Game coding complete |
title_sort | game coding complete |
topic | Computer games / Programming Coding theory Computerspiel (DE-588)4010457-6 gnd Programmierung (DE-588)4076370-5 gnd |
topic_facet | Computer games / Programming Coding theory Computerspiel Programmierung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=025199699&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT mcshaffrymike gamecodingcomplete AT grahamdavidrez gamecodingcomplete |