Marc LeBlanc
October 2006
Video Game Programming
About Me
Started programming in 1980 (age 11) Making games ever since Working in game industry since 1992 Master’s in Computer Science
Mind Control Software
San Rafael, CA 24 People:
5 Programmers 6 Artists 4 Game Designers 1 Musician/Sound Designer 2 Producers 3 Quality Assurance (Testers) 3 Miscellaneous
Our Games
Other Games I Worked On
What I Do
Title: Chief Technology Officer Oversee all programming Hire programmers Write code Game design Help run the business
Time for Game Demo
The Game: Arrrrrr! Not Yet Released
Discussion
How were the two versions different? How does frame rate affect fun?
Here’s the Point:
Good programming is the difference between “fun” and “not fun”
A Simple Example
bool IsTargetInRange(float x, float y, float r)
{
// What goes here?
}
(0,0)
(x,y)
r
A Simple Example
bool IsTargetInRange(float x, float y, float r)
{
float distance = sqrt( x*x + y*y );
if (distance <= r)
return true;
else
return false;
}(0,0)
(x,y)
r
More Succinctly…
bool IsTargetInRange(float x, float y, float r)
{
float distance = sqrt( x*x + y*y );
return distance <= r;
}
(0,0)
(x,y)
r
However…
bool IsTargetInRange(float x, float y, float r)
{
float distance = sqrt( x*x + y*y );
return distance <= r;
}
This is too slow. sqrt( ) is a very slow function. How can we get rid of it?
(0,0)
(x,y)
r
The Optimization
bool IsTargetInRange(float x, float y, float r)
{
float distanceSquared = x*x + y*y;
return distanceSquared <= r*r;
}
This is what game programmers do.
(0,0)
(x,y)
r
Skills Game Programmers Need
Lots of Math! Geometry Trig Calculus Linear Algebra Discrete Math Probability
Skills Game Programmers Need
Lots of Computer Science! Software Methodology Algorithms Computer Architecture Compilers Graphics
Skills Game Programmers Need
Life Experiences Imagination Communication Passion Sense of Fun
Want to Be a Game Programmer?
Want to Be a Game Programmer?
Go To College!
Any Questions?
Some Links: www.mind-control.com www.8kindsoffun.com