独自一人开发斗地主游戏(h5 + 安卓 + 苹果)
- 开篇感言
- 背景
- 涉及到的知识点技能
- 架构设计及其思路
- 详细设计
-
- 1 单张卡牌设计
- 2 打牌时,卡牌组合的牌型设计
- 3 一种通用的牌型及其比较算法
- 房间的设计
- 游戏控制器与回合的设计
- 前端0 座椅总是为自己的设计
- 效果图
开篇感言
不枉我深入学习基础知识,算法与数据结构,编译原理,java并发编程,这些东西都有用得到的时候。
再极端的时间内学习了cocos creator引擎,并学以致用,有极大的增加了自己的自信心。
在公司总是拧螺丝,一个人开发一个完成的作品,我又觉得自己彷佛回到了色彩斑斓的世界中。
前端代码地址:https://github.com/neroHua/neroGameClient
后端代码地址:https://github.com/neroHua/neroGameServer
背景
本人使用java工作已经7年之多了,js和ts基本懂一些。
打算开发一款逮狗腿子的棋牌游戏(合同学们玩),先仿制一款斗地主游戏,试一下。
涉及到的知识点技能
编码功底:
- 算法和数据结构
- 设计模式(策略,责任链)
- 敏捷开发。
游戏引擎:
1.Cocos creator 2.0.4
络通信:
1. http
2. websocket
编程语言:
1.java (后端)
2.typeScript(前端)
后端:
1.spring,springMVC,spring boot, mybatis
2.flyway,jwt,h2,junit
前端:
h5
架构设计及其思路
- 服务器整体为单机结构(以后有需要,再扩容好了),提供 h5,安卓,苹果 三种客户端接入服务器,且前端由Cocos 引擎处理,直接打包成三个端 。
- 客户端和服务器端的通信协议选择为http,和 websocket (三端都支持的通信方式)。用户点击等等事件由客户端发送http请求。通过websocket,服务器向客户端推送消息。服务器端不接收用户通过websocket推送到服务器的消息。只用用户进入房间以后,才会开启websocket通信。
- 游戏的主要模型/功能设计。用户,房间,游戏,游戏控制器,游戏回合。房间是核心: 用户再房间里面玩游戏。每一个房间都有一个游戏控制器用以控制游戏的进程。用户有手牌。游戏控制器,通过游戏回合控制每回合的进行。
详细设计
1 单张卡牌设计
为了便于,排序,比较,等操作,设计如下:
这里的code呢,等于卡牌前端的图片名称(不过我这里前端使用的图集)。
这里的value呢,代表了单张卡牌的权值大小,可用于比较牌面的大小。
这里的message呢,代表了卡牌的中文名称。
这里不需要花色,所以没有设计花色字段
2 打牌时,卡牌组合的牌型设计
为了便于,排序,比较,等操作,设计如下:
权值大的牌型,比权值小的牌型大。
权值相同的牌型,需要牌型一样(牌型为同一个枚举)方可比较
这里的code呢,一种编码。
这里的value呢,代表的组合的权值。
这里的message呢,代表了卡牌的中文名称。
逮狗腿子,有些牌型不支持,还需要更多的牌型,后面再弄了,不过思路是已经想好了。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!