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?
Go To College!
Any Questions? Some Links: