• Game Engine Design
    42 replies, posted
Hi, when I was twelve I got interested in programming. Since then, I taught myself C++ programming through a book. However this book did not go over graphics/sound programming (as I had expected). I am currently using the sight directxtutorial.com to learn graphics programming. This is a valuable resource, but I would like a book (since that's probably the best way to learn without a teacher) to learn the subject fully. So my questions it this: What is the best book for my money to learn: Graphics Programming using Direct X 11 and C++ Sound Programming using Direct Sound and C++ As far as physics I feel I could make a rudimentary engine for my needs, but if it were to have it that would be great Thanks in advance :)
If I were you I would switch to OpenGL, but that's just my opinion man.
[QUOTE=AtomiCasd;33170512]If I were you I would switch to OpenGL, but that's just my opinion man.[/QUOTE] Is that because you think it is better, simpler, more compatible, or what? And I appreciate the input :)
I doubt you can find much books on Physics engine programming. You wont need a book for Sound engine programming unless you are planning on doing something VERY advanced. Personally i have this book (got it for free) [url]http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1598220535[/url] it is dx10 but the differences between dx10 and 11 are very minor. Here is a list of best selling DirectX books [url]http://www.amazon.com/exec/obidos/tg/browse/-/3922/1/002-8174022-0714455?rank=%2Bsalesrank&submit.x=6&submit.y=7&submit=Go%21?tag=realtimerenderin[/url] [editline]7th November 2011[/editline] OpenGL isn't more simple(its quite a lot harder to start with infact), its more compatible but that's about it. I personally have basic understanding of both. I use DirectX when i can but that isn't a option on most platforms. OpenGL isn't limited to just Desktops, The PS3 uses a OpenGL type envrioment, Andriod and iOS both run OpenGL ES, and OpenGL ES also is available in the latest browsers in combination with javascript(HTML5)
Doesn't sound like I want to switch. I am not going for compatibility. I am only targeting the Windows Operating system. Also I have already payed for a premium account on Directxtutorial.com, and I already have some code written using Direct X 11 Also it would be nice if I could get a book with a lot of info, as in it taught all of the things mentioned above. However I do understand if that is not preferable or there aren't many books like that. I understand how I would create a physics engine and if sound programming (I am aiming for simple 3D sound) is really simple I can learn from a website.
Actually there are quite a lot of books on physics engine development. If your background is maths then [URL="http://www.amazon.co.uk/Game-Physics-David-H-Eberly/dp/0123749034/ref=sr_1_2?ie=UTF8&qid=1320698279&sr=8-2"]Game Physics[/URL] is very comprehensive. I've seen [URL="http://www.amazon.co.uk/Physics-Game-Programmers-Grant-Palmer/dp/159059472X/ref=sr_1_3?ie=UTF8&qid=1320698221&sr=8-3"]Physics for Game Programmers[/URL] recommended too but I can't comment on that.
[QUOTE=flayne;33170740]Doesn't sound like I want to switch. I am not going for compatibility. I am only targeting the Windows Operating system. Also I have already payed for a premium account on Directxtutorial.com, and I already have some code written using Direct X 11 Also it would be nice if I could get a book with a lot of info, as in it taught all of the things mentioned above. However I do understand if that is not preferable or there aren't many books like that. I understand how I would create a physics engine and if sound programming (I am aiming for simple 3D sound) is really simple I can learn from a website.[/QUOTE] That's a great reason to instantly break the portability of your game engine. The amount of lazy programmers in this country sickens me.
[QUOTE=Soviet_Banter;33170829]That's a great reason to instantly break the portability of your game engine. The amount of lazy programmers in this country sickens me.[/QUOTE] It's not laziness. It's just Direct X is more commonly used by professionals doing PC exclusive games. So I went with it. Also I'm using Visual C++ 2010 which does not compile to macs. If you still think I should use openGL against these reasons by all means say so.
[QUOTE=Soviet_Banter;33170829]That's a great reason to instantly break the portability of your game engine. The amount of lazy programmers in this country sickens me.[/QUOTE] Portability is the last concern when you're learning the graphics pipeline, besides there is an almost 1:1 mapping of features in OpenGL and DirectX so switching APIs is not difficult. Not to mention a non-lazy programmer would be designing the game such that the graphics API calls were abstracted.
I HAVE AN IDEA! I'll make the direct X version of my game. If it is popular enough, I shall make an openGL version of the game. Since I am selling the game for money, I can buy a seperate book at the time. :) Evurybudi hechpie!
[QUOTE=flayne;33170897]It's just Direct X is more commonly used by professionals doing PC exclusive games.[/QUOTE] How many people are making PC exclusive games these days? Oh wait. None. Unreal supports everything ever, Source supports the 360 and the PS3, and Blizzard ports all their games to Mac. If you want to work in DirectX, that's your choice. You can't, however, say that portability isn't an issue.
[QUOTE=ROBO_DONUT;33171046]How many people are making PC exclusive games these days? Oh wait. None. Unreal supports everything ever, Source supports the 360 and the PS3, and Blizzard ports all their games to Mac. If you want to work in DirectX, that's your choice. You can't, however, say that portability isn't an issue.[/QUOTE] First of all, NOT TRUE. Second, I am not using other peoples engines. Third, Yes I can say that. Fourth, I just posted the thing right above you read that before responding.
[QUOTE=bean_xp;33170969]Portability is the last concern when you're learning the graphics pipeline, besides there is an almost 1:1 mapping of features in OpenGL and DirectX so switching APIs is not difficult. Not to mention a non-lazy programmer would be designing the game such that the graphics API calls were abstracted.[/QUOTE] Rate me dumb all you want, but an indie developer is going to go nowhere with a propriety mind-set.
[QUOTE=flayne;33171029]I HAVE AN IDEA! I'll make the direct X version of my game. If it is popular enough, I shall make an openGL version of the game. Since I am selling the game for money, I can buy a seperate book at the time. :) Evurybudi hechpie![/QUOTE] First, having that kind of abstraction is a really great thing. If your engine is written such that it can cleanly support two renderers, then you've done your job as a programmer well. However, you do not and will not want to write a second renderer. It's a ton of work just to write and maintain one, and you'd be duplicating all that effort. And for what gain? What do you get out of having an additional Windows-only DirectX renderer that the cross-platform OpenGL wouldn't already provide?
Jeez I just wanted a book not a debate about graphics API's, portability, and laziness. I have already mentioned what I'm going to do about portability. Now, I just need to learn the API's themselves XD
[QUOTE=flayne;33171077]First of all, NOT TRUE. Second, I am not using other peoples engines. Third, Yes I can say that. Fourth, I just posted the thing right above you read that before responding.[/QUOTE] My point was that you can't say "It's just Direct X is more commonly used by professionals doing PC exclusive games" because there are [i]absolutely no[/i] "professionals doing PC exclusive games" today. They've gone extinct. Survival of the fittest.
[QUOTE=ROBO_DONUT;33171097]First, having that kind of abstraction is a really great thing. If your engine is written such that it can cleanly support two renderers, then you've done your job as a programmer well. However, you do not and will not want to write a second renderer. It's a ton of work just to write and maintain one, and you'd be duplicating all that effort. And for what gain? What do you get out of having an additional Windows-only DirectX renderer that the cross-platform OpenGL wouldn't already provide?[/QUOTE] Well that's the ''popular enough" part of it. Besides I don't mind the work if I'm making tons of money off of it xD. [editline]7th November 2011[/editline] [QUOTE=ROBO_DONUT;33171143]My point was that you can't say "It's just Direct X is more commonly used by professionals doing PC exclusive games" because there are [i]absolutely no[/i] "professionals doing PC exclusive games" today. They've gone extinct. Survival of the fittest.[/QUOTE] Yes they have gotten rarer but that isn't true. Also I should have said professionals doing PC games (even if there doing it on other platforms as well) use it. Take Crysis 2 and AVP 2010 as examples
[QUOTE=flayne;33171151]Well that's the ''popular enough" part of it. Besides I don't mind the work if I'm making tons of money off of it xD. [editline]7th November 2011[/editline] Yes they have gotten rarer but that isn't true. Also I should have said professionals doing PC games (even if there doing it on other platforms as well) use it. Take Crysis 2 and AVP 2010 as examples[/QUOTE] Good luck. I cannot wait to play Crysis 3 by flayne!
Sigh people. First please note the post: Jeez I just wanted a book not a debate about graphics API's, portability, and laziness. I have already mentioned what I'm going to do about portability. Now, I just need to learn the API's themselves XD Second, Don't be assholes when you post, at least try to be somewhat helpful. Notice: I only have two posts about books in this thread about books Thank you very much OldFusion and bean_xp. And at least AtomiCasd wasn't an ass.
Here's a book that may be helpful to you. [url]http://www.amazon.com/Programming-Visual-Basic-2010-Beginners/dp/0521721113/ref=sr_1_4?ie=UTF8&qid=1320700706&sr=8-4[/url]
@flayne: You have unreasonable preconceptions that are probably the result of being part of that 'gamer'-consumer environment for so long. In regards to the post above mine: I hate it when I've got a valid point and some jerk undermines it by taking the same side and then being a complete douche.
Ok yeah, that post was harsh. Sorry for calling you guys asses, but I was getting kinda pissy what with the lack of any progress in getting a book. I have decided what I'm going to do with my game. I just want a book matching the description. Sorry. [editline]7th November 2011[/editline] [QUOTE=ROBO_DONUT;33171552]@flayne: You have unreasonable preconceptions that are probably the result of being part of that 'gamer'-consumer environment for so long. In regards to the post above mine: I hate it when I've got a valid point and some jerk undermines it by taking the same side and then being a complete douche.[/QUOTE] Ya sorry about that. I understand I might switch to OpenGL I am just unsure. I would be wasting 35 dollars though. Do you think it is worth it?
[QUOTE=flayne;33171029]I HAVE AN IDEA! I'll make the direct X version of my game. If it is popular enough, I shall make an openGL version of the game. Since I am selling the game for money, I can buy a seperate book at the time. :) Evurybudi hechpie![/QUOTE] This kinda makes you sound like a pompous ass.
[QUOTE=flayne;33170405]Hi, when I was twelve I got interested in programming. Since then, I taught myself C++ programming through a book. However this book did not go over graphics/sound programming (as I had expected). I am currently using the sight directxtutorial.com to learn graphics programming. This is a valuable resource, but I would like a book (since that's probably the best way to learn without a teacher) to learn the subject fully. So my questions it this: What is the best book for my money to learn: Graphics Programming using Direct X 11 and C++ Sound Programming using Direct Sound and C++ As far as physics I feel I could make a rudimentary engine for my needs, but if it were to have it that would be great Thanks in advance :)[/QUOTE] In my experience, programming books are good for learning the basics. There are books that are more in-depth about some subjects, but personally I much prefer reading papers - they often contain statistics, comparisons against other techniques, very good explanations and working, even optimized, implementations.
Well let me be more specific since clearly this post has become more about whether or not I should use OpenGL or Direct X 11. I do want to keep most of the game's details a secret. I will say this: It is a sandbox Game. It has modding support. It's control scheme would probably fit on a controller fine. Release on Console is only something I want to do if my Game is very popular (I'm not going to predict or hope for anything besides I don't lose money from it). I was planning on using Direct Sound so if i were to switch I would need to find another sound API. So if you think I should switch then tell me and suggest a new sound API (I am unsure if OpenGL has one built in).
[QUOTE=flayne;33171852]Well let me be more specific since clearly this post has become more about whether or not I should use OpenGL or Direct X 11. I do want to keep most of the game's details a secret. I will say this: It is a sandbox Game. It has modding support. It's control scheme would probably fit on a controller fine. Release on Console is only something I want to do if my Game is very popular (I'm not going to predict or hope for anything besides I don't lose money from it). I was planning on using Direct Sound so if i were to switch I would need to find another sound API. So if you think I should switch then tell me and suggest a new sound API (I am unsure if OpenGL has one built in).[/QUOTE] Sorry, I'll stop being an ass. If you decide to switch, then use OpenGL and OpenAL.
[QUOTE=Soviet_Banter;33171897]Sorry, I'll stop being an ass. If you decide to switch, then use OpenGL and OpenAL.[/QUOTE] Thank you. All is forgiven :)
[QUOTE=flayne;33171600]Ya sorry about that. I understand I might switch to OpenGL I am just unsure. I would be wasting 35 dollars though. Do you think it is worth it?[/QUOTE] There isn't a simple answer here. If this were a 'real' game engine type thing, I'd go with OpenGL because it leaves the most options open. The mobile/tablet markets are growing [i]fast[/i], and that's probably an indie dev's best shot. However, as much as you insist, I don't think your first game/engine is at all serious. At least, it really shouldn't be. It's more of a learning experience, and I don't think there's anything wrong with learning either one. All of the ideas from D3D translate directly to OGL and vise-versa. There is [i]one[/i] reason I can think of where you might actually want to go with D3D is if you were aiming to release on the XBox Live Arcade. I've never used it myself and don't know a whole lot about it, but my guess is that it's probably a really strong competitor to iOS dev or the Android Marketplace in terms of viable platforms for independently-developed games. In short, if you've already started learning D3D, you can continue with that. If you do want to switch to OGL later on, you'll find that most of the ideas still apply.
[QUOTE=Soviet_Banter;33170829]That's a great reason to instantly break the portability of your game engine. The amount of lazy programmers in this country sickens me.[/QUOTE] wow nationalism [b]and[/b] an irrational hatred of directx11, a++
If you want to learn OpenGL, i recommend [url]http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/dp/0321712617/ref=sr_1_1?ie=UTF8&qid=1320702385&sr=8-1[/url]
Sorry, you need to Log In to post a reply to this thread.