admin 发表于 2018-8-18 17:14:56

多人网络斗地主开发实战基于(Unity2017)

本课程会带领大家从0到1的开发一款强联网卡牌游戏:斗地主,不容错过哦。
服务器采用:c# 开发
客户端采用:Unity2017

学完并熟悉掌握本课程会熟悉网游开发模式,独立设计并开发出一款不错的网游。
课程每天会有更新,难免有一些特殊情况望理解。
个人独立开发,素材都是从网络上搜集,如果瑕疵,请见谅。

严格意义上来说,本课程应该是两个课程合二为一了。
第一个课程就是《从计算机网络都服务器编程》。
关于服务器,很多初学者都不了解,就觉得它很神奇,而且一接触它的代码就会发蒙,就是看不懂。为什么呢?因为不了解,所以我觉得应该从计算机网络这一层次开始说起,比如:
什么是因特网?
什么是协议?
什么是应用层?应用层协议?
什么是运输层?运输层协议?
什么是TCP协议?什么是UDP协议?
等等···
(很深层次的知识,大家根据兴趣来进一步自己学习)
知道了这些之后,就可以开始进行服务器编程了,包括协议订制,数据传输等等。其实大部分.Net都给封装好了,我们只是调用一下而已。最后做出来的使用方式和Photon Server基本一致,如果学过我之前课程的话那应该就会使用,不会配置一些乱七八糟的东西,而且调试错误可以直接断点,很方便。由于Photon Server适合某些特定的开发者使用,面试或者一些公司应用不广,而这个socket就很通用了。

第二个课程就是《斗地主》的游戏开发部分了,通过实战来教大家服务器怎么使用,怎么实现多客户端的同步。
斗地主大家应该都不陌生,所以这一部分就不用过多介绍了。客户端的架构是使用的之前的课程《基于消息机制的框架》,采用消息中心的思想,开发类似发邮件、收邮件的机制,来彻底杜绝脚本之间强耦合现象。


001-课程介绍
003-因特网和协议
004-分层体系结构
006-进程和套接字
007-运输层协议TCP和UDP
008-应用层协议HTTP
009-socket服务端
010-socket客户端
011-验证连接
012-SocketDemo
013-实现接收连接的异步事件
014-添加限制连接数的信号
015-封装客户端连接对象和编写连接池
016-GameServer(8-1)
017-粘包拆包问题介绍
018-采用包头+包尾的方式解决粘包和拆包
019-GameServer(8-3)
020实现异步网络接受数据
021-客户端对自身接收的数据进行解析
022-构造SocketMsg负责网络消息的传递
023-实现soceketMsg与byte[]的转化
024-对象的序列化和反序列化
025-GameServer(8-3)_2
026-实现客户端断开连接
027-实现发送数据
028-助学篇:带大家回忆一下所开发的内容
029-抽象出应用层
030-GameServer(8-4)
031-开发定时任务功能(计时器),编写任务模型
032-创建计时器管理类,监听到达间隔触发的事件
033-控制定时任务(计时器)的触发时间
034-开发线程安全的INT类型
035-GameServer(8-6)
036-实现单线程池
037-Unity2017下载
038-创建工程导入素材
039-Res
040-Card(8-7)
041-GameServer(8-7)
043-根据策划创建面板
044-导入客户端框架,创建PlayPanel脚本
045-完成开始面板
046-完成注册面板
047-Card(8-8)
049-服务器架构介绍
050-按照架构实现服务器
051-在客户端封装Socket,使其连接到服务器
052-测试客户端服务器的连接
053-解决BUG
054-Card(8-9)
055-GameServer(8-9)
056-修改客户端的链接方法
056-修改客户端的链接方法_20171124142335
057-定义操作码、子操作码,演示客户端如何给服务器发送请求
058-测试数据传输是否正确
059-Card(8-10)
060-GameServer(8-10)
061-创建账号缓存层,实现注册的一些方法
061-创建账号缓存层,实现注册的一些方法_20171124142334
062-完成账号缓存的所有方法
062-完成账号缓存的所有方法_20171124142334
063-实现账号逻辑层
064-解决今日BUG
065-Card(8-11)
066-GameServer(8-11)
067-开发提示面板
068-给登录和注册面板添加提示
069-处理接收到的服务器发来的消息、优化发送网络消息的方法
070-实现客户端的账号处理、怎样和服务器交互(后面调个bug)
071-优化服务器,改变传输结果
072-Card(8-14)
073-GameServer(8-14)
074-初步实现场景管理器,融入到框架中
075-增加当场景加载完成的时候调用的方法
076-实现登录成功跳转场景
077-设计UI之主界面的信息面板
078-设计UI之主界面的匹配面板
079-设计UI之主界面的设置面板
080-设计UI之主界面的创建面板
081-Card(8-15)
082.编写信息面板
083开发匹配面板
084.修改默认创建的脚本
085.开发设置面板
086.开发创建面板
087-Card(8-16)
088.创建角色数据模型
089.开发角色数据的缓存层
090.完成角色数据缓存层
091-GameServer(8-17)
092创建有关角色的操作码
093.实现用户逻辑层
094.向服务器获取信息,在客户端创建用户处理类
095.客户端处理获取角色信息的响应
096.保存接收到的角色信息并且处理角色上线响应
097.发起创建请求和处理创建响应
098.演示本日BUG
099-GameServer(8-20)
100-Card(8-20)
101.更新客户端视图
102-编写匹配操作码
103-定义匹配房间的数据模型
104-创建匹配缓存层,实现进入匹配队列
105-实现匹配缓存其他所有的功能
106-创建匹配逻辑类,实现进入匹配房间功能
107-优化服务器之群发消息
108-创建匹配房间的传输模型,在逻辑层进行构造
109-实现离开匹配房间功能
110-GameServer(8-24)
111-实现玩家准备
112-在客户端发起匹配请求
113-GameServer(8-25)
114-Card(8-25)
115-创建MatchHandler,接收服务器的响应
116-保存房间信息,他人进入房间广播处理
117-玩家离开
118-玩家准备和开始游戏的处理
119-GameServer(8-29)
120-Card(8-39) (1)
121-搭建战斗界面的左、右角色状态面板
122-搭建战斗界面自我的状态面板
123-搭建战斗界面上边的底牌面板
124-搭建战斗界面下边的快捷聊天面板
125-搭建提示面板和结束面板
126-Card(8-30)
127-创建出牌点,实现进入房间按钮功能
128-控制底牌显示,编写代码
129-在服务器工程内创建卡牌的传输模型类
130-分析并创建状态面板的基类(有很强破音,别戴耳机,老师的麦又坏了)
131-分别创建左、右角色的状态类(有破音)
132-ard(9-2)
133-在匹配网络处理类里面和左、右角色的状态类互相相应(有破音)
134-如何控制玩家左、右玩家位置?(有破音)
135-进一步修改匹配处理类和左、右角色的相互响应(有破音、)
136-Card(9-4)
137-GameServer(9-4)
138-解决左、右的代码重复部分
139-创建自身的状态面板(有破音)
140-完善自身进入更新状态面板
141-CardGame(9-5)
142-找之前的BUG(一)
143-找之前的bug(二)
144-Card(9-6)
145-GameServer(9-6)
146-发送自身准备的请求
147-创建下边的面板的脚本
148-Card(9-7)
149-创建聊天操作码,在客户的发起请求
150-服务器处理聊天的请求,创建聊天传输模型
151-创建聊天文字的常量类
152-Card(9-9)
153-GameServer(9-9)
154-客户端接收响应,显示聊天文字
155-聊天声音的播放
156-测试聊天BUG
157-Card(9-10)
158-GameServer(9-10)
159-所有人准备完毕开始游戏,使用中介者模式触发
160-逐层分析,创建玩家数据的传输模型
161-创建并初始化牌库,创建花色的常量类
162-创建权值的常量类,完成创建牌库的过程
163-洗牌算法,完成牌库类
164-创建回合管理类
165-GameServer(9-12)
166-初始化战斗房间,添加第一个方法:转换出牌
167-创建出牌类型,判断能不能管牌
168-如果出牌判断成功就移除玩家的手牌
169-增加倍数和更新回合信息
170-发牌
171-设置地主身份,创建身份的常量类
172-补充一些辅助方法,完成战斗房间所有内容
173-GameServer(9-13)
174-创建战斗缓存层
175-定义战斗的一些操作码
176-编写开始战斗的逻辑
177-关于发送卡牌集合还是卡牌id的解释
178-GameServer(9-16)
179-实现抢地主的方法
180-创建出牌的传输模型,获取选中牌的权值
181-判断各种卡牌类型
182-完成编写出牌的传输模型
183-GameServer(9-18)
184-玩家出牌在服务器的处理
185-转换出牌的实现
186-游戏结束的处理
187-不出的处理
188-玩家掉线的处理
189-GameServer(9-20)
190-在客户端创建战斗的处理类,编写获取卡牌的处理
191-创建客户端的卡牌控制类
192-创建自身角色控制类,管理卡牌的创建
193-创建左、右玩家的控制类,管理卡牌的创建
194-Card(9-21)
195-给大家录制BUG过程
196-GameServer(9-23)
197-开始处理抢地主的响应
198-发送抢地主请求和抢地主成功的处理
199-自身的玩家添加三张底牌的处理
200-抢地主成功的处理完毕
201-测试抢地主并修改BUG
202-Card(9-24)
203-GameServer(9-24)
204-接收来自服务器的出牌命令
205-客户端出牌的处理
206-向服务器发送不出的请求
207-GameServer(9-25)
208-Card(9-25)
209-给卡片添加碰撞器让他能点击
210-解决出牌BUG
211-移除出完的手牌
212-管理桌面的牌显示
213-出牌特效声音的播放
214-GameServer(9-27)
215-Card(9-27)
216-测试出牌BUG 上部
217-测试BUG 下部
218-客户端+服务器(9-28)
219-创建OverPanel代码脚本
220-通过消息机制表现客户端的结束
221-测试游戏结束
222-创建背景音乐播放控制脚本
223-给前两个场景添加背景音乐
224-完结与未完
225-Card(9-30)
226-GameServer(9-30)
227-扩展课之ProtoBuf
228-扩展课之ProtoBuf(10-15)

下载地址:
**** Hidden Message *****

我爱编程007 发表于 2018-8-27 11:53:22

看帖看完了至少要顶一下,还可以加入到淘帖哦!支持吾爱编程网!

liguangyi 发表于 2019-6-12 11:17:00

啥也不说了,楼主就是给力!支持吾爱编程网!

jie305998 发表于 2019-7-2 17:48:38

楼主,不论什么情况你一定要hold住!hold住就是胜利!支持吾爱编程网!

ping 发表于 2019-10-20 17:43:30

膜拜神贴,后面的请保持队形~支持吾爱编程网!

jeffrybool 发表于 2019-10-30 20:10:22

哥顶的不是帖子,是寂寞!支持吾爱编程网!

1547479095 发表于 2020-1-13 15:57:49

666666666666666666

galtg 发表于 2020-9-8 09:22:08

感谢楼主分享

wangduqingjl 发表于 2020-12-11 18:06:55

后面的保持好队形!

sensor2020 发表于 2021-1-11 20:56:35

不管你信不信,反正我是信了。支持吾爱编程网!
页: [1] 2
查看完整版本: 多人网络斗地主开发实战基于(Unity2017)