我对三国游戏开发的认识

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統

一、我做三国的原因
我之所以做三国跟历史上的因素有很大关系,那么现在我就说一下相关的历史。
我对三国的认识最初来源于三国战记,其实最初我也仅仅只是觉得好玩而已。在后来,我认识了一位对三国感兴趣的朋友,他经常跟我说三国,这使我逐渐对三国游戏产生了兴趣。此后我就玩了不少的三国兴趣,这就使我对三国的兴趣越来越浓。到了03年8月的时侯,我开始上网了,起初也只是为了找一些游戏的补丁和加强版,渐渐地我进入了琅琊,在进入之初我看到琅琊论坛里有很多游戏设计的想法,刚开始的确有些兴奋,但是也渐渐地发现里面并不具有有实现能力的程序员。因此,我当时就想由我先来开这个头吧。这就是我做三国的起源。
其实使我想做三国的另外一个原因就是对当前开发三国的公司的开发方向感到失望。第一次看到光荣的三国九时,我也很爱玩。但是一款游戏都是有它生命力的,玩久了自然腻,而此时光荣推出的三国十虽然没玩,但是看了介绍,感到比较失望。后来看到网友的发言,他们说光荣毕竟是公司,公司都是以赢利为目的,所以它不可能从玩家的感受来出发。我想这就是开公司开发三国的蔽端,因为现在经济并没有发展到那种可以开从玩家的感受出发的公司,因为公司要考虑它的生存问题。所以我就认为以玩家感受为出发的确可以作为业余的一项优势,因为业余经得起失败。
到了后来,就开了三国游戏开发论坛,我在里面当管理员,在开三国游戏开发论坛期间与里面的会员进行了广泛的交流,提高了我对游戏开发的认识。我在管理论坛的时侯发现策划区的人发贴特别多,而程序区的人发贴特别少,策划区有很多的版主,程序区找到一个都很困难。而且到了后期,论坛的人气一直提不上去,策划的讨论也没之前那么热烈了,这促使我思考原因。当时我就认识到了提高论坛人气最大的障碍其实就是没有程序做保证,在里面只能是空谈,人气低也是必然的。不幸的是,当我认识这个问题不久,论坛就关闭了。论坛虽然关闭了,但是我认识了很多朋友,游戏开发依然可以继续。
当时虽然有关闭论坛的不幸,但是幸运的事也接着来了。我认识了一个很热爱开发游戏的网友,而且他比较有时间,他也比较热情的参与我游戏的策划,写成了战略三国文档,这对于我的作用是我为了实现这个文档的需求,我学习了很多,也发现了我开发方法的问题,因为我之前做游戏不注重维护,只是拼命地实现功能,而在写战略三国多次重写中发现了这个问题的严重性,我因此才学习了类。说到这里我有个体会,其实编程的学习真的要通过实践来推动,通过实践能发现问题。为了解决这些问题,学习新的理论和技术,这样就可以推动自身的进步。战略三国的开发除了推动我技术进步以外,还有一个很重要的意义大大加深了我对游戏的认识,之前我并没有重视游戏系统本身的构造,往往只重视了局部。通过游戏的开发让我理请了思路,也给我增加了许多信心。
在这之后进入了gameres论坛,发布了战略三国引起了很多人的评价,我认真看了很多人的发言,其中有些人说的的确是有点道理,加深了我对游戏开发的认识。
在此同时,那个策划心想着建立一个好的团队,一直跟我提团队的事,因此就建立了一个专门合作的群,团队的建设中也发现了没有能真正能干事的,要么就是有时间但没能力又不愿意学习,要么就是有能力但忙于工作没有时间开发游戏,对于前者我认识到其实是一个信心问题,他们没有足够的勇气去挑战他们的理想或者是有勇气因方法不当受挫折而放弃的,对于后者来说我认为从根本上来说也是信心问题,因为他们的时间很有限,以那么少的时间去开发一个游戏几乎是不可能的,因此并没有这个信心去开发。从以上两种情况来看,信心和方法的确对开发游戏很重要的,而树立这种信心和科学的方法依靠别人是不行的,因为他们既然失败过或没信心就说明不能够完成这个任务。因此在此之后,我就确立了开发的自主权,不管多艰难也是自己想办法去开发(其实克服困难本身就是一种乐趣),不再去依靠别人,当然别人要合作我还是欢迎的,但是这些人总是会在一段时间以后因故离开,经过分析发现他们不是因生活所迫就是因兴趣减退而离开,这更加坚定了自主开发的信心。而此时策划认为开发游戏需要有一定人群的合作,因而与之发生了争吵,最后就中止了和策划的合作关系。这件事进一步坚定了自主开发的信念。
虽然说自主开发是必要的,但是问题也很明显,一个人的工作量非常大,这个问题也曾使我一度感到迷茫,在网络上问了一些人,要么说业余的不行,要么说现在条件不成熟等将来吧,要么说要学会妥协,这些都不是我想要的答案,经过长期的思考,想到了一种比较好的解决方案,就是做编辑器。这个编辑器所涉及的范围很广,包括公式、界面、功能等等,我要做的就是把这一编辑器体系建立起来,然后再弄个简单的策划,这样一来,由于策划内容少,所写的代码量就小,因此工作量小,但是因为功能、公式是基于编辑器的,所以以后的扩展很方便,这样就循序渐进的把游戏完善。而且能够让更多的人尽快上手,使用编辑器,这样就能使更多的人参与进来做一些工作,比如输入公式、编写功能,这样一来我的工作量就可以大为减轻。关于编辑器体系的建立,现在进展良好,因为找到了合适的工具controlscript,这个工具不仅可以按VB的语法输入代码,而且可以增加游戏中的类,这样就可以在代码中对类操作,这样一来就和游戏建立起了联系,一旦建立了联系,所想要的编辑器的开发只是一个时间问题了。另外,我之所以要通过做简单的游戏招人,就是因为空有编辑器是不能成事的,需要有一个游戏程序做基础,这样编辑器的作用才有保证。而做游戏程序需要时间,因为游戏程序的结构还需要一定的探索。这样等以后人参与进来了,我只要负责更新游戏程序和编辑器,游戏程序里面的主体代码是让编辑器的代码在游戏中实现,比较有一般性,而非具体的功能,这样工作量就比较小了,可以省去那些重复的工作。这样一来,就可以保证游戏程序和内容的不断完善,游戏开发就能进入一个相对稳定的发展期,当然在一定发展之后也会遇到障碍,到时侯仍然要努力去解决。另外,需要指出的是,我并不指望目前就做编辑器和游戏程序然后就会有人来参与了,本身这需要一个过渡期,所以在初期我还是要亲自到编辑器里去写功能,让人参与本身就是一个逐渐的过程。
总之,我选择开发三国有以下几个原因:
1)对目前现有的三国游戏不满
2)网络上能坚持把三国做下去的程序员太少
3)三国是历史题材,个人比较喜欢历史题材的游戏
4)为了激起更多人开发三国的热情,使得三国开发能够一直延续下去
二、做三国的基本方向
1.做的是三国游戏而不是所有游戏
之所以做三国游戏,除了前面说的原因以外,还有一个很重要的原因就是人的精力是有限的,要想做好一类游戏必定在上面投入大量的时间,如果做各种类型的游戏的话,就会出现每种类型虽然都做过,但是都不能深入了解其中。
2.做的是模拟历史的三国游戏
我不能为了游戏性做那种冠以三国事物名称的三国,因为我不满的并不是这种类型的三国,而是对光荣模式三国的不满,光荣模式的三国很多三国历史的文化没有得到真正的体现,比如中央集权。我做的游戏是以模仿三国九为方向的,而三国九本身是以模拟历史为方向的,因此我的游戏也是以模拟历史为方向的,但是模拟历史只是方向而已,不是事事都非要模拟历史,我们模拟历史要的只是三国那种环境,而不是完全模拟,有些部分为了游戏性可以与三国实际情况不同。总之,我之所以要以模拟历史为方向,是为了想体现出三国时代的那种环境,让玩家去体会三国时代。
3.类型是SLG
三国游戏类型有很多种,但是SLG类游戏我比较喜欢,这是因为SLG类游戏侧重于人的思考,对于三国大局的思考,并不是像即时类的游戏需要玩家快速的反应,也不是像RPG类游戏让玩家去体验剧情。之所以选定类型为SLG是因为SLG类游戏比较能体现人思考的价值,
4.运行方式为半即时
前面说过不选择即时类游戏的原因了,这里说明一下不选择回合制游戏的原因,作为一个回合制游戏,玩家的操作能够迅速作出反应,正因为太过迅速,使得游戏缺乏了战略性,不能较好的模拟三国历史。而半即时,能够做到玩家的操作在进行以后作出反应,比较好的体现了战略性。
5.格子是元素行动的基本单位
之所以不选择三国九那种以像素为单位的,主要是出于技术上的原因。以像素为单位的游戏需要进行碰撞检测,在很多细节上比较麻烦,同时也会给策划增加负担,而格子游戏相对简单了很多,而这样做并不违背前面几条原则,同样能够很好地模拟历史。
6.游戏是单机的
很多人说网络游戏是当前发展的趋势,做单机游戏没有生命力。我认为做游戏一定要坚守自己的信念,不能为了趋势而跟着趋势走,别人在做网络游戏的时侯,我们做单机,这样一来,我们做出单机游戏相比于别人的网络游戏更能体现出单机游戏的特色。游戏虽然是为玩家而做,但是单机游戏如果做得好照样有很多玩家玩,并不是说单机游戏不可能受到欢迎,所以我们不必迎合这种趋势转向制作网络游戏,而是要在单机游戏方面努力创新做出自己的特色。
之所以不做网络游戏,并不是为了特色而特色,是有一些原因的:
1)网络游戏需要架设服务器,这需要资金上的投入。需要做网络游戏的技术,需要我们花费时间去学习,在游戏制作中还要考虑延迟、同步等等跟游戏本身无关的问题。这些都是很麻烦的事。虽然说有些网络游戏可以采用相关的技术不需要架设服务器,但是仍然需要做网络游戏的技术,在做游戏过程中仍然考虑延迟、同步等等跟游戏本身无关的问题。
2)网络游戏与单机游戏相比更像一种工具,是人与人交往的工具,正是因为这个特点,游戏本身缺乏单机游戏的游戏性。在游戏过程中是体现人与人的斗争,人与人都虽然其乐无穷,但是人本身很难得到单机游戏那种战胜的乐趣,单机游戏有些AI虽差但是玩家能够感受到胜利的乐趣。也就是说单机游戏,玩家能够主宰整个游戏,而网络游戏不行,再加上现在玩很多网络游戏买装备都需要钱,这就变成了有钱人占主角地位,游戏就不能成为真正的游戏了,具有很大的攀比味道,游戏已经不是靠玩家玩游戏水平高低,而是靠钱的多少,这就违背了玩游戏本来的放松意义。再加上现在很多网络游戏还有作弊行为,这进一步破坏了游戏本身。一句话,网络游戏在一定程度上违背了游戏本身的放松意义,更体现出玩家与玩家的社会关系,玩家在游戏中找不到主宰游戏的感觉。
3)网络游戏在模式上有弊端,一个网络游戏需要很多人的参与,而如果其中一个玩家因故离开怎么办,人都是有事情的,不可能时时刻刻都在玩游戏,只有采用电脑托管,而电脑托管AI做不好,玩家回来以后肯定会很生气,所以一个好的网络游戏也是需要一个好的AI的,网络游戏也避免不了要设计一好的AI。
说了这么多网络游戏的问题,但不可否认的是单机游戏也自有其缺点,玩家玩过一遍游戏很可能这个游戏就被摸透了,再玩的时侯会发觉AI太差。也就是说单机游戏存在耐玩性的问题,我觉得对于这种情况可以做成网络游戏,一个有单机游戏基础的网络游戏和一个纯粹的网络游戏是不一样的,因为玩家具有很大的选择余地。
7.游戏是2D的
3D同样是当今游戏发展的趋势,但是跟网络游戏一样并不需要去迎合趋势。3D游戏本身没有什么不好,只不过3D技术需要花费大量的精力去学习,人的精力是有限的,花大量时间去研究3D技术,不如把这个精力放在更好的加强游戏的游戏性上,游戏的游戏性比3D重要的多。
三、开发游戏的基本原则
1.做业余游戏
业余游戏虽然技术力量薄弱,开发容易遇到挫折。但是因为它是用个人用业余时间开发的,经得起失败,不会影响个人的现实生活。而商业游戏虽然技术好了很多,但是它要考虑产品的赢利问题,经不起失败,对人的生活影响很大,而且商业游戏为了赢利,很多时侯做游戏要迎合市场,做的游戏并非是自己所喜获的,这在一定程度上违背了做游戏本身的意愿。我觉得做一个游戏的本身意义就在于把自己的想法用游戏表达出来。所以说,做业余游戏没有什么不好的,可以当作在业余时间的一种放松,一种精神享受,不用受太多现实的约束。
2.做业余游戏要考虑自己的感受
虽然游戏是给玩家看的,但是如果做一个自己不感兴趣的游戏,那么将很难持之以恒,连完工都没有保证,就更谈不上给玩家看了。开发游戏耐心很重要,要在开发游戏中始终保持愉悦的状态,让自己有持续动力做下去,而不是硬坚持,硬坚持做的游戏很容易夭折。要做到在开发游戏中始终保持愉悦的状态,不仅要选择一个自己感兴趣的游戏,更要讲究做游戏的方法,这在下文会提到,保持一个良好的心态才能更好地保证游戏开发完,而不是光靠毅力。
3.循序渐进
开发游戏要根据自己的实际能力来定,也就是说根据自己已掌握的知识,来制定开发计划,这样才能更快的促进自己的进步。通过一系列合理的开发计划,我们就能够不断进步。但要注意制订开发计划的时侯跨度要合理,不要过多的超出自己的现有能力。
4.持久开发
做游戏的真正意义并不全是做出一个好的游戏,而是能够实现持久性的制作好的游戏。因为仅仅做出一个好的游戏,它都只是暂时的,转眼即逝的,无非只是让玩家好好的娱乐下罢了,对以后做游戏并没有多少实际效应,因此这样的方式仅仅只是一种虚名罢了。总的意思是说,如果仅仅为了追求制作好游戏,而不择手段,那么好游戏就算做出来了,也只是获得一个虚名而已,对以后的游戏开发并没有帮助,更不用说对开发水平的提高。
所以我们不应该从各处拿代码去抄去凑而不理解,然后拼成一个游戏,即使这个游戏做的很好,但是因为不理解,也制约了游戏以后的发展,也就不能做到持续了。对于我们三国游戏开发而言,深度是非常重要的,所以仅仅从各处抄代码就无法做到深入其中。因此要做到持续开发,就需要掌握与游戏逻辑直接相关的技术细节,把各个系统的实现思路记下,形成制作三国游戏的一套方法,这样以后才能更好的应对各种需求。
5.开发以作品为中心,技术占辅助地位
业余开发的时间是有限的,没有那么多时间去学习系统的理论知识,而且光学习理论知识而不实践也不能够真正的弄懂理论。所以我们定的开发计划应该是一个作品一个作品来,对于三国游戏来说,就是一个个三国游戏,越后面的三国游戏技术要求越高,为了实现三国游戏里的功能,我们就要不断学习与这些功能相关的技术,从而带动我们不断提高。另外,我们不能长时间的停留在一个三国游戏里一直更新技术,除非这个三国游戏是成熟的,在未形成成熟的三国游戏之前,我们应当把新技术用到下个游戏中去,因为作为一个不成熟的三国游戏,其代码结构肯定是存在严重问题的,这是由于开发之初对需求认识不足造成的,这种情况与其花大量时间修BUG,还不如重新再做,再做的时侯肯定会认识到以前的结构问题从而解决以前的BUG。另外,从心理角度来讲一直重复在一样东西上会产生厌倦感,不如以新的思路去做游戏。还有一些旧的BUG或许在目前还解决不了,但是这没关系,随着开发的进展和交流的增多,BUG最终还是会解决掉的。总之,我们应该学习开发中需要的技术,而不是花大量时间去学习与开发本身没关的理论,这样才会不那么枯燥。
下面谈一谈在开发过程中对待技术的问题,应该说对待技术并不是绝对的,并不是要绝对都理解,也不是绝对都只去抄,要看该技术对开发者的作用,如果一个技术开发者只需要调用并不需要修改,那么开发者并不需要理解,只要调用就行了。如果一个技术开发者以后需要修改使用,就必须理解原理了。对于三国游戏来说,图像处理的一些技术,我们不需要理解其中的算法,因为我们并不需要修改,而对于A*算法因为它涉及到逻辑,而且以后需要修改,因此我们需要理解。
接下来谈谈引擎和算法与开发游戏的关系,关于引擎,我认为开发游戏我们的目标是游戏,所以引擎部分直接用现成的就可以了,并不需要自己去做,因为那样会很枯燥,很可能就做一半会使你放弃开发了,所以关于引擎我的态度是直接使用。而算法经常要涉及到逻辑,所以我们要去理解,必要时还要学习相关理论,但是我们只需要学习游戏中用到的算法就行了,没有必要去系统学习,因为这也是很枯燥的事。不懂算法并不影响游戏的开发,因为可以在开发过程中学习。
6.开发工具是由实际情况决定的
一般来说,缺乏开发实力的开发者用的开发工具应该是封装程度越高,开发速度越快的开发工具,比如VB,正是因为它有开发快、容易使用等特点,成为这一类开发者的理想工具,对于我来说,VB更大的意义在于熟悉,因为熟悉,我才会有更多的精力放到研究游戏的构架上。此外,由于缺乏开发实力的开发者组的团队比较小,因此选用VB与C相比,能够减少比较大的工作量,适宜一个人开发,如果用C,一般一个人是很难开发完成的。对于比较有经验的开发者,由于其对游戏构架这一方面比较了解,开发中没有基本的障碍,再加上其对高质量游戏的追求,同时已经有了人数比较多的程序员,不存在工作量问题,所以要用C之类的更底层的开发工具进行开发,用C开发的好处是运行速度更高、维护方便、能够实现更多更好的效果。开发工具的选择是由对工具的熟练程度和开发经验多少决定的,所以VB6就成了我理想的工具,关于vb.net,它应该会比VB6好很多,但是我是以作品为中心的,既然VB6能满足我的开发需求,就没有必要再花时间去学vb.net,如果以后开发需求超出了vb6的能力,我自然要换工具。总之,业余开发选择开发工具一定要根据自身的实际情况。
7.合作方式是由实际情况决定的
一般来说,初次搞游戏开发对游戏开发不怎么了解的不宜搞过大的团队,但由于能力上的缺陷,也不宜单人开发,应该搞小团队,特别是三人组(指策划、美术、程序各一个人组成的团队)。因为策划之间和程序之间的合作都是相当困难的(价值观和人员逃跑都是很大的问题),所以我提倡多组建一些三人组,而不是搞多么大的团队,让多个三人组之间多交流,这样更容易进步。
对于经验不足的开发者会因为经验不足会导致更多的人受挫折,所以这种探索性比较强的开发还是少数人做。而对于比较有经验的游戏开发者,由于其在游戏开发中有一定管理水平,可以搞比较大的团队,以做出好的游戏目标,而不是小团队的那种探索。
8.编辑器和脚本是开发游戏的辅助工具,要正确认识。
在游戏开发一定程度,为了更好地维护程序,用需要使用编辑器和脚本。对于脚本我认为用现成的比较好,自己写一个脚本那是需要花费很大精力的,没有必要。对于编辑器,由于游戏的差异就需要自己写了,写编辑器要注意功能与游戏相关,不要去写太多跟游戏没有直接关系的功能,因为编辑器是一直可以更新的。另外,为了使开发不过于枯燥,可以先开发游戏,等到需要编辑器的时侯再去写编辑器,这样会好很多。
编辑器和脚本在有一定规模的游戏中具有重大的作用,要想提高游戏的可维护性,这个是要做的,也有利于策划和程序的合作,加快开发进度。
四、本人的开发
我目前的目标是做出一个完整的三国,而各个部分不需要太深入,我目前追求的是广度,而非深度。我需要通过做完整的三国探索出一个完整三国的结构,得到三国当中各个系统的实现思路,有个这个思路以后,就可以在各个系统往深度发展。所以对于本人目前的开发,还是以探索为主,为提高自己的开发能力而进行的开发,并不是真正意义上的开发,也就是说目前的游戏还不适合给玩家看,比较适宜技术讨论。我现在所需要的并不是一些纯技术的技术,而是需要跟三国各个系统实现相关的技术。
战争的行军部分只是我目前开发的一个阶段,后面还有战斗系统等等。整个三国游戏包括战争和内政两大部分,每个部分分为若干个系统,平均每个部分完成需要半年以上,也就是说这一年多,我的目标将仍然是做出一个完整的三国。 

 


三国之家 2011-03-15 09:02:55

[新一篇] 吞食天地 列傳.三國游戲縱橫談

[舊一篇] 光明與黑暗的交織——光榮與三國志25年亂談
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表