Skip to main content
gamedev.net
🔒 Locked

Good practices...

Started by no one Sep 3, 2003 at 2:55 PM 13 replies 1.3k views
Original Post
no one
no one
Hiya I have been programming now for a year and a half or so and lately I have been getting into things that are very complex math maticly wise and I have been wondering how most people remember some of these complex equations and algorithms. I would think that the average programmer has a stack of print outs and notes but would that be exceptable for a professional? I know that you always have the internet but it takes to long sometimes to find stuff and gets anoying when your just trying to refresh your self on something. What books are good to have for refrences and such? A lot of people always mention getting out the ''old college text book'' but I haven''t been to college yet so well, thats out Im sure that the average programmer can''t remember a quaternion slerp all the time. Is it ok to read others code sometimes such as nvidias or such, even for a pro? Well, gotta go (lighting...blah!) Thanks quite a lot!
"Make it a habit to be loyal to the activities that serve the highest part of yourself."
S1CA
S1CA
quote:
Original post by no one
I would think that the average programmer has a stack of print
outs and notes but would that be exceptable for a professional?


Yes, it''s fine. As long as you can do the job and meet your deadlines, nobody is going to worry about you having notes for complex stuff etc.

The more you use certain things (i.e practical experience), the more they become second nature. For example I remember the properties of a dot product and Lambertian diffuse and specular illumination because I''ve had to use them lots.

I know and remember the uses and properties of things like the cross product and determinant, but don''t always remember the formation off by heart (unless I use reminders like the Sarrus scheme - I still think of SOH CAH TOA when using trig...)

quote:
I know that you always have the internet but it takes to long sometimes to find stuff and gets anoying when your just trying to refresh your self on something.


Bookmarks are your friend :o)

graphicspapers.com
siggraph.org
mathworld.wolfram.com
developer.nvidia.com
etc etc etc


quote:
What books are good to have for refrences and such? A lot of people always mention getting out the ''old college text book''
but I haven''t been to college yet so well, thats out


It depends on whether it''s just plain maths or the application of that maths. I tend to have books relating to the particular application such as Realtime Rendering, Computer Graphics Principles & Practice etc.

As for deciding which book. On most commercial projects you''ll have a schedule to work to so you''ll know what you''re doing the next day. I know what I''m doing tomorrow at work - so I can dig out the books that are most relevant to that subject the night before. I keep them in my bag and refer to them if there''s something I can''t remember - or remember seeing that could be of use.


quote:
Im sure that the average programmer can''t remember a quaternion slerp all the time. Is it ok to read others code sometimes such as nvidias or such, even for a pro?


Correct. Though most companies have already written maths libraries (the person who wrote them still likely had a reference book or some existing source to check against).
Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site
no one
no one
Hiya

Thanks a lot! I have been a bit worried that I would need to be a math guru to ever get into the industry.

This sorta brings me a new question though. Ive heard that to really be a good graphics programmer, you need to know your math.
If you dont know exactly how the math works, but how to use it and where to find the equation, do you still need to know how it works and or why it does? I quess thats a matter of "you probably should, but are not required".

Also, how do you guys feel about using 3rd party libs such as
math engine or something like that as apose to doing it for yourself?

Thanks again!





"Make it a habit to be loyal to the activities that serve the highest part of yourself."
Keem
Keem
I have seen this attitude quite a lot around here recently. "I only wnat to use the maths, I dont care how it works.", it makes me sick!

Understanding the maths is vitally important as a principle as well as being practically important. If you understand the maths then you are in a position to optimise your algorithms, develop new techniques etc. etc.

Mathematics is one of the most beautiful and satisfying subjects to study, especially in a pure and abstract manner.

Rant Ends.
benryves
benryves
Sorry for the off-topic ness, but is this "no_one" as in the (in)famous no_one_2000_ of graphical calc fame?
[Website] [+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++]
uutee
uutee
>Understanding the maths is vitally important as a principle
>as well as being practically important. If you understand
>the maths then you are in a position to optimise your >algorithms, develop new techniques etc. etc.

>Mathematics is one of the most beautiful and
>satisfying subjects to study, especially in a pure and
>abstract manner.

Does it make you feel uncomfortable that people don''t want to waste their youth studying math to the deepest end? I taste bitterness in the air

I agree that some understanding of the math helps in gamedev, and that coming to flipcode/gamedev just to ask questions about the same subject, each time with a slight variation (because without understanding the subject you can''t handle variations, only the "example cases"), is quite lame.

- Mikko Kauppila
no one
no one
Hiya

Nope benryves, im just no one
Ok, I didnt meen to start a flam of anysort, I just wanted
some advice really. Until I got into programming, I had no
desire what so ever to learn math and now that I need it im having a hard time learning it. Im ok with it I would say, I can normaly figure things out.

I never really settle with "it works because it just does"
I usually ask my self "how does it work" or something like that.
I want to make a game engine but the lack of a good math background is really what is stopping me.

I would like to go to fullsail but in an article I read here at gamedev, the guy said that they cram trig, linear algebra and geometry down your throat in like 1 month, so I have a problem
"where should I start and what should I do to learn".

Im sure im not the only person that loves programming but doesn''t know math to well, atleast I hope not

Thanks for any advice
and thank you S1CA and A.P
Cheers
"Make it a habit to be loyal to the activities that serve the highest part of yourself."
jperalta
jperalta
Trig, geometry and linalg in 1 month? No problem, trig is fairly simple if you get it, if you don''t nevermind. Geometry is child''s play. Lin alg is like alg1 and alg2 with the addition of matrices, not too tough at all.
Raloth
Raloth
A good programmer knows how to apply mathematical formulas to his problem and arrive at the solution. He/she may not necessarily understand how or why everything works, but should know what it does and the basic reasoning behind it.

A great programmer will understand the inner workings of that formula.

There isn't much of a difference between a "good" programmer and a "great" programmer, just the level of understanding. I have gone a long way without understanding the details of every little thing. I would fail a test on vector math (except for the basic addition/subtraction/etc.) rather miserably. I know how to apply it to what I need and that's all you really need to do to get a project done .

[edited by - Raloth on September 4, 2003 10:58:48 PM]
____________________________________________________________AAAAA: American Association Against Adobe AcrobatYou know you hate PDFs...
no one
no one
Hiya

Thanks a lot!
quote:

Trig, geometry and linalg in 1 month? No problem, trig is fairly simple if you get it, if you don''t nevermind. Geometry is child''s play. Lin alg is like alg1 and alg2 with the addition of matrices, not too tough at all.



This may be true, but unless you know alebra 1 and 2 first,
it would be near impossible to learn them. Im not sure where im at really, but like Raloth, I can code a vector math class with no problem but if I was given a test, I would probably fail it.

What I normaly get lost with is collision detection equations,
orhto matrix stuff, quaternions etc. I have been thinking about taking a couple of classes at a local college starting with
algebra 1 (to make sure I know it) up to trig/linear algebra.
Would you all recommend that?

Ok, now the last thing that comes to mind about "good practices"
is more less programming related. Re-inventing the wheel is no good so Ive read so many times, but if you want to learn how to make a tire, shouldn''t you first start by learning how to make a wheel? (wow, that was deep...lol). Following up on that question,
Say that you want to implement rigid body physics for example,
you have no idea how it is done so you look up tutorials, examples etc and then extract the code that you need and use it in your own project, adding to it and changing things as you need, is that ok or should you try and make a rigid body physics system (for example) from scratch?








"Make it a habit to be loyal to the activities that serve the highest part of yourself."
bucheron
bucheron
I strongly recommend this linear algebra book, really easy to read, it''s not focused on 3d graphics but will give a general and robust overview of matrices, transformations, eigenvectors,.... Better than some academic books that just give you headache.

http://www.laylinalgebra.com/

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.