Programming a multiplayer FPS in directX - Oh really?
24 Mar 2008 @ amazon.com
To start with, I would say the reader needs to have some basic knowledge of DirectX before reading this book.
This is not a book that "teaches DirectX with the goal of creating a First Person Shooter". It’s a book where the author explains how his game engine/framework he built on DirectX works. It’s not the type of book that explains to you step by step what is going on and tells you to add this piece of code here, which in my opinion, is the best way of teaching something. Rather, it’s a book that lets the reader open up the source code in the CD/DVD and expect him to figure out where the code the author is talking about is located.
Furthermore, the source code won’t even compile cleanly in modern versions of visual studio.
Now, if you want to learn how an FPS game engine/framework was created, perhaps you might consider reading this book. I would recommend you look forth to modern game engines and forget about the book, as the end game is not all that good anyways...
So basically what I’m saying here is: 1. This is not a DirectX tutorial for newbies 2. The code/game is rather outdated.
The author knows what he’s talking about, though. The actual code is pretty good looking. He’s got a great concern for proper memory allocations and memory cleanups. The game loop he designed is pretty consistent too, and very well thought of. My only regret is that, in my opinion, the whole "tutorial" part of the book was disastrously focused, which is a shame.
Godd introduction, complete coverage
11 Sep 2007 @ amazon.com
In general I’m very pleased with the book "Programming a multiplayer FPS in directX". It provides a very nice introduction on how to approach the task of building a complex 3d application for user with basic knowledge of C(++) and DirectX. Structured programming is important! It is nice that one has such a concrete result at the end of the book. The only drawback is that it could have a little more in depth treatment of certain areas, but hey, it is already almost 500 pages :)
Interesting book; good analysis
24 Jul 2007 @ amazon.com
At my school we used this book for our networking class. (I had been begging our teacher to show us some directPlay stuff... yes, I’m aware that directPlay is ugh in terms of networking, but, it was a lot better than learning some java networking stuff. At least to me).
This book was an invaluable tool for designing my networking system. I basically gutted this networking system and stacked on some variable size packets that I studied from one of the Lamothe (actual author:Todd Baron ) books. (weird book, guy talks about his exploits in ultimate online for like, almost a chapter before he goes on to explain about how you can hack the networking system for exploits.
This book shows you how to implement a peer to peer network and then treat it like a server/client system. It’s an interesting (I chose to just go strictly peer-to-peer in my system) approach. And I read in one of the Game Programming Gems a way to bypass some of the connectivity issues with peer to peer networks.
Regardless, this book is an EXCELLENT study of networking for games. I read the networking chapter probably 20x during our project and it took me quite a while to figure out exactly what he was doing with it. In the end, it’s a logical system that works fairly decently.
We didn’t use the rest of the code in the book too much. Some of the other people in my class modified the FPS game to do other things (made a shooting gallery, other’s made some text based games on the networking code, etc).
The source code is useful and there is an update available for it (his precious linked list had a memory leak in it... he really harps on about it).
If you have never designed a game system before. This book is going to be a tremendous help. It teaches a bit about design patterns without all the unnecessary mumbo-jumbo, and how they directly relate to game programming and how they’re useful (helloooo singleton).
The code is in visual studio 6 I believe, and you have to set the default project to the actual project and not the engine to get it to run. Also, if your hardware doesn’t support hardware vertex buffers (you have integrated graphics, we had a couple people on the team with this issue) you have to change one of the directX intializers to something else to account for this (can’t remember the call now, look at some other directX init calls from somewhere else and you can find it).
He goes into quite a bit of detail about each topic and the basics, and then delves down into the design of each system. It’s very methodical and well thought out. AND YOU GET SOMETHING WORKING AT THE END!
Do not get this book if:
You are new to C++(you better have a CRYSTAL clear understanding of pointers and OOP, classes etc).
You are not interested in engine design.
You hate directX, or directPlay.
You hate max; he uses 3dsMax to make the scene files etc.
You are an industry professional that has a basic understanding of how a game engine works. This is definitely a n00b book.
You expect to get your hand completely held at each step. He does skip over some details that are easily discovered if you delve a little into the MSDN or any other online resource.
Get this book if:
You are incredibly interesting in engine design and want to get your feet wet; as well as learn some engine design in the process.
You’re interested in any of the systems this book covers ( I can really only attest to the networking system, and that he uses directPlay, which is in sunset mode).
Interested in basic modular programming and looking to expand the code in the book to meet your needs or to experiment with. It is an incredibly useful base to start with.
Are extremely comfortable in c++/directX and are interested in expanding your knowledge and it’s applications into games.
Overall, the book was a good purchase and is an excellent stepping stone into engine design. It has been very useful in my future projects since I’ve used this book in my course work.
Useful book, really bad FPS game
05 Feb 2007 @ amazon.com
I’ve enjoyed reading this book. It effectively shows you how to write a very basic first person shooter in directx. Well done. It briefly introduces rendering, a simple scripting system, peer-to-peer networking, handling user input, scene management, collision detection, sound effects, and more. Not bad. The code is fine, I had no problems compiling it in VS2005 (check the authors website for the latest code though) and I learned a lot from reading the book and going through the code. In short, I am glad to have bought and read this book and I do recommend it to others.
The book does have some drawbacks though. I feel that the actual game that is built in this book is embarrasingly bad. The networking system, rendering system, user interface, and everything else about it are bare-bones functional, but certainly not good enough that you’d want to encorporate them into your own game. I suppose that the thought is that you should first learn to build a Yugo before you learn to build a Ferrari, but personally I’d rather just learn to build the ferrari right off the bat :) Oh, and why must the graphics suck so badly? I realize that it doesn’t necessarily impact the goal of learning the various topics, but seriously, how hard would it have been to at least provide a decent character model, or some decent textures and lighting and so forth?
One last thing. The book assumes a familiarity with C++ and to a lesser extent with Directx, so if you are brand new to either of those, the book will be pretty challenging to follow.
Man does this book suck!
13 Jul 2006 @ amazon.com
This book is terrible! You read through the whole thing, and you don’t even learn anything!
I would strongly recommend people not to buy this book.
Otherwise, you just wasted 30 dollars on worthless bs.
Man does this book suck!
12 Jul 2006 @ amazon.com
This book is terrible! You read through the whole thing, and you don’t even learn anything!
I would strongly recommend people not to buy this book.
Otherwise, you just wasted 30 dollars on worthless bs.
Good but not perfect
05 Jul 2006 @ amazon.com
This book gives the reader a good general understanding of how networked gameprogramming works, and also a good bit of information about the internals of a complete game engine. The downside about this book is that it uses mixed hardware/software vertex processing which results in noncompatable programs with my laptop, however, if you change that to only software and recompile every demo then it works greate (A setting in CreateDevice()...), but slow (on my laptop...),, the occlusion checks ain’t the best, and the partitioning on load is slow,, slow as in - you cant augment the code for profiling or it will be runnig for more then 15 minutes on a 1.03GHz laptop... ("more then" due to the fact that i aborted it....) and the use of 3DsMAX files as levelmodels... and the occlusions based not on the real environement but on objects placed in the scene.. (invisible...)...
Except the minor none-perfect things this book is GREATE!!! AND a BIG NOTE: The minors noted above ain’t to bad,, it just looks like much when it’s writen down,, and I think that this book is a good read for everyone,, and I do REALY recomend it... however, i give it 4 of 5 due to the recomile things and the occlusion,,, however, this book ain’t about perfekt rendering,, it’s about connection a game to the internet :)... and it gives you MORE then plenty :)
A perfect book for beginners/intermediate level programmers
06 May 2006 @ amazon.com
This is a PERFECT book for intermediate level programmers that have a decent
knowledge of C++ and basic knowledge of DirectX and have always wanted to build their own 3d game.
This is the only book (as far as i know) that guides you from the beginning, and explains
every important part of the engine code.
in every chapter new features are added to the engine and in the end
you have a full working FPS engine!
Great!
Author explains not only usual stuff that can be seen in every other book (how to setup a DirectX or use DirectInput), but also goes into detail on how to design your engine writing
a reusable code and build that can later be easily improved.
Topics covered are Engine Design, Engine Control, Scripting, Rendering, Sound, Networking, Materials and Meshes, Objects, Scene management etc.
I wish that all programming book were written this way.
Absolutely recommended.
A perfect book for beginners/intermediate level programmers
06 May 2006 @ amazon.com
This is a PERFECT book for intermediate level programmers that have a decent
knowledge of C++ and basic knowledge of DirectX and have always wanted to build their own 3d game.
This is the only book (as far as i know) that guides you from the beginning, and explains
every important part of the engine code.
in every chapter new features are added to the engine and in the end
you have a full working FPS engine!
Great!
Author explains not only usual stuff that can be seen in every other book (how to setup a DirectX or use DirectInput), but also goes into detail on how to design your engine writing
a reusable code and build that can later be easily improved.
Topics covered are Engine Design, Engine Control, Scripting, Rendering, Sound, Networking, Materials and Meshes, Objects, Scene management etc.
I wish that all programming book were written this way.
Absolutely recommended.
Excellent book, with only minor failings
09 Nov 2005 @ amazon.com
The book is true to its title. It takes you through the complete development of a First Person Shooter game. The final game is simple, and the entire project is approximately 10 000 lines of C++ code, but it does illustrate almost all the required functionality.
I have two, and only two, minor criticisms of the book. The first is that the actual English writing of the book is sometimes poor. Sentences are grammatically correct, but sometimes fail to be natural. Analogies are very basic, and sometimes incorrectly applied. In fairness, the author sticks to simple English most of the time, so the discussions are fairly clear. The book would be more readable if the author were a better writer. I consider this a fair criticism, since some technical books do have good writing.
My second criticism is that the book fails to cover a few fundamental topics in greater detail. Specifically, these topics include collision detection, animation, and physics. The author includes an article about collision detection on the CD, but this does not make up for the lack of discussion in the book. Animation is so fundamental to almost any 3D game that it should have had more pages dedicated to it. Quite frankly, the author should have used the pages that were used for explanations of C++ topics (such as templates) to cover advanced animation material. I can forgive the missing physics material because it is such a vast topic, and any detailed discussion would have added hundreds of pages. In fairness to the book, it is a testament to the quality of the book that it is only 500 pages long.
If you are a competent programmer, and you have some experience with DirectX, this book delivers on its promises.
One of the few useful and great books for learning game programming
14 Sep 2005 @ amazon.com
As with typical CRM publications, this book promises much but delivers less, BUT, this is an BIG BUT, that shouldn’t stop you from buying it, because it is one of the few good books.
You might have seen books featuring so-called "3D engine design," but most of them either 1. focus too much on theory, 2. too detailed in coding, or 3. completely useless. But no, not this book. After following each chapters, you’ll get a good understanding of a true 3D engine, and not to mention A WORKING FINISHING PRODUCT. Need I say more?
On the other hand, not enough advanced topics are covered, but I suppose you can learn those from other 3D books, but it would be good to included them, at least in some level a lot of the techniques are included in the DX toolset already.
I gave it 4 stars because it uses linked-list, which is very common in concept, but pretty slow when dealing with memory performance issues. Several miss-coded memeory leaks are corrected on the online support site, but overall it’s great, one of the few.
A great book
17 Aug 2005 @ amazon.com
This book was really helpful on engine creation with DirectX 9. You should have a little knowledge of DirectX 9 in my opinion. Just for the mere fact that some topics arn’t covered in 100% detail (but then again when is any book like that?) so it’d be good to have some background with DirectX 9, if you don’t you shouldn’t have that much trouble.
First Person Shooter Using DirectX 9
19 Jul 2005 @ amazon.com
At last, a book on 3D gaming that isn’t an excuse for re-iterating the DirectX SDK/Help docs.
Yes, it’s the real deal.
I’m sure that anyone with an interest in this subject will know that it isn’t for the faint hearted.
If you want to "understand the code" and not simply use the complete project for your own levels, you certainly have your work cut out.
That said, the author takes you on a well guided and informative tour of all the aspects required to create an "outdoor" multiplayer (LAN) shooter.
A great introduction to what really goes into it all.
Recommended.
A manual for intermediate to advanced computer programmers familiar with C++ and DirectX
05 Jul 2005 @ amazon.com
Programming a Multiplayer FPS in DirectX is a manual for intermediate to advanced computer programmers familiar with C++ and DirectX who desire to program their own first-person shooter game for multiple players. Breaking down the typical game development process into its component parts, Programming a Multiplayer FPS in DirectX covers such topics as engine design and control, rendering, sound issues, networking, scene management, classifications of weapons, and more. Sample code along extensive instructions that cover both the abstract and concrete programming issues behind each topic make Programming a Multiplayer FPS in DirectX as user-friendly as a game programming guide can be. An accompanying CD-ROM is packed with source code, a DirectX SDK 9.0c installation package used to develop code in the book, Panda DirectX Exporter to use with 3ds max to produce meshes in .x file format, PaintShop Pro full-featured trial version, and more. A "must-have" resource for amateurs or professionals looking to test their programming skills and create their very own FPS for the computer.
Excellent Introduction
04 Apr 2005 @ amazon.com
When I first found out about this book I thought it had a snowball’s change in hell of being even a half decent book (being a pretty ambitious topic). I’ve changed my mind after actually reading the book, and found it to be an excellent introduction to writing a FPS game engine. Granted, it’s not DOOM3 but the end result is a simple, complete working engine; which is quite an achievement in my opinion.
One caveat though, even though the book is fairly simple and not exactly taxing (a tribute to the author) it is certainly not a beginners book. You should already be fairly comfortable with C++ and DirectX 9 to get the most out of it and be prepared to study the source and MSDN documentation (a good habit to get into anyway).
The book covers most of the major parts of a FPS engine at a reasonable level, resulting in a well designed, modular engine that can be expanded on quite easily. The main value of the book, however, is the design of the engine which should help a lot in developing your own engine (since most books cover the therory in exhausting detail but ignore the overall engine design - if you’re looking for detail, this may not be the book for you).
After reading this book, the following books may be useful:
1. Introduction to 3D Game Programming with DirectX 9.0 (excellent intro to DX9).
2. 3D Game Engine Architecture : Engineering Real-Time Applications with Wild Magic (nice and detailed - I recommend all David Eberly’s books).
3. Real-Time Rendering (doesn’t get better than this).
4. Game Programming Gems (buy all of them, now).
Excellent Book
19 Feb 2005 @ amazon.com
I would recomend this book to anyone wanting to create a fps. This book has helped me put my ideas together and point me in the right direction for creating my own engine and game. This book is definatly worth every penny.
Top Notch Code
17 Feb 2005 @ amazon.com
I’m about half way through the book now and the code that comes with the book is top notch. I even heard the author saying he went through all of the code removing the error checking before releasing as to make it easier to read. Its well maintained, simple and clever. The code is also definitly encapsulated well so you can bring it to other projects easily if you’d like with little dependencies.
Warning to those who are intermediate directx users - the first 2-7 are mostly directx basics and you will most likely skip this to get to the meat.
Although there’s nothing incredibly complicated in this book, I think it gave me a healthy dose of not over estimating myself. The author only spends time on the what is required to complete the project and reuses his code a lot (i think the initial linked list was reused about 100 times in total) So if you ever find yourself making projects that always fail half way through - this is a good book for you.