创四方·大部落

 找回密码
 立即注册
搜索
查看: 1596|回复: 25

[游戏开发] 15网工-第三周任务分配

[复制链接]

8

主题

14

帖子

125

积分

硕士

Rank: 2

积分
125
发表于 2018-9-11 18:09:48 | 显示全部楼层 |阅读模式
本帖最后由 caiyanlong 于 2018-9-21 23:33 编辑

第三周任务分配

服务端组:①陆镭,②宋剑南,③蔡其发)
任务:本周内必须完成所有的通信协议的制定(这是首要问题,服务端与客户端的具体开发工作,都依赖于这个协议的制定),进而完成最基本的登录注册的接口。

客户端组:①林晨阳,②罗丽霞,③陈名声,④林家辉)
任务:对一些技术上的关键点进行研究,罗列出项目中具有哪些关键技术点,并且解决一部分。(列如,数据传输.....)

设计组:①黄彩虹,②王益雄,③陈枝春)
任务:本周内要给出整个游戏项目的原型框架设计。(先以简要的图纸形式画出(电脑软件画图工具),整体的游戏操作运行框架,按钮位置、文字位置、输入框、游戏运行等)

测试组:①李凯彬,②黄南杰)
任务:本周内要确定代码整体的命名格式规范。(列如,文件夹命名、JS文件命名、代码编写规范等)




本周六23:00前编写好本周的“任务周报”,以回复的形式发到本贴下方,可以加入图片代码等,做为成绩评定。)
(开头加上,列如:服务端组,①陆镭,任务周报:........

--------若有问题,请联系15网工项目管理组。 合作快乐^_^! --------


======================================================================================================
本周各小组任务完成情况
测试组本周任务完成情况:
李凯彬组:已完成具体命名规范(30分)
黄南杰组:已完成具体命名规范
经讨论,最终选取李凯彬组成果

服务端本周任务完成情况:
陆镭组:完成具体通信过程(50分)
宋剑南:完成任务
蔡其发:完成任务

客户端组本周任务完成情况:
林晨阳组 :内容详细,考虑多方面,游戏初始界面,匹配界面,结束界面:还做了流程设计,匹配所需计算方法。(60分)
林家辉组:很好的解释了游戏规则,以及代码如何实现
罗丽霞组:分四方面完成任务
陈名声:内容略少,考录不周到
经讨论,最终选取林晨阳组成果

设计组本周任务完成情况:
陈枝春组:已完成整个游戏项目的原型框架设计
王益雄组:已完成整个游戏项目的原型框架设计(55分)
黄彩虹组:已完成整个游戏项目的原型框架设计(80分)
经投票,最终选取王益雄组成果

请各小组认真看下面4个置顶的项目,这些是经过讨论投票选取的结果,请大家认真对待,思考里面的不足,有问题可以反馈给项目管理组。

回复

使用道具 举报

0

主题

2

帖子

23

积分

学士

Rank: 1

积分
23
发表于 2018-9-15 16:54:58 | 显示全部楼层
客户端组 ①林晨阳 任务周报:
游戏的过程:游戏初始界面->游戏匹配界面->匹配获取服务端玩家ID,向服务端申请房间ID->进入游戏主界面->将游戏规则实现出来->判定游戏结果显示获胜方,将结果信息发送给服务端,选择“再次游戏进入游戏界面”和“返回进入匹配界面”。
游戏初始界面
       涉及到注册页面和登录页面:
    注册页面:提交按钮返回登录界面按钮 username 和password repassword输入框
       1.需要用户输入username 和password数据并提交服务器(数据是否需要过滤数据库特殊字符,数据长度,数据允许的类型)
       2.提交之后服务器返回注册情况,是否注册成功,注册失败的具体原因
    登录页面:登录按钮 进入注册界面按钮username 和password输入框
       3.需要用户输入username 和password数据并提交服务器(同样涉及到是否需要进行特殊字符的过滤用以防范数据库注入攻击以及是否添加验证码用以防范暴力破解)
     4.提交之后服务器返回登录情况,是否登录成功,登录失败的具体原因
5.主界面接受服务端传过来的房间号room,还有用户名username,还有本地时间time,
游戏匹配界面
游戏匹配界面、匹配获取服务端玩家ID,向服务端申请房间ID
进入匹配界面:
界面显示:用户名、当前时间、退出匹配按钮。
1、保存玩家自己的用户名username,当前进入时间t1,
匹配过程:
1、向服务器端发送username以及当时的时间t1、房间ID
2、服务器端处理的数据有:玩家的用户名username、服务器端接收到客户端发出的信息的时间ts、房间ID
3、客户端接收的数据有:服务器端接收到客户端发出的信息的时间ts、当前时间t1、收到服务器处理的数据的时间t2、房间ID
4、利用公式计算出匹配完成后可以进行游戏的时间。
匹配完成页面:
匹配页面显示:房间号ID、玩家用户名username、对方玩家的用户名username、开始游戏按钮。
游戏流程设计:
    游戏开始阶段 需要由红方向黑方发送一个32个数字的数组。
  涉及到的问题首先就是棋子的摆放问题。象棋暗棋是按照固定位置随机摆放棋子,棋子应该用何种问题初始化并保存。
  设想:(x,y,xid,pos)用来存放一枚棋子,x,y用来镖师棋子的位置的横纵坐标,最左上位置(0,0),xid表示棋子具体是哪一枚,范围从1到32,1-16是红方,17-32是黑方,数值越小官职越大。pos为1或者0,1表示棋子是正面,0表示棋子是反面,0为初始值。
  棋子布局时由先手方(红方)将存有1-32的数组利用随机数配合出圈算法生成新的随机数组,发送到后手方(黑方)作为开局棋盘布局。
  红方按照从上到下从左到右在对应位置生成32枚棋子,并依次在xid位置填入生成的数组。
  这里就涉及到第二个问题,红色方与黑色方的主视角需要完全颠倒才符合真实对战的视角。
  所以黑色方在按照上到下从左到右在对应位置生成32枚棋子之后,需要将数组反向填入xid。
    行动阶段 需要由行动玩家向另一个玩家发送一个(x,y)来表示翻开棋子 或 发送(x,y,newx,newy)来表示移动一枚棋子
翻开棋子需要将这个位置的棋子pos更改为1
移动棋子需要判断xid是否是属于自己可以操作的范围,pos是否为1,x,y的变化是否合理。目标位置是否有目标,目标是否翻开,目标是否是友方,目标是否可以击杀。符合规则的移动才进行传输。
由于双方棋盘完全相反,所以黑方发送和接收数据的时候需要对(x,y)的值进行变换,x =8-x y=9-y,再进行传输。
游戏结束界面
1.根据两位玩家的分数score判定哪位获胜(用客户端自己的js代码来判定),将结果发送给服务端,再返回游戏结束界面显示获胜那方。
2.在游戏结束界面的下方再加上“再次游戏进入游戏界面”和“返回进入匹配界面”两个按钮。
3.再次游戏进入游戏界面:如果两位玩家想要再深一轮地比赛,就点击“再次游戏进入游戏界面”按钮,此时需要从服务器端查出两位玩家的身份信息,把username、id、房间号、头像等发送到游戏主界面上。
4.返回进入匹配界面:如果两位玩家不想再深一轮地比赛,就点击“返回进入匹配界面”按钮,此时回到了游戏匹配界面,就需要重新输入自己的身份信息给服务器端。
附上
1.、游戏结束传递游戏状态gamestate(0,1){0表示败1表示胜}到服务器,最后,玩家是否在玩一次,若在玩一次发送gamestate(2){2表示在玩一次}到服务器。否则,返回主菜单。
2、匹配时:那就是显示正在匹配显示匹配时间,显示玩家,当前时间,当过去2分钟,没有回应,自动退出到首页
3. 用户匹配有四种情况:
①.一个人进入游戏,里面什么都没有,这个人就处于等待状态。
②个人等待了好久,然后又进入游戏发现里面有几组在玩了,还是没人跟他匹配,继续处于等待状态。
③有一个玩家进入游戏,处于等待状态,这时开始判定,前面一个玩家如果也是等待则开始游戏,如果前一个玩家放弃等待则,这个玩家替换之前的玩家位置开始等待。
④家进入游戏发现有人等待直接开始游戏。
4. 时间差
应为由于先来的问题,之前一个和之后一个人会产生时间差,(这个代码还是没弄清楚怎么写。)
公式 :设前一个时间为 T1 后一个时间为T2 ,T1与T2的中间时间大概为Ts。Ty表示后面的用户进入时间,Tx表示前一个用户进去时间。
Ty=[((t1-t2)/2+t1)-ts]+Tx

回复

使用道具 举报

0

主题

7

帖子

35

积分

学士

Rank: 1

积分
35
发表于 2018-9-15 20:09:59 | 显示全部楼层
本帖最后由 xyc1019 于 2018-9-15 20:12 编辑

测试组:①李凯斌 任务周报:确定代码整体的命名格式规范

1.所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
反例: _name / __name / $Object / name_ / name$ / Object$

2.类名采用帕斯卡命名法,但以下情形例外:(领域模型的相关命名)DO / DTO / VO / DAO等。
正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例:macroPolo / UserDo /XMLService / TCPUDPDeal / TAPromotion

3.方法名、参数名、成员变量、局部变量都统一使用小驼峰拼写法。
正例:localValue / getHttpMessage() / inputUserId

4.常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚不要嫌名字长。
正例:MAX_STOCK_COUNT 反例:MAX_COUNT

5.抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。

6.POJO类中的任何布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误。
反例:定义为基本数据类型boolean isSuccess;的属性,它的方法也是isSuccess(),RPC框架在反向解析的时候,“以为”对应的属性名称是success,导致属性获取不到,进而抛出异常。

7.包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

PS:
①:小驼峰拼写法:lowerCamelCase(CamelCase的一部分)是一种命名惯例,它的名字是由多个和在一起的词组合成的一个单词且它们的每个词(除了第一个词以外)的第一个字母大写。

②:帕斯卡形式:单字之间不以空格断开或连接号(-)、底线(_)连结,第一个单字首字母采用大写字母;后续单字的首字母亦用大写字母,例如:FirstName、LastName。每一个单字的首字母都采用大写字母的命名格式,被称为“Pascal命名法”,源自于Pascal语言的命名惯例,也有人称之为“大驼峰式命名法”(Upper Camel Case),为驼峰式大小写的子集。
回复

使用道具 举报

1

主题

5

帖子

29

积分

学士

Rank: 1

积分
29
发表于 2018-9-16 11:54:04 | 显示全部楼层
服务端①陆镭
以下用以S表示Server,C表示Client
总体格式:
    {"s":状态,"d":具体数据对象}
  解释:
d: 代表data。是具体返回的数据。
具体通信过程,c2s均采用post方式传递参数
1、用户注册regist
        c2s:
name = 用户名。
                password = 密码。
                appellation = 称谓。
                time = 当点时间戳。
        s2c:
                d = {"usersid": "用户ID","name": "用户名",  "password": "密码",  "appellation":"称谓", "time": "当前时间戳"”}
2、用户登录login
        c2s:
                name = 用户名。
                password = 密码。
        s2c:
                d = {"usersid": "用户ID","name": "用户名",  "password": "密码"}
3、用户对战匹配
        c2s:
                usersid = 用户ID。
        s2c:
                d = {"usersid": "用户ID", "time": "当前时间戳"}
4、棋盘坐标coordinates
        c2s:
                x = 横坐标。
                y = 纵坐标。
        s2c:
                d = {"x":横坐标位置, "y": 纵坐标位置}
5、用户A下棋
        c2s:
                usersid
                time
                spc:象棋起始坐标
                epc:象棋终点坐标
        s2c:
                d = {"usersid":"用户ID", "time": "当前时间戳", "spc":"象棋起始坐标", "epc": "象棋终点坐标"}
6、游戏数据
        c2s:
                usersid = 用户ID。
                name = 用户名。
                time = 当前时间戳。
                countdown = 倒计时。
        s2c:
                d = {"usersid":"用户ID", "time": "当前时间戳", "name":"用户名", " countdown ": "倒计时"}
7、用户A认输
        c2s:
                usersid = 用户ID。
                time = 当前时间戳。
                resign = 认输。
        s2c:
                d = {"usersid":"用户ID", "time": "当前时间戳", "resign":"认输"}
8、用户A求和
        c2s:
                usersid = 用户ID。
                time = 当前时间戳。
                peace = 求和。
        s2c:
                d = {"usersid":"用户ID", "time": "当前时间戳", "peace":"求和"}
9、用户A拒绝求和
        c2s:
                usersid = 用户ID。
                time = 当前时间戳。
                Nopeace = 拒绝求和。
        s2c:
                d = {"usersid":"用户ID", "time": "当前时间戳", "Nopeace":"拒绝求和"}
10、游戏结束
        c2s:
                usersid = 用户ID。
                time = 当前时间戳。
                gameover = 游戏结束。
        s2c:
                d = {"usersid":"用户ID", "time": "当前时间戳", " gameover ":"游戏结束"}
11、查看用户战绩record
        c2s:
                usersid = 用户ID。
        s2c:
                d = {"usersid": "用户ID","total":"总对战局数"," victory": "胜利的局数",  "failure": "失败的局数"}
回复

使用道具 举报

1

主题

7

帖子

43

积分

学士

Rank: 1

积分
43
发表于 2018-9-19 17:12:26 | 显示全部楼层
lingda 发表于 2018-9-19 00:17
作为设计组,虽是原型,但给出的设计如此简陋。考虑也未深入。要用工具去做,比如墨刀  modao.cc
总体评价 ...

设计组第二组成员:黄盛鑫  
因上次原型图太过简陋,修改后图片如下。图片链接为:https://modao.cc/app/gtjq8h0u3Lp97Kwbri0Z6ZZNn4LpwOA#screen=s3F5285C3AF1537327962184(注意:本次链接里面的图片按钮有跳转功能!)
登陆界面:
SG(_090ZR9TS0F}RB3HMGSB.png

忘记密码界面:
2T{B`ED@53I$H99E5QM3A%K.png

注册界面:
`E98Q0]0{$WQ}_3I`CG1I03.png

匹配界面:
E4776)$QKFH~(3NRD)YS9UA.png

个人资料界面:
IAG}GL%O5HU{4_%(U4GKLY0.png

匹配等待中界面:
_M@][RNDWSJ[4UVN}LS[LKB.png

设置界面:
RS95U6GR7MBFPC{O~(1.png

游戏界面:
Y{47AS3Z]IV57WKL3A_JJBS.png

游戏结束界面:
5AV1MZ55I%]B`O8~2U5]RD0.png

回复

使用道具 举报

8

主题

14

帖子

125

积分

硕士

Rank: 2

积分
125
 楼主| 发表于 2018-9-22 19:08:20 | 显示全部楼层
本帖最后由 caiyanlong 于 2018-9-22 19:17 编辑
黄盛鑫 发表于 2018-9-22 17:36
设计组2:将之前做的原型图用cocos实例化。此为本组游戏的墨刀链接:https://modao.cc/app/gtjq8h0u3Lp97Kw ...

第四周的别再发到第三周帖子里了啊!!!!全部扎堆在一起,太难找了。
回复

使用道具 举报

1

主题

7

帖子

43

积分

学士

Rank: 1

积分
43
发表于 2018-9-22 17:36:56 | 显示全部楼层
设计组2:将之前做的原型图用cocos实例化。此为本组游戏的墨刀链接:https://modao.cc/app/gtjq8h0u3Lp97Kwbri0Z6ZZNn4LpwOA#screen=s3F5285C3AF1537327962184
下图为本组所做的cocos图片:

游戏失败.PNG
游戏获胜.PNG
请求悔棋.PNG
请求求和.PNG
游戏.PNG
匹配中.PNG
个人设置.PNG
个人信息.PNG
主菜单.PNG
忘记密码.PNG
注册.PNG
登录.PNG
平局.PNG
回复

使用道具 举报

0

主题

4

帖子

30

积分

学士

Rank: 1

积分
30
发表于 2018-9-21 22:55:22 | 显示全部楼层
设计组:③陈枝春
借鉴了一下其他组的,上次原型设计已重做,在墨刀链接https://modao.cc/app/yEdRMB7pZDtusggld8pySUKOhnL1MEX
回复

使用道具 举报

1

主题

7

帖子

73

积分

硕士

Rank: 2

积分
73
发表于 2018-9-21 22:33:43 | 显示全部楼层
代码规范

暗棋游戏代码规范(1).pdf

277.43 KB, 下载次数: 17

回复

使用道具 举报

40

主题

87

帖子

1799

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1799
发表于 2018-9-21 00:53:59 来自手机 | 显示全部楼层
prince 发表于 2018-9-20 16:25
设计组:1黄彩虹组,墨刀地址:https://modao.cc/app/M4NPvqo9gFxree0egO3j00FyBV3tXpO
根据需求做了修改 ...

这个设计用心了。很好。虽然艺术性上仍显五毛钱效果。与专业设计有较大差距。但能在用户体验方面深入思考进行设计,我就满意了。具体细节我后面再看。冲着这心思80分
回复

使用道具 举报

0

主题

8

帖子

72

积分

硕士

Rank: 2

积分
72
发表于 2018-9-20 16:25:57 | 显示全部楼层
设计组:1黄彩虹组,墨刀地址:https://modao.cc/app/M4NPvqo9gFxree0egO3j00FyBV3tXpO
根据需求做了修改与设计。

墨刀操作如下:

1登录页:
输入框可输入,忘记密码,新用户注册,登录按钮都可跳转对应页面,且可返回。

2主界面:
个人资料,开始游戏,切换账号,设置,都可跳转且返回。

3匹配界面:
可取消匹配,3秒无操作进入匹配成功,1秒无操作进入游戏界面。

4游戏中:
设置,进入设置可返回游戏,认输则结束游戏。

5结束界面:
可再来一局,可返回主界面,退出游戏按钮无功能

暗棋app界面.png
登录.png
个人资料.png
结束.png
匹配成功!.png
设置界面.png
游戏中2.png
找回密码.png
正在匹配.png
主菜单.png
注册.png
注册成功.png
回复

使用道具 举报

1

主题

7

帖子

43

积分

学士

Rank: 1

积分
43
发表于 2018-9-20 11:24:47 | 显示全部楼层
lingda 发表于 2018-9-19 23:31
要用专门的原型设计工具来做!墨刀!
界面设计体验仍然较差,例如第一个登录界面,从界面上无法看出是登录 ...

设计组2:对上次不足之处进行了补充,修改。另外,我们现在做的设计图就是采用墨刀工具来做。本次图片链接:https://modao.cc/app/gtjq8h0u3Lp ... 85C3AF1537327962184


回复

使用道具 举报

40

主题

87

帖子

1799

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1799
发表于 2018-9-19 23:31:25 | 显示全部楼层
黄盛鑫 发表于 2018-9-19 17:12
设计组第二组成员:黄盛鑫  
因上次原型图太过简陋,修改后图片如下。图片链接为:https://modao.cc/app/ ...

要用专门的原型设计工具来做!墨刀!
界面设计体验仍然较差,例如第一个登录界面,从界面上无法看出是登录还是注册界面,因为下方两个按钮,登录与注册处于平行的地位。而实际上这里主要的按钮是登录,而注册按钮实际上是跳转到注册界面的按钮,而不是真正意义的注册按钮。
再比如,注册页面,怎么返回到登录界面?
总之每个界面都还有考虑不周之处,请继续努力!55分!
回复

使用道具 举报

40

主题

87

帖子

1799

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1799
发表于 2018-9-19 00:32:24 | 显示全部楼层
15100259 发表于 2018-9-16 11:54
服务端①陆镭
以下用以S表示Server,C表示Client
总体格式:

还算有些思考,但问题较多,该文档极其重要,必须重写
总体格式中,对s的取值含义没定义,我给的例子里都有,所以这个没写很不应该
1、注册不需要发,appellation和time。回传数据,也不需要name、password、appellation
2、登录不需要回传name  password
3、匹配,差比较多,没考虑匹配成功与未匹配所返回的数据是不一样的
4、棋盘坐标,这是个什么鬼,没用的东西
5、下棋,得传个游戏id(通过匹配接口获得),无需传时间,坐标要拆开成两个数据,没考虑翻棋子
6、游戏数据,只传游戏id,回传数据少了很多东西
。。。。。。反正每个都有错。。好好思考设计,这比写代码更有意义,更有含金量
总体评价,50分(没有功劳但有苦劳,看在苦劳的份上)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

创四方·大部落 ( 闽ICP备17018841号 )

GMT+8, 2018-11-17 17:13

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表