三国开发长期发展规划
我在前面的文章中已经说过,我开发三国游戏的核心目标是形成高效率的开发出具备好的可维护性的三国游戏的方法。也就是说,第一,要寻找一种方法,能够在短期内快速做出三国游戏,具体说来就是最好能在1个月以内完成一个具备一定可玩性的完整三国游戏。(当然1个月完美不了,但是玩家可以勉强接受),第二,游戏必须具备可维护性,能够适应需求的变更。一旦这2个目标的实现了,那么开发就容易比较有趣味了,因为能够快速看到成果,也能够按自己需要做出游戏了。并且由于开发所需时间不多,业余开发者也容易参与。要达到这个目标,就需要多种手段相结合。第一,开发三国游戏的实践是基础,但是游戏的开发发展路线很关键,不能过多关注游戏质量而应该考虑这个游戏对于目标的实现有多大帮助,从而可以从实践中获得通用性的方法和程序,第二,在实践基础上,应该提取可通用的程序,把游戏的不同部分提取出来,如此可方便后续开发,第三,重视对开发方法类理论的学习和研究,特别是软件工程方面的,并且要结合开发实践思考,学会具体如何去结合。另外,算法,AI,思维的理论也应适当研究,第四,要形成一套适合自身的开发方法理论,既包括通用开发方法,更应包括针对三国游戏特有的方法,其中三国游戏的领域模型十分关键,在实践项目设计中应考虑开发方法理论研究的因素。
在具体讨论方案之前,应该对于个人的能力有个合理的预期。对于这个问题有几种极端观点,一种观点认为游戏太复杂,以个人的能力无法完成这么庞大的三国,另一种观点认为虽然个人的能力有限,但是只要能商业运作就有实力完成了,还有一种观点认为三国开发太容易了,稍微有点经验就可以做出,关键在游戏品质上。而我认为,个人的能力的确是无法完成这么庞大的三国,但是经过适当化简还是可以完成的,因为游戏开发最费时间的地方并不在系统功能,而是在些细节上,特别是影响用户体验的细节,这部分要花费80%的时间,如果把这部分要求降低,个人的能力是完全可以做出三国游戏的。并不需要商业的介入。也就是说,开发一个具有可玩性的完整三国游戏并不需要花费多少时间,只是细节差些而已。当然,有的人就会觉得如果细节做不好,没多少玩家玩,那也没多大意义。但是只要游戏模式足够好并且开源,是可以吸引其它人完善游戏的。我们应该有个统筹的全局观,明白哪些自己该做哪些自己不该做。也就是说,不必靠亲力亲为来完成游戏,而是应该吸引其它人参与游戏开发,自己把核心做好。当然,有人会说要是吸引不到人怎么办?的确,这种可能确实存在,但是这毕竟是个机会,是个希望,也是量力而行可以做到的方案。并且,对于一部分对细节要求不高的玩家,其实也满足了他们的需要。就这点看,总比不做强。虽然商业开发确实有机会把游戏做好,但也影响了开发者的生活,更关键的是,失败的风险很大,费了大把精力搞商业化其结果未必会靠开源吸引爱好者完善来得强。当然,也不要去排斥商业力量的介入,应该鼓励,但是知道商业的风险性后,还是不要介入只声援为好。对于那些说“稍微有点经验就可以做出,关键在游戏品质上。”,其实这也的确是条路,但是这条路只适合于游戏设计能力比较强的人而言的,并且从本质上来说这种思路还是属于“个人英雄主义”,并不利于吸引和团结其它爱好者参与,而是把赌注押在自己是“设计天才”上,其风险也是不小的,很有可能花费数年没有结果。所以我认为还是作为中立者,提供给爱好者参与的平台比赌自己“设计天才”要强,而自己不带过多的游戏设计的倾向性看法。这其实也是符合“自由经济”的理念,即只提供平台而不多加干涉。当然也不是说自己就绝对不能拥有对游戏设计的看法了,只不过必须是平台先行,而后在此基础上再通过游戏表达自己的看法,但是一定要强调这个游戏只是“自己的看法”,不具有权威性,只是抛砖引玉,爱好者完全可以在这个平台按自己意愿作出需要的修改。也就是说,重点还是强调提供平台。
明确了开发目标后,还有几个问题,就是为实现这个开发目标是应该侧重理论还是侧重实践?是应该侧重游戏的进步还是技术的进步?对于这个问题,要考察多种因素。第一,从实现目标的关键点来看,可维护性是属于软件工程理论和项目经验的问题,而高效率则是需要一套好的开发方法和可复用源码。可以说是既需要理论也需要实践。在初期来说,没有实践基础也不可能学懂理论。此时应以实践为主。但是在有了一定项目的开发实践后,项目经验就不缺乏了,此时要使代码具备可维护性,要提取可复用源码都需要理论的支持,此时应以理论为主。这里的“理论为主”既包括在开发中应用理论也包括形成一套适合自己的开发方法理论。前者的实行必须在具体项目中进行,后者的实行关键在于学习,思考以及对项目经验的的总结,具体实行时缺哪个侧重于哪个。总的来说,从实现目标的关键点来看是理论和实践并重的。第二,从可控性来说,很多时侯由于缺乏策划和美工,项目无法进行。也就是说,想做项目也未必有条件,具有不确定性。而理论的学习和研究,只要具备一定的基础,是可以随时进行的。可以说在大部分情况下,策划和美工是可遇而不可求的,即便遇到了也很可能中途罢工。所以,从这个角度来看,为了保证开发的自主性和持续进展,应该侧重于理论,而在有条件时尽可能多的实践。第三,从技术革新来看,随着技术的不断更新,原有的源码积累的平台很可能被时代抛弃,而只有理论能够不因技术的更新的过时。所以,从长远看,应该以理论为主,特别是当今经常会遇到与策划和美工合作问题的情况下,很可能几年是做不出成果的,而一旦有机会,很可能源码积累的平台被时代抛弃了,所以侧重理论非常重要,只不过在研究理论的同时,要尽可能抓住机会实践。第四,很多有一定的技术基础人开发三国往往是开了个头就做不下去了,这其实反映了他们在理论能力上的欠缺。对于这部分人他们并不缺实践能力,而缺指导思想,因此一旦有一个理论方法能帮忙他们解决指导思想的问题后,就可以充分让他们参与进来。而且这种指导思想是可以跨语言跨平台的。从这个角度看,还是理论重要。经过以上分析,要想持久的发展,理论更重要。也就是说在平时的发展中,应该以理论为主,但是在有策划和美工合作条件时,要抓住机会把理论用于实践,提高应用理论的能力并且向完成最终开发目标靠近。如果在研究某些理论时需要实践,应该设计实验项目实践。至于“应该侧重游戏的进步还是技术的进步?”,从开发目标的本质上肯定是该侧重技术的进步,因为开发目标的要求是高效率和可维护的平台,这些本质上都是技术问题,而侧重于游戏质量就更多的会涉及游戏设计方面的问题了。但是从另个角度看,技术的进步需要以游戏需求要求的提高作为驱动,所以或多或少能带动游戏质量的提升。从合作的角度看,由于无法与策划和美工长期稳定合作,注重游戏质量很可能白费时间,反而影响了开发目标的实现,所以也应该侧重技术的进步。
下面就谈谈为了实现最终开发目标应该做哪些
一、实践
既然已经明确了侧重技术的进步,那么在设计方案时就不该过多考虑游戏质量,而该重点考虑如何有利于实现最终开发目标,然后兼顾游戏质量。
在游戏的选择上就不宜选择过于简单的三国游戏,而应选择有代表性的三国游戏,要做到一旦做出这个“三国游戏”就能触类旁通其它类型三国游戏的开发(如果一个做不到至少也要是少数的代表性的三国游戏。),这样一旦完成,就能在实践上达到做各种三国游戏的目标,从而在实践上掌握通用方法。另一方面,还应该能掌握完成最终开发目标所需的理论,因此这个游戏肯定需要有一定复杂度,这样一旦完成,就能掌握理论,从而在理论上掌握通用方法。
接着我们就考察各种三国游戏,发现无非就是战争和内政。战争无非就是大地图和小地图,即时和回合之别,仔细分析发现,一旦做出大地图战争那么小地图战争自然做得出,一旦做出即时战争那么回合制自然做得出,因此只需要做大地图即时战争就可以了。而三国9的半即时战争本质也是即时战争,为了使游戏好玩可以就研究三国9的战争,同时也可以避免一些没有必要的研究。内政部分,以光荣系列最为典型,但是玩家并不大喜欢其繁琐操作,而喜欢皇帝,文明等游戏的宏观操作,仔细分析,一旦做出皇帝的内政那么光荣系列的内政自然做得出。还有一部分玩家喜欢三国7,8,10,13角色扮演的内政,但是皇帝,光荣系列后期或多或少都有这个成份,不需要单独研究。
因此研究三国9的战争和皇帝的内政就可以在实践上达到做各种三国游戏的目标,而从理论上看完成这些也锻炼了良好的软件工程和算法能力,并且由于是模拟历史的,领域逻辑的研究也不成问题,因此研究它们也能在理论上掌握通用方法。同时,从玩家的意愿看,很多玩家也有做三国9的战争的呼声,也有类似皇帝的内政的方案,因此按这思路做,游戏质量并不差。
所以就选择了三国9的战争和皇帝的内政作为典型项目,长期坚持研究。以此作为突破口,逐步实现最终开发目标。在开发过程中要特别注重理论的应用和源码的提取。这个系列项目就作为重点研究了。
在开发时要利用开发方法和领域模型的研究成果(也要定期总结成开发方法和领域模型),以及合适的类库和代码生成工具,以提高开发效率。具体来说,要运用OOAD,设计模式,需求分析,重构,敏捷的思想方法,在类库方面拥有可复用的UI系统和数据结构,以及外部的数据存储和脚本的连接,对于一些与编程语言规范有区别的逻辑描述用代码生成工具来转换,以使需求描述尽可能形式化。
二、提取和扩展
三国9的战争和皇帝的内政虽然能代表一部分玩家的愿望,但是毕竟有限。同时,最终开发目标也没局限某种类型。要彻底实现最终开发目标,就必须对此原型作提取和扩展。以提供多种不同类型的平台。
提取的目标很清楚,就是战争和内政。而战争部分是有喜欢大地图和小地图2个派别,因此应该提供2个程序,这容易做到。而内政部分是有君主和武将扮演2个派别,应分离出2个程序,并稍微修改。这样提取和扩展的4个程序再进行排列组合,就可以做出很多种类型的三国了,大部分的光荣系列三国都做得出,我们只需要组合以下几种类型:
1.纯皇帝内政模式+文字战斗,可以强化角色扮演
2纯三国9的战争,内政从简
3.皇帝内政模式+小地图半即时战斗
4.小地图半即时战斗的英杰传,可以采用太阁模式个人修行系统
5.太阁模式内政模式+小地图半即时战斗
6.太阁模式内政模式+大地图半即时战斗
还有群英传和富甲模式,也可以扩展,这样就有6个核心程序了,还可组合如下类型:
7.皇帝内政模式+群英传战斗
8.太阁内政模式+群英传战斗
9.富甲模式+太阁内政模式+小地图半即时战斗
10.富甲模式+皇帝内政模式+群英传战斗
别看组合很多,其实按照最终开发目标的要求,1个月就完成1个了,1年就全部完成了。所以实施这步的前提是研究已经达到了最终开发目标的要求,或者是在开发代表性作品时“顺便”开发的。
三、理论
作为三国游戏的开发最大的理论难点还是软件开发方法和软件开发过程,其次是高级的人工智能。还有就是三国游戏的领域逻辑,即从政治、经济、人事、军事、外交、文化等构建个符合历史的领域模型,用于指导游戏开发建模。下面分别分析这三大部分的理论研究方法:
软件开发方法和软件开发过程:属于软件工程系列,除了要借鉴软件工程各分支学科(如设计模式,架构设计,OOAD,敏捷,需求分析)的方法外,还需要学习和应用哲学,思维科学,心理学的理论从开发者的心理和思维角度构建一套合适的开发方法,更重要的是要用于开发实际完善理论。其中需求描述尽可能形式化也是软件开发方法的一部分。最终开发目标中的可维护和高效率的理论要求主要落在这上面。
高级的人工智能:初级的人工智能属于规则式AI,不需要专门研究,可以作为领域模型,高级的人工智能需要从人的性格和思维角度设计AI行为,这是比较难的研究项目,但是一般玩家也用不着,所以作为次重点,等软件开发方法和软件开发过程研究清楚再来研究
领域逻辑:这个研究的难度最低,只需要应用OOAD的原则结合三国历史就可以做出了,这部分研究重在从游戏中提取和完善,也就是先需要经过游戏的检验,而后提取出形成可维护的领域模型。最终开发目标中的可维护和高效率的实践要求主要落在这上面。
看看看看
页:
[1]