Archived

This topic is now archived and is closed to further replies.

Nacho

A Philosophical Question...

Recommended Posts

Nacho    205
I´ve been learning Win32/DirectX programming for the last month with the Tricks book and I´ve found that there´s a lot of information about a lot of topics that I find very difficult to memorize, altough I manage to understand it by reading the code. Just a philosophical question for intermediate-advanced game programmers: Does a professional game programmer have to keep all those subjects on his/her head or just knowing that they exist and getting the code whenever they need is fine?

Share this post


Link to post
Share on other sites
krez    443
i am not a professional game programmer (although i am a professional non-game programmer), and i haven''t memorized everything that i use... i mean, the stuff i use often i remember of course, but just knowing where to find the details for a programming issue when it comes up is just as good as far as i am concerned. you should read through and try to understand anything new you come across, so if and when you look it up later you don''t exactly have to re-learn it... then, when you need it, flip through your reference book, find the details, read any notes you might have written about it, and then do it.
as far as DirectX and game programming goes, i do _that_ in my spare time... and once again, i use what i know well from repetition, and when i want to do something that i read about but forgot the details of, i usually go to whatever book or tutorial i read about it in. heh heh, or i come here to GameDev.net and ask everyone else

--- krez (krezisback@aol.com)

Share this post


Link to post
Share on other sites
Guardian_Light    122
Simply no.

DirectX alone changes so often, the best of us struggle to keep up. If you know how to understand what you read, that's probably a good sign ;-) Honestly, there are so many API's you can't possibly memorize them all. Just understand the basics of how they work and their philosophy. I've got a small library sitting beside my desk... I bet Carmack does too =)

"So much fun, so little time."
~Michael Sikora

Edited by - guardian_light on October 15, 2001 10:46:59 PM

Share this post


Link to post
Share on other sites
bishop_pass    109
I would focus on your language of choice and its constructs. Understand these concepts and minimize your need to refer t oa book. Also, familiarize yourself with algorithms related to data such as linked lists, binary trees, octrees, arrays, hash functions, etc. Know how to implement these without referring to books. By having this stuff in your mind, you are able to see solutiuons to problems.

As for APIs, such as the C library, Win32, OpenGL and the like, know the priniciples of using them and their standard structures. Use books or online references as you code to use them effectively.

As for mathematics, the more you know, the better. Regarding 3d math, I would at least familiarize myself with vectors, matrices, vector math, the dot product, the distance formula, and simple equations like the equation of a sphere. Use mathematics books and computer graphics to continually learn and as a references.

Regarding computer science techniques, try to become familiar with the more common and useful techniques such as sorting, recursion, and hashing, to name a few.

Just my two cents worth.

Share this post


Link to post
Share on other sites
draqza    122
I''d have to agree with krez, although you may want to weight my opinion as i''m not a professional programmer at all (yet ). Some things I can remember how to do, and those I do from memory, but I see nothing wrong with having to look up some information. As you use and reuse things, they''ll become more automatic by practice anyway.

Share this post


Link to post
Share on other sites
krez    443
quote:
Original post by draqza
I''d have to agree with krez, although you may want to weight my opinion as i''m not a professional programmer at all (yet ).

heh heh... all it really means is i found some company that''ll pay me to do what i would be doing anyways... it''s hardly a credential

--- krez (krezisback@aol.com)

Share this post


Link to post
Share on other sites
ncsu121978    1344
I personally think it is more imnportant to know what to use and when to use, and not neccessarily the exact code to get it done.
Example:
if you have a graph and want to know the shortest distance between each point to all the other points, you would want to use Dijkstra''s Algorithm. I cant for the life of me remember how to implement it off the top of my head and certainly couldnt just start writing it from memory. But I know that if I am faced with this situation then I just go look in a book for Dijkstra''s algorithm.

"I pity the fool, thug, or soul who tries to take over the world, then goes home crying to his momma."
- Mr. T

Share this post


Link to post
Share on other sites
Codespike    122
A great man once was once asked "how many feet are in a mile?".
His reply, "Why should I fill my brain with facts I can find in two minutes in any standard reference book?"
That man was Albert Einstein.
Henry Ford knew that the ability to know how to get information is more important than using the mind as a garage of facts.

"The ability to think is of much greater value than the ability to memorize facts".

Hope that helps

Share this post


Link to post
Share on other sites
Nacho    205
Wow! Thanks people! I´ve never received all those answers for one of my posts. Ok, I guess that another question is not going to bother you, right?

Ok, here´s my question, I´ve been learning the main directx components (that means: NO Direct3D) for one month or two with Lamothe´s book and I think I´ve got the idea of how to use them. My summer holidays are just coming and I haven´t decided what to do yet, I mean, reinforce my 2D skills or jump directly to Direct3D or OpenGL (I´ve made a nice pong from scratch with DirectDraw). I think that maths is not going to be a problem, but I prefer you to give me your advice on this!

Thanks!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Well, as far as I can tell (I have only been playing with Direct3D for a few weeks though), D3D uses DirectDraw, but once it is set up you don''t have to really do much with the DirectDraw. So, if you have the basics of it running already, you can do the D3D stuff without learning more DirectDraw. As I said I am fairly new to the 3D thing, so other people might know more about this, but it seems this way to me.

Share this post


Link to post
Share on other sites
Shannon Barber    1681
Might want to try a simple animated sprite in 2D, and then press on to 3D. The techniques are quite different, so knowing 2D might not help with 3D as much as one would hope for. Rest assured 3D is more complicated than 2D and so it''s good to ramp-up to it.

Share this post


Link to post
Share on other sites
RandomTask    122
Having used both; I prefer OpenGL. You don''t have to deal with COM and its use seems to me to be more intuitive. Plus, you can use OpenGL on other operating systems. Others have other opinions contrary to mine I''m sure.

RandomTask

Share this post


Link to post
Share on other sites
Nacho    205
I´ve read you can use 3dMax models with Direct3D. Could that also be accomplished with OpenGL? Which book do you recommend me for learning both of them and make a decent 3D game engine from scrath within 6 or 7 months after reading them?

Share this post


Link to post
Share on other sites