A Philosophical Question...

Started by
13 comments, last by Nacho 22 years, 6 months ago
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?
Advertisement
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)
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
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
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.
_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
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.
WNDCLASSEX Reality;......Reality.lpfnWndProc=ComputerGames;......RegisterClassEx(&Reality);Unable to register Reality...what's wrong?---------Dan Uptonhttp://0to1.orghttp://www20.brinkster.com/draqza
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)
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
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
And hopefully I wound have found Dijkstra''s Algorithm when I was looking for minimal spanning trees
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
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
Live by the code, die by the code
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!

This topic is closed to new replies.

Advertisement