■ RPG Program
摘要: Now comes the time to commence creating the book’s sample game—"The rooad of warrior".
The game does put together all the gaming
pieces you need to complete a game. The purpose of "The rooad of warrior" is to show every
component in its proper place, including tech engines, map and level management,
character control, and scripting.
阅读全文
摘要: Although beating down the endless hordes of evil and saving countless worlds is
interesting enough to rob you of precious sleep, it can get pretty boring after a
while. No matter how hard we try, game developers just can’t nail down the intrigue
and challenge of human intelligence that gamers want in virtual opponents.
阅读全文
摘要: With swords swinging and magic blasting, you manage to wade through wave
after wave of demonic creatures. With every victory, you feel yourself growing
stronger; new spells are learned, and stronger weapons are usable. The enemy
is beginning to lose ground, and here you are standing tall on the mountain you
created.
阅读全文
摘要: While going through the examples, I placed characters on the map in
a direct, hard-coded manner. However, remember that hard-coding game data is a
no-no. You need to have as much flexibility as possible when designing your maps,
and this includes placement of characters in a level.
阅读全文
摘要: A gaming world is nothing without players and monsters running around.
Nevertheless, creating them can be a little daunting at first. But don’t worry.
In this chapter, you can find the basic information you need to create characters
and give them a life of their own in your game—all in an easy-to-follow format.
In this chapter, you learn how to do the following:
阅读全文
摘要: 尝试记录那些有着各种用途的物件,以及它们在角色扮演游戏中所起的作用,将是一个非常重要的设计因素。
在游戏的过程中,通常被限定选择并不算多的物件,每个物件都有它们各自独特的用途。创建游戏时,每个物件都必须考虑到,它们都应被设计为一个特定的用途。武器、盔甲、疗伤药,这些都需要明确定义,包括它们的形式和功能。
形式和功能,这两个单词说明了在物件定义中最重要的两个方面。形式涉及了外观和特征,即一个物体看上去像什么,感觉上是什么,它有多大,有多重等。功能则涉及到它们的用途,每个物件都有一个特定的用途,金钱可以购买东西,刀剑可以用来攻击,疗伤药可以用来治愈创伤。
阅读全文
摘要: 创建一个角色扮演游戏项目时,会发现在源码中编写游戏相关信息十分困难(这样做也是非常鲁莽的)。最好的办法就是使用外部数据源(类似于程序的代码),称之为游戏脚本(例如对话)。以这种方式,可以控制游戏的流程并节省宝贵的时间,因为不需要在每次做出改变后重新进行编译。
当创建游戏时,游戏脚本与所编写的程序代码非常类似,只是游戏脚本相对于游戏引擎而言是外部的。正因为它们是外部的,所以才可以迅速地对脚本做出更改,而不用重新编译整个游戏引擎。否则对于一个超过100万行代码的项目,仅仅为了改变一个对话行就要重新编译整个项目。
阅读全文
摘要: 在图形技术的应用中,既没有什么限制,也没有什么必须遵守的规则。也就是说,没有限制使用二维图形或三维图形,完全可以将它们两者无损地混合在一起。
需要一个代表游戏层次的三维网格模型,一个角色在三维世界里四处移动(通常是沿着一个轴线移动),当角色移动时,摄像机也跟着移动。摄像机需要停留在一个比角色较高的平移位置上,这样就会产生出全三维的层次效果。不需要别的额外操作,只要加载一个代表层次的网格模型,创建一组代表了物体(例如玩家角色)的二维贴片,并将每件东西正确地排列绘制到每帧中即可。
阅读全文
摘要: 3D图形引擎【OO改良版】的代码以创建游戏内核【OO改良版】中编写的代码为基础进行开发,关于该引擎的细节说明请参阅创建3D图形引擎。
阅读全文
摘要: 使用单一的网格模型虽然可以同时渲染整个层次,但却意味着那些没有被看到的部分在通过渲染管道时会被裁剪掉,也就是说这样做会浪费时间。不要沮丧,因为使用一个单独的网格模型进行层次的渲染仍然有一些非常好的方法。比如说,在游戏世界中包括了单独的地牢,每个地牢包含不同的房间,所有的房间通过走廊连接到一起。其实,每个房间和走廊就是一个单独的网格模型,所要做的就是在游戏的处理过程中加载以及释放那些代表地牢房间的网格模型。
阅读全文
摘要: 具体细节说明请参考二维图形的使用。
阅读全文
摘要: 二维游戏的核心绘制技术就是所谓的贴片技术(tiling),在进行贴图的过程中,用较小的像素矩形分组(小位图称之为贴片)构造一个较大的场景,贴片的绘制过程称为映射。
如下图所示,左边4个编号的小图像就是贴片,中间一个加了编号的栅格代表了绘制贴片的布局(按编号顺序进行描绘的方式)。对于每个栅格单元,开始绘制编号各自代表的贴片,直到整个场景被绘制完。这个栅格就是地图,当栅格被绘制完成后,便得到右边的图像。
阅读全文
摘要: 这是面向对象游戏内核的改良版,主要对原来游戏内核对象组织一些不合理之处做出了改良,并且遵循以下原则:
1、浅分层、薄胶合的原则,对于简单的功能只用函数封装,如果需要实现的功能模块较复杂,并且需要用到较多的辅助数据结构则用类封装,以减少对象的使用。
2、本版本不使用模板,尽量减少封装层数,最大限度地增加透明度。
3、尽量不在构造函数内用表达式初始化任何数据,以使用memet简化类数据成员的初始化,只使用默认构造函数,不使用其他任何形式的构造函数。
4、尽量不在类内部保存冗余的数据,如果这个数据真正存储在另一个地方,则不在其他类中做多余的保存,保证数据存储的唯一性。
5、不重载函数,不使用参数默认值。
阅读全文
摘要: 这个版本主要是按功能划分模块的思想,并严格按照接口与实现相分离的原则来写的,没有用面向对象的思想来写,没有继承没有多态。
阅读全文
摘要: 写程序时,处理重复(或寻常)代码的技巧就是创建一个有用的函数构成的核心库,由这个核心库来处理重复的代码。使用这个函数库,就无需反复书写相同的DirectX或Windows代码,因而能够帮助程序员快速创建游戏工程。
游戏内核(game core)是用来简化DirectX和Windows编程的一些库的集合。游戏内核中几乎含有一个游戏工程需要使用的所有函数,这些函数一般用于绘制图形、播放声音、处理用户输入以及应用程序。也就是说,使用游戏内核,就无需在每次开始一个新的游戏工程时,再去处理底层的DirectX或Windows 代码。
阅读全文
摘要: 要在游戏开发最初清楚地知道需要做些什么,就必须构造程序的操作流,并确保能够很容易地对程序进行修改。
一个典型的程序,首先要初始化所有的系统和数据,然后进入主循环,大部分事情都出现在主循环中,根据游戏状态(标题画面,菜单画面,游戏画面等),需要对输入和输出进行不同的处理。
阅读全文