Today a person asked me for books to learn to "program videogames". Well, despite that this question is more difficult to answer than you initially can think, I knew what he actually meant and I asked him (intentionally):


Me: What do you mean with "program videogames"? - He: Well, you know, to draw 3D meshes with textures and so, these things...

Nooo, graphics again! There is no problem, but, how many times I've heard this wrong association?

I said him: Why don't you begin with other things different from graphics? And his response was: Bah, that another stuff (non-graphics) is easy, at least I can understand it without problems, but I've never done graphics programming.

Wow!, Overall engine architecture, entities system, networking or even AI? Gameplay and entities behavior is really exciting. Sound system or script binding. And a parallel engine architecture, with tasks scheduling is also cool. Another good stuff is the filters pipeline, more related with graphics if you want. These are complicated ones, but are videogames too. And there are a lot of more things I can't talk you about. Also, XNA or Ogre3D are good start points. Even you can download my simple c++ space invaders game and modify it.

He: Yes, yes, but, what about graphics? Draw models. Textures!

Ok then, definitely he wants draw primitives :)


This conversation makes me remember other anecdote, whith a good co-worker who wanted program a fluid simulation, if I can help him. I asked him: what kind of simulation, a water shader effect, a particle based simulation or simply something like the old plasma demo effect?- He: No no, I want make a good fluid simulation, and I think I can, in fact I've already done something.

Me: Really? You're a crack!, Have you ever been working with CFD or Navier-Stokes equations?. I don't know much about it, so I can't help you, tell me more, I said.

He: Well, I don't know that CFD or equations. I don't need them, I think I'm going to deduce them.

I finally said: Ah ok, why don't, good luck, and don't forget to show me any result you get :)

Good people, best regards to them.

2 comments:

Antonio said...

It's amazing that people always associate graphics with games as an identity... and think in graphics as the "milestone" for games.

In my own experience with 3D graphics, in fact, that's the EASY part. I mean, graphics are complex and doing things right is not a straightforward path, but once you have a little framework (own built or got outside) just paint things on screen is a matter of... well, just use primitives. :-)

Of course that if you want to do impressive graphics it'll be a hard work, but, ¿what about an impressive AI? or an impressive addictive interface? For me, that'll be the HARD thing.



The other story is just funny... :-) Sadly, world is full of such "clever" people that hear some words and thinks that they're experts because they know those words. And, as maths sounds "advanced and scientific", they are the most used subject for these people.

For me, your answer is the only answer for them: "good luck...". :-D

As a matter of fact, there's 1 million dollars prize for Navier-Stokes equations resolution: http://www.claymath.org/millennium/Navier-Stokes_Equations/
I had a teacher once that, depending on his animic state, he tried to demonstrate NS equations or tried to give a counter-example... in his free time, of course ;-)

Gyakoo said...

Thanks for your comments. Is quite logic when people who don't understand deeply a subject, try to reinvent the wheel. It can happen to anyone, but is funny anyway, with all our respect of course.