Week1 Team Homework #1 from Z.XML-总结学长经验教训
谭传奇学长:
我们的弯路可能是,一开始没有从最基础的部分开始迭代开发,一开始就想的太远了一些,每一步开的有点太大了,所以可能有些东西最后就连不上,也没有能够按时完成。如果可以先做出一个能用的版本,然后再不断完善,至少不会跳票,但我们可能有的部分做的足够好,有的关键部分就没时间做,结果就是整个东西无法发布
王安然学长:
经过第一次迭代开发,团队合作的很多问题暴露出来。
- 设计不足。一个软件工程的设计到实施,其实是很重要一步。在我们的项目中,为了满足游戏设计的需求,我们的软件工程设计中保留了很多的可扩展性,但是却没有足够关注到细节,没有给出所有具体的要求。在实施工程的时候经常发现有的问题在设计中找不到参考,导致开发人员的效率低下。
- 开发人员水平有限。分配任务的时候经常有说这个事儿做不到,或者压根不知道怎么做;验收工作频出意外,DEV写了一个模块之后,验收的时候发现模块质量不行,代码质量低是其次,无法按照给定的接口工作。
- 工作分配及目标不够明确,PM在分工时,没有对各项工作进行足够细致的描述,也没有设立一个明确的短期目标,使得开发人员对自己的工作目标模糊,没有验收时标准的参考。
- 在M1阶段,开发人员工作时和相关模块开发人员、PM的联系太少,总是PM下达任务,Dev之间缺乏联系。对于工作目标中模糊的部分采用了模糊处理,验收时代码没有达到预期的效果。M2阶段效果好了一些。
- 有关游戏制作的特殊性。游戏制作大家都是第一次,一个游戏玩起来基本的逻辑也许不复杂,但是难在它对交互效果要求极高,如果只能满足基本的逻辑正确而交互效果极差,那这段代码必然失败。为了提供一个优秀的游戏体验,好的美工重要,开发人员要写出交互效果良好的代码也很重要。开发人员自身需要有一定交互设计功底,并且有美术功底或者有美工的指导,这是我们的大部分组员都缺乏的,这也导致了后期的用户评价都是“游戏很好玩,但是不协调,不好看”。程序员,有心无力,没办法……
- 错误的预估了项目的大小。我们都没有制作游戏的经验,没有想到,这样一款比较简单的游戏都需要这么大的工作量。这导致了最后的跳票。
- 另外,工程项目本身也存在很多问题,使用跨平台C++游戏引擎编写的一个不好就是我们没捣鼓出来配合VS进行代码质量管理的有效方法。而且游戏程序的测试也相当复杂,我们仅能采用大量测试工程来分开游戏单位测试,保证没有意外错误和运行效果,最低限度是保证代码逻辑功能正确。
学长感受: 我们觉得碰到这种情况,就应该把游戏设计那人吊起来,把文档写到游戏逻辑的每个角落,每个效果都有动画演示和运算函数,然后大家照着文档开始干,缺一否则皆不能安天下。否则光干游戏设计的人工作量也不够大。
总结
从各位学长的经验教训来看,开发一个游戏确实很麻烦。我们小组目前的计划也是开发一个游戏。所以学长的经验对我们来说,十分有帮助。重要的一点是,PM的规划,DEV的执行有严重的脱节。程序编写一开始设想的过大,在大的里面又想很多细节的东西。根据学长描述,导致开发效率较低。
我们希望能借鉴学长提出的思路,对于一个项目,先进行基本的,最简单版本开发。然后再扩展程序。计划通过3~4次快速的迭代开发,使得程序由简单变复杂。由能用变好用。在debug方面,我们希望对于整个程序进行分块,然后编写自动补全函数的辅助debug代码。来并行调试。这个样子可以使得每个人负责的程序有效的,正确的完成。
编辑:肖俊鹏
Week1 Team Homework #1 from Z.XML-总结学长经验教训的更多相关文章
- Week1 Team Homework #1 from Z.XML-对于学长项目《shield star》的思考和看法
试用了一下学长黄杨等人开发的<shield star>游戏. 其实作为一个学弟,我对cocos2d-x引擎还算是比较了解,所以对于这样一款很“典型 ...
- Week1 Team Homework #2 from Z.XML-Introduction of team member with photos
<Z.XML Introduction of each team member, with photos Z=周敏轩; X=肖俊鹏&薛亚杰; M= 毛宇 & 马辰; L= 李孟 ...
- Week1 Team Homework #1 from Z.XML-项目选择思路--基于对曾经大作业项目的思考
这两天试玩了一下去年学长的满分工程<shield star>游戏,再结合了一下他们团队的博客记录,有一种非常牛逼的感觉.具体对于这款游戏的一些思考和看法,毛大神已经说的很好了.因此,这里主 ...
- Week 1 Team Homework #3 from Z.XML-软件工程在北航
任务名称:软件工程在北航 任务要求:要求我们采访往届师兄师姐,收集他们对于软件工程这门课程的反馈.具体作业链接http://www.cnblogs.com/jiel/p/3311403.html 任务 ...
- Week1 Team Homework #2 Introduction of team member with photos
小组成员介绍 组长:黄剑锟 11061164 组员:顾泽鹏 11061160 组员:周辰光 11061154 组员:龚少波 11061167 组 ...
- 团队博客作业Week1 Team Homework #3软件工程在北航
这次我们采访了一位大四的学姐,让她简单地谈了谈去年学习软件工程的经历和感受. 在完成软件工程大作业的过程中,由于计划安排与实际脱节,导致时间前松后紧,平均每周花在这门课上的时间大约有8个小时. 项目完 ...
- Week1 Team Homework #1: Study the projects done by previous student groups
我们研究了学长的项目:百度3D地图API的调用.下面是我们对该项目的一些看法: 优点: 界面清晰 各类之间调用及其他关系容易理清. 缺点: 前段html代码过于冗杂,很多(div)块间的层次关系不 ...
- Week1 Team Homework #3: 软件工程在北航
在组内成员的共同努力,我们采访了几个学长学姐,顺利完成任务.反馈信息如下: 平均每周花在这门课上的时间 平均写的代码总行数 学到的最有用的部分 最没用的部分 <软件工程>最应该改进的地方 ...
- Week1 Team Homework #2: Introduction of each team member
王洛书 我是来自浙江的王洛书.热爱历史,热爱美食,热爱代码,热爱博物馆.很喜欢软件工程这门课的上课方式,也很喜欢组里的这些同学.希望能大家一起努力,在这门课上真正地收获能力上的提升! 陈睿翊
随机推荐
- 数据库——MySQL——数据类型
详细的看后面给的链接,我只是挑了一部分:http://www.runoob.com/mysql/mysql-data-types.html 在之前说了MySQL的存储引擎.它决定了表的类型,而表内存放 ...
- 记录使用antd时样式不生效的问题
最近在学webpack,就配置了一个react的运行环境,为了偷懒使用了antd npm install antd 之后发现竟然tmd没有样式 谷歌之后发现好多同学都出现了这个问题,好在最后解决了 在 ...
- 【HDOJ 1269】迷宫城堡(tarjan模板题)
Problem Description 为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若 ...
- PP: 混合生产方式(MTO与MTS为例)(转)
http://blog.sina.com.cn/s/blog_4c01b7650100yf1d.html PP: 混合生产方式(MTO与MTS为例) 一.业务概览某公司生产的同一种产品正常情况下客户无 ...
- Windows下远程桌面的连接
[系统环境] 建议Windows7以上 [步骤说明] 1.使用"WIN + R"组合键打开"运行"对话框,然后输入“mstsc”,点击确定,如下图所示: 2.点 ...
- MySQL传输表空间使用方法
1.目标端创建同样的表结构 CREATE TABLE `test` ( `id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHAR ...
- CacheCloud+Redis Cluster 3部署
CacheCloud环境需求 Java 7 Maven 3 MySQL Redis 3 具体用法可参考:https://cachecloud.github.io 1.下载CacheCloud 官网ht ...
- 汉化manjaro下的火狐浏览器
1.下载 汉化包 sudo pacman -S firefox-i18n-zh-cn 2.查看add-ons下的language选项有没有已安装的包 3.在浏览器的地址栏输入 搜索intl.local ...
- android Service服务简介(一)
作为android的四大组件之一,服务也少不了很多重要的知识点.下面我们从最基本的开始学习. 1.1服务的创建 首先创建一个ServiceTest类继承Service.我们会重写onCreate(), ...
- 《高性能MySQL》笔记——MySQL建表数据类型的选择
前段时间看了<高性能MySQL>中的选择优化的数据类型,这里主要是做一下笔记. 首先数据选择有几个简单原则: 更小的通常更好.一般情况下,应该尽量使用可以正确存储数据的最小数据类型.例如只 ...