Sign in to follow this  

Where to start?

This topic is 4270 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Steps to DirectX 9 Mastery:

1. Decide if you want to do it the easy way or the hard way(ie. managed or native code).
2. Download the appropriate compiler.
3. View all the wonderful tutorials on the various web sites listed in this forum's FAQ.
4. Write appropriate code from tutorials and ensure absorption of knowledge by making changes to the code that demonstrate an understanding of the concepts.
5(optional). If you chose managed code, pick up a copy of "Managed DirectX 9 Graphics and Game Programming" by Tom Miller. If you chose native code, pick up a copy of "Introduction to 3D Game Programming with DirectX 9.0" by Frank D. Luna.
6. Read
7. Code
8. Repeat until mastery is achieved.

Hope that helps get you started.

-AJ

Share this post


Link to post
Share on other sites
Quote:
Original post by laserdude45
Where should I start on my journey of Dx9c? The doucmetion? Gameinstitue? Where?


That depends on your math and programming background.
Care to share?

Share this post


Link to post
Share on other sites
Quote:
Original post by deffer
Quote:
Original post by laserdude45
Where should I start on my journey of Dx9c? The doucmetion? Gameinstitue? Where?


That depends on your math and programming background.
Care to share?


Forgot about that. I was offering more of a general purpose program, but if you share your math and programming background, I'm sure we can come up with a custom program tailored specifically for you [smile]

-AJ

Share this post


Link to post
Share on other sites
My background on these are:

3 Years of general programming.
A few months of C++.
A half of a year with Java.

Math:
E... Im a little scared to say because of my age.
But I will say I know a LITTLE of calcus.
Umm Im not in high school yet so I wouldnt have math knowledge on
that level. Of course I know adding subtraction multiplication divison.
I know a little bit of algerbra.

I hope I gave enough information on this.

Share this post


Link to post
Share on other sites
I'd say, get the latest DirectX SDK and Visual Studio Express and jump right in. Read the documentation and try to understand the theory. If you understand the theory, try and jump into the implementation. Don't be scared and just try until you get it right. Read some tutorials if you can/want.

Share this post


Link to post
Share on other sites
Quote:
Original post by laserdude45
But I will say I know a LITTLE of calcus.
[...]
I know a little bit of algerbra.


Calculus is not needed, IMO, but I think you should get a little more of algebra.
It will help you immediately understand many samples of code, that do not have sufficient amount of comments/documentation, or simply expect an experienced reader (common case). And it prevents from flooding the forums with same old basic questions, that have the same old answer everytime ("get a book, man!").

Other than that, jump into tutorials from DX SDK, they are great! Samples are much harder, IMO, so I would try to implement something on your own before examining them.

Share this post


Link to post
Share on other sites
Quote:
Original post by u235

1. Decide if you want to do it the easy way or the hard way(ie. managed or native code).



I wouldn't put it like that. While I agree Managed DirectX can be esier to play with for a beginner, labeling them with 'easy'/'hard' might be misleading.

Share this post


Link to post
Share on other sites
Quote:
Original post by Calin
Quote:
Original post by u235

1. Decide if you want to do it the easy way or the hard way(ie. managed or native code).



I wouldn't put it like that. While I agree Managed DirectX can be esier to play with for a beginner, labeling them with 'easy'/'hard' might be misleading.



Duely noted, however, I wasn't exactly referring to just the DirectX part. In terms of learning curve, C# or VB.NET is always going to win out over C/C++. He did say that he has ~3 years programming, a few months of that being C++, though, so if he already knows the language and is comfortable with it then it may be a moot point. I know in my case I was struggling with DirectX in C++ just due to the nature of the language. As soon as I started coding in C# my productivity skyrocketed. Different strokes for different folks, I guess. That's why I labeled them easy/hard. But again, your point is well taken and I apologize to the OP for any confusion it may have caused.

-AJ

Share this post


Link to post
Share on other sites
So you think C# is easier... Well I guess I can give it a try :) .


EDIT: Woah C# Java! They are almost the exact same! This is going to be EASY to learn.

[Edited by - laserdude45 on May 7, 2006 6:41:58 PM]

Share this post


Link to post
Share on other sites
BTW, knowledge of trigonometry is really helpful for game programming in general, and especially so in 3D worlds. Knowledge of Vectors and Matrices is great, too.

Share this post


Link to post
Share on other sites
Quote:
Original post by laserdude45
So you think C# is easier... Well I guess I can give it a try :) .


Yes, I think C# is much easier. It's alot like C++ with the mostly the same functionality and stuff. I don't know why, but C# just kind of clicked with me. I think it's just cause the language makes alot more sense, you can do things in less code in C# than an equivilent C++ program, and it's just a whole lot easier to read. *shrugs* I'm not telling you you have to try C#, but it's definitely one of the easier to get up and running quick languages.

-AJ

Share this post


Link to post
Share on other sites
In all honesty, a knowledge of trig might help, but a good knowledge of vectors and a decent comprehension of 3d space [takes a bit of getting used to] will outright replace any trig in your code immediately [can't remember the last time i actually got use out of sin and cos functions in a practical game application, and thats all that trig is really as far as games are concerned.] Nearly everything you do as far as 'angles' are concerned is actually likely to be much better implemented with normalizing a displacement vector. Vector knowledge almost completely overlaps trig knowledge.

The only time radians will likely ever enter your code is with rotational velocity/accel, and thats physics, not graphics, and even then a decent vector understand replaces that too. You'll be using trig indirectly, with things like cross products and dots [vector ops], but it's honestly easier to go all the way through graphics code without ever typing 'cos()' or 'sin()' anywhere. Matter of a fact, you might find that things like rotation, become downright hazardous if you try to do it by angle of rotation, as opposed to local axis'.

You are going to absolutely need a decent understanding of linear algebra though, as matrices are pretty much how things are done, unless you want to use quaternions, which are pretty far above matrices on the math ladder [so if you know quaternions, you are likely already comfortable with matrices].

[from personal experience] don't be afraid when the sdk says something is 'slow', since it'll say it a lot, and it is nearly impossible to dodge everything that sounds like a kick to the side of your performance. Just do what gets stuff on the screen to learn with, and sweep up the mess later.

*edit* by the way, i too am making the jump to d3d :D, only i'm making the jump from a hand crafted software 3d engine, so it's more just getting used to how d3d throws stuff down as opposed to my own way of doing things :P

Share this post


Link to post
Share on other sites
Quote:
Original post by laserdude45
Where should I start on my journey of Dx9c? The doucmetion? Gameinstitue? Where?


I am also curious on this.

I have 3 years of programming experience.
3 Years in Java.
1 year in c(mostly) and a little c++
I have worked with C# a little too

I have taken math up to calc I.

I have VC++ and VC#.

Same approach?

[Edited by - TriSwords on May 7, 2006 8:28:30 PM]

Share this post


Link to post
Share on other sites
Quote:

[can't remember the last time i actually got use out of sin and cos functions in a practical game application, and thats all that trig is really as far as games are concerned.]


Not to troll or anything, but I disagree with you here.

Your advice on not needing to know trig for game programming is a little to specific an answer for such a generalized subject. In the 3D game programming world Trig could make or break a game. Whether it comes to a simple head/gun "bobbing" motion that follows a sine/cosine line or drafting an algorithm that constantly draws pixels in random positions but the amount is inversely proportional to the distance from the center of the screen giving a spreading effect for some particle system.

Anyway...my point is you can do a lot with a little bit of knowledge of trig (or any other level of math) in GAME programming. It really depends on what type of program your making and how efficient/qualitative you want your results to be.

Share this post


Link to post
Share on other sites
Okay, i take it back [though i still haven't ever used it on a single project by the time the project was finished, and have done things like gun bobbing and particle systems, and did it with vectors, but prehaps thats a square peg in a round hole that would have been better done with sin/cos]. Perhaps it does have applications. In any case, i wasn't saying that an understanding of trig wasn't useful [an understanding of math in general is useful], an understanding of trig is vital to an understanding of basic calc and linear algebra, and an understanding of linear algebra is vital to an understanding of vectors, and an understanding of trig is absolutely required to understand the origin of vector specific operations [dot/cross] and vector space base changes [effectively what is being done in rotation around an axis], all of which are vital for things like complex number theory [quaternions] and numerical representations of continuous functions [like taylor expansion, splines, interpolations methods, ect]. It's useful, but more as a rung in a ladder than as the top step.

But you're right, perhaps i was too harsh on poor ol' trig, and i revoke my statement. Sorry if i led anyone astray.

Seriously though, d3d is a mess of an api [not that it's messy, just that it has SO MUCH STUFF!, as to be absolutely overwhelming], and it has got so much stuff flying around all over the place, and if you don't have your math absolutely solid, 3d graphics in general are going to be very tough to do elegantly.

[oh and don't worry about 'trolling me', if i mess up, call me on it, please :D]

*Has nothing to do with the conversation*
I did things like gun bobbing though as a physics system, treated it like a spring with restoring force, found it to work a lot more natural than trying to juggle (radians * time) with things like turning quickly [which would lean the gun to a side], or landing after a harsh jump [make the gun drop down].

Share this post


Link to post
Share on other sites
Quote:
Original post by laserdude45
I know adding subtraction multiplication divison.

LOL. Interesting response to the question :) but seriously, I don't know about some of the replies here but your next step has got to be trig. It's crucial for all kinds of games. Anything that involves 'curves', 'circles' or 'angles' (!!) needs trig. I would find it impossible to make a game without trig. You're not too young to learn the basics and you'll be able to make MUCH cooler stuff once you get it down.

Direct3D is all about linear algebra, as others have mentioned. You've got to learn basic trig before you learn matrices, so I wouldn't rush into graphics programming because you're going to be copying and pasting math code that you don't understand at all. You're either going to have to continually ask for help/samples or get frustrated.

Can you make a basic game like Asteroids WITHOUT Direct3D (using some simple 2D api, or Visual Basic or something)? If not, you could learn to use sin() and cos(), etc. to rotate, aim the ship, and fire. Once you know a little math/geometry you will be amazed at the worlds that open to you in terms of 'how do I...'. You don't want to rush into D3D game programming until you can do regular game programming! Having to learn both things at once is going to be exponentially harder. Take your time, learn trig (and eventually matrices), and your goal should be to make a game/project that's a bit harder than your last one, but don't set your sights too high or you'll end up quitting.

Share this post


Link to post
Share on other sites
About my math:

Let me refrase this.
I know math up to 8th grade
most math I know is up to 7th grade.


I will learn trig.
I will learn calcus.




Share this post


Link to post
Share on other sites
I've not really had much to say that hasn't already been said...
Quote:
Original post by laserdude45
I will learn trig.
I will learn calcus.
Two recommendations:


and



I regularly refer to the first one when I get stuck on basic maths, and the second one also has a good coverage. If you've got the basic maths "way of thinking" these two texts should fill you in on the details [smile]

hth
Jack

Share this post


Link to post
Share on other sites
Can someone please provide me with some links for Trigonometry?

Along with some links for MDX?

[Edited by - laserdude45 on May 8, 2006 3:13:35 PM]

Share this post


Link to post
Share on other sites
Ok can someone PLEASE Give me some links for MDX Im stuck right now in a medium sized hole until someone can provide me with some links to start off my journey to mordor. Lol.


P.S. Sry for that double post 2 days ago. :)

Share this post


Link to post
Share on other sites
Sign in to follow this