- Page 4:
This page intentionally left blank
- Page 8:
© 2004 by Thomson Course Technolog
- Page 12:
AcknowledgmentsAbook of this size i
- Page 16:
Contents at a GlanceIntroduction .
- Page 20:
ContentsIntroduction . . . . . . .
- Page 24:
xiiContentsChapter 4 Writing Your F
- Page 28:
xivContentsStory . . . . . . . . .
- Page 32:
xviContentsChapter 10 Programming T
- Page 36:
xviiiContentsSummary . . . . . . .
- Page 40:
xxContentsChapter 18 Introduction t
- Page 44:
xxiiContentsChapter 5 . . . . . . .
- Page 48:
This page intentionally left blank
- Page 52:
xxviIntroductionCross-Platform Game
- Page 56:
xxviiiIntroductionsource code. When
- Page 60:
xxxIntroduction■■■Part II: 2D
- Page 64:
Welcome to Part I of Game Programmi
- Page 68:
4Chapter 1 ■Demystifying Game Dev
- Page 72:
6Chapter 1 ■Demystifying Game Dev
- Page 76:
8Chapter 1 ■Demystifying Game Dev
- Page 80:
10Chapter 1 ■Demystifying Game De
- Page 84:
12Chapter 1 ■Demystifying Game De
- Page 88:
14Chapter 1 ■Demystifying Game De
- Page 92:
16Chapter 1 ■Demystifying Game De
- Page 96:
18Chapter 1 ■Demystifying Game De
- Page 100:
20Chapter 1 ■Demystifying Game De
- Page 104:
22Chapter 1 ■Demystifying Game De
- Page 108:
24Chapter 1 ■Demystifying Game De
- Page 112:
26Chapter 1 ■Demystifying Game De
- Page 116:
28Chapter 1 ■Demystifying Game De
- Page 120:
30Chapter 1 ■Demystifying Game De
- Page 124:
32Chapter 1 ■Demystifying Game De
- Page 128:
34Chapter 2 ■Getting Started with
- Page 132:
36Chapter 2 ■Getting Started with
- Page 136:
38Chapter 2 ■Getting Started with
- Page 140:
40Chapter 2 ■Getting Started with
- Page 144:
42Chapter 2 ■Getting Started with
- Page 148:
44Chapter 2 ■Getting Started with
- Page 152:
46Chapter 2 ■Getting Started with
- Page 156:
48Chapter 2 ■Getting Started with
- Page 160:
50Chapter 2 ■Getting Started with
- Page 164:
52Chapter 2 ■Getting Started with
- Page 168:
54Chapter 2 ■Getting Started with
- Page 172:
56Chapter 2 ■Getting Started with
- Page 176:
58Chapter 2 ■Getting Started with
- Page 180:
60Chapter 2 ■Getting Started with
- Page 184:
62Chapter 2 ■Getting Started with
- Page 188:
64Chapter 2 ■Getting Started with
- Page 192:
66Chapter 2 ■Getting Started with
- Page 196:
68Chapter 2 ■Getting Started with
- Page 200:
This page intentionally left blank
- Page 204:
72Chapter 3 ■Basic 2D Graphics Pr
- Page 208:
74Chapter 3 ■Basic 2D Graphics Pr
- Page 212:
76Chapter 3 ■Basic 2D Graphics Pr
- Page 216:
78Chapter 3 ■Basic 2D Graphics Pr
- Page 220:
80Chapter 3 ■Basic 2D Graphics Pr
- Page 224:
82Chapter 3 ■Basic 2D Graphics Pr
- Page 228:
84Chapter 3 ■Basic 2D Graphics Pr
- Page 232:
86Chapter 3 ■Basic 2D Graphics Pr
- Page 236:
88Chapter 3 ■Basic 2D Graphics Pr
- Page 240:
90Chapter 3 ■Basic 2D Graphics Pr
- Page 244:
92Chapter 3 ■Basic 2D Graphics Pr
- Page 248:
94Chapter 3 ■Basic 2D Graphics Pr
- Page 252:
96Chapter 3 ■Basic 2D Graphics Pr
- Page 256:
98Chapter 3 ■Basic 2D Graphics Pr
- Page 260:
100Chapter 3 ■Basic 2D Graphics P
- Page 264:
102Chapter 3 ■Basic 2D Graphics P
- Page 268:
104Chapter 3 ■Basic 2D Graphics P
- Page 272:
106Chapter 3 ■Basic 2D Graphics P
- Page 276:
108Chapter 3 ■Basic 2D Graphics P
- Page 280:
110Chapter 3 ■Basic 2D Graphics P
- Page 284:
112Chapter 3 ■Basic 2D Graphics P
- Page 288:
114Chapter 3 ■Basic 2D Graphics P
- Page 292:
116Chapter 3 ■Basic 2D Graphics P
- Page 296:
This page intentionally left blank
- Page 300:
120Chapter 4 ■Writing Your First
- Page 304:
122Chapter 4 ■Writing Your First
- Page 308:
124Chapter 4 ■Writing Your First
- Page 312:
126Chapter 4 ■Writing Your First
- Page 316:
128Chapter 4 ■Writing Your First
- Page 320:
130Chapter 4 ■Writing Your First
- Page 324:
132Chapter 4 ■Writing Your First
- Page 328:
134Chapter 4 ■Writing Your First
- Page 332:
136Chapter 4 ■Writing Your First
- Page 336:
138Chapter 4 ■Writing Your First
- Page 340:
140Chapter 4 ■Writing Your First
- Page 344:
142Chapter 4 ■Writing Your First
- Page 348:
This page intentionally left blank
- Page 352:
146Chapter 5 ■Programming the Key
- Page 356:
148Chapter 5 ■Programming the Key
- Page 360:
150Chapter 5 ■Programming the Key
- Page 364:
152Chapter 5 ■Programming the Key
- Page 368:
154Chapter 5 ■Programming the Key
- Page 372:
156Chapter 5 ■Programming the Key
- Page 376:
158Chapter 5 ■Programming the Key
- Page 380:
160Chapter 5 ■Programming the Key
- Page 384:
162Chapter 5 ■Programming the Key
- Page 388:
164Chapter 5 ■Programming the Key
- Page 392:
166Chapter 5 ■Programming the Key
- Page 396:
168Chapter 5 ■Programming the Key
- Page 400:
170Chapter 5 ■Programming the Key
- Page 404:
172Chapter 5 ■Programming the Key
- Page 408:
174Chapter 5 ■Programming the Key
- Page 412:
176Chapter 5 ■Programming the Key
- Page 416:
178Chapter 5 ■Programming the Key
- Page 420:
180Chapter 5 ■Programming the Key
- Page 424:
182Chapter 5 ■Programming the Key
- Page 428:
184Chapter 5 ■Programming the Key
- Page 432:
Welcome to Part II of Game Programm
- Page 436:
188Chapter 6 ■Introduction to Gam
- Page 440:
190Chapter 6 ■Introduction to Gam
- Page 444:
192Chapter 6 ■Introduction to Gam
- Page 448:
194Chapter 6 ■Introduction to Gam
- Page 452:
196Chapter 6 ■Introduction to Gam
- Page 456:
198Chapter 6 ■Introduction to Gam
- Page 460:
200Chapter 6 ■Introduction to Gam
- Page 464:
202Chapter 6 ■Introduction to Gam
- Page 468:
204Chapter 6 ■Introduction to Gam
- Page 472:
206Chapter 6 ■Introduction to Gam
- Page 476:
208Chapter 6 ■Introduction to Gam
- Page 480:
210Chapter 6 ■Introduction to Gam
- Page 484:
212Chapter 6 ■Introduction to Gam
- Page 488:
214Chapter 6 ■Introduction to Gam
- Page 492:
216Chapter 7 ■Basic Bitmap Handli
- Page 496:
218Chapter 7 ■Basic Bitmap Handli
- Page 500:
220Chapter 7 ■Basic Bitmap Handli
- Page 504:
222Chapter 7 ■Basic Bitmap Handli
- Page 508:
224Chapter 7 ■Basic Bitmap Handli
- Page 512:
226Chapter 7 ■Basic Bitmap Handli
- Page 516:
228Chapter 7 ■Basic Bitmap Handli
- Page 520:
230Chapter 7 ■Basic Bitmap Handli
- Page 524:
232Chapter 7 ■Basic Bitmap Handli
- Page 528:
234Chapter 7 ■Basic Bitmap Handli
- Page 532:
236Chapter 7 ■Basic Bitmap Handli
- Page 536:
238Chapter 8 ■Basic Sprite Progra
- Page 540:
240Chapter 8 ■Basic Sprite Progra
- Page 544:
242Chapter 8 ■Basic Sprite Progra
- Page 548:
244Chapter 8 ■Basic Sprite Progra
- Page 552:
246Chapter 8 ■Basic Sprite Progra
- Page 556:
248Chapter 8 ■Basic Sprite Progra
- Page 560:
250Chapter 8 ■Basic Sprite Progra
- Page 564:
252Chapter 8 ■Basic Sprite Progra
- Page 568:
254Chapter 8 ■Basic Sprite Progra
- Page 572:
256Chapter 8 ■Basic Sprite Progra
- Page 576:
258Chapter 8 ■Basic Sprite Progra
- Page 580:
260Chapter 8 ■Basic Sprite Progra
- Page 584:
262Chapter 8 ■Basic Sprite Progra
- Page 588:
264Chapter 8 ■Basic Sprite Progra
- Page 592:
266Chapter 8 ■Basic Sprite Progra
- Page 596:
268Chapter 8 ■Basic Sprite Progra
- Page 600:
270Chapter 8 ■Basic Sprite Progra
- Page 604:
272Chapter 8 ■Basic Sprite Progra
- Page 608:
274Chapter 8 ■Basic Sprite Progra
- Page 612:
276Chapter 8 ■Basic Sprite Progra
- Page 616:
This page intentionally left blank
- Page 620:
280Chapter 9 ■Advanced Sprite Pro
- Page 624:
282Chapter 9 ■Advanced Sprite Pro
- Page 628:
284Chapter 9 ■Advanced Sprite Pro
- Page 632:
286Chapter 9 ■Advanced Sprite Pro
- Page 636:
288Chapter 9 ■Advanced Sprite Pro
- Page 640:
290Chapter 9 ■Advanced Sprite Pro
- Page 644:
292Chapter 9 ■Advanced Sprite Pro
- Page 648:
294Chapter 9 ■Advanced Sprite Pro
- Page 652:
296Chapter 9 ■Advanced Sprite Pro
- Page 656:
298Chapter 9 ■Advanced Sprite Pro
- Page 660:
300Chapter 9 ■Advanced Sprite Pro
- Page 664:
302Chapter 9 ■Advanced Sprite Pro
- Page 668:
304Chapter 9 ■Advanced Sprite Pro
- Page 672:
306Chapter 9 ■Advanced Sprite Pro
- Page 676:
308Chapter 9 ■Advanced Sprite Pro
- Page 680:
310Chapter 9 ■Advanced Sprite Pro
- Page 684:
312Chapter 9 ■Advanced Sprite Pro
- Page 688:
314Chapter 9 ■Advanced Sprite Pro
- Page 692:
316Chapter 9 ■Advanced Sprite Pro
- Page 696:
318Chapter 9 ■Advanced Sprite Pro
- Page 700:
320Chapter 9 ■Advanced Sprite Pro
- Page 704:
322Chapter 9 ■Advanced Sprite Pro
- Page 708:
324Chapter 9 ■Advanced Sprite Pro
- Page 712:
326Chapter 9 ■Advanced Sprite Pro
- Page 716:
328Chapter 9 ■Advanced Sprite Pro
- Page 720:
330Chapter 9 ■Advanced Sprite Pro
- Page 724:
332Chapter 9 ■Advanced Sprite Pro
- Page 728:
334Chapter 9 ■Advanced Sprite Pro
- Page 732:
336Chapter 9 ■Advanced Sprite Pro
- Page 736:
338Chapter 9 ■Advanced Sprite Pro
- Page 740:
340Chapter 10 ■Programming Tile-B
- Page 744:
342Chapter 10 ■Programming Tile-B
- Page 748:
344Chapter 10 ■Programming Tile-B
- Page 752:
346Chapter 10 ■Programming Tile-B
- Page 756:
348Chapter 10 ■Programming Tile-B
- Page 760:
350Chapter 10 ■Programming Tile-B
- Page 764:
352Chapter 10 ■Programming Tile-B
- Page 768:
354Chapter 10 ■Programming Tile-B
- Page 772:
356Chapter 10 ■Programming Tile-B
- Page 776:
358Chapter 10 ■Programming Tile-B
- Page 780:
360Chapter 10 ■Programming Tile-B
- Page 784:
362Chapter 10 ■Programming Tile-B
- Page 788:
364Chapter 10 ■Programming Tile-B
- Page 792:
366Chapter 10 ■Programming Tile-B
- Page 796:
368Chapter 10 ■Programming Tile-B
- Page 800:
370Chapter 10 ■Programming Tile-B
- Page 804:
372Chapter 10 ■Programming Tile-B
- Page 808:
374Chapter 10 ■Programming Tile-B
- Page 812:
376Chapter 10 ■Programming Tile-B
- Page 816:
378Chapter 10 ■Programming Tile-B
- Page 820:
380Chapter 10 ■Programming Tile-B
- Page 824:
382Chapter 11 ■Timers, Interrupt
- Page 828:
384Chapter 11 ■Timers, Interrupt
- Page 832:
386Chapter 11 ■Timers, Interrupt
- Page 836:
388Chapter 11 ■Timers, Interrupt
- Page 840:
390Chapter 11 ■Timers, Interrupt
- Page 844:
392Chapter 11 ■Timers, Interrupt
- Page 848:
394Chapter 11 ■Timers, Interrupt
- Page 852:
396Chapter 11 ■Timers, Interrupt
- Page 856:
398Chapter 11 ■Timers, Interrupt
- Page 860:
400Chapter 11 ■Timers, Interrupt
- Page 864:
402Chapter 11 ■Timers, Interrupt
- Page 868:
404Chapter 11 ■Timers, Interrupt
- Page 872:
406Chapter 11 ■Timers, Interrupt
- Page 876:
408Chapter 11 ■Timers, Interrupt
- Page 880:
410Chapter 11 ■Timers, Interrupt
- Page 884:
412Chapter 11 ■Timers, Interrupt
- Page 888:
414Chapter 11 ■Timers, Interrupt
- Page 892:
416Chapter 11 ■Timers, Interrupt
- Page 896:
418Chapter 11 ■Timers, Interrupt
- Page 900:
420Chapter 11 ■Timers, Interrupt
- Page 904:
422Chapter 11 ■Timers, Interrupt
- Page 908:
424Chapter 11 ■Timers, Interrupt
- Page 912:
426Chapter 11 ■Timers, Interrupt
- Page 916:
428Chapter 11 ■Timers, Interrupt
- Page 920:
430Chapter 12 ■Creating a Game Wo
- Page 924:
432Chapter 12 ■Creating a Game Wo
- Page 928:
434Chapter 12 ■Creating a Game Wo
- Page 932:
436Chapter 12 ■Creating a Game Wo
- Page 936:
438Chapter 12 ■Creating a Game Wo
- Page 940:
440Chapter 12 ■Creating a Game Wo
- Page 944:
442Chapter 12 ■Creating a Game Wo
- Page 948:
444Chapter 12 ■Creating a Game Wo
- Page 952:
446Chapter 12 ■Creating a Game Wo
- Page 956:
448Chapter 12 ■Creating a Game Wo
- Page 960:
450Chapter 12 ■Creating a Game Wo
- Page 964:
452Chapter 12 ■Creating a Game Wo
- Page 968:
454Chapter 12 ■Creating a Game Wo
- Page 972:
456Chapter 13 ■Vertical Scrolling
- Page 976:
458Chapter 13 ■Vertical Scrolling
- Page 980:
460Chapter 13 ■Vertical Scrolling
- Page 984:
462Chapter 13 ■Vertical Scrolling
- Page 988:
464Chapter 13 ■Vertical Scrolling
- Page 992:
466Chapter 13 ■Vertical Scrolling
- Page 996:
468Chapter 13 ■Vertical Scrolling
- Page 1000:
470Chapter 13 ■Vertical Scrolling
- Page 1004:
472Chapter 13 ■Vertical Scrolling
- Page 1008:
474Chapter 13 ■Vertical Scrolling
- Page 1012:
476Chapter 13 ■Vertical Scrolling
- Page 1016:
478Chapter 13 ■Vertical Scrolling
- Page 1020:
480Chapter 13 ■Vertical Scrolling
- Page 1024:
482Chapter 13 ■Vertical Scrolling
- Page 1028:
484Chapter 13 ■Vertical Scrolling
- Page 1032:
486Chapter 13 ■Vertical Scrolling
- Page 1036: 488Chapter 13 ■Vertical Scrolling
- Page 1040: 490Chapter 14 ■Horizontal Scrolli
- Page 1044: 492Chapter 14 ■Horizontal Scrolli
- Page 1048: 494Chapter 14 ■Horizontal Scrolli
- Page 1052: 496Chapter 14 ■Horizontal Scrolli
- Page 1056: 498Chapter 14 ■Horizontal Scrolli
- Page 1060: 500Chapter 14 ■Horizontal Scrolli
- Page 1064: 502Chapter 14 ■Horizontal Scrolli
- Page 1068: 504Chapter 14 ■Horizontal Scrolli
- Page 1072: 506Chapter 14 ■Horizontal Scrolli
- Page 1076: 508Chapter 14 ■Horizontal Scrolli
- Page 1080: Welcome to Part III of Game Program
- Page 1084: 512Chapter 15 ■Mastering the Audi
- Page 1090: Sound Initialization Routines 515wh
- Page 1094: Standard Sample Playback Routines 5
- Page 1098: Low-Level Sample Playback Routines
- Page 1102: Low-Level Sample Playback Routines
- Page 1106: The SampleMixer Program 523Figure 1
- Page 1110: Enhancing Tank War525destroy_sample
- Page 1114: Enhancing Tank War 527if (install_s
- Page 1118: Enhancing Tank War 529Now scroll do
- Page 1122: Enhancing Tank War 531}}//player 2
- Page 1126: Enhancing Tank War 533{key_count[nu
- Page 1130: Enhancing Tank War 535}return;//set
- Page 1134: Chapter Quiz 537SummaryThis chapter
- Page 1138:
chapter 16Using Datafiles toStore G
- Page 1142:
Creating Allegro Datafiles 541If yo
- Page 1146:
Creating Allegro Datafiles 543dat -
- Page 1150:
Testing Allegro Datafiles 545noteIf
- Page 1154:
Testing Allegro Datafiles 547//init
- Page 1158:
Chapter Quiz 5497. What is the data
- Page 1162:
chapter 17Playing FLIC MoviesFLI is
- Page 1166:
Playing FLI Animation Files 553Figu
- Page 1170:
Loading FLIs into Memory 555Opening
- Page 1174:
Loading FLIs into Memory 557Figure
- Page 1178:
Loading FLIs into Memory 559Figure
- Page 1182:
Chapter Quiz 561SummaryThis chapter
- Page 1186:
chapter 18Introduction toArtificial
- Page 1190:
The Fields of Artificial Intelligen
- Page 1194:
The Fields of Artificial Intelligen
- Page 1198:
The Fields of Artificial Intelligen
- Page 1202:
Deterministic Algorithms 571Random
- Page 1206:
Deterministic Algorithms573kDistanc
- Page 1210:
Finite State Machines 575GuardPatte
- Page 1214:
Fuzzy Logic 577}// State 4if (Dista
- Page 1218:
Fuzzy Logic 579You can also see tha
- Page 1222:
Summary 581You can use this method
- Page 1226:
Chapter Quiz 5836. Which type of in
- Page 1230:
chapter 19The MathematicalSide of G
- Page 1234:
Trigonometry 587Equation 19.1Equati
- Page 1238:
Trigonometry 589What is the differe
- Page 1242:
Vectors591Figure 19.4 A 2D vectorco
- Page 1246:
Vectors 593Equation 19.16noteIn Fig
- Page 1250:
Vectors 595a length of 1.0, you mus
- Page 1254:
Vectors 597Equation 19.23Equation 1
- Page 1258:
Matrices599Equation 19.28Equation 1
- Page 1262:
Matrices 601Equation 19.34Matrix Co
- Page 1266:
Probability 603ProbabilityProbabili
- Page 1270:
Functions 605Figure 19.10 Intersect
- Page 1274:
Functions 607How do you know the in
- Page 1278:
Chapter Quiz 6095. Which C function
- Page 1282:
chapter 20Publishing Your GameYou h
- Page 1286:
Whose Door to Knock On 613If you ha
- Page 1290:
Milestones 615is to run the contrac
- Page 1294:
Interviews 617Q: What was it like h
- Page 1298:
Interviews 619A: I’ve been told t
- Page 1302:
Interviews 621California and took a
- Page 1306:
Interviews 623very easy to learn an
- Page 1310:
Summary 625Q: From a developer’s
- Page 1314:
Chapter Quiz 6274. What is an impor
- Page 1318:
EpilogueItend to say this each time
- Page 1322:
PART IVAppendixesAppendix AChapter
- Page 1326:
Appendix AChapter QuizAnswersChapte
- Page 1330:
Chapter 4 635Chapter 31. What is th
- Page 1334:
Chapter 6 6376. Which function is u
- Page 1338:
Chapter 9 639Chapter 81. What is th
- Page 1342:
Chapter 11 6415. Which process uses
- Page 1346:
Chapter 14 643Chapter 131. In which
- Page 1350:
Chapter 16 6455. What function woul
- Page 1354:
Chapter 18 647Chapter 181. Which of
- Page 1358:
Chapter 20 6493. What is the second
- Page 1362:
Appendix BUseful TablesThis appendi
- Page 1366:
ASCII Table 653ASCII TableThis is a
- Page 1370:
Char Value Char Value Char ValueASC
- Page 1374:
Appendix CNumbering Systems:Binary
- Page 1378:
Hexadecimal 659Using this table you
- Page 1382:
Hexidecimal 661Table C.4 Hexadecima
- Page 1386:
Appendix DRecommended Booksand Web
- Page 1390:
Recommended Books 665Samu Games: ht
- Page 1394:
Recommended Books 667C++ Programmin
- Page 1398:
Recommended Books 669Programming Ro
- Page 1402:
Appendix EConfiguring Allegrofor Mi
- Page 1406:
Microsoft Visual C++ 673Figure E.2
- Page 1410:
Dev-C++ 675dx80_mgw.zip to C:\Dev-C
- Page 1414:
Dev-C++ 677If you choose to create
- Page 1418:
KDevelop for Linux 679That’s all
- Page 1422:
KDevelop for Linux 681Figure E.10 S
- Page 1426:
Final Comments 683Returning to the
- Page 1430:
Appendix FCompiling theAllegro Sour
- Page 1434:
Borland C++/C++Builder 687That is f
- Page 1438:
KDevelop for LinuxI’m going to ha
- Page 1442:
Appendix GUsing the CD-ROMThe CD th
- Page 1446:
INDEXNumbers1942, 4552D games marke
- Page 1450:
Index 695book, thisartwork, 353goal
- Page 1454:
Index 697DDR graphics, 73-74debuggi
- Page 1458:
Index 699game designbackups, 189-19
- Page 1462:
Index 701Tank War, 229-334transpare
- Page 1466:
Index 703keyboard_needs_poll functi
- Page 1470:
Index 705non-disclosure agreements
- Page 1474:
Index 707random motion deterministi
- Page 1478:
Index 709hyperspace program, 165-16
- Page 1482:
Index 711tankscreating, 120-122movi
- Page 1486:
GNU GENERAL PUBLIC LICENSEVersion 2
- Page 1490:
These requirements apply to the mod
- Page 1494:
8. If the distribution and/or use o
- Page 1498:
License Agreement/Notice of Limited