Upcoming Events
Unite 2010
11/10 - 11/12 @ Montréal, Canada

GDC China
12/5 - 12/7 @ Shanghai, China

Asia Game Show 2010
12/24 - 12/27  

GDC 2011
2/28 - 3/4 @ San Francisco, CA

More events...
Quick Stats
194 people currently visiting GDNet.
2406 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!
Link to us Events 4 Gamers
Intel sponsors gamedev.net search:
Age: 31
Years programming: 21
Last time he got carded: A month ago
Where he works: CEO of Xtreme Games, LLC
What he does: research, writes books
Best known for: Books such as Tricks of the Game Programming Gurus, The Black Art of 3D Game Programming, and Windows Game Programming for Dummies.
Where he is from: San Jose, CA

You've been programming for over 21 years. You've held jobs everywhere in the valley. You hold three degrees. You could basically do anything you wanted to. What about the industry is so appealing?
I want to make an artificial universe someday; this is like a way to do that and have fun -- and who else can afford to write books? :) Plus normal engineers and scientists are boring -- game people are a lot more fun.

(checking next to "Megalomaniacal" on his list of LaMothean traits)

Well, at least you don't have to put up with the physicist / engineer / mathematician jokes.

Speaking of what you want to do in games...
I want to create the world's largest think tank of game programmers -- then get rid of all the lame greedy publishers and distributors and just make game programming fun and under control of the developers -- the biz people think that we are all incompetent biz wise -- I'm going to teach them a lesson :)

What's your master plan?
Continue getting more partner companies, continue developing technology and giving it to everyone then slowly getting more control over distribution to the point that all the other publishers can't compete with my business model.

(underlines the word "Megalomaniacal")

The response from developers has been good for Xtreme Games, something which I'm pleased to see. How has the response from the mainstream user/end-user market been?
I'm not sure, they don't really know what's happening, but I can tell you that there is something cool about helping a 15 year old get a game published and make enough money to pay for college -- this is the real win -- and he didn't have to deal without anybody that wasn't looking out for his best interest.

(okay... "Humanitarian Megalomaniac")
I can live with that :)

The dedication of the Black Art of 3D Game Programming reads "I dedicate this book to all the children of the world;: may you take us boldly forward into the 21st century." And Woz, in the foreword, talks about kids and how cool it would be if he were 10 again and reading your book for the first time. Were you saying something there?
Same thing -- I would like the world to be like Star Trek where the smart people are on the top rather than the athletes or movie stars. I believe that teachers are the most important of all, but they get no respect...so I like taking the view that the future and complex things ARE fun not boring....there are a lot more interesting things, but people don't even know they exist...

How do you think that will happen?
I think that someday people will get tired of sales, tired of advertising, tired of doing empty things and want something more -- when that happens people will change slowly.

Changing gears a little here, have you ever worked for someone else as a game programmer?
Yes. Visions of Realtity doing VR games in 92-93.

I assume you prefer to be on your own now?
Yes. I seem to have this problem with being employed. Every time I got a job I would want to be CEO -- I don't play with well with all the other people -- especially when I am getting paid crap, while making software for the company that makes them millions. I like sharing -- profit sharing, royalties etc.

What do you have in store for your readers in your new book, Tricks of the 3D Game Programming Gurus The Next Generation?
Well, if I don't have a breakdown, a lot of cool stuff: s-buffering, portals, kinematics, force feedback, neural nets, lighting, curved surfaces, DirectX 6 - 7.

Will you be dealing primarily with 3D theory or specific APIs such as Direct3D?
Mostly software rasterization since it's more fun and teaches more, however there will be full D3D immediate mode coverage on the CD - about 8 chapters from another author - but it dates the book covering D3D inside.

Are you going to get into OpenGL or Glide at all?
Hmm -- it's in the TOC I wrote, but I don't know if I'll have time, maybe Glide, but probably not OpenGL - there are a lot of good books on that.

Has your work with Jarrod Davis contributed at all to the engine you're developing for the book?
No, I'm doing everything myself -- you know the old saying… if you want it done right (or done at all), do i it yourself :)

I noticed a while ago that you were looking for people to contribute articles for the CD that will come with the book. Are you still?
Yes, send them to me (for about 3 more months at least)

When is this book due out anyway?
I think I will finish in about 4-6 months, so by q3, q4 of this year.

Who is it being published by?
Tricks MCP/SAMS.

Ah, cool. I have been trying to convince them to put some of your older books online.
Soon, I'm going to take all the original manuscripts (before they raped them) and put them all on CD etc. and sell them with all the original chapters and so on.

A lot of your material hasn't been published?
A lot of the text was too "racey" for them :)

Has Windows Game Programming for Dummies been your most successful book?
IDG is pushing it hard online, but the title is causing people to think twice -- I don't think anyone likes to be called a dummy? I tried to get them to change the dummies title, but they wouldn't. My most successful is Tricks of the Game Programming Gurus; it's sold about 250,000 units in a number of languages. Then Black Art.

I advocate buying WGPFD a lot, but, you could have let me know that the book started on page 150.
I wanted to try and give someone without any Windows skills something to start with...

It's very good for that, IMO
Make sure to check out the extra chapters on CD. IDG wouldn't let me put them in the book -- it was an extra .20 cents or so.

They wouldn't LET you?
Yes, it added another 50-100 pages which jacked up the profit model.

Speaking of Tricks, the form in which Teach Yourself Game Programming in 21 Days came out seemed to reminisce a lot of Tricks...
Tricks is terrible, I did it in 2 months; they totally rushed me. It could have been so much better.

It seems like you wrote almost all of the book. What was the deal with the co-authors?
I did. There were only 2-3 half-assed chapters by the other people. They took forever, missed all deadlines and were chuck full of adds.

So would you say TYGP21D was an attempt to do Tricks right?
Sorta, but I didn't have time for 3D. They only gave me 4 months, but I did get in multitasking and text parsing -- that made me happy.

What is the R&D side of Xtreme Games doing? We don't hear much about that.
Mostly research into neural nets and "beam tracing" - kinda like ray tracing in real time.

How does that work? (general principle)
Well ray tracing is the brute force, ray casting is at the other end -- too specific. By finding a happy medium, you can get the best of both and run at high speeds.

What's the quality like?
Better than anything polygon -- almost as good as real ray traced, but it has a lot of memory and pre-processing requirements. However, I think this is the wave of the future.

Speaking of the future, in your August '95 paper "Building Brains into Your Games" you wrote that you "…see AI as the next frontier to explore." How have the last four years changed that?
I think now more than ever people are seeing just how cool real AI is -- Half-life, etc. games that people really get involved in -- programmers are just learning, but this is the coolest thing and when games start really talking etc., it's going to blow people's minds.

Is 3D overrated?
Not at all, but games are too much viewed by the 3D; its the game that matters and the game is really the gameplay and AI -- it makes all the difference, but you have to have the look these days too.

So would you say that your ultimate goal is to make something to the effect of Ultima Online or the new Everquest, where there is an virtually unlimited 'universe'?
Yes, but with learning, evolution and servers that never turn off.

So, André, what's it like to be a person who wants to know how things work in a world that doesn't seem to care?
Good question. But someone cares and they are they're amongst everyone else, you just have to to look for them and when I get mail saying really positive things then it gives me that motivation to keep taking it in the butt from the fake world that pretends it's so happy -- that's what keeps me writing these books.

When did you get started and how?
Hmm, when I was about 9 I started doing electronics then in '76 when the TRS-80 came out I started going to Radio Shack and sitting there and learning to program from the little user manuals etc. Then I hunted down books on FORTRAN, etc. At that point there was nothing about computer science that was understandable or about graphics, so I ended up inventing everything and later learning the correct names for things. The Atari 800 came out that year too, so I switched to it.

Oh, yeah, good old Atari. Documentation was pretty much nonexistant for the Atari platform, though.
Atari wouldn't put anything out, so people had to figure it out by poking into it -- literally.

Did your knack for EE kick in at that point?
Yes, I/O mapping things like that helped me figure it out.

I relied on COMPUTE! magazine for all my Atari info.
That was a good magazine.

I liked the demo programs every month, but got sick of typing them in :<)
In hex code :)

Do you think the rat shack is still a sort of cultural center for programming, or have those days long since passed?
Done. The whole "feel" of it is gone forever, and I doubt that that will ever come again.

So where is the "Radio Shack" today?
Right here maybe -- virtually taking on any form we want.

So, with your busy scehedule, do you have time to play games much?
Not really. I love Half-life, but I pull away from it along with GT for the PSX.

Do you have any interest in strategy games, like the ones put out by Microprose (Colonization, Civ, MoO)?
Yes, from a tech point of view, but I'm too amped at all times to play something slow. I like action gamses I guess.

How much caffeine would you say you consume in a week?
None, ironically I'm a health nut, but if I were to drink caffiene it would probably kill me :)

I wanted to ask, I know that you offer Xtreme Partners resources as part of the deal. What, exactly, does that entail?
It means I help in whatever way I can proportional to how serious I think they are. They can ask questions, get software, etc., but if they are full of it then I basically say you got to show something to get something. Some people just join and think I'm going to send them a $500 compiler, and a PIII.

So if they were to show something good, you would actually do that? :-)
Yes, and I have. I've purchsed motherboards, drives, compilers, modelers, etc.

I think I saw today that you have 150 partners right now... how many of them are really doing anything?
About, hmmm, 15-20 of the companies are producing consistently. But, sooner or later, they all come around.

What types of games are they producing?
Mostly valueware 2D games, but I have a couple 3D games in the workds. Quake clones, racing, and football.

I can remember reading your books and being very impressed at your knowelledge. It seems that as I learn more and more, I become more impressed. I wave been, however, disappointed at what you have NOT written. On more than one occasion.
Like what would you want me to add?

There are so many times that you hint at really cool stuff and then have to go "back into scope".
Yes, it's just to keep the page count down. The oringinal on TYGP21D is I think 1000 pages, and Black Art was 1500, a lot got cut.

Do you play with any other PC operating systems?
I like Linux just because it's something else, but I pretty much stick to Windows, however, I'm starting to seriously think about porting things to Linux if Red Hat keeps gaining ground along with the others.

Multi-player. For '95, Black Art of 3D Game Programming's coverage was pretty good. For '99, it's...well...
The new book won't have any multiplayer stuff other than maybe some of the general concepts from the field. It's too big to cover. But the BA stuff still works well for 2 player games and on-line games, but quake stuff is a whole other ball game and setting up networking even with DirectPlay is a whole book or 2!

Your approach to texture mapping in software is rather triangle-based. What do you think of the convex n-gon school?
My new book will have a convex texture mapper probably. It has a n-gon convex poly renderer. I like triangles for the most part, but texture mapping either is really the same thing, just interpolation...

I was confused by your first discussion of texture mapping in BA32dD. I really didn't get it until I read three articles by Chris Egerter.
Yes, the way I approached it was using vectors instead of interpolation. It's because I had like a night to do that section. We weren't even going to have texture mapping at all...

And for your new 3D book...plg will defintitely not cut it anymore. What do you plan to do for models?
I'm going to use DXF for simple stuff then I think I'm going to go with NFF format since it supports texture coordinates and is very simple along with the COB from Caligari, also very easy to parse.

Lighting...will you be going into Phong theory?
Yes, I'm going to do: flat shaded, Gouraud, Phong, fast Phong, bump mapping, and light mapping

Will you cover a lot of basic material like transformations that you did in BA3D?
Yes, since I have to assume that the readers are starting all over, so I have to waste a lot of pages on this, but oh well...

Is this next book going to use C again, or will you move more into C++?
I toiled over this for a while, but I think that I'm going to take the "Carmackian Axiom" and use C+ :) Just a little if, if any. Just the COM stuff really. It's too hard to follow C++ classes and overloaded operators in code.

How do you do so many things and stay sane?
Who said I was sane -- I'm pretty crazy I think :)

Still, how do you do so many things and stay alive?
I don't sleep much and I just eat good stuff, that's about it :)

Dave, Kevin, Nick, Jered and TANSTAAFL conducted the interview on 3/29/99