总结
总结
一、回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇项目的目标和期待,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
“增加开发经验,熟悉软件工程的各种开发思想,了解团队开发的流程。”
在这门课程中,我学习了新的编程语言,实践了课内学到的各种软件体系结构以及设计模式,将团队开发的流程系统性的走了一遍,基本上达到了我当初的预期目标
但身为组长还做得不够好,项目后期才认识到的最初的预期规划有所欠缺,影响项目的总体完成度
2)总结包括以下内容:
- 统计一下,完成了多少行的代码;
- 花了多少时间?
- 平均每周花多少个小时?
作业名 | 新增代码 | 删除代码 | 耗时(分钟) | 备注 |
---|---|---|---|---|
第一次作业-准备篇 | 0 | 0 | 60 | |
文献摘要热词统计原型设计(文献摘要热词统计) | 0 | 0 | 180 | |
文献摘要热词统计 | 738 ++ | 199 -- | 300 | |
文献摘要热词统计进阶需求 | 7,089 ++ | 1,144 -- | 1300 | 1,2 |
抽奖系统 | 2,279 ++ | 476 -- | 600 | |
卡牌游戏项目 | 7320 ++ | 653 -- | 10980 | 3,4,*5 |
总结 | 17426 ++ | 2472 -- | 13420 | 平均每周17.2小时 |
*备注
1. 有些被迭代掉的代码只是注释掉,并未删除 因此代码数量较实际更多
2. 需求一直改,最开始的实现方法不适应更改后的需求,花费了大量时间重构代码
3. 由于Unity项目文件特殊性,这里只统计脚本代码
4. 之前从未接触过游戏的编写以及服务端的实现,仅有基础的C#编程知识以及基本计算机网络原理作为依托,游戏制作几乎是从0开始学起,学习占用了大量时间
5. 由于游戏接近全部原创,未采用现成的实现框架,以及游戏逻辑的实现无从参考,游戏UI设计,人物形象无现成的素材,玩法为依托现有玩法进行创新,只好身兼数职,身为主程的同时,兼任策划,并负责美工部分.其中在学习工具,语言,框架的使用,代码的编写,优化占用了大量时间的同时,UI设计,素材加工也耗费了大量精力,基本上要实现一个功能就得去搜索大量现成素材作为基础,并在这些基础上进行二次加工,统一风格,调整大小, 若碰到找不到合适的就得利用Photoshop工具从0构建
- 哪一次作业让你印象最深刻?为什么?
文献摘要热词统计 因为需求一直变,本来好几次都做完了,突然接到改需求,又得开始写 - 学习和使用的新软件&工具;
pycharm,Unity Adobe XD - 学习和掌握的新语言、新平台;
Python - 学习和掌握的新方法;
单例模式,观察者模式 - 其他方面的提升。
对于团队的协调及管理
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
团队协作开发不同于个人开发,开发文档对于团队的开发十分重要.
在团队Github实战中,先设计出了一个项目的类图以及活动图(受制于时间限制以及项目规模较小并未完成接口文档),这样每个人都能知道自己应该实现的接口以及软件的大致工作流程与架构.只需要每个人负责好自己的代码,最后整合,测试的过程并不困难.在前期架构规划的帮助以及队友们的通力协作下,最后我们组在该次的测试中取得了不错的成绩
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
-
萌芽阶段
最开始组队的时候,大家第一次从玩家的身份转为游戏开发人员,有很多创意及想法想要实现,但每个人想法,出发点不同,统一意见花费了不少时间 -
磨合阶段
之前大家都是个人开发,没有团队开发的经验,对于文档的重要性认识有些不足,大家都是各自做各自的,到整合的时候问题不断.除此之外大家对于新框架/工具的使用还未掌握,往往要先花费大量时间学习才能开始逐步摸索使用,项目进度缓慢 -
规范阶段
在经历了github实训后大家对前期规划及文档说明的重要性得到了充分的认识,并且在经历了一个较为成功的团队协作流程后,大家对与团队的协作流程更加清楚,开发效率得到提高.除此之外,新工具/框架的学习也基本告一段落,项目的进度也得以开始大幅提升 -
创造阶段
创造阶段我们目前还有一点距离。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
游戏官网已经上线: 卡战三国官方网站 在此能够获取最新游戏客户端及进行注册账号等操作
用户数:11
用户评价良好:
用户试用调查报告
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
项目规划,需求部分
玩法设计
- 官网
原型设计
注:原型设计不代表最终品质
游戏端:
-
游戏首页
-
游戏展示
**点击左下角兵营消耗一点声望(类似炉石)召唤一位小兵
点击右下角铁匠铺使用不同数额的声望购买武器,武器可以为小兵装备,增加其功血属性
通过小兵攻击敌方将领(当敌方无嘲讽小兵时)致其死亡取得游戏的胜利。**
- 购买武器
网站端:
-
官网首页:
-
卡牌展示:
-
资讯展示:
资讯详情:
-
账户页面:
-
下载页面:
原型设计过程
组内成员分为设计游戏和网站两部分
网站部分成员参考网上部分游戏官网设计,在此基础上加入自己的想法点子设计出我们的官网原型
游戏端部分主要由组内所有成员讨论游戏玩法、卡牌、技能设计之后,由另一部分成员设计出游戏原型
组员讨论、配合
网页部分
游戏部分
- 涉及平台多,有限时间内能否完成?
在这方面的问题上,我们的解决方案是游戏与网站分人同时开发,同时游戏采用迭代开发,先实现最基本的单机功能,如果时间允许在进行进一步功能开发。此外,unity的核心机制也为我们跨平台提供了方便.
- 卡牌如何设计,有具体设计方案吗?
卡牌方面引用三国人物当做题材,购买现成的卡牌设计,然后在组内进行讨论技能、攻击数值、血量数值的设计,这一些方面将在后期的测试中不断改进平衡。
- 和三国杀、皇室战争相比有什么区别?
我们采取主公、小兵、装备三大方面丰富游戏策略,轻松益智。三国杀,我直说了就一龙鸣游戏,我不认为在一天的劳累之后,还要和人勾心斗角猜来猜去谁是反贼,谁是忠臣会很有意思,而且现实是三国杀也并没有想象中那么火爆。 与皇室战争相比,我们不氪金啊,无论你是新手还是老手,只要策略得当你都能赢,而皇室战争有些传奇卡你没有就是有差距。此外玩法也大不一样,皇室战争是即时战斗的策略型,而我们的更偏向炉石类的回合制策略.
架构设计图
类图
系统架构图
进度规划图
项目设计部分
原始项目素材都有保存:
且为PSD文件
原型设计经过多次迭代,修改 且都有存档:
初版
二版
三版:
四版:
五版:
六板:
终板:
按进度规划提交
4.21 内部A版规定时间点
5.4 内部B版规定时间点
5.26 Beta冲刺预定开启测试时间点
团队协作(游戏端):
仓库创建于4月初
基本上每天都有进度
注:项目前期都在进行学习工具,语言,框架,游戏素材收集,制作,整理,进展较慢,后期使用愈发熟练,项目进展突飞猛进这是厚积薄发的结果绝不是对项目进行赶工,突击
3)并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
请在随笔中用数据证明上述内容或侧重选择之一。
项目存放于 github 私人仓库中
部分文档截图:
注:文档可从团队博客历次随笔中下载
每次提交记录有详细说明:
如:
用户测试反馈及Bug修复进度表:
拥有游戏策划数值调整工具,方便后期调整:
只需调整表格内容就可以做到 英雄/装备/魔法卡片的 添加/删除/数值修改 以及调整游戏商城中售卖的物品,价格
执行策划工具:
英雄列表便会动态调整:
英雄数值便会动态调整:
商城列表便会动态调整:
物品售价便会动态调整:
游戏正常运行的保证
官网截图:
运行截图:
均能正常运行且无除显示之外的恶性BUG
注:为了交项目干杯反馈的卡顿复现失败,不排除是该团队电脑因素
七、个性发挥,包括图文、照片和创意等
团队LOGO:
游戏版权页面:
彩蛋:50W行的"新增"代码
注(Unity 自带项目文件)