您的位置:首页 > 其它

游戏开发计划——开发模式与项目概况

2014-06-10 12:41 267 查看
这个开发计划已经持续一年多了,但是刚刚发现,我居然没有把这种最基本的信息记录下来。不过,这种最基本信息倒也没有什么改变的可能,没记录也问题不大。今天还是花点时间写下来,就当作“补文档”吧。

    
开发模式
这个游戏的开发是遵循Agile mode,中文好像叫做“敏捷模式”的。这几乎是唯一的选择。

这个计划规模很大,但是资源非常有限,最大的问题是时间没有保证。也许什么时候有点时间做点什么,然后又没时间放一两个月不动。如果采取经典的开发模式,光一个需求定义就不知道要拖多久,闹不好因为一直没进度就放弃了。

相反,如果采用Agile的方式,可以先确定一个小模块的需求,赶紧趁有时间就做出来。这样总能看到进度,就不会失去希望。另一方面,有了一些进度,要彻底放弃总是觉得可惜,就更能坚持。话说,这不是钓鱼工程,还钓的是自己的鱼么?

但是,采用Agile模式也不是没有缺点的。像这个项目一样,每次只考虑一个小模块的需求就实现了,过十天半个月再考虑下一个模块,很难保证结构不需要改动。但是一次考虑多个模块,时间和精力上又经常不允许,只能是尽量。好在到目前为止,只有在实现人物数据的时候需要改变属性定义的实现,而且改动也不大,只是把原先的实现模板化了而已。

    
时间
这种“业余项目”,最大的问题就是时间没保证,所以只能靠零碎时间。目前投入的时间主要是这些:
晚上,如果闺女早早睡觉了;
周末,如果闺女跟妈妈出去玩,家
4000
务事又干完了;
地铁上,主要用来思考需求和结构;
小长假,一般三天的假期运气好的话能有6~8小时的代码工作;

说起来,其实只有地铁上的时间有保证,别的都不靠谱。

至于说写博文,一般是靠午休的时间,因为咱从来不睡午觉,中午不需要休息。

    
工具
用的是Visual Studio 2012,C++实现。说实话,现在有点后悔,但是已经上了贼船下不来了。

当初启动这个项目的时候,C++ 11标准推出不久,选择了C++实现本身就有通过这个项目实践新标准的目的。不过现在看起来,其实用到的C++ 11新功能并不多。
Lamda表达式
彻底没用过,因为确实不习惯这种方式。
模板结束的两个右尖括号
咱早就习惯了敲一个空格,到现在不用敲了但是习惯也没改过来。所以,其实也没什么不同。
std::thread
看起来确实很酷、很方便,但问题是到现在我还没遇到能用多线程的模块呢。也许以后做AI行动的时候可以尝试一把?
auto
就这个最方便最常用。不过结果就是,我已经想不起来map的iterator应该怎么写了。真是IDE越强,写代码的水平就越差。想当初用vi写代码的时候,别说这种用模板构成的iterator了,就算是那些有好几个重载的方法,每个参数我都记得一清二楚,敲起来连大小写都不会错。到现在,就连“CComPtr<IXMLDOMNode>”这么简单的东西,都经常把大小写搞错,要靠IDE自动纠正。有了IDE,水平就下降得厉害。
基于范围的循环
虽然方便,但是就像前面的博文提到过的,装Update4之前稀奇古怪的链接错误也很挠头。

版本管理
版本管理用的是SVN。只有咱自己一个开发者,什么branch之类的就免了吧。每做好一个部分,就把repository备份到网上去,感谢微软友情提供的one drive。

    
资源
咱不是美工,从小画画水平就很烂,所以自己做图片资源就不要想了。出于方便的考虑,几乎所有的图片资源都是从曹操传搞来的。

至于说音频资源,根本就没考虑做,因为咱玩游戏几乎从来不开声音。是不是有点另类?

    
后悔

选定了工具,然后实现的时候有时候真的有点后悔。最主要的就是后悔数据编辑器为什么偏偏选择了C++实现。C++写界面真的是太麻烦了,以前主要用脚本体会不够深刻。别看这次的Data Editor其实不算复杂,但是如果早知道的话,我宁可把数据管理器包装成ATL,然后用Ajax和java script做。虽然包装成ATL也有一些工作量,但是比用C++写界面还是方便多了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息