Game Programming Gems 1
所属分类:游戏
开发工具:Visual C++
文件大小:6921KB
下载次数:325
上传日期:2005-07-29 14:58:49
上 传 者:
管理员
说明: 游戏编程精华01-含有几十个游戏编程例子
(Game Programming Gems 01 there are tens of examples of game programming.)
文件列表:
Game Programming Gems 1\AI\00Rabin\ai_engine (120295, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\ai_engine.dsp (5877, 2000-05-19)
Game Programming Gems 1\AI\00Rabin\ai_engine.dsw (541, 2000-05-19)
Game Programming Gems 1\AI\00Rabin\ai_engine.exe (266363, 2000-05-21)
Game Programming Gems 1\AI\00Rabin\custom_time.cpp (1557, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\custom_time.h (1267, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\def.h (1078, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\fsm.cpp (2989, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\fsm.h (1403, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\fsmmacros.h (2576, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\fsm_drone.cpp (6344, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\fsm_drone.h (1524, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\game_object.cpp (1662, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\game_object.h (1900, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\game_object_db.cpp (4376, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\game_object_db.h (1473, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\glut.h (20844, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\glut32.dll (169984, 2000-04-25)
Game Programming Gems 1\AI\00Rabin\glut32.lib (79898, 2000-05-05)
Game Programming Gems 1\AI\00Rabin\hud.cpp (1474, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\hud.h (1229, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\main.cpp (8681, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\MAKEFILE (236, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\msg.h (2362, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\msgroute.cpp (6424, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\msgroute.h (1602, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\mtxlib.cpp (32858, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\mtxlib.h (11381, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\text.cpp (84174, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\text.h (1729, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\usertype.dat (87, 2000-03-27)
Game Programming Gems 1\AI\00Rabin\util.h (1094, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\vector.cpp (2944, 2000-05-29)
Game Programming Gems 1\AI\00Rabin\vector.h (2322, 2000-05-29)
Game Programming Gems 1\AI\00Rabin (0, 2005-07-29)
Game Programming Gems 1\AI\01Dybsand\ChildView.cpp (5219, 2000-05-29)
Game Programming Gems 1\AI\01Dybsand\ChildView.h (1760, 2000-05-29)
Game Programming Gems 1\AI\01Dybsand\FSMclass.cpp (4665, 2000-05-29)
Game Programming Gems 1\AI\01Dybsand\FSMclass.h (2260, 2000-05-29)
... ...
Author: Steve Rabin
E-mail: stevera@noa.nintendo.com
Last revised: 5-20-00
This MS Visual C++ project is the AI engine described in the book Game
Programming Gems within the article "Designing a General Robust AI Engine".
Please refer to the book for a full explanation of the implementation.
Comments within the code also provide additional information.
The state machine language uses a few custom keywords that should be
highlighted by Visual C++ in order to make the state machine more
readable. You can get Visual C++ to highlight these words by placing the
file "usertype.dat" (included in this directory) into the same directory
as Msdev.exe (C:\Program Files\Microsoft Visual Studio\Common\MSDev***\Bin).
The file "usertype.dat" is simply a text file listing the state machine
keywords.
Here is a brief overview of the state machine structure.
Each game object can point to a state machine. When that game object
receives a message, it gets routed to it's state machine. The state machine
can execute any code on behalf of the game object and can send additional
messages, delayed messages (timers), can change state, or can destroy
itself. Actually, each state machine can execute any code within your
game. It is completely general.
The state machine language was designed to provide a simple, consistent,
robust, and general implementation of a state machine to every game
object. The language itself consists solely of macros that have been
carefully crafted to fit together like puzzle pieces. You can see an
example in the file "fsm_drone.cpp". The macro language can be found in
the file "fsmmacros.h".
The AI engine provided was ported from C++ to C in order to show that it
doesn't rely on any object-oriented techniques and that its generally
applicable (also for legal reasons). I would highly advise porting it back
to C++ so that it can take advantage of object-oriented techniques (even
though it doesn't require them).
Good Luck!
近期下载者:
相关文件:
收藏者: