Alpha阶段展示及总结

Github地址:https://github.com/NiceKingWei/krad

项目地址:119.29.32.204/krad.html

一、项目概况

本组的项目为一款名为Krad的小游戏,采用两阵营多人对抗的模式。项目小组至今进行近4个月,其中Alpha冲刺阶段5月20日开始,6月15日结束,共26天。至今项目的完成进度为:主要功能和界面基本实现,但仍会出现一些小的Bug,且用户体验不完善。

至今Github中dev分支共649次commit;issue共19个,已关闭15个;Milestone中Prototype(也就是课程的Alpha阶段)已完成100%。

Commits

Issues

Milestones

Alpha冲刺阶段博客地址(其中某些时间段合并在一篇博客中):

5月26日:https://www.cnblogs.com/NoWarningNoError/p/9094832.html

5月27日:https://www.cnblogs.com/NoWarningNoError/p/9097780.html

5月28日:https://www.cnblogs.com/NoWarningNoError/p/9103098.html

5月29日:https://www.cnblogs.com/NoWarningNoError/p/9108657.html

5月30日:https://www.cnblogs.com/NoWarningNoError/p/9114415.html

5月31日:https://www.cnblogs.com/NoWarningNoError/p/9116669.html

6月1日:https://www.cnblogs.com/NoWarningNoError/p/9123978.html

6月2日及3日:https://www.cnblogs.com/NoWarningNoError/p/9131263.html

6月4日:https://www.cnblogs.com/NoWarningNoError/p/9136766.html

6月5日:https://www.cnblogs.com/NoWarningNoError/p/9142836.html

6月6日:https://www.cnblogs.com/NoWarningNoError/p/9148182.html

6月15日:https://www.cnblogs.com/NoWarningNoError/p/9188906.html

二、技术难点

制作游戏的难点,前后端都非常多。

前端

1、样式设计,不仅限于登陆界面等,还有游戏本身的设计。

2、游戏界面效果实现,如人物的移动等等。

3、调试。

对于前两条,我们采用了开源游戏Teeworlds和开源游戏框架Phaser的素材,它们的网址分别是:

https://www.teeworlds.comhttps://Phaser.io

而最后一条网页功能的调试严格来说并非技术困难,而是技术本身不易用好,对于这方面我们没有太好的方案,只能多花时间,同时尽量养成良好的代码习惯。

后端

1、游戏规则如何实现:存储在静态的类中,类中的方法适用于任何情况,任一局游戏调用四个规则类中的方法即可。其中Gamble的卡牌系统,Map的地图系统,都是有一定难度的内容。

2、关于地图的存储结构:游戏规则中有一些正常方法难以实现的内容,最典型的即是移动和地图。这部分内容的解决过程在博客https://www.cnblogs.com/NoWarningNoError/p/8794839.html中。

3、用户信息、交互和匹配:使用MongoDB作为数据库存储用户信息,SessionManager等类管理用户和后台的交互,使用Actor模型。

4、一局游戏的产生和进行:God模块管理了每一局游戏的整体进程,其中的异步信息处理采用了synchronize、wait和notifyAll三个方法,来应对游戏的某些阶段需要多个线程(即多个玩家)均操作完成后,后台才对信息进行处理的情况。

前后端交互

1、前端登陆、注册等页面和数据库及玩家交互,例如注册和修改密码时邮件的发送。

2、前端和God交互,前端通过GodHelper调用God中的request函数来完成通信。

交互主要的信息格式是Json,交互本身原理不难,但持续构建和JS的调试会耗费大量的时间,同时Java、JS以及Scala语言中某些类型无法互通加大了工作量。

三、游戏介绍和成果展示

游戏简介

阵营分为战术小队和感染者,分立于地图不同的位置,战术小队的胜利目标是到达地图上特定地点取得目标物,然后再到达地图上的另一特定撤离点;而感染者的胜利目标则是感染所有战术小队。当一方达成目标,游戏即结束。

游戏的核心通过出牌实现,每个人都有两种牌:决策牌以及猜拳牌,决策牌决定了本回合中角色的行为,猜拳牌决定了本回合中角色的效果。

具体来说:

决策牌:移动、蓄能、开火(感染者无)和使用技能。

​                 “移动”,顾名思义是在地图上改变位置。

​                 “开火”可以削减敌方手牌上限。

​                  每个角色有其独特技能,可以通过“技能牌”使用。

​                  而”蓄能“则是什么都不做,将获得的能量存入能量值中,能量值决定了角色”移动“的距离和”开火“削减手牌上限的数量。

猜拳牌:分明牌和暗牌,均为“石头、剪刀、布”。

​               明牌在本回合手中没有猜拳牌,或是本回合不想使用猜拳牌时使用,不消耗手牌,但会在选择的同时让其他玩家看到。

​               暗牌即为一般的猜拳牌,可以打出多张,如果猜拳赢下敌方至少一人,则可以获得能量,获得的点数为打出的猜拳牌的张数。(例如出3张石头且获胜,则获得3点能量,可以移动三格,或是削减敌方3点手牌上限)。

成果展示

1、截图

登陆匹配界面的展示可详见https://www.cnblogs.com/NoWarningNoError/p/9188906.html

地图

人物

2、演示视频

本视频摄制和配音均由欧阳炳濠同学完成,感谢他的工作。

若视频无法显示,请移步https://v.youku.com/v_show/id_XMzcwMTA0OTUwNA==.html?spm=a2h3j.8428770.3416059.1

四、此后的工作

    此后除了调试完所有Bug以外,我们还需要对游戏界面、按键封闭和用户体验等做进一步优化。

1、匹配功能需要改进。

2、各种界面都不够美观。

3、游戏界面需要“返回游戏大厅”的选项。

4、游戏过程中需要提示玩家具体应该如何操作。

5、某些不需要操作的阶段不应该需要玩家点击check(结算阶段大多如此),且应该将check按钮置灰。

6、每个玩家角色的状态需要显示。

7、分数系统。

NoWarningNoError(第八组)----Krad项目报告的更多相关文章

  1. [原]Jenkins(八)---jenkins构建项目报错时发送错误报告邮件

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...

  2. 小学四则运算结对项目报告(GUI)

    小学四则运算结对项目报告(GUI) 一.Coding.Net项目地址: https://git.coding.net/wsshr/Calculation.git 二.PSP表格(完成前): PSP 任 ...

  3. 第八组Postmortem事后分析

    第八组Postmortem事后分析 一.团队成员总结的改进和教训 隆晋威:Beta阶段完善架构设计,分工更加明确,文档更丰富,交流带来开销减少.Alpha技术选型不固定,分工混乱,没有方便的测试引擎, ...

  4. 结对编程项目报告--四则运算CORE

    <!doctype html> sw_lab2.mdhtml {overflow-x: initial !important;}#write, body { height: auto; } ...

  5. 201871030108-冯永萍 实验二 个人项目— D{0-1}背包问题项目报告

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...

  6. 201871030126-王会娟 实验二 个人项目—《D{0-1} KP》项目报告

    项目 内容 课程班级博客链接 https://home.cnblogs.com/u/wanghuijuan815 这个作业要求链接 https://www.cnblogs.com/nwnu-daizh ...

  7. 201871030110-何飞 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030110-何飞 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 ...

  8. 笔记:Maven 项目报告插件

    Maven 项目报告插件,都是对于前面生成的项目站点的内容丰富,因此都是基于项目站点的,生成的命令和生成项目站点一致(mvn site),项目报告插件的配置和一般插件不同,是在 project-> ...

  9. Gradle 1.12用户指南翻译——第四十一章. 项目报告插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

随机推荐

  1. 125-FMC125-两路125Msps AD,两路160Msps DA FMC子卡模块

    FMC125-两路125Msps AD,两路160Msps DA FMC子卡模块 1.板卡概述  该板卡可实现2路14bit 250Msps AD 和2路16bit 160MspsDA功能,FMC连接 ...

  2. 关于javascript提交到java后台空格去不掉ASCII为160的解决办法

    今天正则表达式匹配一个字符串,怎么都不对. 用正则表达式去掉尝试str.replaceAll("\\s*","");  在或者用replaceAll(" ...

  3. Sass-Opacity函数-rgba()函数

    在前面介绍 RGB 函数一节中,还记得吗?有一个 rgba() 函数可以创建一个颜色,同时还可以对颜色修改其透明度.其可以接受两个参数,第一个参数为颜色,第二个参数是你需要设置的颜色透明值. > ...

  4. CentOS7 安装xen(在虚拟机上成功,实体机测试死机!)

    此文章只做操作记录,其中有些地方可能漏了!!我只贴出自己的操作过程!其它有差别的地方请自己网上查找参考! 只有在全虚拟化下才能安装Windows,这就需要有硬件支持,并在BIOS中开启Virtuali ...

  5. java编程实战

    线程池为什么要有它: 线程创建要开辟虚拟机栈,释放线程要垃圾回收的. server端要并发访问数据库的. 服务器启动有线程池放着. ----- 线程池的概念: 1.任务队列 2.拒绝策略(抛出异常,直 ...

  6. LDD快速参考

    第二章 快速参考 本节中出现的条目会以它们在文中出现的顺序列出: insmod modprobe rmmod 用来装载模块到正运行的内核和移除模块的用户空间工具: #include <linux ...

  7. 纯CSS 常见3D实例

    一.正方体 我认为正方体可以算是3D图像的基础吧,首先正方体是由六个相同的面所组成,其次就需要我们依次构造.(据体构造在代码中)成平图如下: 代码如下: <!DOCTYPE html> & ...

  8. mysql启动以及常用命令汇总

    mysql57的启动 常用命令 : show databases        :            展示所有数据库 use  数据库名      :     连接数据库 show tables ...

  9. 20175126《Java程序设计》第十周学习总结

    # 20175126 2016-2017-2 <Java程序设计>第十周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲代码并理解内容学习. -本周学习十二章,主要内容如下: ...

  10. (转)使用InfluxDB+cAdvisor+Grafana配置Docker监控

    文档来源 文档来源:How to setup Docker Monitoring 由garyond翻译.校正及整理 Docker监控简介 我们提供的Docker主机和容器越来越多,对Docker服务器 ...