• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
simpler

Which DirectX version to learn

11 posts in this topic

I recently finished a game I made with DirectX 9.0 and I'm in the spot of starting a new project. I have some concerns about which version I should dig deeper into.

I have made a couple of games with DirectX 9.0c of which only one is in 3D. I can't say I'm especially good with the DirectX API, but I've worked my way through Frank D Lunas [url="http://www.amazon.com/Introduction-Game-Programming-Direct-9-0c/dp/1598220160/ref=sr_1_5?ie=UTF8&qid=1344892652&sr=8-5&keywords=frank+d+luna"]"Introduction to 3D Game Programming..."[/url] book and made sure I understand all the topics in it. The next thing I want to focus on learning more about is 3D programming and it feels like a good time to decide which version of DirectX it's wisest to aim on.

Now my question is: Should I stick with 9.0c for my next project(s) or is it better to dive into DirectX 11 right away and get ready for the launch of Windows 8 and the addition of Metro style apps?

I hope you understand how I think, I'm thankful for any comments! [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
0

Share this post


Link to post
Share on other sites
When I was on conference (it was april or may, I don't remember) the Microsoft representative said that ~50% of the market still uses windows xp (only microsoft os were counted in).
In my opinion go for dx11 (says person who still digs in dx9 [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] ) Edited by Tasaq
1

Share this post


Link to post
Share on other sites
That's pretty interesting numbers!

Two similar questions:[list=1]
[*]When I develop Metro apps with DirectX can I still use dx9?
[*]When I develop normal apps for Windows 8, can I still use dx9?
[/list]

Also, won't the use of dx11 make less people able to play my games? Not only the ones who got Windows XP but also those with graphic cards that doesn't support dx11?

I can understand that big companies got the resources to implement everything with dx9 as fallback if the user can't use dx11, but as a single person it feels impossible to do so. And it's not like I'm in the need of the extra technologics that dx11 offer. Edited by simpler
0

Share this post


Link to post
Share on other sites
Go for directx 11 if your purpose is to learn graphics.... There are these things called feature levels which will allow you to cover all the hardware you need.

Directx 11 will teach you the newest fundamental "ways of doing things", which imo is the best place to start.

NOW, if you are doing this for the soul purpose of making a game, use whatever you are best at/your game requires. Edited by AverageJoeSSU
1

Share this post


Link to post
Share on other sites
I'd suggest learning to use shaders in DX9 first.

You can't render anything in DX11 without a shader, and it's probably easier to learn to use shaders inside the API you're familiar with.

[quote]When I develop Metro apps with DirectX can I still use dx9?
When I develop normal apps for Windows 8, can I still use dx9?[/quote]

Only normal desktop apps support DX9. Metro only gives you access to a very limited set of APIs, for example you can't even compile shaders in DX11 when using Metro - you have to compile them at build time and load them in (well, technically, I think you could do it if you wrote your own compiler).
1

Share this post


Link to post
Share on other sites
[quote name='AverageJoeSSU' timestamp='1344898228' post='4969228']
Go for directx 11 if your purpose is to learn graphics.... There are these things called feature levels which will allow you to cover all the hardware you need.

Directx 11 will teach you the newest fundamental "ways of doing things", which imo is the best place to start.

NOW, if you are doing this for the soul purpose of making a game, use whatever you are best at/your game requires.
[/quote]

I didn't know about feature levels, that's a pretty big deal! If I can cover all the hardware I need with dx11 then I don't see any reason to stay with dx9.

[quote name='Adam_42' timestamp='1344899131' post='4969233']
I'd suggest learning to use shaders in DX9 first.

You can't render anything in DX11 without a shader, and it's probably easier to learn to use shaders inside the API you're familiar with.
[/quote]

I think I got a somewhat decent understanding about how shaders work, I have played around with them and most of my games uses some kind of shader. I feel like now when I'm going learn more about them it's maybe better to do that on the latest version? We'll see how it goes!

Thanks for the fast replies [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
0

Share this post


Link to post
Share on other sites
[quote name='Tasaq' timestamp='1344894299' post='4969205']
When I was on conference (it was april or may, I don't remember) the Microsoft representative said that ~50% of the market still uses windows xp (only microsoft os were counted in).
[/quote]

That figure of ~50% of users still using XP quoted by Microsoft very likely includes business customers: they're certainly not in your target audience. For a potential market for games things look somewhat different. The latest [url="http://store.steampowered.com/hwsurvey/"]Steam hardware surveys[/url] are a much better guideline to base your decision on, and there we have nearly 80% with DX10/11 class systems; i.e. Windows Vista or 7 with a D3D 10 or 11 class GPU, and with XP usage being in the order of 13% and falling. The need to maintain support for downlevel systems is vastly overstated.

[quote name='simpler' timestamp='1344897077' post='4969224']
Also, won't the use of dx11 make less people able to play my games?
[/quote]

No; aside from the XP holdouts, so long as the user has Vista or 7 you can use [url="http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx"]feature levels[/url] to obtain support for both DX9 and 10 class hardware. Feature levels also mean that there's no reason whatsoever to even consider D3D10 or 10.1, so it becomes a straight-up choice between 9 or 11.

Since you seem to want to dive deeper into learning shaders my advice would be to go for 11. You can do it by continuing with 9 for sure, but you'll still have horrible things like D3DERR_DEVICELOST and old-style render states to deal with; 11 just makes the experience a whole lot nicer and enables you to focus more on getting stuff done rather than having to write annoying boilerplate.

The wildcard in the set of options is to drop D3D for now and look at some OpenGL. It's definitely worth considering, and knowing both APIs will be of benefit to you, but I think that for the time being you're maybe better off getting some more D3D experience under your belt. By all means keep that as an option for the one after though.
2

Share this post


Link to post
Share on other sites
There is a strong argument still for using Direct3D9 because XP is still in use even in the gaming world. Pretty much everyone, big studio and indie alike still targets it, because a 13% share is still statistically significant. Ignoring even ~13% as an indie can be problematic. Targeting D3D11 [b]does [/b]reduce the number of people who can play your game; it just depends on your goals. If you're planning to sell the game, you may wish to consider targeting D3D9 for the time being. You might also consider learning D3D11 and creating an abstract rendering interface, implementing the ideals of D3D11 and translating that into D3D9 at the back end.

XP is losing ground every time a new survey is done by Valve. It's getting more and more appealing to drop D3D9 in favor of 11. Edited by Flimflam
1

Share this post


Link to post
Share on other sites
Depends. If you're starting a 2 year (or even 6 month) project right now then you'd be well advised to give some thought to what the XP share is going to be like at the end of that time. A cross-reference of those 13% XP machines with what GPUs they're using wouldn't be a bad idea either.
1

Share this post


Link to post
Share on other sites
Thanks mhagain and Flimflam for insightful replies! It feels like starting with D3D11 is the right option for me. However I got a bit confused when I read a comment on[url="http://www.amazon.com/Introduction-Game-Programming-DirectX-ebook/dp/B0085CDJY4/ref=sr_1_4?ie=UTF8&qid=1344941709&sr=8-4&keywords=introduction+to+3d+game+programming+with+directx+11"] the book[/url] I plan to buy:

[quote]This book, although well written, is not for a person digging into the Windows 8 (yes 8) Direct3 or Direct2 that is found in Visual Studio 11 Express Beta that only runs on Windows 8.[/quote]

Won't I be able to use the things I learn in Frank D Lunas book on Windows 8? Is there another API for developing with D3D11 on Visual Studio 11? Hopefully someone can expand a bit on this, since I don't really understand what he means. Edited by simpler
0

Share this post


Link to post
Share on other sites
The person who wrote that is absurdly wrong. There's nothing inside D3D11 that prevents you from using an OS earlier than 8 (or 8 for that matter?). What he appears to be referring to, is when building applications in Visual Studio 2011, there is no C runtime compatible with Windows XP presently, and it's (IIRC) still presently questionable if there will ever be. Applications written in that version will only run on Vista or higher.

If you're targeting D3D11 alone, that isn't even an issue, as Windows XP can't use D3D11, and if you did want to target XP with D3D9, nothing is stopping you from using an earlier version of Visual Studio. Edited by Flimflam
1

Share this post


Link to post
Share on other sites
Thanks for making things clear! So I should be able to use DirectX 11 exactly like in Frank D Lunas [url="http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228"]book[/url] in Visual Studio 2012 and use the built in graphics debugger and all the other features?
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0