DirectX, XNA, OpenGL, SDL... where to begin?

Started by
3 comments, last by MJP 15 years, 9 months ago
Ciao! My name is Alberto, and I'm a computer engineering student from Italy. I'm a long time RPG addicted, and i'm planning from a little time to develop a little dungeon crawler, something nice with random maps and random weapons and armors... I'm an intermediate-C++ user, because of my studies at the university, but I don't know anything about graphics and game developing. I'm a little bit confused on what to start with: i'd like to learn DirectX because i'm mainly interested in Windows developing, but i heard the famous "DirectDraw" component is now deprecated, and since i'm going to use a lot of 2D sprites, i wanted to know if it's too hard for a novice to work in 2D with newer DirectX version. However, i'd also like to learn something wich could be useful in the future. Where do you suggest me to start? I don't like to read lots of documentation and tutorial online, so i'd like to eventually know a good book on the topics. Tahnk you for any help!
Advertisement
Most of the useful DirectDraw functionality was actually moved into Direct3D9, so if you want you should be able to accomplish what you want with that (there's a sprite helper class that you can use render 2D sprites to the screen very easily). However I'll warn you that even if you stick to just the 2D stuff, you'll still probably end up dealing with at least a little bit of low-level details related to the graphics hardware and the API.

XNA Game Studio is another option. It has some really useful framework classes that can make getting something up and running much easier than it is in native D3D9. Graphics-wise it uses D3D9 so you mostly have the same functionality available, although it's generally more friendly to work with. The downside is you'd have to learn C#...however in my experience it's generally rather easy to pick up from C++.

You mentioned SDL which is definitely another viable option. It's nice in that it can make the task of managing a window and working with 2D graphics pretty easy, and also that it's cross-platform. The extension libraries available also have some pretty nice functionality that you can use. However I'm generally not the biggest fan since it uses a C API, and if you use the built-in software graphics you'll be fairly limited in what you can do (you'll have to write code or find a library to do things like rotation and scaling, for instance).

As for books...unfortunately I don't really own any books on this stuff so I really can't recommend any. I'm sure some of the others here can help you out.

Thank you, your advice was great!
Just, why do you talk about D3D9? If i work under Windows Vista, should I rather be interested in DirectX 10?
Quote:If i work under Windows Vista, should I rather be interested in DirectX 10?
Sure. Direct3D 10 if you’re on Vista.
Quote:Original post by Trivia89
Thank you, your advice was great!
Just, why do you talk about D3D9? If i work under Windows Vista, should I rather be interested in DirectX 10?


Oh sure, if that's where you'd like to start. I just tend to assume most people are interested in D3D9 either because they don't have the prerequisite hardware/OS, or because there tends to be a lot more resources (books, tutorials, articles, personal experience) available for D3D9. If you're interested in D3D10 it's still pretty much the same situation: there's a sprite helper class you can use but you'll probably still have to deal with some low-level issues.

This topic is closed to new replies.

Advertisement