项目需求规格分析
队员信息
队员 |
学号 |
叶尚文(队长) |
3116008802 |
蔡晓晴 |
3216008808 |
杜婷萱 |
3216008809 |
龙剑初 |
3116004647 |
于泽浩 |
3116004661 |
项目背景:
近年来音乐游戏层出不穷,其中不乏创新性作品,我们产品将面向爱好音游及RPG游戏的玩家,结合两者的特点开发一款游戏。
真实性:
目前市场上还不停地有各种各样的音游出现,音游实际上是能
给玩家一种体验还没接触过的乐器,或者作为练习某种乐器的
一种途径。所以说音游具有市场的真实性
可行性:
该游戏在显示上主要有有钢琴的乐谱和冒险“跑酷”两部分,听
觉上是玩家通过按下琴键发出的旋律,两者结合后,玩家可在
钢琴跑酷这个游戏中通过“键盘式琴键”可以有很好的体验效果,
同时玩家可以通过乐谱和游戏中的主人公来更好地掌握节奏。
玩家可以在学习的同时体验游戏的乐趣,很大程度避免了学习
的枯燥和游戏的单一性。
价值性:
“游戏+教育”已经逐渐成为社会的发展趋势。游戏不再像以前那
样是为了玩乐的片面产品,很多游戏慢慢转向职业化、多功能化,
其中从游戏中学习是最大的市场趋势。钢琴跑酷这个游戏避免了
市场上很多体验效果较差和功能单一的产品,把游戏和学习较好
地结合在一起。市场上还不断有音游的产品出现,说明音游有一
定的市场。钢琴跑酷这个游戏的最大卖点就是很好地把学习和完
结合在一起,很好地做到了“游戏+教育”。
项目需求:
用户需求:
体验效果好同时模仿操作相似的钢琴音游
摆脱传统音游的单一操作和单一视觉效果
在体验过程可以借助乐谱音符外的动态效果提示
借助游戏闯关效果来更好让玩家保持兴趣
功能需求:
一般需求:
实现高音区乐谱控制主人公跳跃跑图;
实现乐谱的规格化及提高可读性和可编辑性;
实现游戏画面整体可动。
高级需求:
实现低音区控制主人公的行为及动作;
实现用户向游戏自行导入乐谱。音乐以及对地图进行构建;
设置BOSS,根据乐谱和节奏设置QTE(Quick Time Event)操作。
后期改进需求:
实现游戏联网;
支持用户的乐谱和地图上传服务器并分享;
支持导入音乐自动生成对应的规格化乐谱并完成地图构建;
支持用户自行修改游戏贴图,改变风格。
环境需求:
使用语言:
H5(HTML + CSS + JavaScript)
开发软件:
Webstorm 或 Dreamweaver 等前端开发软件
heX(用于将HTML项目转化为.exe的桌面应用程序)
Photoshop(设计页面及元素)
技术需求:
团队要熟悉HTML,CSS,JAVAScript等语言
需同时对多个开发软件的操作熟悉
根据乐谱的音符生成游戏中不同的动态地图地形及障碍物
监听键盘输入指示,游戏中的冒险主人公要作出相应行为
团队分工:
程序构建及设计:叶尚文
根据需求构建整个程序的对象及函数关系,设计界面,制定DOM树和对应的元素设计
动态界面:龙剑初,于泽浩
读取乐谱文件,根据乐谱动态生成地图中的地形及障碍,怪物等。
静态界面:杜婷宣,蔡晓晴
读取组成界面的图片文件,构建静态UI的界面,并实现除游戏主界面外的欢迎页、介绍页等静态页面。
主人公控制及响应:叶尚文
监听键盘动作,根据键盘动作控制主人公行为;读取文件,根据文件判断行为是否正确,并给出相对应的反馈。
测试:于泽浩
测试各个阶段程序是否达到预期目标,并保证程序不会因乐谱文档的错误及数据量而出现严重崩溃。
任务简述:
实现视图:
事前说明:
开发过程中的测试请以heX的显示界面效果为准。
文件读取方式请参考项目内的player.js
文件说明:音乐为欢乐颂
第一行是速率(现在是2秒四小节(8个字符)),第二行开始是简谱,1,2及以下对应高度1,3,4对应高度2,5,6对应高度3,7,8及以上对应高度4。
背景要求:
使用给定图片,在限定的div里通过指定的css及js文件,完成如图背景和前景;
要求五线谱中间的判定线位置可调(调节参数用备注标明);
背景每一张图片都可以独立循环向左移动播放,且移动速度可调(调节参数用备注标明)。
方块以及音符生成要求:
在限定的div里通过指定的css及js文件,读取给定的txt文件(规格化乐谱,路径:“../src/txt/test1.txt”),得出旋律和拍子时间,生成符合旋律高低的音符,字母以及方块,方块向上生成,然后向左移动,音符和字母从右渐显生成向左移动;
音符,字母及方块的移动速率可调,并可调节延迟(两者参数请备注说明);
方块的种类要根据旋律的种类创建:
0x0y:创建种类1的方块;
0x00000y:创建种类2,3的方块,并在中间的0处添加对应数量的种类4的方块;
0xy:循环创建种类5,6的方块。
实例效果:
动作及响应要求:
主人公还没画好,不放图了。。。。
在限定的div里通过指定的css及js文件,读取给定的txt文件(规格化乐谱,路径:“../src/txt/test1.txt”),得出旋律和拍子时间,根据时间及旋律计算得出当前状态;
判定区示意图:
编码规则:
命名:
尽量遵循驼峰原则命名,并在声明时备注作用(如必要)
用于循环、记录状态、暂存的变量请用loop,state, temp开头并加上编号(编号计算以函数为单位)或者说明(如必要)
括号:
大括号内为空前面和内部都不用换行,否则:
左大括号前不换行,后换行;
右大括号前换行,后除规定语句块(else, while等)外换行;
连续同种小括号间空格。
符号:
各类运算符或判断符前后都有空格;
逗号后带空格。
字数:
每行不超过(111 - 11)字符,如超过:
从100字符内的最后空格开始换行;
若是运算符的空格则从运算符前的空格开始换行;
换行后在上一行换行处备注 ”//next line“。
缩进:
用4个空格,tab键请设置为4个空格。
其他:
if/for/while/switch/do等保留字与左右括号之间都必须加空格;
除判断及for/while等外,一行一个语句;
函数中,实现不同小功能的语句块之间空行,语句块内不空行,如必要在语句块前加上备注说明,例:
int a;
int b;
int temp
for(。。。){
。。。
//交换a,b的值
temp = a;
a = b;
b = temp;
}
while 。。。
函数前请务必说明函数功能,若复杂请文档注释说明大概思路。
项目安排:
原安排表:
第6周 |
1.团队组队、团队博客(✔) |
|
2.团队介绍、成员展示、角色分配、选题确定(✔) |
3.制定团队计划安排(✔) |
|
第7周 |
1.需求规格说明书(✔) |
2.原型设计,队员估计任务难度并学习必要的技术(✔) |
|
3.编码规范完成、平台环境搭建完成、初步架构搭建(✔) |
|
第8周 |
1.原型改进(给目标用户展现原型,并进一步理解需求) |
2.架构设计,WBS, 团队成员估计各自任务所需时间 |
|
3.测试计划 |
|
第9周 |
1. 团队项目Alpha任务分配计划 |
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
|
第10周 |
1.用户反馈+测试计划改进 |
2. 团队Alpha阶段个人总结 |
|
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 |
|
第11周 |
1. 团队项目Alpha博客:事后分析 |
2. 每个团队有一人必须离开,自己寻找下一个接纳自己的团队。团队发博客宣布离队和接纳的成员。 |
|
第12周 |
1. 团队项目Beta任务分配计划,介绍新成员 |
2. 连续7天的Beta敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
|
第13周 |
1. 团队项目Beta博客:发布说明、测试报告、展示博客 |
2. 团队Beta阶段个人总结 |
|
第14周 |
1. 团队项目Beta博客:事后分析, 宣布每人的贡献分 |
第15周 |
1.团队整个阶段总结,分析用户数据,整理文档,保证以后的团队能接手。 |
校正后安排:
第8周 |
初步实现各个模块原始界面效果,合并代码后寻找不足并改进,以尽量避免后续功能实现的代码产生不兼容情况 |
第9周 |
制定Alpha计划,搭建整体框架,实现各模块功能并合并 |
第10周 |
对各个功能模块进行测试,让用户试用并通过反馈进行改进 |
第11周 |
总结收获和不足,团队调整 |
第12周~~ |
依情况从新规划 |
校正方法:
刚开始的规划还没有对项目进行深入的解剖和分析,很多安排都没能很好地按计划完成。
因为本次项目用到的编程语言并不是都会,所以经过分析后,主要的功能和测试放在了第
10和11周两周,在各模块功能完成时就可以进行初步的测试,等预期功能都实现的时候,
再进行统一的整体测试,这样就可以把最终测试出现的不足很好地锁定。
队员感想:
叶尚文:第一次开发自己创造的游戏,有点兴奋又有点紧张。第一次带领队伍,第一次5人的
团队合作,我希望能带领好这个团队。也希望在这个过程中提升自身的领导能力,同时
从中找到自己的不足。
蔡晓晴:这个星期还没有开始写代码,但是叶尚文大佬给了我们一个清晰的架构和代码标准,
十分利于我们后期打代码。这个星期我也学习了很多js的知识。
杜婷萱:感觉开发前的充分沟通,明确的任务分工很重要。我和晓晴共同完成静态背景的实现,
但js刚开始学接触的还不是很多(°ー°〃)因此要向团队多多请教,希望能通过这次的项
目学到更多的知识 (*^▽^*)
龙剑初:在这一周里,团队对项目进行了进一步的探索和理解,在队长尚文大佬的带领下,我
们把项目的主要功能模块和大致的架构做了初步的确定,同时进行了任务的分配。项
目要用到js和css等还没接触过的语言,这对于我来说是个极大的挑战。自知代码能力
不强,但也会尽力。接下来好好努力,跟着大佬们学习。
于泽浩:和同学一起团队协作,每个人都有每个人的长处,让我认识到了自己太多需要学习,
但是团队协作依靠的也不只是每个人的能力,清晰的统筹才能一步步将计划完成。非
常期待接下来一步步将计划完成。