Programming Role Playing Games with DirectX, Second Edition (Game Development Series)
Jim Adams


Compras Nikon
Bluetooth
1 Super Good!!
I read many different game programming books. I think this one is best. However, I don't think this book is good for a beginner who doesn't know anything about game programming but C++ and Win32 Programming.

Right, some of the sample codes in the book doesn't compile.
However, I can always make the code work and run in VC++.NET after using a new project file and adding a little modification on the code, so I believe it is due to the different version of DirectX SDK you installed.

The best part of this book that differs from the other books is that the author provides a small system to write the RPG game.
The author teaches us how to create serveral different editors/sub-system to create the game. He show us about how to create Item Edtior(MIL Editor), MagicList Editor(MSL Editor, Character Editor (MCL Editor), Character-To-Item Editor(CharICS), and Script Editor(MSL Editor). I found it is especially useful to learn about desining Script Engine and Script Editor in the book. His script engine is simple and good enough so that you can define your own Script syntax. all you left to do is to implement the function that associates with Script Syntax you define and that's it.

If you are good at creating Game Editor, then you're almost good at creating games. of course, you may not able to design a good game. However, at least you will be able to implement a game systematically after reading this book.

Anyone who is serious about learning game programming should buy this book.






2 Great, not Perfect
Unlike the stands of some others before me, you can really learn from this book if you try, and use the documentation provided with the DX9 SDK. The reason I take off one, but not more stars, is that a few of the example programs in this book do not compile as they are, there are some errors... I don't take off more than one star because this can be a good thing. You can consult the documentation, take time to make literal sense of the code, and see exactly what the problem is. Once you have fixed it, you know you understand it.
3 Not worth it unless you're an absolute beginner...
Rarely do I order a book, receive it, read around 2/3 of it, and decide before going to bed that night that I want to return it for a refund.

Quite harsh, I know, but I have to be honest here.

The one quirk that I kept finding more and more (especially in the first 1/2) of the book is the repeated use of "I could cover this in greater detail, but there wouldn't be enough room here", or "to see how this works, look at the sample code". I know the book is rated from beginner to intermediate, but I'd have to place it much more towards the beginner side of things.

The DirectX-specific portions are completely glossed over, and although you are given the basics (how to set up an application, load meshes, render, etc.), there is no in depth discussion of how to make things better. Even as a beginner, I would gladly accept this approach of jumping in "feet first", but at the same time, I would like to learn how to advance beyond the basics. There's barely any discussion of optimization strategies and not even an introduction to anything relatively complex.

- on the role-playing side of things -

Although it gives the reader a high-level overview of various parts of a role-playing game (character attributes, spells, etc.), it's all at an extremely basic level as it only discusses using meshes as levels (i.e. no discussion of terrain algorithms, barely anything on BSP/Portals/Dynamic Loading/etc.), basic character interaction (>very< simplistic NPC's - no AI - not even in the simplest sense), basic inventory, basic spells, basic scripting.

For an absolute beginner, I would think it might be a worthwhile read, but for the motivated beginner, who actually wants to >learn< and not just follow instructions, I'd definately look elsewhere.
4 One of the Best
First off, I would like to say that the code in the book only compiles when all libraries are properly linked (NOT AUTHORS ERROR!)
Some Visual Studio users complain of errors when compiling examples. They must FOLLOW the instructions in the book to the letter if they wish to run the examples.


Back to the book. It is more or less a Direct X 9.0 version of the original. Which is a very good thing, because it allows readers to learn the latest and greatest.

The author does an excelent job at teaching you how to make RPGs. No it will not let you recreate Diablo 2 or Fable, but it teaches you the basic structures of RPGs.

With the info inside, if you really read and study it, you will be able to slowly expand your knowlage beyond the book. Go back, get an understanding (and I mean really study the concept) and soon, you will realize things that were not explained in the book. Combine it with the Multiplayer FPS book and you will be be making quality games within 3 months.

My Advice:

Do not just read, then copy and paste the samples from the CD. Type them out. It may seem longer, but few realize that by typing it yourself, you will learn twice as fast rather than duplicating.

Customize the code, when you are trying an example from the book try rephrasing the code or changing it altogether. It will let you get a good feel for the code, rather than sticking with the same way to phrase something.

Do NOT skip chapters. Even paragraphs or sentances. You might miss a cruicial step, concept or instruction that the author will not explain again.


Overall, this is the best book if you want to dive in creating a 3D game. Not just an RPG, but any ype of game you want.
5 My head hurts
Some authors really need to debug their code better. I got the book thinking it would really help me and to some extent it has. It does explain the dirext X and Direct3d functions well, but trying to get his code working is difficult. He created a "game core" which has alot of his own personal code that, I would imagine, works on his machine, but when put to the test, fails to work on mine. Here's the errors I got from his classes and functions.

Compiling...
Core_Graphics.cpp
d:\temp game work\gamecore\core_graphics.cpp(368) : error C2660: 'Begin' : function does not take 0 parameters
d:\temp game work\gamecore\core_graphics.cpp(989) : error C2664: 'D3DXCreateFontIndirectA' : cannot convert parameter 2 from 'struct tagLOGFONTA *' to 'const struct _D3DXFONT_DESCA *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
d:\temp game work\gamecore\core_graphics.cpp(1004) : error C2039: 'Begin' : is not a member of 'ID3DXFont'
c:\dx90sdk\include\d3dx9core.h(296) : see declaration of 'ID3DXFont'
d:\temp game work\gamecore\core_graphics.cpp(1013) : error C2039: 'End' : is not a member of 'ID3DXFont'
c:\dx90sdk\include\d3dx9core.h(296) : see declaration of 'ID3DXFont'
d:\temp game work\gamecore\core_graphics.cpp(1034) : error C2660: 'DrawTextA' : function does not take 5 parameters
d:\temp game work\gamecore\core_graphics.cpp(2391) : error C2660: 'Draw' : function does not take 7 parameters
Error executing cl.exe.

Tile.exe - 6 error(s), 0 warning(s)

Plus his steps to building your direct x environment, specifically chapter 2, is disjointed and broken. I followed through the book and the simple program failed to work. I suppose I put something out of order, but since the auther doesn't specify any order I'm out of luck.

So, the requirements for this book are....
1. 2 yrs+ of C++ programming
2. Patience, and lots of it.
3. Alternate reference.
6 Beginning to Intermediate, With Software
Need I point out that computer game playing has become big business. With the commercial market flat, or perhaps even slowing down (businesses find that for word processing you don't get any more performance out of the latest Pentium 4 than you get out of earlier machines and are upgrading much more slowly).

Game playing, on the other hand, needs all the computer power that can be had. With each increase in processing and especially in video processing power the realism of the game gets better. Now with the advent of Direct X Version 9.0 the programming of games has progressed far beyond where it was when I first got involved.

In this book, a master of the profession covers game programming from beginning to intermediate level. He also includes a lot of software that you will need to design state of the art games. This includes: DirectX 9/0, Paint Shop Pro, gameSpace, GoldWave.

With the growth of the business, the need for programmers has likewise increased. Reading this book won't guarantee you a job in the business, but without the knowledge it contains, you won't get one.
7 The best book I've found on this topic by far
I found the 1st edition of this book to be the best book on this topic I have found. I use much of the code and many of the concepts from this book in a hobby level multi-user RPG I have written. My review of that book is attached below.

Because I greatly appreciated the content of the 1st edition, I also bought the second edition.

Basically, the second edition is the first edition updated for DirectX 9.0. The text and the code are practically verbatim with small changes here and there to account for changes in technology and probably minor improvements the author wanted to make from the first edition.

The most obvious difference (aside from using DirectX 9.0), is that the first few chapters from the first edition have been removed. The discussion on how to design rpgs from a story line perspective, intro to C++ and a few other things were removed as well as the last chapter on marketing your game.

Editorially I can see why they did that. It makes the book much more focused on the "meat" of programming an RPG using DirectX. Also, I personally barely paid any attention to those chapters in the first book anyway as I focused on the programming myself. However, I thought they added an element of style to the book that was quite nice, so I miss them a little.

In summary, this book is pretty much the same as the first edition in all of the important ways. Since I thought extremely highly of that book, I think extremely highly of this one too.

------------------------------------------------------------

Review of Programming Role Playing Games with DirectX 8.0

I had a specific objective in mind when I bought this book. I'm in the process of writing a hobby level multi-user RPG for me and maybe up to a hundred or so other players (not many hundreds or thousands). I have a solid background in C++, less so in DirectX.

I've bought many books on game programming to help me with this process and to my surprise I've found this one simply amazing while most of the others I've found to be little more than expensive doorstops. :)

Like all the books of this nature, I read it in very much a "pick and choose" manner, focusing on chapters I liked and extracted code from the CD for places where it helped me. I found the material covered and, more importantly, the code representation of that material to be extremely helpful in my coding process.

I believe the tips and code the book provides (which all compile and provide very reasonable and practical applications for the ideas demonstrated) saved me (literally) hundreds of hours of research (not to mention trial and error) finding methods that work and work well and covered all of the core components I would want in a role-playing game. It covered multi-player over the internet, 2d and 3d rendering in directX, how to construct combat, spells, chat, and inventory systems and a variety of other items.

Naturally, I had to do a lot of customization to make the game do what I wanted it to do and I had to merge several of the ideas discussed into my own framework (for example the multi player network section is covered more or less stand alone where clearly other parts of the book need to be integrated with it to form a real game), but the result is I have a basic game up and running in a fraction of the time it would have otherwise taken, which no other book has ever really brought me.


Sunday, 07-Sep-2008 23:55:19 CDT
Quote of the Day:


If men are not afraid to die,

it is of no avail to threaten them with death.

If men live in constant fear of dying,
And if breaking the law means a man will be killed,
Who will dare to break the law?

There is always an official executioner.
If you try to take his place,
It is like trying to be a master carpenter and cutting wood.
If you try to cut wood like a master carpenter,
you will only hurt your hand.
-- Tao Te Ching, "Lao Tsu, #74"

I know the answer! The answer lies within the heart of all mankind!
The answer is twelve? I think I'm in the wrong building.
-- Charles Schulz