Errata

AI for Game Developers

Errata for AI for Game Developers

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page 74
Middle

Is Figure 4.8 "Obstacle Avoidance" correct? If vector v is collinear with the unit's heading, why isn't it pointing in the same direction as the player? Could you clarify in case I just don't understand?
Thanks
B

Anonymous  May 08, 2011 
Printed Page 83
Sidebar on the Lenard-Jones Potential Function

In expessing the derivative of the potential function, a "V" is used to represent
potential, instead of the "U" used in the original function.

Anonymous   
Printed Page 112
2nd if statement

there is an error in the second if statement. It should be as follows:

if(entityList[i].direction == 5)
{
terrainAnalysis[4]++;
terrainAnalysis[5]=terrainAnalysis[5]+2; //NOT +1
.
.
}

Anonymous  Dec 03, 2016 
Printed Page 115
Figure 6-14

Figure has one direction changed from 5 to 7 and this is not correct.

Anonymous  Dec 03, 2016 
Printed Page 149
1st paragraph, last line

You mention the possibilities for massively multiplayer online role-playing game (MMORG), but this is written from a 2004 perspective (copyright, 2004). In your next version, you might update this note with examples (MMORG has gotten very big since 2004).

Anonymous  Nov 04, 2008 
Printed Page 183
Below header "Thirsty"

The two paragraphs below the "Thirsty" header say the same things twice in some different wording. They
ought to be s9780596005559d just once, in one paragraph.

Anonymous   
Printed Page 199
procedure "FuzzyTriangle" 4th line

double FuzzyTriangle(double value, double x0, double x1, double x2)
{
double result = 0;
double x = value;

Error-> if(x <= x0) --> if((x <= x0) || (x >= x2))
result = 0;
else if(x == x1)
result = 1;
else if((x>x0) && (x<x1))
result = (x/(x1-x0))-(x0/(x1-x0));
else
result = (-x/(x2-x1))+(x2/(x2-x1));

return result;
}

Omission of the second check .|| (x >= x2). results in erratic behavior with values
larger then x2 (produces negative values)

Anonymous   
Printed Page 199
murrayspeight@msn.com

The code for the FuzzyTriangle() function is incorrect.

On line 7 it reads:
if(x <= x0)

This should be:
if((x <= x0)||(x >= x2))


The code for the FuzzyTrapezoid() function is also incorrect.

On line 7 it reads:
if(x <= x0)

This should also be:
if((x <= x0)||(x >= x2))

Murray Speight  Feb 15, 2011 
Printed Page 199
FuzzyTriangle Function

It is possible for the FuzzyTriangle function to return numbers less than 0 (down to -1). To prevent this, the user needs to add "else if (x >= x2) return 0;" to the IF statements.

Michael DeForge  Sep 09, 2018 
Printed Page 207
Table 10.1 Membership Calculation results

I think the Degree of membership for left value is
m_Left value is -2.2 and not 0.0

mLeft = FuzzyTrapezoid( 33, -40, -25, -15, 0 )

I have the result -2.2

Anonymous   
Printed Page 213
Figure 11-1 Example of technology tree

Cavalry is spelled incorrectly as "Calvalry"

Murray Speight  Feb 17, 2011 
Printed Page 352
Figure A-3 Vector Reversal

In Figure A-3, The "Z" axs has magically shifted. Look cross-eyed at Figure A-3, and you will see that the "Z" axis has been replaced with "-V".

Anonymous  Nov 04, 2008