Reddit Reddit reviews Introduction to 3D Game Programming with DirectX 11

We found 22 Reddit comments about Introduction to 3D Game Programming with DirectX 11. Here are the top ones, ranked by their Reddit score.

Arts & Photography
Books
Architecture
Architectural Drafting & Presentation
Introduction to 3D Game Programming with DirectX 11
Mercury Learning Information
Check price on Amazon

22 Reddit comments about Introduction to 3D Game Programming with DirectX 11:

u/redditEnergy · 7 pointsr/opengl

1.) Write 3D graphics with DirectX11. Sure I learned OpenGL first but I regret not learning graphics with DirectX11. I personally believe DirectX11 is easier to learn than modern OpenGL.

Resource for both: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/

Resource for OpenGL: https://learnopengl.com/Introduction
Resource for DirectX: https://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228

If you are a beginner DON'T start with Vulkan or Directx12.

2.) Depends on how much you work at it. Also be smart how much you work / how you work. You said 15hrs a day for 3 years. Learn to pace yourself. If you think this is realistic or healthy, you are going to learn the hard way. However, you are older than me so this approach might work for YOU. But I have friends with a similar mentality and it is just self destructive.

3.) Don't worry too much about this one. The main thing is knowing the difference between a low level vs high level graphics API. OpenGL, DirectX11 are high level (meaning easier to use and require less knowledge). Vulkan and DirectX12 are lower level (harder to use require more knowledge, but can be a lot faster).

Other than that to answer your question: PS4 has its own API. Other than that special case I already listed the APIs used in consoles / PCs.

4.) You need to know linear algebra. Can't get around that. Take a class or pickup a book on it.

Resources:
https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab

Strang, Gilbert, Linear Algebra and Its Applications (4th ed.)

5.) No it is not a waste of time. Any game studio worth its salt uses C++ to do their graphics under the hood. C++ offers complete control over performance. However, a lot of studios do not use STL data structures. Since games/graphics needs to be super optimized and the STL is too generic at times and not fast enough sometimes.
https://github.com/AnthonyCalandra/modern-cpp-features

Also I learned graphics programming very recently so I can definitly relate. I started freshman year 2015 and am currently in my junior year with a graphics internship. A lot of my advice here is based off what I tell freshman at my school, and things I hear from friends working at triple A companies / Nvidia / AMD.

u/hermitengine · 6 pointsr/gamedev

I too picked up DX11 mostly using rastertek's as a starting point, and then Microsoft's own documentation as a reference. I read rastertek's code as documentation in C++ rather than straight copying the code. After all, its abbreviated code is meant to illustrate D3D usage rather than be a production-level engine.

For a more guided approach, this book might suit you better:

https://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228/ref=sr_1_2?ie=UTF8&qid=1502869223&sr=8-2

u/joeswindell · 5 pointsr/gamedev

I'll start off with some titles that might not be so apparent:

Unexpected Fundamentals

These 2 books provide much needed information about making reusable patterns and objects. These are life saving things! They are not language dependent. You need to know how to do these patterns, and it shouldn't be too hard to figure out how to implement them in your chosen language.

u/Matemeo · 4 pointsr/programming

I had the same problem until I picked up a book on DirectX. The author did a little bit of hand waving, but most everything was explained from the ground up. It really, really helped solidify my understanding of how graphics applications are implemented.

I think it was this: http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228

I'm sure there are other books that do well as well, but that particular book really made me get it.

u/famastefano · 3 pointsr/cpp_questions
  • Game Engine Book for the high level design and to learn how things should interact
  • Math related to vectors, matrices, geometry and trigonometry related to 2D
  • DirectX 11 or OpenGL if you want to do it from scratch, SDL is still a good choice. Absolutely NOT DirectX 12 or Vulkan as they are too low level for a beginner.
  • You might want to read about multithreading, the theory is relatively simple, the practice is not. for the theory look only the Concurrency part.
u/wbeyda · 3 pointsr/compsci

DirectX samples in the SDK have some great examples of HLSL shaders. You would know this if you have already installed and setup Visual Studio for DX projects. This book by Frank Luna is great as well.

http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228/

Knowing when to use the GPU as apposed to the CPU ? The short answer is always. Why? CPU computations are expensive and limited. The real questions you'll need to ask yourself is when do I write a pixel, vertex or fragment shader? And that is situation specific and can be pipeline specific. Something you will spend a lot of time regressing on. My advice is don't get into DX or opengl programming first. Spend some time in an engine and see how they do things first. My suggestion is to use Unity and write some shaders yourself. Shader language is funny and hard to debug so pick up a copy of a CG language book and learn from there. Spend a lot of time in Maya and Photoshop seeing how different graphical acheivements have already been done. Then try to mimic them before diving into the algorithm. Understanding shaders is basically the same thing. Final piece of advice. If you can work in a higher level language than C++ do it. No sense worrying about pointers when you can just use something like C# Java or even get away from types and just use something like javascript or python.

u/Sanctumed · 2 pointsr/gamedev

From what you wrote in your post, it seems that you are interested in the actual nitty gritty relating to graphics. For that, Game Engine Architecture is a much more suitable book compared to Game Coding Complete. However, if you are really interested in graphics and stuff like DirectX, I'd highly recommend getting a book like Introduction to 3D Game Programming with DirectX 11: https://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228

I personally read the DirectX 12 book, but for newbies to graphics programming, DirectX 11 is much much easier to grasp. There are similar books for OpenGL, but imo you'd be better off learning DirectX 11 because it's a lot more modern.

u/phatgreen · 2 pointsr/GraphicsProgramming

https://www.youtube.com/user/ChiliTomatoNoodle/playlists

That guys youtube channel has DirectX 11 C++ tutorials. He has a beginner series, intermediate, and advanced. He still adds to the advanced occasionally, like SSE explanations and so on.

His videos are long, you really get to know him and his personality. His beginner videos teach you C++ too, he doesn't expect you to know anything going in. He swears fairly often, I thought it was funny back in high school when I watched these, but others might not.

These videos are where I started from in the very beginning, and I wouldn't be where I am programming wise if it weren't for Chilli. He has allowed me to educate myself on my own time, for free. After I had done the beginner and intermediate tutorials I went and read this.

http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228

That will teach you the basics of 3D Programming.

http://www.amazon.com/Practical-Rendering-Computation-Direct3D-11/dp/1568817207

And that will teach you how to really understand the pipeline. Both books have their merits and both have very useful information for someone learning all this stuff. I'm currently making my own 3d game engine at the moment, so that's what understanding the information above can do for you. Takes time, though.

u/aivenhoe · 2 pointsr/GraphicsProgramming

I can give you a book recommendation. Although not the newest book around, I still think it explains very understandable probably most of the topics you are interested in. You can follow the books line or you can just look up things.

have fun

u/CodyDuncan1260 · 2 pointsr/gamedev

Game Engine:

Game Engine Architecture by Jason Gregory, best you can get.

Game Coding Complete by Mike McShaffry. The book goes over the whole of making a game from start to finish, so it's a great way to learn the interaction the engine has with the gameplay code. Though, I admit I also am not a particular fan of his coding style, but have found ways around it. The boost library adds some complexity that makes the code more terse. The 4th edition made a point of not using it after many met with some difficulty with it in the 3rd edition. The book also uses DXUT to abstract the DirectX functionality necessary to render things on screen. Although that is one approach, I found that getting DXUT set up properly can be somewhat of a pain, and the abstraction hides really interesting details about the whole task of 3D rendering. You have a strong background in graphics, so you will probably be better served by more direct access to the DirectX API calls. This leads into my suggestion for Introduction to 3D Game Programming with DirectX10 (or DirectX11).



C++:

C++ Pocket Reference by Kyle Loudon
I remember reading that it takes years if not decades to become a master at C++. You have a lot of C++ experience, so you might be better served by a small reference book than a large textbook. I like having this around to reference the features that I use less often. Example:

namespace
{
//code here
}

is an unnamed namespace, which is a preferred method for declaring functions or variables with file scope. You don't see this too often in sample textbook code, but it will crop up from time to time in samples from other programmers on the web. It's $10 or so, and I find it faster and handier than standard online documentation.



Math:

You have a solid graphics background, but just in case you need good references for math:
3D Math Primer
Mathematics for 3D Game Programming

Also, really advanced lighting techniques stretch into the field of Multivariate Calculus. Calculus: Early Transcendentals Chapters >= 11 fall in that field.



Rendering:

Introduction to 3D Game Programming with DirectX10 by Frank. D. Luna.
You should probably get the DirectX11 version when it is available, not because it's newer, not because DirectX10 is obsolete (it's not yet), but because the new DirectX11 book has a chapter on animation. The directX 10 book sorely lacks it. But your solid graphics background may make this obsolete for you.

3D Game Engine Architecture (with Wild Magic) by David H. Eberly is a good book with a lot of parallels to Game Engine Architecture, but focuses much more on the 3D rendering portion of the engine, so you get a better depth of knowledge for rendering in the context of a game engine. I haven't had a chance to read much of this one, so I can't be sure of how useful it is just yet. I also haven't had the pleasure of obtaining its sister book 3D Game Engine Design.

Given your strong graphics background, you will probably want to go past the basics and get to the really nifty stuff. Real-Time Rendering, Third Edition by Tomas Akenine-Moller, Eric Haines, Naty Hoffman is a good book of the more advanced techniques, so you might look there for material to push your graphics knowledge boundaries.



Software Engineering:

I don't have a good book to suggest for this topic, so hopefully another redditor will follow up on this.

If you haven't already, be sure to read about software engineering. It teaches you how to design a process for development, the stages involved, effective methodologies for making and tracking progress, and all sorts of information on things that make programming and software development easier. Not all of it will be useful if you are a one man team, because software engineering is a discipline created around teams, but much of it still applies and will help you stay on track, know when you've been derailed, and help you make decisions that get you back on. Also, patterns. Patterns are great.

Note: I would not suggest Software Engineering for Game Developers. It's an ok book, but I've seen better, the structure doesn't seem to flow well (for me at least), and it seems to be missing some important topics, like user stories, Rational Unified Process, or Feature-Driven Development (I think Mojang does this, but I don't know for sure). Maybe those topics aren't very important for game development directly, but I've always found user stories to be useful.

Software Engineering in general will prove to be a useful field when you are developing your engine, and even more so if you have a team. Take a look at This article to get small taste of what Software Engineering is about.


Why so many books?
Game Engines are a collection of different systems and subsystems used in making games. Each system has its own background, perspective, concepts, and can be referred to from multiple angles. I like Game Engine Architecture's structure for showing an engine as a whole. Luna's DirectX10 book has a better Timer class. The DirectX book also has better explanations of the low-level rendering processes than Coding Complete or Engine Architecture. Engine Architecture and Game Coding Complete touch on Software Engineering, but not in great depth, which is important for team development. So I find that Game Coding Complete and Game Engine Architecture are your go to books, but in some cases only provide a surface layer understanding of some system, which isn't enough to implement your own engine on. The other books are listed here because I feel they provide a valuable supplement and more in depth explanations that will be useful when developing your engine.

tldr: What Valken and SpooderW said.

On the topic of XNA, anyone know a good XNA book? I have XNA Unleashed 3.0, but it's somewhat out of date to the new XNA 4.0. The best looking up-to-date one seems to be Learning XNA 4.0: Game Development for the PC, Xbox 360, and Windows Phone 7 . I have the 3.0 version of this book, and it's well done.

*****
Source: Doing an Independent Study in Game Engine Development. I asked this same question months ago, did my research, got most of the books listed here, and omitted ones that didn't have much usefulness. Thought I would share my research, hope you find it useful.

u/foolusion · 2 pointsr/learnprogramming

You might wanna check out Frank Luna's "Introduction to 3D Game Programming with Directx #" books. The older ones are probably cheap used. The most recent one was released today it seems. amazon link

u/inequity · 2 pointsr/JobFair

There is always a lot of ways to get involved. Nobody can hold you back from being successful but yourself. If you have the drive to get involved, you can succeed, regardless of your 'inate programming intelligence'.

Check out gamedev.stackexchange.com. Can you answer the questions people have there? If not, figure out why! Read the answers they get, and learn that stuff. Someday, you'll be able to answer that for somebody else.

Try making some games, too. Start with simple stuff, in whatever language you know (but I always like to recommend C++). Then work your way up. Hangman, Pong, Asteroids, Pacman, Tetris. You can write all of these by yourself, and you can expand on them to make them cool. I wrote a bot that plays Bejeweled 3 that I still use on my resume, because it's cool!

Want to learn some graphics stuff? Check out this opengl tutorial. Need to understand these topics better? Buy some books! I'd recommend Pracitcal Linear Algebra: A Geometry Toolbox, and Frank Luna's DirectX books.

I'd type more but I'm sort of tired. Please feel free to send me a PM if you're interested in more references that could be helpful to you.

u/ClownCarnage · 1 pointr/gamedev

If you want to get into graphics, I would say use Frank Luna's DirectX 11 book or Joey de Vries' website LearnOpenGL.

EDIT: Phone's autocorrect...

u/RichieSams · 1 pointr/GraphicsProgramming

I highly recommend Frank Luna as well. His DX11 book is excellent. Some of the DirectX specific code is a bit outdated now, (for example fx files aren't a thing anymore and D3DX was killed off), but the graphics theory is still very good.

u/ZigZauerFaucet · 1 pointr/gamedev

I assume googling already got you to the RasterTek tutorials.

Frank D. Luna's book is good, Introduction to 3d Game Programming with DirectX 11. While introductory it's fairly comprehensive of the pipeline and why (sometimes brief, but the main DX docs fill that in).

Beginning DirectX11 Game Programming, is a bit more newcomer friendly but a lot less comprehensive.

HLSL Development Cookbook is a reasonable fill-in for HLSL and shaders that you would actually use. It doesn't cover the nitty gritty like DX api calls, but does explain what you need to have your render states setup as each step of the way.

---

If you aren't already familiar with 11 then 12 is likely out of your league for the time being. DX10 began the move towards a lower-level API in comparison to DX9 and OpenGL.

u/karilex · 1 pointr/gamedev

First of all a short background of my past experiences.
I'm a fairly experienced programmer I've mostly dealt with stuff that is closer to the hardware (kernel/networking dev). Hence I have a good amount of experience with C and C++.

I've also got a good amount of knowledge in the field of mathematics (currently reading up on functional analysis and galois theory). So any maths prerequisites shouldn't be an issue.

I also know absolutely nothing about computer graphics, currently have a particularly poor knowledge of UX, have never created a game before, and know much less about programming in Windows than Linux (I have at most a vague idea of what a COM object is).

I'm interested in writing a game since I want to pick up gamedev as a hobby. I don't really care what type of game I end up writing since I see this project as being more of a learning experience than a fully fledged game. I'm also taking this project as an occasion to get more comfortable programming in Windows. Before I start coding I've got a couple of questions for the people of /r/gamedev since I don't want to pick up a whole bunch of negative habits or bite off more than I can chew and get discouraged.

  • What would be an adequate complexity for my first game? Should it definitely not be 3D? Would even a simple platformer be too complex?

  • I really like the idea of creating a game "from scratch" so I've started screwing around with directX and reading this book. However, I've come to realize that while this might teach me a lot about computer graphics, I won't actually be learning about game design concepts any time soon. What would be a good C++ library to get started on? I've heard mentions of SDL and allegro for example. Ideally I'd like something that I will actually use later on too.

  • What would be a good resource to learn said library?

  • A lot of the tutorials and books I've been looking at have been focused on how to get specific aspects of game programming done. For example, how to draw things on the screen and animate them using directX. At the other end of the spectrum there are resources that go into much more abstract concepts like what makes a game fun but assume a non-technical audience (e.g. extra credits). However I'm yet to find something focusing on the big picture at the programming level. How the code should be architectured (I imagine even simple 2d games go beyond having a whole bunch of code in one big while loop), best practices, common pitfalls, etc... Are there any resources I could look into that would give me the bigger picture of game development?

  • As mentioned above I am terrible when it comes to UX design since I haven't really worked on anything significant that has a GUI, other than for web apps. I'm working on improving that skill in a general sense but I wouldn't mind a few pointers that apply to games specifically. Are there any resources that would give me tips on how to make a game that looks and feels good.
u/Tezza48 · 1 pointr/GraphicsProgramming

Look for Beginner OpenGL or DirectX11 tutorials, Follow them to a t, work from there.

I learned a little GL from some random tutorials and then by watching this series.

I first jumped into Graphics and got a real understanding of what was happeneing form this book Learning from a book is a really good idea, Video tutorials can have a number of bad practices.

Once you understand the basics then ask questions about Ambient Oclusion, LightMaps, Cubemaps, Reflection.... all maps, baking(map thing) and other stuff. I would say knowing C++ is a good idea however you can do this stuff in C# and Java as well asa number of other languages. Also, have a look at Makin Stuff Look Good In Unity to get a good intro to shaders without having to write a renderer from scratch.

u/FerricIrony · 1 pointr/computergraphics

Sure!
Adrian Courreges blog is great.
I especially recommend the Doom study.

Yeah, it's a nice casual read but if you're looking for a more technical introduction you really can't beat the Luna book. The project files take a bit of updating and I don't recommend using the effects framework (most engines roll their own) but other than that it's ideal for getting into the graphics side of the industry.

u/Finoli · 1 pointr/directx

If you're really serious about getting into 3D-programming with DirectX I recommend getting a good book. A quick search on Amazon will get you the most common ones.
As for online resources my favorite is braynzarsoft.

EDIT:
My favorite books on DirectX:

Introduction to 3D Game Programming with DirectX 11

Practical Rendering and Computation with Direct3D 11

Real-Time Rendering

u/datosh · 1 pointr/gamedev

Well I bought this book and gonna work through this until next semester starts. I think I can start using wrapper and frameworks after I know what I'm using under the hood.
Makes the wrapper&frameworks more intuitive... at least for me. But thanks for the tipp. I'll look into the stuff after I red the book.

u/wh0wants2know · 0 pointsr/gamedev

any particular reason that you don't want to just learn how to code with DirectX 11? Go buy this book: http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228/