本文由哈利_蜘蛛侠原创,转载请注明出处!有问题请联系2024958085@qq.com
RPG,一个响亮的名字!从古至今,有多少英雄儿女为之竞折腰!
“什么?!你要学习RPG编程?别开玩笑了好吧!你玩过几款RPG呀?”
好吧,我确实没玩过几款RPG,但是RPG是我最喜欢的游戏类型之一(另外的是ACT,不过我也玩得不多)。
RPG,全称RP Game,就是说这款游戏你能不能够通关完全靠你的RP……
哦哦,不好意思,刚才转错台了。现在说正事!
RPG,全称RolePlaying Game,中文翻译为“角色扮演游戏”。其实这个翻译还是很中肯的,但是这个名字,不论是原文还是译文,都没有讲到这种游戏的精髓:那就是角色的建立和成长。角色的建立俗称“捏脸”,这是很多现代RPG的必备要素之一——《哥特王朝4》(Gothic 4)和《神鬼寓言3》(Fable III)没有捏脸的要素,这也是二者人气不高的一个重要原因(另一个原因是配置要求比较高),尽管二者都是很不错的、制作精良的游戏。而角色的成长呢,就是俗称的“打怪升级”,这也是RPG最吸引人的地方(尽管玩到一定程度人们的兴趣会发生改变,比如说玩各种各样的MOD):从一个手无缚鸡之力的新手成为天下无敌的大英雄,这怎么能不让人兴奋呢?(当然也有不少RPG主角一开始就很逆天。)
RPG可以说是最好玩的电子游戏类型之一了,但是它的制作难度大、开发周期长、开发成本高、还不一定赚钱,所以其实现在市面上的大型RPG并不多。但是为何我还要研究RPG编程呢?有以下几个原因:
1、 RPG太好玩了,从RPG入手进行游戏编程必然乐趣多多!
2、 做一个小型的、不追求各种细节的RPG其实还是比较简单的。
3、 市面上已经找不到我喜欢玩的RPG了……
既然要进行RPG编程,那么首先得玩过RPG才行啊!下面本蜘蛛就来推荐几款自己玩过的RPG。由于本人阅历有限,所以难免诸多不妥之处,望各位多多担待!
Kingdoms of Amalur: Reckoning (民间汉化为《阿玛拉王国:惩罚》,其实不对,翻译成《阿玛拉诸王国:清算》好一些)。这是一款动作元素非常棒的RPG,动作绚丽、技能逆天,场景美丽,NPC有爱,任务众多,剧情丰富。可惜的是有一些bug,而且制作组早已解散,也没能指望这些bug被修复了。
Fable III(《神鬼寓言III》)。这是一款以“互动”为卖点的游戏,可以与游戏中的角色产生各种你能够想得到的以及想不到的互动。相比之下战斗部分就不是那么令人满意了,主线部分的打斗基本都是战役了,要持续很长时间才能结束。此外武器种类太少。不过有一些技能很炫,还有就是武器的终结技也很帅。另外这一款游戏令人印象深刻的地方就是界面非常地干净,没有血条、魔法槽、小地图、经验条等等。
Divinity 2: The Dragon Knight Saga (《神界2:龙骑士传奇》)。这也是一款不错的游戏,画风类似《上古卷轴》。这个游戏还是比较传统的,就是不会在地图上告诉你任务地点,所以玩起来有些费劲。另外这游戏里的敌人不会刷新,所以经常出现到处搜索敌人的情况;而且敌人的等级固定,你提前进入后面的地图的话,可能会碰到比你高几级的敌人。不过这个游戏的最大特色就是主角在后期可以变身成为一头Dragon,用于消灭各种炮塔和飞行敌人。可惜的是,龙形态的主角没法攻击地面上的敌人……
Gothic 4 (《哥特王朝4》)。这是一款配置要求比较高的游戏,当然制作得确实很精良,比如说有天气系统,可以下雨,尽管这让人感觉没有必要。另外这也是一款比较传统的RPG,任务没有指示,甚至地图上都没有标名字。这游戏有一些亮点:主角竟然会开口说话;有一些敌人会有格挡动作;主角可以和很多物品进行互动,做出例如坐板凳、烤乳猪、磨刀、配药等等动作,尽管这些行为毫无实际用处。不过这游戏有一个令人不爽的地方,就是技能太少了,三个职业加起来还不到10个技能。另外由于配置要求比较高,会越玩越卡。
另外还有不少其他类型的游戏带有RPG元素,主要集中在动作游戏上,比如Darksiders 2(《暗黑血统2》)。在此略过不提。
好啦,玩过了一些RPG之后,应该怎么样进行RPG编程呢?当然需要参考书啦!我现在用的是Jim Adams编写的《Programming Role Playing Games with DirectX》第二版这本书。实际上,本系列博客基本上就是对这书的不成熟的翻译了。当然,有一些地方我会略过不提。此外,由于这本书用的是比较老的DirectX 9,所以现在我们用DirectX June 2010版来编写的会发现一些代码不管用了。所以我会进行适当的改造。当然参考资料是Frank D. Luna的“龙书”第二版。
那么阅读此系列博客需要什么条件呢?其实要求很低,只需要满足以下条件就行了:
1、 精通汉语阅读(能够看到这里说明你已经精通了);英语的阅读能力的要求很低,在偶尔查阅词典的情况下能够看懂高考英语阅读就OK了。
2、 具有一定的高中的立体几何知识(不需要学会证明;能够看懂坐标系就行了)和一点点线性代数知识(知道矩阵的基础知识;求行列式、求逆、求特征值等等不需要掌握)。
3、 具有一定的C++基础;没有C++基础的至少学过C语言。
4、 自己有一台不是太过时的电脑。你不会期望使用公共电脑或者借用别人的电脑来练手吧?
5、 安装了Visual Studio的2008或以后的版本,并且安装了DirectXJune 2010版本(早一些的版本也行,但是要保证你的机器能用)。
6、 最后一点也是最重要的:对于RPG编程有强烈的愿望!因为这系列博客会持续很长时间,保守估计是半年。
行文规范的说明:两条蓝色横线之间的部分表示原文的翻译部分,在这一部分内部,蓝色加粗字体表示提出的重要概念,而括号中的绿色或红色非加粗字体表示我自己补充的话(使用哪种颜色取决于重要程度:红色>绿色)。其他的,红色加粗字体表示小标题或者我认为非常重要的话。
后记:
这是“DirectX 9.0c游戏开发手记”的第二部分,叫做“RPG编程自学日志”。第一部分叫做“‘龙书’第二版学习笔记”,参见以下地址:
附:Jim Adams的RPG编程书籍分享。包含第一版和第二版,以及第一版的代码。