Thread: Win32/2D DirectX Game Programming Books?

  1. #1
    Registered User
    Join Date
    Dec 2005
    Posts
    43

    Win32/2D DirectX Game Programming Books?

    About a year ago, I started learning C++ through Sam's Teach Yourself C++ in 21 Days. Now I'm about half way through the book (hehe, I took a year to cover ten days), and I want to start something new. While this book explains C++ concepts pretty well, it lacks bigger example applications that use those features. For example, I learned operator overloading and I know how to use it effectively, but I have no idea as to where this feature would be useful in a real application. I'll still finish reading this book, but I want something new to learn at the same time to keep me interested.

    Also, this is my first year in Computer Science in college, and I have to admit that C++ programming class is ridiculously easy for me (and thus boring). We'll not be covering object-oriented programming for another two semesters! Also, we won't be even learning Win32 GUIs, instead we'll learn Visual Basic...

    I started to learn Win32 programming recently by myself though, through this site, and I love it, but I'd prefer a book over tutorials.

    I don't know what book to choose though. Ultimately, I want to learn 3D DirectX game programming, but I want solid foundations in C++ and Win32 programming first. Also, I want to start on 2D DirectX before moving on to 3D. I think Beginning C++ Game Programming would be too easy for me (I already wrote a console Tic Tac Toe game by myself). I'm considering Tricks of the Windows Game Programming Gurus, or maybe Introduction to 3D Game Programming with DirectX 9.0, but like I said, I'd prefer a 2D book to start with. Or I could focus on Win32 first, maybe Programming Windows.

    So my question is: should I buy another C++ (or STL) book and keep writing more complex console applications, or a Win32 book, or a basic 2D DirectX game programming book? And which book would you recommend accordingly? My preference would be a book that covers Win32 and 2D DirectX game programming. Also, the books should be in C++, I don't really know C.

    Thanks.

    Darklighter
    Last edited by Darklighter; 09-16-2006 at 10:54 AM.

  2. #2
    Software engineer
    Join Date
    Aug 2005
    Location
    Oregon
    Posts
    283
    Bubba will start another arguement, but I have a step-by-step teaching style for beginners based on my own reading experience. I first recommend Tricks 1 simply because it's the only good & exclusive 2D book I know of. It teaches the fundamentals of 2d programming using Win32/DirectX with AI, Physics, Sound/Music, the whole shabang. It uses C, and some C++ here and there. For example, Windows programming is totally C with your own C++ classes, and DirectX is completely C++. Truth is you already know C if you know C++, you just don't know the differences of where C ends and C++ begins. If you know basic data types, conditions (if/else/for), functions, structures, you'll understand 95% of the book.

    To be fair, Tricks is a little outdated, teaches some bad programming styles for teaching purposes and goes to faster optimization techniques as time continues. It also teaches software as contrast to hardware programming for the sake of you to understand the lower levels of how graphics get to your screen. However, it's a mix of hardware/software rasterization if anyone finished it. All in all, it's a good educational book with three chapters on windows programming, the fundamentals of game programming and so on. After you're done with the first book, there's option 1) Go further with volume 2 and learn how DOOM-like games were created, then mingle in easily with any new 3d API (OpenGL/Direct3D), or 2) get 3D Game Programming with DirectX 9.0: A Shader Approach. Any 3D book will not exclusively focus on 2D, nor show you how to apply it to games, so that's why I suggest Tricks 1 first. There is simply no other book that can compare. It sounds like I'm advertising the book all the time, but I really believe it. I got hired rather than someone with a degree simply because I was more interesting to talk to when it came to graphics! Good luck with your book decision!
    Last edited by dxfoo; 09-16-2006 at 11:56 AM.

  3. #3
    Registered User
    Join Date
    Dec 2005
    Posts
    43
    What kind of approach does "Tricks of the Windows Game Programming Gurus" have though? Are there any examples showing how to integrate the lessons into a complete game engine? Also, what kind of games could I build if I'd finish reading this book? Are there any specific games shown in the book (Pong, Breakout, etc.)?

    It looks like a suitable book for me though, considering that it covers both Windows programming and 2D DirectX game programming. Also, it's good that it shows AI, physics and sound, and not just graphics. I think I shoudn't have any problems using C.

  4. #4

  5. #5
    Software engineer
    Join Date
    Aug 2005
    Location
    Oregon
    Posts
    283
    He works with you from the very beginning to write a full 2D engine in which you can make Pong, Breakout, etc. In fact, I remember that his first chapter shows you a full game called Freakout using the engine so you can see what you'll be building. You can build from arcade games up to full 2D role-playing games if you wanted, depending on experience. His second volume expands from the 2D engine you build. So, he has you pretty much taken care of.

  6. #6
    Ecologist
    Join Date
    Aug 2001
    Location
    Utah.
    Posts
    1,291
    I'm not a DirectX expert or anything, but with DirectX 10 coming out soon,
    are those DX9 books worth getting? Didn't I read somewhere that DX 10
    won't even be backwards compatible with 9 and below?
    Staying away from General.

  7. #7
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    DirectX 10 won't work on XP, but DX9 will work on DX10 AFAIK. Right now there are not many DX10 books b/c of the stalled release of Vista. The most you would have to change is the FFP lighting. A couple of simple shaders would do.

    Good question though ethic.

  8. #8
    Registered User
    Join Date
    Dec 2005
    Posts
    43
    Thanks for the links. Most reviews on both GameDev and Amazon don't seem to favour "Tricks of the Windows Game Programming Gurus" for the same reason you mentionned, dxfoo: bad programming style.

    Game Programming All in One, 2nd edition seems to have interesting content and is rated well, but it uses Allegro. Apparently, there's a third edition coming out this october.

    Programming Role-Playing Games with DirectX is another one I'm considering. because it covers Windows programming and both 2D and 3D DirectX game programming.

    Beginning Game Programming is maybe another option.

    Are any of those books any good?

  9. #9
    Software engineer
    Join Date
    Aug 2005
    Location
    Oregon
    Posts
    283
    Objection!

    A lot of people (especially people I met at GameDev) get so lost that they don't turn the page and see the next optimized way of achieving the same goal. They're quite fine in my opinion. If they work well on a 2D software rasterizer on my side, I don't see what they are complaining about. Allegro is a high level library, does 2D etc. It may be a good book to get started, but don't plan on using it in a career. I know the author and he does a good job getting his points across to beginners. It may be worth starting with it and see if you still want to continue in this horrifying black art.
    Last edited by dxfoo; 09-16-2006 at 09:16 PM.

  10. #10
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    horrifying black art
    Game programming is only horrifying if you go about it the wrong way the first time.
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  11. #11
    Software engineer
    Join Date
    Aug 2005
    Location
    Oregon
    Posts
    283
    Yeah, all I can say is read all the books you can. Even the worst book ever will have at least something to carry on with.

    Finally, I just want to give the OP a link of reviews of people who actually finished Tricks. You will find more honest reviews here than what you can find at a message board swamped with kids. I'm convinced that if you don't go this route, you won't break into the industry. Tricks II is about SOFTWARE algorithms and rasterization, not about the latest and greatest APIs that will make your life easier, but it trains your mind to think. I know this because I took this route, and I was hired simply because I understood graphics much more than the average graduate. Seriously, you mind as well give up now if you plan on letting hardware do the work for you. You need to know how it works from the bottom, not going from the top to the bottom. It will be much more difficult. If you don't plan on doing a career in graphics, this post of mine doesn't matter. Allegro may be a fine choice to get some simple games out soon as possible.

    Tricks 1:
    http://blog.markwshead.com/info2/Tri...-Edition).html

    Tricks 2:
    http://blog.markwshead.com/info2/Tri...asterizat.html
    Last edited by dxfoo; 09-17-2006 at 12:15 PM.

  12. #12
    Registered User
    Join Date
    Dec 2005
    Posts
    43
    Alright, I'll buy "Tricks of the Windows Game Programming Gurus" first and see how I like it. One last question though: what is included on the CD-ROM provided with this book?

  13. #13
    Software engineer
    Join Date
    Aug 2005
    Location
    Oregon
    Posts
    283
    I'll post what the readme says on the CD:

    Code:
    T3DGAMER1 <DIR> - The main directory.
          |
          \DIRECTX       <DIR> - Contains DirectX SDK.
          \APPLICATIONS  <DIR> - Contains the Applications.
          \ONLINEBOOKS   <DIR> - Contains the On-Line books on 3D.
          \ARTICLES      <DIR> - Contains the extra articles.
          \ARTWORK       <DIR> - Contains stock art media for your use.
          \SOUND         <DIR> - Contains stock sound and MIDI for your use.
          \SOURCE        <DIR> - Contains the entire source code for the book.
          \GAMES         <DIR> - A lot of cool games!
          \ENGINES       <DIR> - This directory contains numerous 2D/3D engines including
                                 the entire Genesis3D engine from Eclipse Software 
                                 along with on-line API and usuage manuals written by
                                 David Dougher.
    There is also a second CD containing a student version of Microsoft Visual C++ 6.0, but you could use Visual C++ 2005 Express Edition for free on MS's website. With some little work you can get the Win32 API working on it. I would suggest 6.0 first if you're a beginner so you don't get lost, but definitely think about upgrading compilers in the future when you're comfortable. If you already compiled some Win32 API code, your IDE should work fine with minor differences. Enjoy the book!

  14. #14
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    horrifying black art
    That about sums this thread up nicely. Don't touch MSVC 6.0 unless you want major pains later. Get MSVC .NET 2005 express.

  15. #15
    Registered User
    Join Date
    Aug 2003
    Posts
    1,218
    Do not use MSVS 6.0. That is one of the worst compilers still used, it has a crappy STL implementation, it is utterly nonstandard (if i remember correctly it was developed before the standard was out) which means that if you write code on this and then upgrade, you are just begging for those errors to come spitting at you.

    So i say again, do not use MSVS 6.0!
    STL Util a small headers-only library with various utility functions. Mainly for fun but feedback is welcome.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. beach bar (sims type game)
    By DrKillPatient in forum Game Programming
    Replies: 1
    Last Post: 03-06-2006, 01:32 PM
  2. new book about game programming using DirectX
    By Carlos in forum Game Programming
    Replies: 0
    Last Post: 09-20-2005, 08:30 AM
  3. My Memory Game
    By jazy921 in forum C Programming
    Replies: 0
    Last Post: 05-05-2003, 05:13 PM
  4. An old good DirectX game of mine
    By Sang-drax in forum Game Programming
    Replies: 8
    Last Post: 07-25-2002, 11:05 AM
  5. DirectX books for beginner
    By jatan in forum Game Programming
    Replies: 6
    Last Post: 09-22-2001, 10:34 AM