Buy Used
Used: Very Good | Details
Sold by the book house
Condition: Used: Very Good
Comment: This item will be picked, packed and shipped by Amazon and is eligible for free delivery within the UK
Add to Basket
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Beginning Game Programming (Premier Press Game Development) Paperback – 13 Oct 2004

See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from
Paperback, 13 Oct 2004
£15.95 £1.69

There is a newer edition of this item:

Beginning Game Programming
In stock.


Product details

  • Paperback: 337 pages
  • Publisher: Premier Press; Pap/Cdr edition (13 Oct 2004)
  • Language: English
  • ISBN-10: 1592005853
  • ISBN-13: 978-1592005857
  • Product Dimensions: 23.1 x 18.3 x 2.5 cm
  • Average Customer Review: 3.7 out of 5 stars  See all reviews (3 customer reviews)
  • Amazon Bestsellers Rank: 2,351,718 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Inside This Book (Learn More)
Browse and search another edition of this book.
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

3.7 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See all 3 customer reviews
Share your thoughts with other customers

Most Helpful Customer Reviews

Format: Paperback Verified Purchase
I bought this book as a cheaper alternative to a newer volume but it's really outdated by this point, I was hoping I could fluke using it but all of the recommended programs to use can't even be bought through official channels anymore and none work natively with Windows 7. If you happen to be running a machine and operating system from six years ago, this book will almost certainly be for you, it's brilliantly written and, from the little I have read before I concluded I couldn't use the code, very thorough. I intend to keep it as reference material even though the code doesn't work but it's virtually useless to me. This is not the book's fault, I was an idiot for not buying a newer volume. Luckily the fourth edition is on its way so I'll probably buy that when it comes out. Thank god I bought a used copy and only lost £5 as opposed to £20!
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
Format: Paperback
I cannot recommend this book highly enough. This is the book I've been looking for. I was tired of buying books that just kept showing me how to do a spinning cube. This book shows you how to build a model in Anim8or. Then how to convert it to a DirectX 3D model and then put it in into a game. I have been searching for this book for a long time. The code works fine with Visual C++ 6.0. If you are using Visual 2005 or higher you will have issues. Otherwise a great book. Buy version 2.0 if you want learn how to put 3D models into your game.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
4 of 6 people found the following review helpful By Stephen Watson on 17 Oct 2007
Format: Paperback Verified Purchase
I have only just started using this book, so technically you can ignore the 3 stars, I just wanted to put a warning on for anyone getting this book. It reads fairly easily but none of the code worked properly, I did some searching online and I found the answer on some forums. If you get an error when compiling them that is similar to the error below
"error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [29]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast"
Then the solution is typed below, it worked for me, hope it works for anyone else having the same trouble. And by the way, I'm using Visual C++ 2005, people with different compilers may or may not have this trouble at all.

"Project -> Properties -> Configuration Properties -> General -> Character Set

Set that setting to Use Multi-Byte Character Set"
2 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Helpful Customer Reviews on (beta) 12 reviews
10 of 12 people found the following review helpful
What You Would Expect 24 Jun 2006
By Travis Parks - Published on
Format: Paperback Verified Purchase
If you are like me - knowledgable about C++ - you will appreciate this book if you are trying to get started with Windows DirectX programming. I have read a lot of introductory gaming books and I can honestly say that Harbour gives the beginning chapters the attention they desperately need. I have read too many gaming books that go over WinMain and WinProc so fast you have no idea what they actually do. True - they really don't play that big of a role in the full span of game development. Here is the thing, though, if you are typing things like "HINSTANCE" and "LPTSTR" and don't know what they mean, it is likely you are just memorizing everything you see in the book; what good is that? As a programmer, you need to know what is going on so that random letters suddenly make sense and you know what is going on. Never program blindly - it is the first step to failure! Harbour explains everything in concise, well-rounded chapters that make coding even easy for beginner programmers. I have another book called Beginning DirectX 9, and the author starts out by giving over a page worth of code with hardly sufficient explainations. Harbour's book is not like that! He is very ambitious and will direct a reader to actually learn something - not everything - but anything a serious programmer needs to pick up another books that will be more challenging. His only fault may be that he repeats himself too much, but it never takes away from the quality and it really stresses the important things. If you are sick of programming books that just aren't working out for you, this is your last caveat. Enjoy learning something for a change. :- )
28 of 39 people found the following review helpful
Sloppy, careless and thoughtless 6 May 2009
By J. Phillips - Published on
Format: Paperback
I'm taking the rare step of submitting a review of a book when I've only read the first three chapters. I think I have a fair point to make.

This is supposed to be a book for people who are confident in C/C++ but who have no Win32 or DirectX experience. Fair enough. But to be frank it's written in a very confusing style, full of sloppy carelessness and ambiguous sentences which will leave you scratching your head.

For instance, in describing the HINSTANCE parameter to WinMain on page 32, Harbour says:

"The hInstance parameter tells the program which instance is trying to run. For the first instance, you will want to initialize the program (covered later). But if the program is run multiple times in Windows, the general practice is to just kill the new instance (also covered later)."

I have no doubt that this sounds logical and makes sense to someone who is already well versed in how Windows programming works. But to the Windows beginner this just doesn't really make sense. Why would you want to "kill the new instance"? Fair enough, it says "also covered later" but this is the kind of idea that's going to confuse the beginner and interrupt the flow of learning. Why not just leave it all until later Jonathan, instead of confusing the reader with something that is just not going to make sense at this time?

At times Harbour says the most bizarre things which make you wonder if you really want to learn the subject from him or not, for instance:

"In my opinion....a game shouldn't run in a window, it should *always* (without exception) run fullscreen. Do you want players focusing on your game or on instant messages and e-mail?"

So, the guy has some pretty fixed ideas about what a game should and shouldn't be from the start. What exactly is wrong with a game that runs in a window? There are many small games that work well in small windows which serve as a welcome little break from whatever the user is doing on the desktop. What does Harbour have against such games? There is no reason at all why a game should have to take up the full screen. Sure, he's just expressing an opinion here, but it just seems like a pretty strange opinion to express so adamantly in a book the purpose of which is supposed to introduce the reader to the tools with which to express his or her own personal game ideas.

Sometimes the layout of the book is sloppy as if no proof reading went on. For instance, Harbour lists the parameters in GetMessage(). In the final list item which explains wMsgFilterMin and wMsgFilterMax, he adds "The GetMessage call is the most crucial line of code in the entire Windows program!" This sentence belongs after the list, not part of a list item. I know this sounds trivial but it's a lack of attention to detail like this that is liable to make a reader weary about the level of accuracy and proof reading that has gone into a text.

Another gripe comes in the review questions at the end of the 2nd chapter. Question 2 is "What does the hDC variable represent?" I hate to break it to you Jonathan but the hDC variable has not been mentioned in the book yet.

Mistakes like this are inexcusable in a programming text and to be honest I'm sick and tired of spending money on programming books which are full of such sloppy errors even into their second editions. Seriously, how hard is it to have someone (even the author) proof read a book thoroughly from start to finish before releasing it?

One of the reasons I bought this book was I thought that in addition to introducing me to DirectX it would help me become familiar with the basics of the Win32 API like WinMain(), seeing as how most tutorials online do a terrible job of explaining things. Alas, this is no different. For instance, his terrible explanation of the hInstance parameter of his "InitInstance" function on page 45:

" passed by WinMain with the program instance that it receives from Windows. InitInstance will check this with the global instance to see if the new instance needs to be killed (the usual procedure in Windows). When this happens, the main instance of the program is set as the foreground window. To the user, it will seem as if running the program again just brought the original instance forward."

If Harbour thinks this is an acceptable explanation to lay upon a beginner Windows programming then what can I say? I'm not stupid, am quite proficient in C and C++ and have no trouble with some pretty advanced concepts. But I know little about Windows programming. And explanations like this are just far too vague and confusing. Where in his "InitInstance" function does he "check this with the global instance"? The code for the function suggests no such action. What is the "global instance" and how does it differ from the hInstance passed to InitInstance? He doesn't say. He doesn't even hint. It's as if he doesn't really care if the reader understands or not.

His subsequent explanation of the "nCmdShow" parameter is just as vague ("common values for this parameter include....")

One of the hardest things about getting to grips with the Win32 API is absorbing and taking in all the various names. To this end, it helps to hint at *why* something like nCmdShow is named as it is. Just a single sentence would suffice! Is that so hard?

And more: he goes on to explain that the functions "ShowWindow()" and "UpdateWindow()" are used to display the newly created window. But after making the technically inaccurate statement that hWnd is "passed to these functions by the CreateWindow function" (it's not - CreateWindow *returns* the hWnd value and the programmer passes it to those functions), Harbour goes onto tell us that UpdateWindow() tells the new window to draw itself, without even mentioning ShowWindow()! Was this book written hastily in an afternoon and published the next day?

Pushing forward, it seems that the book's sloppy and inadequate explanations continue in virtually every section. Next, Harbour goes on to explain his "MyRegisterClass" function which is declared as "ATOM MyRegisterClass(HINSTANCE, LPTSTR)." Thinking that one of the first things he would surely do would be to inform the reader what the type "ATOM" is, I scanned ahead...and ahead....and to my surprise, there is NO mention of ATOM.

Then, he tells us that MyRegisterClass defines a new variable of type "WNDCLASS." Fine. Let's look at the code....oh look, it's actually defined as type WNDCLASSEX. Does Harbour think to explain the difference? No. Does he even care if this causes confusion to the reader? Apparently not.

Some programming authors have a knack of predicting exactly which questions the reader will ask and answering them just as they thought of them. Judging by this book, Jonathon Harbour is not one of them. This is without a shadow of a doubt one of the worst programming books I have read. I note with interest that the "most helpful favorable review" for this book is written by....the author himself, who awards himself a modest five stars. Hilarious.
6 of 8 people found the following review helpful
A Valuable and Worthwhile Book 12 July 2005
A Kid's Review - Published on
Format: Paperback
I liked this book. Don't be fooled by the author when he says in the beginning that "This is a book all about game programming". It seems like its goal is to do everything with DirectX but make games. You spend the first 9 chapters making neat little programs to demonstrate basic Windows code and the various components of DirectX. However, the games come eventually; you make a sort of Pong clone in chapter 10, and a 3D version of Breakout to finnish the book. You also walk away with a fully functional game "framework" you can apply to your projects for a while to come. BE WARNED: the compiler included with this book is Dev-C++, an environment I have found very difficult to use with DirectX. Your better off using MSVC (the compiler that is actually covered in the book). To sum up: I gained a knowledge of how to make games with C and DirectX from this book, so I'm satisfied. Definitely valuable, worthwhile, and a great place to start for the novice game programmer.
3 of 4 people found the following review helpful
Quick and dirty, but a nice lite intro 27 Feb 2005
By Brian Will - Published on
Format: Paperback
This book is a very quick and dirty intro to DirectX 9.0b programming (it's very odd that directx is not in the title; perhaps the publisher felt it was redundant with their other begnning directx books). The book seems like it was written in a weekend using a dictation machine, but I forgive it this sin because it's very quick to read. Think of it as an example game source with heavy comments.

Note: you'll need to be familiar enough with pointers to understand the peculiar way the DirectX API immitates class objects in C (without using C++ features); I wish the author commented on this and why a class-based interface isn't offerend in the first place; I'm guessing it's so they don't have to write the API twice to support both C and C++. Nor does he address the more general question of 'are classes really so bad for performance?'.

In sum, my only real complaint with the book is its cost: for $30 bucks it should be more complete.

BTW, what's with the repeatedly redundant parts where he goes through setting up the visual studio project? He should have saved that hand-holding for the actually difficult concepts.
9 of 13 people found the following review helpful
Not bad. 8 Dec 2008
By Robert Beveridge - Published on
Format: Paperback
[N.B.: This is a review of the first edition, not the second.]

Jonathan Harbour, Beginning Game Programming (Thompson, 2005)

Beginning Game Programming has been kind of the holy grail of programming books for me for years. I can't even remember how it got such stature in my head, but over the last year or two it became one of the books at the very top of my wish list. When I found a copy for sale (relatively) cheap earlier this year, then, I jumped on it. Unfortunately, I had hyped it up so much in my head some disappointment was likely inevitable, but I tried to keep as even-keeled as possible when thinking about what to put in this review. After all, it's not a bad book, I've just read a number of intro-to-game-programming books that are better in at least one sense (comprehensiveness, readability, number/length/quality of code samples, or what have you).

One of the oddities of the book, and one which a number of novices will likely appreciate, is that the book focuses on C, rather than one of the more popular languages featured in books of this sort (C++, C#, or VB). For someone experienced in one of the other languages, that can be either a blessing or a curse, so take it into consideration. Aside from that, however, the main thing to note here is that the book dives right into game programming in C and DirectX (which version will depend on which version of the book you're reading; my copy is first edition, not second, and so the book's examples use an older version of DirectX than currently advertised). Code examples and discussions on the theory of game design start right up in the first chapter. Once again, this is something that some readers will find a strong point, while it will be a drawback to others. There's something to be said for some overview and nuts-and-bolts stuff (at least one of the book's reviewers complains about the lack of instructions for installing the software that comes with the book, for example), but if you kick things off from page one, you have room to cover more material in the same number of pages than you otherwise would. Can't call that a bad thing under any circumstances.

The book is also very small for this type of thing, only 337 pages, which limits the amount of space there is to cover material. Once again, something that could be seen by different readers as a good (not as imposing as doorstop-sized tomes) or a bad (not room to go into anything in depth) thing.

So, basically, it's up to you and what you're looking for in an intro-to-game-programming book. This could be it. It might not be. Check it out before shelling out the dough. ***
Were these reviews helpful? Let us know

Product Images from Customers