资讯详情

经典游戏制作教程[小糊涂的灵感]

经典游戏制作教程 peng 1.游戏制作的主要流程 ------------------------------------------------------------------------------- 电脑游戏开发小组中的任何一个人(这个角色通常有策划担任),只要有了一个新的想法 或者想法,孕育了新游戏的诞生。经过这个想法的充分讨论,再加上对其运营过程的兴趣和对市场销售可行性的准确预测,可以产生一个完整的规划方案。经过充分讨论,规划者必须将讨论的重点写成文本,即提出完整的规划计划,经决策者同意后才能进一步工作。这个计划就像一部电影的剧本,它必须完全涵盖整个游戏的故事、过程、内容、方式、游戏画面、角色造型 场景规划、人工智能、硬件设备、市场评估等。对整个游戏过程的详细描述及实施规划都应 记录在案。 进入创作过程后,策划还必须随时与艺术设计师和程序设计师保持联系,以免游戏程序编写失控。规划应该能够了解游戏设置的内容和精神,及时与各小组沟通,控制整个游戏制作过程。 2.游戏设计基本论 ------------------------------------------------------------------------------- 设计一个游戏,首先你必须确定几个重要的政策,第一是你想设计游戏属于那种类型,第二是时代背景,第三是模式,第四是程序技术,第五是表达技术,第六是市场定位,第七是研发时间,掌握上述七项政策后,你可以做详细的规划内容和资源部署,那么什么是七项政策呢? 作者以例说明! 一、类型: 所谓类型,是指这款游戏所关注的一种游戏方式,让玩家达到娱乐的目的。这款游戏有专有名词分别命名,如下: (1) RGP角色扮演: 这类游戏通过故事情节牵引,让玩家可以融入主角的世界,这类游戏主要通过战斗升级系统和角色对话逐步完成设计师的情节路线,最具代表性的作品是日本史克威尔设计的 "太空战士系列" 以及国内大宇信息设计的大宇信息"仙剑奇侠传",当然,也有很多作品,比如"神奇传说"也是其中的佼佼者。 在RGP在这些类型中,近年来了几种类似的类型,例如Blizzard的"暗黑破坏神"Dirblo"被定位为"动作RPG",因其动作成分相当高所至,而"神奇传说"、"超时空英雄传说"则被定位尽"战略RPG",因为战略成分比例高,不同于传统RPG。 (2) SLG战略: 说到战略游戏,最熟悉的应该是日本光荣公司制作的"三个系列",KOEI三国志在东亚很受欢迎,从一代进化到现阶段的六代都被玩家津津乐道,所谓的战略游戏就是通过运营→战争→扩大领土三种手段来赢得游戏的最终目标,一般而言,动态成分较少,最注重消耗脑力的游戏,但从WestWood新型态战略游戏"沙丘魔堡"战略游戏问世后,也有了重大的分野,一是KOEI三国志系列被称为回合制战略游戏WestWood代表的C&C及Blizzard魔兽争霸被称为即时制战略游戏,不同于回合制,即时制有更多的机会让玩家与电脑互动,比较不需要脑力,进行的 方式是建设→生产→攻击→歼灭,业内有一句俏皮话说:「玩回合制游戏就像当将军(元首),运筹帷幄,决胜千里之外,玩即时制游戏就像士官长(军队指挥官),只能一味打杀。」所以你可以理解这两种类型的异同。 (3) ACT动作: 所谓的动作游戏实际上完全依赖于玩家的反应来通过条件,更著名的图像DOOM、古墓奇兵、QUAKEⅡ 等等,在动作游戏中也有相当多的类型,快打旋风和铁拳Ⅲ当被定位为格斗型时,主要的游戏方式是两个人到四个人互相战斗,直到分离,而DOOM、古墓奇兵被定位为3D动作冒险游戏的主要目的是杀死敌人,然后像阿比逃亡记,黑暗的心被定位为水平卷轴游戏,游戏是通过攻击跳跃和其他动作通过一系列关卡,表达主要是2D滚动画面的方式正在进行中,再比如飞龙骑士,极上疯狂大射击就被定为动作射击游戏,游戏方式是闪避射击冲过火网,然后歼灭守关魔王。这些分支模式有共同的 动作游戏吸引人的的,这也是动作游戏吸引人的重要原因。 (4) PZL益智: 这类游戏以有趣的思维为主轴,内容可以包罗万象,思维模式也可以集中在物理和逻辑的方向上。具有代表性的是大宇信息"台湾十六麻将"、"大富翁"、"仓库番"等等,棋盘式的思维方式有名"中国象棋决战"以及光谱信息"五子棋大师"等,这些游戏很容易开始,无论男女老少都喜欢,使得益智型态的发展更具市场性,成本更低。 (5) ADV冒险: 冒险游戏的大部分内涵都离不开解谜的成分,是的!这种类型的游戏允许玩家找出隐藏在游戏背后的谜团,以便顺利完成游戏。有代表性的作品城堡、异星搜索、幽灵等。这种类型的游戏年龄较高,不适合国内厂商开发。 当你构思一个新的游戏计划时,你应该提前考虑下一个计划。一般来说,国内市场接受度最高的是 RPG角色扮演类型,这就是为什么国内制造商会如此大力地研发RPG型态游戏。 二、时代背景: 对于游戏艺术来说,这是一个非常重要的政策,因为决定一个时代背景意味着数据搜索是否方便,以及艺术家在制作造型时需要依据的例子;在国内市场,大多数人可以接受中国古代的背景,基本上有几种背景,比如WestWood在公元2000年左右的未来,魔兽争霸定位于虚幻的欧洲中古世纪,三国志定位于汉末,星海争霸架构在外太空世界,轩辕剑定位于春秋战国时期。 时代背景绝对是规划者在规划整个游戏的第一阶段就已经决定了,这样艺术家就可以放心地收集信息。 三、模式: 在决定了类型和时代背景后,然后开始构思游戏的模式,如果你的背景是在中国古代,类型是即时策略,然后你必须考虑游戏内容,也许你的游戏需要生产因素,这个因素是什么? 它可以是谷物、矿物和木材,也可以是火山能源、石油、太阳能或天然气。随着你故事情节的需要,你设计的模式可能会考虑地形因素、天候因素和资源因素,并将广泛应用于各种战术和攻击方法。因此,虽然有很多相同类型的游戏,但它们在模式上有自己的特点和偏好,支持者也聚集在一起,这是模式设置的重要性,记住不要复制别人设置的模式,因为这样,当你设计的游戏完成时,尖锐的玩家会以过时剽窃为由放弃你的产品,这在国内市场的激烈竞争中不能存活太久。 四、程序技术: 无论你对游戏有多好,架构设计有多大,如果程式人员本身的技术不能合作,一切都只是空谈,所以在设计游戏之前必须咨询程式人员,在当前的环境中,不仅程式人员会Windows98及Wi-ndows NT相关技术,完整的系统分析和系统规划是必不可少的,可以避免程序中不可预测的错误,游戏设计中最好有两个程序员,一个负责内部程序 (游戏核心引擎) ,只有负责外部程式(介面程式),才能发挥完整的战斗力。 五、表现手法: 在这个环节中,规划师、程序员和艺术家应该进行完美的沟通和讨论。一般来说,我们知道大多数电脑游戏都是256 色彩系统在这些游戏中对色盘的控制有相当严格的要求。为了达到最佳的视觉效果,艺术家通常会向程式人员要求多色盘的资源,程式人员将考虑切换情况和记忆配置是否完全充分,在系统问题确定后,规划人员将提出效果建议,如爆炸效果,从内到外扩展到消失的火焰容纳大量烟雾燃烧,由规划者根据故事内容定义,同时以物理逻辑给艺术家建议,然后由艺术家绘制。 还有一个例子,以"C&C之红色警戒"与"AGO Empir世纪帝国"海岸说明,在"AGO Empir 世纪帝国"海岸是静止的,海水不会流动,最多只有鱼在海中跳跃,"C&C"之红色警戒"海岸表现手法会流动,然而,海洋中没有什么特别之处。这两种表达方式各有优势和考虑,但作者仍然更喜欢它们"C&C之红色警戒"。 游戏内容的表达方式通常伴随着同类游戏之间的差异,有不同的评价和支持者,而不仅仅是艺术效果的表达方式。策划人构思的游戏玩法与程序员的程序性能密切相关。 六、市场定位: 无论你设计的游戏概念有多好,如果你没有清楚地定位你的市场趋势,那么完成的游戏软件可能会面临销售不佳的困境,所以在设计游戏之前,你必须知道你定位的群体在哪里,你可以从下表中进行三个市场定位: 年龄层适合教育的类型内容 7~12岁 国小动作,益智更有趣,教学更有趣 13~18岁 国中高中动作,益智, 较多思考性质、图形精美化同 角色扮演和战略反射更多 19岁以上 智力水平低,动作暴力,冒险有趣,操作 作简单 19~30岁 大专以上角色扮演,战略多重思维,能影射周 、冒险,模拟, 事物、解谜和创造性运动 七、研发时间: 这是规划师在初步规划中的最后一个项目。对于上述生产政策,你必须为艺术家和程序员安排一个完整的安排SCHEDULE,从这个SCHEDULE从规划的角度来看,为了不让好的想法被其他游戏公司推出,同时,也要避免推出后模式过时。游戏的研发最好在一年内,最多不超过18个月。从成本控制的角度来看,更符合盈利标准。 假设你需要一年的时间来计划这个游戏,那么你必须区分它术制作时间 (第一线)及程式制作时(第二线)间的差异,并考量推出DEMO 版及游戏完成的时间,在适当时机打出游戏知名度,为游戏销售上打下一记商机。 制作流程    一个游戏的制作如果不能充份控制整个作业程序,那即有delay 的危险,大家都知道游戏软体delay对於销售上的影响会有多大,所以如何尽量避免de-lay是每个游戏设计者应极力去避免的,而要去避免游戏开发作业上delay的情况最重要的是严密控管作业流程及计划表。    那麽究竟游戏制作流程是一个什麽样的情形呢? 首先企划人员在执行制作的前一个月即要定出企划大纲及搜集可用资源,并经程式人员及美术人员确认後开始执行,我们以一个即时战略的游戏来说明,在制作分期程式人员即投入地图编辑器的撰写,而地图编辑器的逻辑设定要由企划人员先期规划,然後程式人员才根据企划人员的规划而进行程式写作。    在此同一时期美术人员即开始分工合作,一般一个游戏工作小组会有四位美术人员,他们分别负责造形、人物动作、介面、地图四个部分来制作,但这只粗分法,国内游戏公司较常使用这样的组合,在国外美术人员分为造形、人物动作、介面、地图、片头、过场、後制分镜、场景等九大部份,每个部份皆可能都有二人以上在作业,并有一名监制在执行风格及水准的品质控管,这些人统一由後制人员来与程式人员做交图及配合修图等沟通上的交流,所以说後制作美术人员的成败实关系到整个游戏品质的高低。 由於程式人员在设计地图编辑器时需要利用到一些图素来做测试,所以地图图素设计人员要先一步绘制出程式人员所需要的图素,    在程式人员测试通过之後方可进入大量生产的阶段,由於地图编辑器的设计者多半直接负责游戏引擎的制作,所以在初期企划人员便开始着手人工智慧AI的逻辑判断作详细的叙述,以期在程式人员撰写地图编辑器之後能立即作人工智慧AI的撰写,而在此同时负责撰写介面的程式人员亦与负责介面设计的美术人员作密切的配合,开始着手制作各个介面,因为介面不仅在游戏中是一个主司控制整个游戏的操作盘,同时也是一个游戏的外观,一个拥有优良创意的介面是很受 玩家喜欢的。 在测试地图编辑器时,程式人员亦需要利用移动物件(人)来测试地图上的障碍物判断及最短路径搜寻法,所以设计人物动作的美术人员在此时要先去做出一组人物动作供程式人员作测试,待程式人员把地图编辑器制作出来之後,人物动作设计的美术人员则只要不断的做并不断的把图给程式人员即可。 3.游戏设计十诫律 ------------------------------------------------------------------------------- Travis S. Casey 1. 编写你所喜爱的游戏 不要人云亦云。只要你和你的朋友喜爱就可以了。 同样道理,不要编写某个游戏主题仅仅因为它当前流行而已。编写你所喜欢的题材, 这样才能激发你的热情。 2. 经验是最好的老师 学习游戏编程最好的方法就是阅读大量的游戏程序。玩和分析这些游戏,然后设计 你自己的游戏或扩展游戏。我最主要的经验都是角色扮演类游戏,我的许多游戏范 例也来自它们,但思路却适用于所有类型的游戏。 我阅读过大量的RPG类游戏,粗略算算大约有七十多个。其中大部份我都玩过,精 通四十多个。不但玩和精通这些游戏,我还分析它们。是什么使得这些游戏好或者 不好?我如何修改它?哪些部份表现的出色?哪些部份不尽人意?为什么? 玩和分析过其它游戏后,我把这些知识用于我自己的游戏。比如在“超级英雄”类 游戏中,“斗士”和“英雄”在使用了“指数特性的换算法”取得较好的效果。如 果我想设计“超级英雄”类游戏时,我就知道“指数换算法”很可取。这样的分析 能给你许多被验证过的思想用于你的工作中。 3. 测试、测试、再测试 测试你的游戏,尽可能多次的玩。最好当你不在场的情况下,让别人来玩,过后再 告诉他们。(让别人当你不在的时候玩游戏称为:“盲测”) 还有,推敲你的规则。考虑假设情况,解决概率复杂性。比如,如果你正在设计一 个RPG,试着找出平均人们用弓箭从一米、五米、十米、五十米和百米范围内射中 人形大小目标的百分机率。对于二战游戏,检测你的监视器和解决一个小步兵摧毁 一辆坦克的机率。反复计算在不同的条件下,如:不同的地形、夜间等等。这将有 助于你找到在数学中出错的地方或建立了一个不好的假设。 4.学习背景知识 如果你想编一个中世纪的神奇游戏,就要去读中世纪的文学和历史。读有关魔法的 书及现有的中世纪传奇游戏。对其它类型的游戏也是如此,如果你想做一个越南战 争的游戏,就应去读有关战争的正史及野史,特别是战略、战术的分析。 所有的背景知识可以用于几种途径:首先,能帮助你创造出逼真的角色。另外它能 减少你在术语及背景知识方面,出现重大错误的可能性。当然,资料应该本身就很 有趣。如果对于所要学的都不感兴趣,那为什么还要编写这方面的游戏呢? 5. 正规教育 选一门介绍概率和统计的课。试着读一些游戏方面的数学理论。你可能觉得那没什 么用,但它能帮助透视算法的掌握。斟酌你的英语(或其它你发表游戏所用的语言) 当游戏描写得好的时侯,就更容易学,至少不能有大量的语法错误。 如果你想制作电脑游戏而没上过任何编程课时,不妨学几门。你可能学不到什么编 程序的具体东西,但一门好的课程可以教会你如何组织程序使之更容易维护和发现 错误。 建立一个“参考文献库”,它是一系列和你所制作游戏工程相关的游戏、书籍资料。 当你清晨三点突发灵感而图书馆却已关门的时侯,它将是非常有用的。 6. 抽取些时间 一个游戏就像孩子,当它刚出生时,它的父母总认为它是完美的。从你的游戏中抽 出些时间去得到一些新的观点,避免都耗在上面。一遍遍的重复这一过程。 7. 保留记录 确定你有一份以上的游戏拷贝。如果你是在电脑上输入的,就各保持一份硬盘和软 盘拷贝,另外再打印出一份清楚的最近版本(如每月打印一份,如果你干得快的话每 星期打印一份)。你不会觉得拷贝太多,因为你的好朋友们会来向你借或者想拥有拷 贝。而且这些拷贝能够减少你因为硬盘瘫痪或丢失笔记本等原因造成的丢失机会。 同样道理,保留旧版本的拷贝是有好处的。如果你在游戏测试时发现新的办法还不 如旧的好,而你却已将旧版本的扔掉了,这该怎么办?至少保留一份最后版本之前 的拷贝,同你当前版本的拷贝放在一起。 8. 其它注意事项 优秀的规划和书写是好的,但精美的视觉化说明对你的销售大有益处。如果你要自 己动手,就学一些桌面出版,或找一些现成的插图(比如:剪辑艺术或政府出版物) 或找别人帮你画些插图。 找个从事印刷业的人,和他探讨一些尽可能廉价的方法。低价格可以有助于销售, 低成本则有利于你的收益。 9. 记住这只是个游戏 不要因为制作游戏而忽略你的现实生活。如果有人不喜欢你的游戏,别介意。不用 担心别人窃取你的创意。记住第一条诫律,从你的所做中得到乐趣就行了。 10.没有第十条了 :-) 另外,这里有一些来自汤姆(“棱镜游戏”的主持者)的额外忠告,感谢汤姆!: 1.不断的创新是非常好的。如果你游戏中的所有东西都令人似曾相识,就好像是 偷来的。如果所有东西都与众不同又会让人感到陌生。常见题材单一独到的构思是 好的,但会使得你的游戏看来像个“变体”,而两个熟悉题材精明的创意则会使游 戏有新鲜感同时容易上手。因此不要试图彻底从新发明某样东西,而应把当前所拥 有的主意清晰化、简洁化的用于扩展关键观念的创新和趣味方面上。 2. 修正和雕琢你的游戏创意。测试不仅仅为了清除游戏和规则介绍中的错误,而 且就像一个讨论会,对照他们已经取得的东西,游戏设计师能够发现什么是真正所 要表达的。如果你将测试留到最后,这一发现将对你没有什么好处。如果你进行早 期的测试和经常从眼前试着发现这一游戏真正要表达的,你就能常常很大的改进这 一游戏。 “ Alpha”测试就像在问:“是否真有这个游戏?”“我得到它了吗?”“ Beta ” 测试看来在问:“是否用了最好的方法达到这一效果?”,“这是游戏的精炼吗? 或者它是否能被简化或删除?”“是否所有主要的游戏系统协同工作,给予了我所 期待的游戏体验?”“ Gamma ”测试又像在问“如何才能改善游戏的收支平衡 和介绍呢?”许多设计师停留在Alpha(生产一个吸引人但却是次品的游戏)之后或 者从Alpha直接到Gamma,跳过了Beta(生产一个好的但还不够完美的游戏)。 通常有必要靠你的亲密朋友/游戏小组及早的进行足够的批评性分析,帮助你发现如 何才能改进一个已经相当不错的游戏。 我的一些其它建议: 在我制作游戏过程中,从没有清晰明显的测试“阶段”。我倾向于每个阶段都做一 点。我修改一些系统,抛弃或替换一部分,改善其它的收支平衡和介绍,差不多是 在同时做的。这些部分来自于我所从事的主要游戏类型的设计-宇宙类RPG,你必须 在一个时间内干一个部分的事情。 关键在于去寻求达到你最好的作品。用不同的方法尝试,直到找到适合你的方法, 然后用它钻研下去。 4.游戏的剧情 ------------------------------------------------------------------------------- 游戏剧情的重要是不言而喻的,特别是RPG游戏,相信广大玩家对"仙剑奇侠传" 熟得不能再熟了,这个游戏以剧情取胜(他的音乐也相当不错),各大媒体对他的 评价也都是以剧情为主,这个我就不多说了. 我也曾看过许多文章提到剧情的重要,这些文章说的相当好,相当有价值,但基 本上讲述的是剧情的要点及注意事项.而我将从另一个方面去分析游戏的剧情. 游戏的剧情是游戏的灵魂(当然除少数不需要剧情的游戏,如体育类,赛车等), 游戏通过各种各样的方法让玩家融入到设定的剧情上以打动玩家,但如果游戏 的剧情不吸引人,那么无论游戏的表现手法有多好也不能达到目的,但是怎样 的剧情才吸引人呢. 事实上中国与外国玩家有着很大的文化差异,这一点可以从各地所出产的游戏 上看得出来,欧美的游戏大多重视人物与场景的直实性,看上去就像电影,而东 方的游戏普遍追求漫画式的效果.但这两种风格哪种适合我们呢?答案是两种 都适合.不要忘记我们的玩家基本上是青年一代,对新事物的接受是相当快的, 对欧美的游戏我们的玩家接受得很快,从这可以看出国外的游戏制作是相当出 色的,就拿我自己举个例子,前两天我得到一款"生化危机2"的游戏,游戏开始 的动画可以说是扣人心弦,并且很好的衬托出了主题.而第二种风格的代表作 品就是"仙剑"了. 游戏所要表现的内容必须能够被玩家接受,而且还要有创新,这样的剧情才说 得过去.现在我们有一个很好的观察点,那就是电影,外国的制作精良的大片 挤进中国后给我们的冲击多么大,而中国传统题材的作品也给我们留下难忘 的印象. 我们不得不承认,在技术上我们与国外的游戏制作公司相比还差了一截,这 使得许多很好的题材我们不敢用,因为以现有的技术还不能很好的将他表现 出来,如果勉强还可能会起反作用(这是有例子的). 在这里我只是起一个开头的作用,什么样的剧情适合大家也不是一下能说清 楚,希望广大游戏爱好者能积极讨论这个问题,这也是我们中国游戏业现阶断 的一个重要的有待解决的问题. 5.角色扮演游戏的升级系统研究 ------------------------------------------------------------------------------- 在一般的角色扮演游戏中,人物的成长是一件相当重要的事,无论是角色扮演游戏或是目前热门的策略型角色 扮演游戏(简称RSLG),这些升级系统都是游戏的一个重要部份。不过在一般的角色扮演游戏中,人物的升级 以及成长却有着很多种的处理方式。在本文中,笔者将为各位介绍各种角色扮演游戏中常用的升级方式,并且 分析各种作法的优缺点。 在一般的角色扮演游戏中,最常用的升级方式就是乱数式的成长方式。在这种模式中,当一名角色获得升级的 时候,程式会使用乱数来决定升级的各项指数,也就是说所有的升级数值都不是在控制中,而是依据一个乱数 表来决定提升的数值。这种升级的方式是如何处理的呢? 当人物到达升级的标准时,就会进入处理升级的副程式中,在这个副程式中程式会依设计者所定出的一个乱数 范围,来计算出这名角色所得到的升级指数,然後将这个数值加到需要增加的属性上。 在这种乱数决定升级的情况下,玩者所能够获得的升级数值,完全是由设计者订定的范围中求出,无论是升级 的上限或是下限都是在这个范围内,绝对不会有意外的情况发生,就算是设计者如何提高上限与下限,都不会 改变这些。这种作法虽然可以让设计者很轻松的订出升级的上下限,但是却不能控制升级时的不利因素,那就 是乱数的成份实在是太高了。若是有一名角色因为运气不好一直只有获得下限的升级数值,那麽它可能会比一 个一次就获得上限升级数值的角色要弱。举例来说,当这个乱数的范围是一到五的时候,若是角色甲和角色乙 分别获得上限和下限的升级数值,那麽会发生以下的状况: ┏ ┳ ┳ ┓ 角色甲 角色乙 ┣ ╋ ╋ ┫ LV1 10 10 LV2 15 11 LV3 20 12 LV4 25 13 LV5 30 14 LV6 35 15 ┗ ┻ ┻ ┛ 各位看看上表,是不是可以看到角色甲在第二级时的数值就已经和角色乙第六级的数值是相同了。由於乱数式 的升级方式会有这种不公平的情况发生,因此常会使得玩者的努力需要有一些运气的成份在里面;若是运气不 好,可能原本的努力都无法发挥所要的功效。 由於乱数式的升级方式有这样的缺点,因此有两种不同的改进办法,首先就是百分比制的升级方式。在这一种 办法里,角色在升级的时候还是使用乱数来进行,不过在每一个数字的出现比例上却做了一些调整。例如同样 的升级的范围还是从一到五,但是每一个数字的出现比例调整如下: ┏ ┳ ┓ 数值 出现比例 ┣ ╋ ┫ 1 10% 2 20% 3 40% 4 20% 5 10% ┗ ┻ ┛ 各位从上表中可以看到,在这一种处理方式上,每一个数字出现的比例做了一些调整。原本的乱数式中,每一 个数字的出现比例都是相同的,就以上面的例子来说,每个数字出现比例是百分之二时,因此上限和下限的数 值比较容易出现,发生不幸的情况比较多;但是在这样子调整後,上限和下限的数值出现的机会就减低了不少 ,会发生不幸的情况就降低了。 虽然这样的作法可以降低不幸的发生机会,但是还是无法完全的克服所有的状况,因为还是有可能会发生相同 的状况,使得玩者陷入属性不佳的情况中。因此另外一种改良的方式~修正值升级方式就这麽出现了。 其实修正值的升级方式和原本的乱数处理法在计算的时候是完全相同的,只不过是它在升级到一个程度的时候 ,会来做一次计算并且取出一个修正值,以免玩者因为运气不好无法达到升级的功效。 在这种作法上,上半部和乱数式的做法完全相同,唯一的不同是下半部的副程式。而这个副程式的作用就是在 帮一些升级时运气比较不好的玩者取得一点修正值。 我们就以前面所说的升级的数值是从一到五来做个例子,让玩者每升五级时就可以取得一点修正值。因此若是 一名角色在五次升级中都只有获得一点的升级值,那麽目前它的数值就是: 10 + 1 + 1 + 1 + 1 + 1 = 15 不过在我们的升级表内中等的数值是三,因此当角色升了五级之後,应该可以获得以下的数值: 10 + 3 + 3 + 3 + 3 + 3 = 25 这麽说来这名角色因为前五级的升级运气不好,因此少获得了十点的升级指数,所以我们就在这一次把这个缺 少的数值以修正值的方式补足,从修正值的计算式中可以得出: 25 - 15 = 10 就将这个数值加到角色的属性中,让角色不会因为运气太差而有不利的情况。若是角色在升级中都获得比较高 的数值,那麽修正值就是负的,也就表示不需要有修正值的存在了。 这种作法完全是为了不让玩者因为升级时运气不好使得属性太低,因此只能算是修正部份数值的作法,虽然不 能完全解决乱数式的问题,但是可以将不利的因素降低,因此在某些游戏里的确有采用这样的作法。 除了乱数式的作法外,还有一种是表列式的升级方式。在这种升级方式中,每一名角色的升级数值都是设计者 已经订好的,完全不会有任何的变动。它的好处是设计者可以完全掌控所有的升级状况,但是相对的这样子的 表格需要占掉较多的程式空间。 举例来说,某个游戏若是采用这种升级方式,那麽在它的记忆体中就需要有这样子的升级表格。若是游戏中有 七项属性会获得升级,等级共有一百级的变化,那麽基本上它就需要有七百个不同的数值表放在程式中。若是 一个数值用了两个位元(BYTE),那麽就需要用到1K左右的记忆体。如果说游戏中有四名角色,它们升级情况 又都是不同,那麽占掉的记忆体就将近有5K了。这麽算起来各位可能觉得不会很多,但是当这种资料越来越多 的时候,记忆体的消耗也就越来越多,使得程式的空间也越来越小了。 由於表列式的作法会使得升级的情况比较单调,因此大多数的游戏并不愿意采用这种作法,再加上这一类的作 法对於记忆体的占用空间也比较高,因此如果不是必要,大多数都不会用这种作法。 除了以上这些作法之外,还有一种就是指数型的升级方式。这种作法其实就是表列式的改良,因为它将升级的 表格简化成一个叁数,在升级的时候就依这个叁数来计算能够获得的升级值。现在我就举一个例子来示范。目 前有一名角色的属性以及升级指数如下: o 生命:10 生命指数:10 o 法力:10 法力指数:10 o 力量: 3 力量指数: 2 o 智慧: 2 智慧指数: 2 o 反应: 2 反应指数: 2 o 体能: 4 体能指数: 2 o 运气: 1 运气指数: 3 那麽当他获得升级的时候,程式就会依这个升级指数来计算升到下一级时的各项属性值。因此在升了一级之後 ,各项属性的数值就是以下的数字: o 生命:20 o 法力:20 o 力量: 5 o 智慧: 4 o 反应: 4 o 体能: 6 o 运气: 4 用这种作法,在程式内不需要复杂的升级属性表,只需要几个简单的叁数就可以,若是能将各项叁数之间的关 系加以变化,并作一些运算,那麽可以使升级时的变化更多。举例来说生命的增加和体能有关,或是法力的增 加和智慧有关,那麽在计算起来时会有比较多的变化,使得整个升级的表现不会太单纯。 以上这些作法大部份的变化程度都不会很多,没有办法表现出一个人的成长情况。就像我们有时候会形容一个 人「大器晚成」或是说他「小时了了」这样子的情况都不能表现出来。因此後来又有一种成长曲线的升级方式 。在这种升级方式中,我们首先要订出几种不同的升级情况。像是: A. 平衡成长 B. 大器晚成 C. 小时了了 要达成这种效果,我们需要将升级的总等级数分成几个阶段。我们以一个可以升到一百级的游戏来说,将每十 级分成一个区块,就可以订出这三种成长情况各要给它多少的数值。 其实这种曲线式的升级方式,在处理上和指数式的作法差不多,只不过指数式的作法一个人物每一种属性只会 有一个数值,这个数值是不会改变的。但是在曲线式的作法中,会依不同阶段有不同的升级指数,才可以造出 不同的成长情况。我们就以一名「大器晚成」的角色来说,这一类的角色在开始成长的比较慢,但是当人物成 长到一个阶段後,成长的速度就会加快,因此我们可能在前两个阶段只给他们一点的升级指数,後面几个阶段 再给他们较高的升级指数,使这名角色会在游戏後期升得比较快。 反过来说,若是要设计一名「小时了了」的角色,那麽我们在初期可以给他较高的升级指数,但是到了後期就 要给它较低的指数,如此一来就可以表现出这样的情况。 事实上,在游乐器中的「光明与黑暗续战篇」就曾经用过这一种作法,使得游戏中的每个角色都有各自不同的 特色。特别是有些属於大器晚成的角色,曾经因为初期成长的速度太慢而被玩者抛弃,但是後来知道这名角色 的特性之後,再回过头来训练的这种情况,正是这种曲线式升级的特色。这种作法使得角色除了单纯的数字属 性之外,还增加了一些隐藏的特性,会让游戏更有味道。 如果以笔者个人的喜好来说,我是比较欣赏曲线式的升级方式,因为这种方式比较可以隐藏角色的特色,也不 会因为数字的变化太过单调而让玩者觉得过死板。比起乱数式的不定性和升级指数式的单纯来说,这一种作法 可以说是兼具了两种的特色,同时还有全新的表现,是一种不错的升级方式。只惜目前国内的游戏很少使用这 种作法,大多还是采用乱数式的作法,对於国内玩游戏的玩者来说,实在是有些可惜,因为大家没有办法体会 到这种作法的优点。 6.游戏中的智能系统处理 ------------------------------------------------------------------------------- 游戏中的智能对手 AI在游戏中最普通的形式是创建计算机控制的对手。因为大多数游戏是单人游戏,所以要设计游戏者在游戏中必须战胜对手。为了达到这个目的,你可以使用某种类似A*搜索的简单AI算法,以帮助对手穿过迷宫向游戏者发起进行。你也可以使用简单的算法预测游戏者的反应。 但是,记住没有必要创建世界上最强大的对手。你的对手只要能给游戏者提供足够的挑战性就可以了。还有,要注意游戏的内容。例如:一个战棋式RPG游戏中策略占的是主要地位;而在纯RPG中故事情节和角色开发就更重要一些。千万不要因为计算机对手太强大而让游戏者们陷入失败的泥沼。 游戏中的非智能对手 通常,在游戏开发中AI技术是与计算机对手紧紧联系在一起的。这是因为早期的大部分类似角棋的游戏是一对一的。但是,任何好的探险游戏或RPG 游戏开发者都知道,AI同样可以用于非对手角色。例如:如果你正在建立一个RPG游戏并且你想让你的世界活起来,这就是说,让城市里的人以智能的方式活动,那么你可以使用某种算法确定在一天中的某个时候,角色应该在那里。你可以使用类似于AI算法如A*来辅助你将一个对象从一处移动到另一处并绕过障碍物。 游戏中的智能系统 游戏中的AI在本质上是最具有模仿性的,但它们基本上是依赖一些AI要素。 你可以将所有具有决策功能的对象在一个游戏中融合为一个整体。例如:在一个战争游戏中,你的各个部分可以依据各自所处的具体环境来作出各自的AI决策。 使用这种方法,你得把精力集中于怎样在各个独立的决策个体之间建立联系,以及这些联系怎样才能使游戏成为融会贯通的整体。是用一个高级决策影 响其它决策,还是各个决策个体之间平等地互相影响呢?举个战争游戏来说, 你有十辆坦克,它们的思维模式基本相同。所以它们都决定去攻击敌人阵营中 HP值最低的一辆坦克。但是这时其中一辆坦克说:“这个敌人归我了!”那么 剩下的九辆坦克就应该依据这条信息各自调整下一步的攻击目标。当你建立智能个体时,要考虑在一个智能系统整体环境下,它应该如何行动。 7.电脑游戏中的人工智能制作 ------------------------------------------------------------------------------- 电脑游戏随着硬件执行效率与显示解析度等大幅提升,以往很多不可能或非常难以实现的电脑游戏如此都得以顺利完成。虽然电脑游戏的呈现是那么地多样化,然而却与我们今日所要探讨的主题,人工智能几乎都有着密不可分的关系。 在角色扮演游戏中,程序员与企划人员需要精确地在电脑上将一个个所谓的“怪物”在战门过程中栩栩如生地制作出来;所以半兽人受了重伤懂得逃跑,法师懂得施展攻性法术。 目前能让人立刻想到与人工智能有密切关系的游戏有两种: 一是所谓的战棋/策略模拟游戏,二则是棋弈游戏。人工智能的比重与深浅度,在不同的游戏类型中各有不一。有的电脑游戏非标榜着高人工智能不可,不然没有人买;有的则是几乎渺茫到让玩家无法感觉有任何人工智能的存在。 导向式思考 AI最容易制作的的方式,同时也是早期游戏AI发展的主要方向就是规则导向或称之为假设导向。在一些比较简单的电脑游戏中,程序员可以好不困难地将游戏中的规则与设定转化成一条条的规则,然后将它们写成电脑程序。让我们以角色扮演游戏为例。决大多数的企画在设定所谓电脑怪物时,所设定的属性通常有以下几种: 生命值 攻击力 防御力 法力 属性 最后一个“属性”是我在设定时喜欢增加的项目之一。透过这项属性的设定,我可以把怪物设定成“贪生怕死的”,也可以把战士设定为“视死如归”。以目前我们所掌握的资料,在战门系统中的大纲如是诞生了: 规则一 if (生命值&lt 10) // 边临死亡了吗 { if (属性== 贪生怕死) 结果 = 试图逃跑 if (有任何恢复生命值的物品或法术可用) 结果 = 使用或施展相关物品或法术 } 规则二 if (可施攻击性法术 && 有足够法力) { 结果 = 施展攻攻击性法术 } 由以上一连串的“如果--就--”规则设定,建立了最基本的AI。说这样的制方式只能建立基本AI其实并不当然正确。只要建立足够及精确的规则,这样的方式仍然有一定水准的表现。 规则导向的最大优点就是易学易用。在没有深奥的理论概念的前提下,仍有广大的使用群。所以很多老道的玩家常常没两下就摸清楚敌人的攻击策略,移动方式等等。 推论式思考 相信曾经接触过电脑语言课程,或是自习过相关书籍的朋友们,都曾曾经听过一个著名的程序,那就是井字游戏。用井字游戏作为讨论AI的入门教材,我个人觉得是最适当的例子。或许有人还不知道井字游戏怎么玩。只要任何一方在三乘三的方格中先先成一线便胜利了。我们在前面谈过的规则导向,在这里也可以派得上用场。 if任何一线已有我方两子&&另外一格仍空//我方即将成一线吗 结果 = 该空格 if任何一线已有敌方两子&&另外一格仍空//防止敌方作成一线 结果 = 该空格 if任何一线已有我方一子&&另外两格仍空//作成两子 结果 = 该空格 有一次我在某本电脑书上,同样地也看到某些以井字游戏为介绍的范例。不同的是,我几乎看不到任何规则导向的影子。但在仔细分析该程序码后,我得到了极大的启发,原来AI是可以不用这么多规则来制作的。它用的方法正是在电脑AI课程中重要的概念:极大极小法。我在这里只说明这法则的概念。继续以井字游戏为例,电脑先在某处下子,接着会以假设的方式,替对方下子,当然,必须假设对方下的是最佳位置,否则一切则毫无意义。在假设对方下子的过程中,自然又需要假设我方的下一步回应,如此一来一往,直到下完整局游戏为止。 底下是节录书中的程序片段: bestMove(int p, int*v) { int i; int lastTie; int lastMove; int subV; /*First, check for a tie*/ if (isTie()) { *v=0; return(0); }; /*If not a tie, try each potential move*/ for (*v=-1, lastTie=lastMove=-1,i=0;i&lt9;i++) { /*If this isn't a possible, skip it*/ if (board !=0) continue; /* Make the move. */ lastMove=i; board =p; /* Did it win? */ if (hasWon(p)) *v=1; else{ /*If not, find out how good the other side can do*/ bestMove(-p,&subV); /* If they can only lose, this is still a win.*/ if (subV==-1) *v=1; /* Or, if it's a tie, remember it. */ else if (subV==0){ *v=0; lastTie=i; }; }; /* Take back the move. */ board =0; /*If we found a win, return immediately (can't do any better than that)*/ if (*v==1) return(i); /*If we didn't find any wins, return a tie move.*/ if (*v==0) return(lastTie); /*If there weren't even any ties, return a loosing move.*/ else return(lastMove); }; 国外的一些论坛曾举行过256字节的游戏设计比赛。作品非常多,其中有一件作品正巧也是井字游戏。作者用区区两百多行就写了与上述程序演算方式完全相同的作品,可见功力确实了的。另外,我也很希望类似的活动能在国内推展起来。对了,在这样的比赛条件限制下,除了汇编语言外,几乎没有其它的选择了。 .386c code segment byte public use16 assume cs:code, ds:code org 100h tictac proc far start: push cs pop ds mov ax,0B800h ; 清除屏幕 mov es,ax ; xor di,di ; mov cx,7D0h ; mov ax,0F20h ; rep stosw ; xor cx,cx ; mov dl,5 loc_1: call printBoard loc_2: mov ah,8 ; 等待按键 int 21h movzx bx,al sub bl,31h ; 如果不是1..9 jc loc_2 ; 则重新输入 cmp bl,8 ja loc_2 cmp data_1[bx],al jne loc_2 mov byte ptr data_1[bx],'x' dec dl jz short loc_3 mov al,'o' call bestMove mov [si],al call isWin ; 判断是否已取得胜利 jnc loc_1 loc_3: call printBoard mov ax,4C00h int 21h data_1 db '12' data_2 db '3456789' data_3 db 0 tictac endp printBoard proc near mov si,offset data_1 mov di,548h mov cl,3 locloop_4: movsb add di,5 movsb add di,5 movsb add di,133h loop locloop_4 retn printBoard endp isWin proc near mov bx,1 mov bp,3 call sub_3 ; 检查横向是否完成 inc bx inc bx dec bp dec bp call sub_3 ; 检查纵向是否完成 call sub_4 ; 检查斜向是否完成 clc retn isWin endp loc_5: stc retn sub_3 proc near mov ah,3 mov si,offset data_1 loc_6: mov di,si call sub_5 add si,bp dec ah jnz loc_6 retn sub_3 endp sub_4 proc near mov di,offset data_1 inc bx call sub_5 mov di,offset data_2 dec bx dec bx call sub_5 retn sub_4 endp sub_5 proc near mov cl,3 locloop_7: cmp [di],al jne short loc_ret_8 add di,bx loop locloop_7 add sp,4 jmp short loc_5 loc_ret_8: retn sub_5 endp bestMove proc near mov bx,31FEh mov cl,9 mov di,offset data_1 locloop_9: cmp [di],bh ; #empty? jne short loc_12 ; #no, skip mov [di],al pusha call isWin ; #CY: Win popa ; jnc short loc_10 ; mov bl,1

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

标签: rslg制动电阻60w

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台