大一的时候,我们接触了很多的基础,同时,我们也写了很多的代码,从简单的输入输出再到一些基础排序、查找算法。大二的时候,我们系统的学习了很多进阶的内容,写了更多的代码,从面向对象的类再到复杂的红黑书平衡树。终于到了大三,两年的准程序员生活让我们写了很多代码,同时也做了好几个或大或小的项目。虽然只是学了简单的知识,但是我们依然或好或坏的完成了这些项目——完全凭借自己的本能。不论是什么计算机语言,算法,还是硬件接口,只要遵循规则就能得到结果。然而,软件工程却推翻了这一切,老师告诉我们,不能再先写再重构,而是先设计好一套架构再写实现。学生需要完成的程序都是明确的写好了,但是依然需要一个良好的架构,否则再想扩展便十分困难,而在实际情况中,客户的要求往往是模糊的,甚至时常改变的,没有一个良好的架构,恐怕就会每天推翻一遍自己写的代码,造成极大的负担。
学校学习过程中的项目,往往没有“客户”这一角色的存在,在这使我们很难了解自己项目的不足以及应该改进的方向,而老师检查完发现了问题也会直接给分,而不会提供修改的机会。而在软工课上,由于是分阶段展示,我们就能充分发现问题,同学们也会给我们提供了很多宝贵的意见。
于此同时,本次团队项目也更好的贯彻了合作的工作。在以前的项目中,需求与程序员意见的不统一导致我们对程序的热情并不高,大部分时间更是做不到软件工程中要求的团队合作,团队模式基本都是“主治医师模式”,一个人写代码,其他人写报告或者文件。而在撰写文档方面,功能分析、需求分析在上这门课程之前完全没有写过,唯一的文档可能只有最后的课设报告。但是这次的项目,由于老师给了我们极高的自由度,我们也投入了极大的热情。第一次有了更加明确的分工与合作。
作为游戏的关卡设计,我在设计关卡的同时也需要和团队进行深入交流。我们在一开始就明确了一些基本规则,首先就是拒绝做成一个像现在页游手游那样的无脑平砍类游戏,我们想做一个有意思的独立小游戏,提供给爱游戏的人玩。其次也不能定下一个大目标,因为我们时间与精力有限无法做到大而全,那么我们就要小而精。最后我们也希望不同于以往的游戏的游戏,拒绝简单的抄袭借鉴。
总体来说,我认为本次的关卡设计还算是比较成功的,由于时间有限,我们制作道具与写主程序的时间并不多,而留给关卡设计的时间也是比较有限的,因此我们一共做了9关。这9关经过了我的深入思考设计,前面主要是介绍系统与引擎,让玩家熟悉游戏。后面几关则是考验玩家的智慧,而最后一关就是集大成的难度,充分考验了玩家的智慧、操作、记忆与运气。
可以很容易地发现,经过本次的项目,很大的提高了我的综合能力以及工作经验。