第一天:算法
只选出了入围集合={看图猜成语,几何或几何游戏,电脑版桌游}数据库
风暴纪要:
* 软件分类:游戏类(开心消消乐),办公软件类(word),工具类(编辑器,几何画板),计算机辅助教学(CAI类)。评价:从分类算是自顶向下,可是层次过高仍是不能肯定需求,就像不知道吃什么,先决定菜系,川菜,那么是吃水煮肉片仍是鱼香肉丝,夫妻肺片呢。
* 你们的共同爱好游戏,理由:游戏最容易吸引人的注意。游戏的“即时反馈”性很强,能持续的给人刺激,还有华丽的特效等。可是游戏也是很难的,创造者是稀有动物,抄袭者却大行其道。游戏应该传递一种价值观,讲述一个故事,带给人们快乐。
* 游戏分类:第一人称射击(FPS,表明做CS),多人在线战术竞技游戏(MOBA,表明做DOTA),即时战略(RTS,表明做RA2),角色扮演(RPG,表明做仙剑奇侠传),其余的如动做类(鬼泣),格斗类(拳皇),体育竞技类(FIFA),赛车类(极品飞车)等技能树更加不适合UWP,时间有限,暂时不考虑
* Unity是一个专业的游戏引擎,若是用uwp造一个那样的游戏,剧情,建模,可能会给人一种“做文跑题”的感受。
* 能够考虑一个“炫酷的文本编辑器”,能够打字,删除有特效,可是你们以为这个刺激是短暂的,用户只会以为暂时的新奇。另外,特效的绘制有可能致使文本输入输出也须要用引擎,这样便于定位
* 关于学习与游戏结合,尚未更好的创意
* 看图猜成语是一种模式,一种比较成熟的模式,核心是几个描述与描述对应的概念的匹配,能够拓展,看图猜计算机体系结构术语,帐户,闯关,联网对战功能
* 桌游是更成熟的模式,可是呈现方式须要部分美工加持。桌游是,玩家,规则,的集合,配合背景音乐,美工,音效,容易作出中等偏上的程序。难点:联网模式服务器,单机模式AI,抄袭现有仍是创造新游,若是抄袭现有的可否超越前做,若是创新是否能作到好玩。
* 几何是一个挑战,虽然是平面的(未探讨3D),可是几何计算与呈现引擎可能有比较大的挑战,若是是游戏关卡或者说玩法须要必定的创造性。
核心需求:
* 没有公司利益,典型用户须要的就是咱们追求的
* 不能为了堆叠技术而创造太多关联松散的功能
* 能作到让用户眼前一亮是终极目标安全
头脑风暴总结:服务器
你们都想作一个炫酷的程序,并且以为目前作过的各类课程设计(例如成绩管理系统,工资管理系统,图书管理系统)等都没有活力,没有趣味性,普通的工具类软件都很日常,难以达到已有的水平,作一个游戏或许是一个好选择,可是游戏须要的技术难度大,并且游戏自成体系,选择游戏又形成了组员的选择困难症。网络
次日:数据结构
参考“欧几里得”这款有游戏,定下方向——几何游戏,经过画出题目要求的几何元素过关,放弃“带特效的文本编辑器”架构
核心竞争力:app
* 炫酷的软件将使你眼前一亮编辑器
功能集:函数
*游戏的“引擎”是核心,按照通用的MVC架构,分红模型部分,视图部分,控制部分
1.模型——几何建模,包含数据结构定义
2 视图——模型显示算法,控制显示和隐藏
3 控制——增删改查几何实体,调整几何实体(例如改变一条直线的方向,直线上的点会变化)
* 闯关模式
* 个性设置
* 成就系统
* 金币解锁
* 大神支招
* 悬赏优秀自定义关卡
学习了软件工程以后,咱们只是大体了解了编写大型软件须要软件工程,不然就会遇到“软件危机”,具体的软件危机是什么,咱们却不甚了解。你们熟悉软件工程经典的秋千图,它介绍了软件开发中个各类问题,看的时候难免以为可笑,可是当你的软件足够大,这些问题就会出如今你的面前。
正文:
需求从用户开始,游戏是人类的天性,每一个人都喜欢玩游戏,游戏吸引人的地方在于不一样的游戏有不一样的乐趣,李如意惊险刺激,持续反馈,虚拟成就等等,咱们作的这款游戏,最终的目的就是吸引人(开发者的但愿)和好玩(用户的最求)。
由于咱们并无被某个公司委托,因此咱们自身也客串用户。
N(Need, 需求)
·与老师探讨的过程当中,出现了第一个需求:学习是否是也能像游戏同样吸引人。若是能把游戏和学习结合起来,好比在游戏中加入“即时反馈”系统,这也涉及到软件定位问题,咱们的软件究竟是一款游戏软件,仍是一款学习软件,
最终的讨论结果是,游戏(加上学习元素)。
·解密类游戏是一个吸引人的游戏类别,固然,解密游戏也有不少种,你们能够找到不少“密室逃脱”“侦探”小游戏,“古墓丽影”中的劳拉在探险的过程当中也须要解决不少谜题,前一段时间风靡手机端的游戏“记念碑谷”总给人一种柳暗花明之感,
咱们也能够制造一款解谜游戏。
·时间有限是开发人员的限制,你们都不想去编剧本,不想写角色扮演类游戏(RPG)解谜剧本,能够考虑纯粹一些的解谜。就像“宝石迷阵”“鳄鱼洗澡”游戏同样,创造一个环境,纯粹的解谜,这样能够把时间专一于编码开发而不是编剧。
·几何相对于物理类容易许多,不须要物理学中力学那样复杂的游戏引擎支持,定义一个坐标系,画直线圆,知足条件(例如玩家画出了一个圆的圆心,必须是推理画出来的,而不是随便画出来的)就能够过关。闯关!对,闯关类游戏,达成条件就能过关。
·有些玩家喜欢容易上手的关卡,有些玩家喜欢困难的挑战,这就是用户调研环节G用户提到的“难易比例适中”,合理的关卡设计能让用户玩的开心,增长游戏“黏度”。
·各个游戏老是有奇奇怪怪的成就系统,甚至扫雷也有:
成就系统有魔力,这是公认的,咱们的软件也要有成就系统。
·组员C有舍友是游戏的资深玩家,组员C受到影响也常常玩这款游戏,给咱们提供了一些额外的建议,有的关卡解法可能用户难以想到,而闯关一般是不容许用户跳跃的,这样会形成用户长久的卡在同一个地方,
回想起“友商”“开心消消乐”的作法,软件须要有能够跳过关卡的功能,或者能有一些小提示。
·政策需求,软件须要知足一个国家地区的法律法规,咱们的软件须要一个防沉迷系统。
·盈利系统是用户不须要甚至讨厌的,倒是游戏开发商须要的,而咱们做为软件的实际开发者,也会受到此影响,将来可能会有免费去广告,充值钻石,购买过关,购买提示等功能。
A(approach, 作法)
技术上咱们须要一个能表达几何的方法,须要数学中的坐标系,几何定律,须要几何的元素(例如点线圆),这些凭咱们所学的知识能够应付,而后咱们须要在计算机中实现几何的方法,他们包括UWP、C#,
可是光有这个还不够,咱们发现Unity自身就能够写UWP程序(选项中选择提交到WINDOWS应用商店)不必定好学,DirectX可让咱们的程序更漂亮,可是DX有大量本级实现的细节,必须使用C++,而UWP的C++实现比较复杂
,因此咱们的计算机图形学仍是经过C#来实现,那样的话咱们的软件看起来可能会很“朴素”,并不吸引人。
后来咱们发现了NuGet中的Win2D它封装了DX,并且能够与XAML配合,正是咱们须要的。还有一些技术来实现,就是图形计算须要解方程,而方程在计算机中的表达就是矩阵,这就意味着咱们使用了线性代数。
须要注意的是,交互方式设计对游戏体验影响很大,应该着重优化,
B(Benefit, 好处)
C(Competitors, 竞争)
咱们选择“欧几里得”这款软件做为主要的竞争对手。
D(Delivery, 推广)
电梯演说
各位领导/投资人/合做伙伴: 咱们的产品 <几何迷城 geomystery> 是为了解决N <游戏与学习不能兼得> 的痛苦, 他们须要C<经过游戏打发无聊的时间,同时还能兼顾学习>, 可是现有的方案并无很好地解决这些需求,
咱们有独特的办法A,<例如尺规做图实践与游戏闯关结合>, 它能给用户带来好处B,<难易结合,定义严格,使用户着迷而不沉迷>, 远远超过竞争对手C<“欧几里得”>.
同时,咱们有高效率的推广D方法:<发布到商店,限时免费>,能很快地让大部分用户知道咱们的产品,并进一步传播。
===================================================炫酷的分割线====================================================================
标题:用户得到一个身份(本地或联机,游客或会员),能够进入游戏,保存游戏进度
角色:某个游戏玩家
主要成功场景:
一.注册过的用户登陆
步骤:
*加载游戏资源,现实启动动画,同时播放音乐,以后分红(1. 2.)两种状况
1.登录过的帐户且选择保存密码并自动登陆状况
*登录自动完成,能够进入游戏了
2.用户登陆
用户输入用户名 密码 点击"登陆"按钮
*用户成功进入游戏
二.未注册过的用户,能够选择"游客登陆"按钮,或者选择"注册"按钮跳转登录页面2.
步骤:
1.点击“游客登陆”按钮,用户得到一个本地的临时身份(能够转正),并进入游戏
2.用户点击"注册"按钮,跳转到注册页面,用糖户注册以后返回,此时用户能够选择登录本身刚刚注册的帐号,或者仍然选择游客登陆
拓展场景:
1.用户注册
用户填写"注册,用户输入昵称,密码,确认密码,密码找回邮箱"等表单,勾选"赞成许可协议"后,点击"注册"按钮,完成游戏帐号注册操做
2.密码输入错误
服务器找不到匹配的用户名和密码,就会返回一个错误,客户端显示"用户名和密码错误".(密码通过MD5等散列函数变换后传输,且限制IP的尝试次数)
软件启动,伴随着优美的使人振奋的音乐,用户等待资源加载完成。
此时窗体上有五行,
最上边一行是用户名输入框,
第二行是密码输入框,
第三行是“保存密码”“自动登陆”两个复选框,
第四行是“登陆”“游客登陆”两个按钮,
最后一行是“第三方登陆”“尚未帐号?点击这里注册”两个按钮。
若是你尚未本游戏的帐号,你能够选择“游客登陆”,先进入游戏试玩一下,也能够点击“注册帐号”按钮,填写表单,设置好用户名密码并记牢,若是注册成功之后你就能够享受注册用户非凡的游戏体验了
若是你是注册过本游戏帐号的玩家,输入“用户名”和“密码”,点击“登陆”,便可登陆,若是你不想每次进入游戏都输入用户名和密码再点击“登陆”,
你能够在点击“登陆”进入游戏以前,勾选“保存密码”框,下一次进入游戏前你就能够发现密码已经填写好了,点击登录就能够了,
若是你连“登陆”也不想点击,就在点击“登陆”进入游戏以前,勾选“自动登陆”框(必须勾选保存密码),再点击登陆,这样打开软件就自动帮你登录,而且进入游戏。
注:第一次登录的用户须要联网才能登录,帐户数据的同步也须要联网
一般的登陆界面像这样
而淘宝网竟然有用户登陆的体验反馈,这是合理的需求采集(A/B),不是过分需求
https://survey.taobao.com/survey/Q095thIx2?spm=a2107.1.1000340.2.72670377MiAiNT
输入框使用TextBox,登陆按钮和游客登陆使用Button(可使用背景色,也能够考虑使用Image做为context),
第三方登陆与用户注册能够考虑使用HyperlinkButton(超连接按钮),由于用户使用次数差别,可是也可使用Button,
当用户点击注册,会跳转到注册页面,将用户填写表单格式化称XML或者JSON发送到服务器,服务器会储存这些信息,用以建立用户数据
当用户点击“登陆”,在联网条件下,会加密用户的用户名和密码发送给服务器以验证用户身份,返回验证信息,验证信息是登录成功,玩家就能够进入游戏界面
在无网络状态下,用户可使用本地数据库登陆,可是信息只有同步后才能与服务器一致,并且同步涉及合法性检查部分
用户点击游客登陆,实际上是建立了一个本地的无密码的用户,这些数据只存在于并保存本地,若是APP数据损坏或者手机存储出现问题,颇有可能形成本地用户帐户数据损坏,因此推荐用互联网注册,进度能够更安全的保存
一台设备只能够有一个游客帐户,可是游客帐户能够选择升级补充注册,至关于注册的时候把当前的本地用户数据同步给新用户
最理想的条件下,游客帐户能够与一个“老玩家”用户数据同步
注:只是一款小游戏,并且即便存在应用内购买,价格也很便宜,理论上来讲应该不会出现用本地用户批量生产“大神玩家”的状况,可是是否能与已有的帐户同步还须要市场部门进一步分析