Alpha阶段项目展示

1.团队简介

韩青长

前端工程师

我是韩青长,技术小白,抱着对软工的好奇和对未来工作的憧憬选了这门课。暂时选择了测试的工作,也对开发和UI有一定兴趣。从前上帝创造了我们,现在轮到我们来创造自己的软件了~

Alpha阶段项目展示

陈彦吉

前端工程师 PM

呃,自我介绍。。怎么说呢,我叫陈彦吉。。作为一个没什么基础的渣渣,感觉一路被碾压了两年,成绩不如大多数人,能力可能也不如大多数人,其他人都可以说自己曾经拿过什么奖,做过什么项目,我感觉我可能什么也说不出来,不管怎么说,这都是因为自己怠惰了,但是我还没有放弃治疗,这个学期我一定要拿下这门课!

Alpha阶段项目展示

石浩然

前端工程师

有幸成为19勇士之一很开心啊!

选罗老师的软工真是一门需要情怀的课

献上自己的膝盖和所有假期

大神们带我飞吧

Alpha阶段项目展示

陈鸿超

后端工程师

除了会点编程啥都不懂,纯粹来学技术的小白,请轻虐o(╯□╰)o

Alpha阶段项目展示

2.项目简介

  • 项目名称:狼人杀app
  • 面向用户:玩狼人杀的所有人
  • 开发者:北京航空航天大学软工 buaaoverwatch小组

2.1 典型用户

我们的app主要面向的四类用户

  • 基本会玩,但是一般没有狼人杀牌的人。
  • 基本会玩,但是重复很多回合之后就晕了的人。
  • 很会玩,但是游戏中缺少布置战略条件的人。
  • 不管会不会玩,总之对游戏界面的美观要求很高的人。
姓名 陈HC
性别
职业 某校大二学生
生活情况 每周周末有一定的空闲时间用于休闲,一般是和同学聚会
动机 上了五天课累死了,周末要好好休息一下
目的 放松,和朋友一起享受生活
困难 我没有狼人杀的牌,同学也没有,地处沙河周围也没有桌游吧,也不认识桌游社的人
用户偏好 有牌就行
用户比例 30%
典型场景 又到了周末,在微信群里问朋友今晚打不打算玩狼人
典型描述 周末休息一下,来局狼人吧
姓名 石HR
性别
职业 某校大三学生,桌游社初级成员
生活情况 每月定期参加桌游社活动,或是自己跟一些爱好者线下切磋交流
动机 周末需要放松,同时不想在游戏中死得不明不白
目的 明确每局的局势与存活状况
困难 大家围桌坐,死者也不退场,玩了几轮之后我都不记得谁死了,更不要说投票情况了
用户偏好 没什么特殊偏好
用户比例 60%
典型场景 这次的社团活动,我一定要努力记住每局谁票死了谁,好好分析,不能再冤死了
典型描述 看我精准的分析,诶,上局谁死了??
姓名 韩QC
性别
职业 某校大三学生,桌游社高玩
生活情况 每周负责组织狼人杀的活动与交流,热爱狼人杀,热衷于钻研狼人玩法
动机 每次"晚上"狼人交流战术的时候都会被别人"捕风捉影"到
目的 晚上狼人杀人时希望可以确定战术
困难 很难不声不响地交流战术,旁边的人总能听见
用户偏好 需要一个狼人之间夜间交流的方法
用户比例 40%
典型场景 在游戏中的夜间与同伴商量:这次我眨左眼就是自刀,眨右眼就是上警
典型描述 你说你听到我昨晚狼人睁眼的时候有动静了?
姓名 陈YJ
性别
职业 某校大一学生
生活情况 每周周末有一定的空闲时间用于休闲,一般是和同学聚会
动机 用软件就用个操作简单,界面优美的
目的 自己舒服,一起玩的人也舒服
困难 目前狼人杀的app都不好看
用户偏好 界面不要太丑
用户比例 50%
典型场景 让我看看应用市场,有没有什么长得好看的app
典型描述 这个也太丑了吧

2.2 预期功能

针对以上的预期典型用户,我们设计了如下的功能

  • 对于找不到同伴或者没有牌的用户来说,我们的app可以解决牌的问题,附近的局这一功能可以用来搜索玩伴
  • 对于追求清晰流畅的游戏体验的用户,我们的app可以随时查看每一轮的投票情况、目前场上存活情况,让玩家不再因为游戏进行了多轮而不能掌握当前局势,并且投票系统可以免去跟风投票的困扰
  • 对于追求战术与配合的用户来说,我们的app可以让狼人在夜间部署战略,更好地潜伏在人群当中
  • 对于追求优美UI的用户来说,我们的app能够做到简介优美的UI,给人最好的视觉和游戏体验

2.3 预期用户数

我们预计发布后第一周内IOS+Android平台的下载量为100

3.团队分工

我们的团队只有四名成员,比其他的团队都要少一个成员。所以我们在Alpha阶段中抛弃了全职PM的设定,打通所有角色,每个人都是设计人员,每个人都是编码人员,每个人也都是测试人员。

在初步学习了相关技术,勾画出大致的项目框架之后,我们感到前端的编写工作因为使用了全新的技术React Native,全新的语言ECMA Script会非常艰巨、而后端使用成熟的Django框架和Python语言,应该问题不大。所以我们决定了三人主攻前端,一人负责后端的组织架构。

在实际操作中,由于涉及到大量的服务器与客户端之间的通讯问题,即使我们已经设计了详细的API文档,但是不免我们最开始的设计有些不能满足后来的实际需要,于是在实际编程中我们大量采取了四人“伪”结对的编程方式(也就是四个人四台电脑同时编程),经过几晚上不眠不休的奋战,项目取得了极大的进展。

3.1 具体分工

在前端具体分工方面,韩青长同学主要负责个人资料页面和创建房间页面,陈彦吉同学主要负责房间列表页面和游戏设置页面,石浩然同学主要负责整个游戏界面的编写。

后端方面由陈鸿超同学整体负责。

3.2 一些反思

在Alpha阶段中,由于学习成本过高,导致即使我们加班加点,甚至熬夜通宵进行学习,仍然花费了开始开发的前两周的时间进行项目的学习。而直到第三周才开始真正编码(其实这已经到了冲刺的第二周了),更悲剧的是,其实这一周写的东西还有很多的不足,大家都在熟悉响应的语法和编写格式。直到第四周,我们的进度都很滞后,按理说这个时候已经应该开始进行测试工作了。好在后来在全体成员的齐心努力之下,经过三个晚上艰苦卓绝的熬夜工作,终于将整个项目的雏形上线运行了。

4.团队工程质量

4.1 测试

关于测试的部分,详情请见测试文档

4.2 代码规范

在编码之初,我们团队设计了详细的编码规范(数千字), 并且统一了文档与代码的格式和架构,使得所有人各司其职。这其中提前规定好的代码规范起到了很大的作用。

4.3 文档

我们团队的文档在一开始就使用了MarkDown格式进行编写,这种简洁美观的纯文本格式对于编写软件工程的文档,统一格式有着很大的提升。并且方便我们上传至GitHub实时进行预览和多人协作修改。

在文档方面,我们编写了技术规格说明书功能规格说明书API设计文档团队贡献分分配规则团队文档格式规范需求分析文档团队介绍文档等七篇文档。

其中技术规格说明书详细介绍了我们团队这次使用的技术方案,并提供了入门级的介绍,为今后可能的接手团队提供了一条快速上手的渠道。

5.团队实际进展

Alpha阶段项目展示

上面是我们的项目燃尽图,不过仅从这里不能完全看出我们进行的工作,下面贴出我们团队Github上的的提交记录。

Alpha阶段项目展示

Alpha阶段项目展示

可以看出,到2016年11月16日为止,在Github上一共有108次提交,且全员都参与了项目在Github上的编辑,总代码数逾万行。

下面介绍一下我们具体实现的功能

5.1登陆页面

Alpha阶段项目展示

Alpha阶段项目展示

5.2 个人设置页面

Alpha阶段项目展示

5.3 玩家游戏页面

Alpha阶段项目展示

5.4 玩家技能页面

Alpha阶段项目展示

Alpha阶段项目展示

Alpha阶段项目展示

6.贡献分分配

7.软件特色功能

在软件初期需求分析阶段,我们就为软件规划了几大杀手级功能

详情如下

  • 机器法官功能已实现

这是我们统计了当下所有存在的狼人APP的共同缺点。也是用户最主要的痛点。现在所有已知存在的类似APP都不能提供法官功能,我们的APP将该功能革命性的自动实现。这是一个非常有用的革新。

  • 统计场上存活局势功能已实现

这同样也是当前现有的APP缺失的功能,我们实现了该功能,并在游戏界面的显著位置以图示的方式呈现出来。极大的方便了用户对场上局势的分析判断。

  • 统计上轮投票结果功能已实现

同样重要,而同样在别的APP中缺失。我们在APP中可以提供对于上一轮投票结果的统计功能,可以帮助用户记录上一轮投票结果,便于用户分析局势,并判断其他玩家的身份。

  • 狼人交流、战术部署功能已实现

这也是用户需求调查中的一大痛点,我们将这个功能实现。使用户摆脱以往的“打手势”、“对暗号”或者“使眼色”等低效而又不能准确的传递信息的交流方式,直接文字的方式准确快速传递,而又不会让其他的玩家察觉。

  • 记录玩家身份猜测功能已实现

狼人一局游戏的时间很长,在很多时候可能已经猜出了某个玩家的身份,当时时间过去又忘记了,我们的APP提供了玩家猜测并记录各个玩家身份的功能,使玩家不再为“记不住身份”而烦恼。

  • 战绩系统功能已部分实现

一个附加功能,便于玩家统计自己的游戏胜率,现在只能统计游戏记录。我们设想将要在Beta版本中加入统计和别的玩家之间的游戏关系,自己使用哪个角色胜率最高等更高级的统计功能。

  • 搜索附近的局功能已部分实现

也是用户的一个痛点,想玩狼人但是又找不到人来玩,我们于是提供了搜索附近的局的功能,使得用户能够更方便的找到附近的玩家,一起进行游戏。目前只提供了搜索房间列表的功能,还不能显示距离信息。

  • 复盘功能待实现

帮助玩家分析游戏中的得失,并保存下游戏中的美好回忆以便以后查看。目前还没有做这个功能。

8.用户反馈

9.总结

上一篇:Python学习笔记【第八篇】:Python内置模块


下一篇:swift与OC之间不得不知道的21点