Nice article but what I think is you should have done this article little elaborately by adding references to each point. For example, in the point "Implement your own camera", you should have added some links to web pages related to the point. That may be helpful.
Then next thing I feel is you have mentioned the "reader" is just starting 3D programming(title). Why the "reader" has to do many of these steps when he/she is just starting 3D programming. That is not a correct method. Take for an example, why the beginner has to code a model loader while he/she can use easier alternatives such as Irrlicht or OGRE3D which has a built-in model loader. The "reader" is not a large game development company to create a custom game engine. If the beginner want really a large game engine use Unreal Engine or CryEngine. Why the "reader" should code a animation loader when it is a built-in feature in Irrlicht or OGRE3D. "Don't reinvent the wheel". All the points are useful but some points are not for a beginner.
Nice critic I also think I could have done better. I just today I was trying to write the second part. About a model loader I have to disagree I coded myself a simple OBJ loader in one night just by looking at the file structure, very simple also STL files are very simple. Also I have to recognize that other file formats are nearly impossible to code by a single person, 3DS file for example. I think it was fun at least by me to “reinvent” the wheel, it gave me a perspective I could not ever have if I just used it.
I just want to make a couple comments on what you've said.
1) Since you've mentioned XNA, you might want to mention that XNA already has support for mesh animation throught the .obj importer. It's a good place to start, and you can probably do so for free using Blender. Personally, I feel XNA is cheating a little bit-- I'm trying to wean myself off it.
2) Skinned animation is, to me, the holy grail of all 3D programming. It absolutely needs to be on your list IMO.
Other than that, as a newish 3D programmer, I think you've laid out a pretty good list of steps to follow. I would have liked very much to have a list like this about three years ago. Good job.
I agree with you, skinned animation is the holy grail of 3D programming, but it is so difficult to do it by yourself that i didn't place that on my list. It is difficult even to understand a code that works. See yourself in the DX SDK a code that loads a .X file and see what i am talking about.
Just because of this issue, I've switched over to XNA and C#. It was still pretty hard for me, but I was able after a couple days' hair-pulling to get some skinned models from a couple different games, mod them in Maya, and import them with animations into my XNA program. This after about 3 years of beating my head against DirectX samples, like you mentioned.
FYI, I have reported this article as "wrong type". Hopefully the site admins can move it to a tip/trick. With no attached code, screenshots, or inline code and considering it is so short, this is much better suited to be a tip/trick rather than an article.
Martin Fowler wrote:
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
I see some people giving critics about how this article is lacking in content.
But it's really just a useful guidance to the people wanting to learn.
People might take 1-2 years to get through all the materials listed here, so expanding on the topics would be beyond the scope of this article. Using this as the basis for some more in depth tutorials which builds a complete engine would be cool though. After finishing it could the be bestselling game programming book on amazon, because no book really ties all the knots together.
I agree. I'm surprised that there isn't a complete DirectX / C++ walkthrough for building a basic animated 3D engine.
I'm not that great at any one step, but I can now follow the whole process from designing and texturing 3D models in Maya and Photoshop, animating them, and importing them into XNA for use in a game (using C#, not C++). I'm always afraid to make a "tutorial," though, because someone is going to come along and tell me I'm an amateur (which is true). Do you think it's worth putting it all together anyway?
If anyone is interested, let me know. I'll be happy to give it a shot.
I think 99% of people that are in 3D programming are amateurs. This is because 3d is a field that people that aren't informatics can see actually see what you are doing and so to manage 3D programming give you a reputation among others of your kind. If you want to give it a shot I gladly will lend you my blog to publish those tutorials
I never post. I'm posting on this occasion because I like and think the article has a lot of potential. It started great, and is very easy to read but would like to see some references to things like "Binary Collision".
I haven't done 3D programming in years, but this article got my attention going. Hopefully, this article can expand on more things. Perhaps it can turn into a series of articles.
Firstly, congratulations on putting up your first article. Posting an article is easy, posting a good article is the hard bit
Secondly, unfortunately, I don't know what to make of it really. I think it would be a bit of understatement to say it is a bit lacking as an article. To really give this article some life, you should have expanded on each of your ten topics, maybe give so reference material or examples of how to do it.......
Think it needs an overhaul to get it going......
Have you read the article FAQ[^]? You should maybe take this article offline until you beef it up a bit, or I think you will find it will be rated poorly by some of the others.