Page 1 of 2

Books on Game Development

Posted: Thu Jan 28, 2010 11:35 am
by Thomas
Hi,
I know this is not the right forum to ask(still I take the courage to ask :mrgreen: ),I am from India and most of the game development books are not available here in India.I am considering ordering 10 - 15 books in bulk from amazon.What are the best books available on game programming. Do you fellows know of any site ( other than amazon ) where I can buy these books in bulk ?(There should be international shipping option ) Also I am looking at intermediate level books not beginner level ones.Any help would be appreciated .

Here are the books which I have already read /have , I want to add 10 - 15 more good books to my library.I am not a pro game developer,I just happen to be an enthusiast and a voracious reader.

Book which I Already have:
  • Killer Java Game Programming
  • RTS Game Programming with Direct 3d
  • Michael Abarash – graphics programming black book
  • Professional XNA Game programming
  • XNA Unleashed
  • AI for Game Developers
  • Graphics in C ( Yashwant Kanetkar – using BGI horrible book)
  • Teach Yourself Game Programming in 24 hrs – Michael Morrison – uses GDI
  • Beginning Mobile Game Programming - Michael Morrison – j2ME
  • Pro Java 3d Game Programming
  • Direct X Fundas - Yashwant Kanetkar
  • Advanced Graphics Programming – Stephens
  • Game Programming the L-Line -- using Pygame , too much bluff and very little content
  • IPhone Game Development -- very brief and quite comprehensive , I am quite impressed with this one
These are the books I could find from local bookstores here(except 2 which which i had to purchase from amazon).Also please do excuse my poor English.
--Thomas

Re: Books on Game Development

Posted: Thu Jan 28, 2010 11:49 am
by Brynet-Inc
You're right, this is the wrong forum.. ask this somewhere else.

I don't recommend gaming at all, but seeing all those books related to Direct X, I figured I should at least recommend a graphics library that's not-so-proprietary.. like OpenGL or SDL (..perhaps both?).

Random blog post from some proprietary game developer, pretending to care:
http://blog.wolfire.com/2010/01/Why-you ... ot-DirectX

Re: Books on Game Development

Posted: Thu Jan 28, 2010 11:56 am
by Thomas
Hi,
Thanks Brynet-Inc for your reply.I am used to opengl,DirectX,SDL,allegro,svgalib and their likes,so platform/library is not much of a concern to me.I do not intend to start a flame war,please do not bring up DirectX vs OpenGL issues or other provoking remarks .

{Please do excuse my poor English}
--Thomas

Re: Books on Game Development

Posted: Thu Jan 28, 2010 12:09 pm
by Combuster
The good books in my library:
Looking at your list, they should nicely fill up some holes in your existing collection.

Re: Books on Game Development

Posted: Thu Jan 28, 2010 1:51 pm
by Owen
Considered getting one of the OpenGL reference books? They're always useful.

From a satisfied OpenGL programmer ;)

Re: Books on Game Development

Posted: Thu Jan 28, 2010 7:12 pm
by AndrewAPrice
Wouldn't it get a bit redundant reading how to draw your first sprite/polygon over and over again? You don't need a different book explaining the same thing in a slightly different context (Java vs C++, Direct3D vs OpenGL). The DirectX SDK comes with a wonderful walk-through tutorial in the documentation which is how I learnt. Once you understand the basics of 3D (what view/world/projection matrices, shaders, indices, vertices are, how shadow mapping works) then you begin to realise the difference between Direct3D and OpenGL is the API which wraps around the same 3D concepts.

If you were serious about 3D programming and want to skip the very beginner stuff that you'd learn from the DX SDK tutorials ('how to draw a triangle') then I recommend:
3D Game Engine Programming by 3D Game Engine Programming
The book is about game engines, so it goes into how to write a reusable framework for all your games. It teaches you matrix math (including inlined SSE), audio, networking, input, and at the end an example project (step-by-step multiplayer FPS including a fully featured GUI level editor).

If you keep buying introductory books you're going to skip a lot of the more advance stuff like deferred shading for example. If you're looking for more serious/advance books them I recommend GPU Gems (free in HTML form from NVidia) and the ShaderX series (1 to 7 - 8 is being written). Rather than being a tutorial you can read linearly these books are a compilation of technical articles so they're a great reference for advance graphics programmers. They cover topics on materials, shading, optimization, procedural generation, water, realistic rendering, post production, facial animation, etc.

The best way you can learn game programming is to do something practical. I don't mean do anything too basic or too advance either. When I set out to make my Minesweeper clone, instead making a Windows Minesweeper clone I added my own additional requirements:
- The game would be in full 3D - map, mines, flags.
- Use a 3D prop (bushes) to hide the mines that disappear when you click on them.
- Use particle effects (clicking on bushes or a mine exploding).
- Be able to zoom out to see the entire map.
- Have background music and sound effects.
- Have an in-game menu with the main playing window shrinking down.

Re: Books on Game Development

Posted: Fri Jan 29, 2010 3:42 am
by Thomas
Hi,
Thanks Combuster and Andrew for your insightful remarks and replies :) .
--Thomas

Re: Books on Game Development

Posted: Fri Jan 29, 2010 4:14 am
by Combuster
Owen wrote:Considered getting one of the OpenGL reference books? They're always useful.
I have the HTML reference on my box, don't need a book for that :wink:

Re: Books on Game Development

Posted: Fri Jan 29, 2010 6:12 am
by ATC
You've got quite a bit of reading to do already, my friend! :shock:

Two books that taught me the entirety of the XNA API within days were:

XNA Unleashed (you have that already)
XNA Game Programming Recipes

Mind you, I already was fluent in C#, the .NET API, Dx9 and general game development so it was easy. Those books each have some shortcomings though, and a lot of the example code is very dumbed-down. It's not really the place to look if you're trying to implement hideously complex things (as I seem to always try, lol).

I'm an open-source lover, but I disagree with the idea that DirectX should be avoided like the plague. It has a plethora of advantages on Windows, and for Windows alone, I favor it. But don't totally restrict yourself to Dx/Windows unless you are SURE you will never develop for other platforms. When in doubt, go OGL. Ideally, support every graphics and media API you can. I currently support XNA, Dx9 & 10 and haven't gotten around to GL yet (but it's next). Use a modular, component oriented design for making an engine so you can stay flexible; for instance, you may want to integrate parts of OGRE into your engine some day. You never know.

Btw, there is a project called "MonoXNA" I heard about which is attempting to make an OpenGL wrapper for C# on the Mono platform so XNA and MonoXNA games can be binary compatible. Not sure how far along they are now, but it's open-source and I think deserving of some help.

Re: Books on Game Development

Posted: Fri Jan 29, 2010 7:39 am
by AndrewAPrice
I agree with ATC and think XNA would be a great entry point for someone learning graphics programming since a lot of resources on more advance topics that are targeted towards a more beginner demographic. Rendering in XNA is virtually identical to rendering in Direct3D 10 without geometry shaders (the Windows XNA runtime is actually a wrapper around D3D9 without the fixed-function pipeline).

Anyway, I'm getting kind of off the point if you want game programming, rather than graphics programming. With every game, someone isn't going to rewrite, debug, optimise all the physics and rendering code. Instead they use a variety of engines, so you can focus on writing gameplay logic and code for getting the various frameworks to work with your gameplay logic. When you use an engine you deal with things at a much higher level; you create a scene, attach objects to nodes, insert nodes into the scene, apply animation to nodes. And you're using code that's been tested and optimised by countless other developers. I recommend the cross platform LGPL OGRE 3D graphics engine, the freeware nVidia PhysX (VERY fast, hardware accelerated on newer nVidia cards), and the cross platform OOIS for input to get you started.

But with anything, following the tutorials or books on the engines will get you familiar with how the API works, but you really need to start your own hobby game project and do your own problem solving to truly learn.

Re: Books on Game Development

Posted: Fri Jan 29, 2010 7:56 am
by Combuster
but you really need to start your own hobby game project and do your own problem solving to truly learn.
QFT.

Reading books can only do so much. It doesn't really help to read something specific if you are not doing just that. Start with the basics, and put the appropriate book next to what you are currently doing. Things like the GPU gems will hardly help you if you haven't had at least some experience with shader programming etc. The reason I posted my selection of books is to have everything from the basics in a broad perspective. Once you get past the basics, you can make a decision where to specialize.

Re: Books on Game Development

Posted: Fri Jan 29, 2010 8:47 am
by Thomas
Hi,
I have written a small game engine during my free time,I cannot however share the code without permission due to work commitments.It however does not hurt to read more.I am an amateur game programmer and I would like to atleast know how the pros do it.
--Thomas

Re: Books on Game Development

Posted: Fri Jan 29, 2010 6:09 pm
by ATC
It sounds like you really don't have any concrete plans. For one, you need to at least decide on a target (or more) for deployment. Then you need to make a final decision on your primary language (you can, however, use multiple languages if required or simply desired). Once you know that, then you can make the logical choice in your main API (or ONLY API). If you don't do that before starting any serious work, you're basically playing around and wasting time. Not a problem for general learning, but a big waste if you're shooting for a certain release time-frame. Don't try to make WoW for your first project. Pick something manageable, challenging for your skill level and practical. Answer all of these questions and make a design document before you get started.

Next, you really need to consider whether or not you really need to "re-invent the wheel", and by wheel, I mean engine. In my case, I absolutely had to; no way around it. But maybe you don't. Developing an engine and then a game can take 2-3 (or more) times longer than using an existing one. And it's very inefficient if it's tightly coupled to the design and implementation of the game (virtually no re-usability? hard to maintain? changing one breaks the other?).

The big question is:
1) Is it, in any way, possible for me to make the game with an existing game engine "out of the box"?
::If not, can I adapt/modify/extend the engine to meet my needs?

If yes, it's probably best to use that existing engine or adapt it, rather than making a brand new one from scratch (especially if you're new to game/simulation dev). Only valid exception I can think of is extremely harsh licensing/legal terms on that particular engine or a ridiculous price you cannot afford. If both answers are no, you'd better check and recheck to make sure there's no way possible before trying to start on a serious engine. Developing a game can be fun; developing an engine can be dull and tedious (not to mention time consuming and expensive). I won't even say how much I've spent so far. *shudders* :| And haven't gotten a penny in returns on it yet. To further the problem, I have to work on other things to make money (thus slowing it down and costing more). Can be brutal. But that's the nature of our project. It's a serious, historical simulation that no engine on the market (that wouldn't cost millions) could spit out. And we're looking at several more years development time. It's not a pleasant situation, so you'd better think long and hard before ever making such a commitment. Once you do, there's no way to back out with all limbs intact. :S

A simple option you can do for free is to make the game "it's own engine". In other words, there IS NO engine like we think of it. Rather, the game is just built right on top of your graphic/media API. This is a "quickie", one-time solution. You can basically forget portability and re-use. But it's not very hard and can be cheap (or free). That can be harder with low-level APIs if you're uncomfortable with it. With XNA, it's a breeze.

Well, just think about those things, and make some concrete decisions. Otherwise you're not really doing anything with no objective. If simply experimenting and learning is the only goal right now, then you're ok. But I still suggest you think more concrete and consider where you want to go. Combuster is right though. He's not saying reading is "no good", but that it's only "so good". In other words, reading is only as good as what you know in practice (experience). You should read a chapter then implement the concepts to truly learn it. Reading a whole book without working step by step on some new concept code is pretty wasteful. And yup, when you learn the basics you will know exactly what you are the best at and love to do. For me, it's physics and realism; i.e., flight models, damage models, ballistics, etc. I'm rather poor with shaders and tech art.

Goodness, sorry for my wordiness. I type rather fast! :lol:

Re: Books on Game Development

Posted: Sat Jan 30, 2010 8:43 am
by Dex
This site owner, as written many game coding books
http://www.xgamestation.com/

Re: Books on Game Development

Posted: Sun Jan 31, 2010 2:13 pm
by Thomas
Hi,
@Dex: Who doesn't know about the great Andre Lamothe:) .I have already brought his book Black Art of Game Console Design (and read it too).There is a good eBook that comes free as well with the book (Black art of 3d Game Programming :)). He is also the editor of many Premier series Game Development Books. Thanks for the info Dex; your help is very much appreciated.

@ATC : I do not have any plan of making a professional quality game or releasing it to public.I am doing it for fun and reading books for fun too :).I know that I am going way off topic, but since you asked, I guess I should answer your question. I am using XNA Game Studio. The main idea initially was to play around with my own abstractions. Only the 2d part is currently complete. The concept is as follows. A game is a system of sprites. But I there can be different kinds of sprites 1) Static 2) Moving 3) Moving and Animating. Therefore I make use of the strategy pattern to implement it.Then there is an observer watching the game and each sprite should get registered with the observer(ie the Observer Pattern). Whenever an event happens the subscribers get notified and event gets handled (eg when collisions happen) .For keeping track of the different states I make use of the state pattern. I have other miscellaneous things implemented like support for python scripting, support for parallax scrolling etc. This architecture makes it very easy to build small 2d games. I have already made 2 games with it .Now I want to add a tile engine. I want to make my own 2d RTS engine in the end. I am good with general 3d, AI, physics and mathematics. I am still shaky about shaders and GPU related stuff. I am considering isometric tiles than normal square ones, so I am considering this book as well http://www.amazon.com/Isometric-Program ... 0761530894
Finally it’s my own hobby project. No one really cares about it.I can complete it at my own pace. There are no deadlines to meet, no co-worker to compete with or help, it’s my own world. Reading gives me lot of statisfaction.The point is, the entire thing is mainly for self-gratification. Finally I appreciate your concern both ATC and Andrew.
If anyone has further suggestions on books please feel free to mention it as well.
{Disclaimer : Please do excuse my poor English}
--Thomas