基于Unity从零开始开发多人斗地主游戏


基于Unity从零开始开发多人斗地主游戏


本课程会带领大家从0到1的开发一款强联网卡牌游戏:斗地主,不容错过哦。

服务器:c# 开发

客户端:Unity2017

学完并熟悉掌握本课程会熟悉网游开发模式,独立设计并开发出一款不错的网游。个人独立开发,素材都是从网络上搜集,如果瑕疵,请见谅。

【课程内容】

第1章: 基础预热

课程介绍

因特网和协议

分层体系结构

进程和套接字

运输层协议TCP和UDP

应用层协议HTTP

socket服务端

socket客户端

验证连接

第2章: 服务器底层开发

实现接收连接的异步事件

添加限制连接数的信号

封装客户端连接对象和编写连接池

粘包拆包问题介绍

采用包头+包尾的方式解决粘包和拆包

实现异步网络接受数据

客户端对自身接收的数据进行解析

构造SocketMsg负责网络消息的传递

实现soceketMsg与byte[]的转化

对象的序列化和反序列化

实现客户端断开连接

实现发送数据

助学篇:带大家回忆一下所开发的内容

抽象出应用层

开发定时任务功能(计时器),编写任务模型

创建计时器管理类,监听到达间隔触发的事件

控制定时任务(计时器)的触发时间

开发线程安全的INT类型

实现单线程池

第3章: 网络游戏开发

Unity2017下载

创建工程导入素材

根据策划创建面板

导入客户端框架,创建PlayPanel脚本

完成开始面板

完成注册面板

服务器架构介绍

按照架构实现服务器

在客户端封装Socket,使其连接到服务器

测试客户端服务器的连接

解决BUG

修改客户端的链接方法

定义操作码、子操作码,演示客户端如何给服务器发送请求

测试数据传输是否正确

创建账号缓存层,实现注册的一些方法

完成账号缓存的所有方法

实现账号逻辑层

解决今日BUG

开发提示面板

给登录和注册面板添加提示

处理接收到的服务器发来的消息、优化发送网络消息的方法

实现客户端的账号处理、怎样和服务器交互

优化服务器,改变传输结果

初步实现场景管理器,融入到框架中

增加当场景加载完成的时候调用的方法

实现登录成功跳转场景

设计UI之主界面的信息面板

设计UI之主界面的匹配面板

设计UI之主界面的设置面板

设计UI之主界面的创建面板

编写信息面板

开发匹配面板

修改默认创建的脚本

开发设置面板

开发创建面板

创建角色数据模型

开发角色数据的缓存层

完成角色数据缓存层

创建有关角色的操作码

实现用户逻辑层

向服务器获取信息,在客户端创建用户处理类

客户端处理获取角色信息的响应

保存接收到的角色信息并且处理角色上线响应

发起创建请求和处理创建响应

演示本日BUG

更新客户端视图

编写匹配操作码

定义匹配房间的数据模型

创建匹配缓存层,实现进入匹配队列

实现匹配缓存其他所有的功能

创建匹配逻辑类,实现进入匹配房间功能

优化服务器之群发消息

创建匹配房间的传输模型,在逻辑层进行构造

实现离开匹配房间功能

实现玩家准备

在客户端发起匹配请求

创建MatchHandler,接收服务器的响应

保存房间信息,他人进入房间广播处理

玩家离开

玩家准备和开始游戏的处理

搭建战斗界面的左、右角色状态面板

搭建战斗界面自我的状态面板

搭建战斗界面上边的底牌面板

搭建战斗界面下边的快捷聊天面板

搭建提示面板和结束面板

创建出牌点,实现进入房间按钮功能

控制底牌显示,编写代码

在服务器工程内创建卡牌的传输模型类

分析并创建状态面板的基类

分别创建左、右角色的状态类

在匹配网络处理类里面和左、右角色的状态类互相相应

如何控制玩家左、右玩家位置?

进一步修改匹配处理类和左、右角色的相互响应

解决左、右的代码重复部分

创建自身的状态面板

完善自身进入更新状态面板

找之前的BUG

发送自身准备的请求

创建下边的面板的脚本

创建聊天操作码,在客户的发起请求

服务器处理聊天的请求,创建聊天传输模型

创建聊天文字的常量类

客户端接收响应,显示聊天文字

聊天声音的播放

测试聊天BUG

所有人准备完毕开始游戏,使用中介者模式触发

逐层分析,创建玩家数据的传输模型

创建并初始化牌库,创建花色的常量类

创建权值的常量类,完成创建牌库的过程

洗牌算法,完成牌库类

创建回合管理类

初始化战斗房间,添加第一个方法:转换出牌

创建出牌类型,判断能不能管牌

如果出牌判断成功就移除玩家的手牌

增加倍数和更新回合信息

发牌

设置地主身份,创建身份的常量类

补充一些辅助方法,完成战斗房间所有内容

创建战斗缓存层

定义战斗的一些操作码

编写开始战斗的逻辑

关于发送卡牌集合还是卡牌id的解释

实现抢地主的方法

创建出牌的传输模型,获取选中牌的权值

判断各种卡牌类型

完成编写出牌的传输模型

玩家出牌在服务器的处理

转换出牌的实现

游戏结束的处理

不出的处理

玩家掉线的处理

在客户端创建战斗的处理类,编写获取卡牌的处理

创建客户端的卡牌控制类

创建自身角色控制类,管理卡牌的创建

创建左、右玩家的控制类,管理卡牌的创建

给大家录制BUG过程

开始处理抢地主的响应

发送抢地主请求和抢地主成功的处理

自身的玩家添加三张底牌的处理

抢地主成功的处理完毕

测试抢地主并修改BUG

接收来自服务器的出牌命令

客户端出牌的处理

向服务器发送不出的请求

给卡片添加碰撞器让他能点击

解决出牌BUG

移除出完的手牌

管理桌面的牌显示

出牌特效声音的播放

测试出牌BUG

创建OverPanel代码脚本

通过消息机制表现客户端的结束

测试游戏结束

创建背景音乐播放控制脚本

给前两个场景添加背景音乐

完结与未完

第4章: 扩展内容

扩展课之ProtoBuf

立 即 下 载

相关资源

发表评论

点 击 提 交