基于Unity2017 C#的多人网络斗地主大型实战项目

作者: admin 分类: 完整项目实战大全 发布时间: 2017-11-24 08:25

严格意义上来说,本课程应该是两个课程合二为一了。

第一个课程就是《从计算机网络都服务器编程》。关于服务器,很多初学者都不了解,就觉得它很神奇,而且一接触它的代码就会发蒙,就是看不懂。为什么呢?因为不了解,所以我觉得应该从计算机网络这一层次开始说起,比如:

  • 什么是因特网?
  • 什么是协议?
  • 什么是应用层?应用层协议?
  • 什么是运输层?运输层协议?
  • 什么是TCP协议?什么是UDP协议?
  • 等等···

(很深层次的知识,大家根据兴趣来进一步自己学习)

知道了这些之后,就可以开始进行服务器编程了,包括协议订制,数据传输等等。其实大部分.Net都给封装好了,我们只是调用一下而已。最后做出来的使用方式和Photon Server基本一致,如果学过我之前课程的话那应该就会使用,不会配置一些乱七八糟的东西,而且调试错误可以直接断点,很方便。由于Photon Server适合某些特定的开发者使用,面试或者一些公司应用不广,而这个socket就很通用了。

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

任务1: 购买后必看

第1章: 预热篇

免费 任务2: 课程介绍 08:29

免费 任务3: PPT-因特网概述

免费 任务4: 因特网和协议 12:22

免费 任务5: 分层体系结构 09:45

任务6: PPT-应用层

免费 任务7: 进程和套接字 09:38

免费 任务8: 运输层协议TCP和UDP 12:26

免费 任务9: 应用层协议HTTP 09:44

免费 任务10: socket服务端 19:20

免费 任务11: socket客户端 11:15

免费 任务12: 验证连接 04:39

任务13: socket工程

第2章: 服务器底层开发

第1节: 任务12、13、14是配音秀,大家见谅!

任务14: 实现接收连接的异步事件 14:06

任务15: 添加限制连接数的信号量 04:18

任务16: 封装客户端连接对象和编写连接池 09:07

任务17: GameServer(8-1).zip

第2节: 正常录制

任务18: 粘包拆包问题介绍 14:25

任务19: 采用包头+包尾的方式解决粘包和拆包 15:33

任务20: GameServer(8-3).zip

任务21: 实现异步网络接受数据 15:49

任务22: 客户端对自身接收的数据进行解析 10:53

任务23: 构造SocketMsg负责网络消息的传递 04:02

任务24: 实现soceketMsg与byte[]的转化 08:37

任务25: 对象的序列化和反序列化 09:55

任务26: GameServer(8-3)_2.zip

任务27: 实现客户端断开连接 09:42

任务28: 实现发送数据 19:00

任务29: 助学篇:带大家回忆一下所开发的内容 11:30

任务30: 抽象出应用层 06:19

任务31: GameServer(8-4).zip

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

任务33: 创建计时器管理类,监听到达间隔触发的事件 10:29

任务34: 控制定时任务(计时器)的触发时间 12:08

任务35: 开发线程安全的INT类型 04:27

任务36: GameServer(8-6).zip

任务37: 实现单线程池 05:40

第3章: 网络游戏开发

任务38: Unity2017下载 02:45

任务39: 创建工程导入素材 05:16

任务40: Res.zip

任务41: Card(8-7).zip

任务42: GameServer(8-7).zip

任务43: 斗地主策划案

任务44: 根据策划创建面板 19:45

任务45: 导入客户端框架,创建PlayPanel脚本 10:48

任务46: 完成开始面板 10:26

任务47: 完成注册面板 06:47

任务48: Card(8-8).zip

任务49: 斗地主策划案(8-9)

任务50: 服务器架构介绍 14:14

任务51: 按照架构实现服务器 11:35

任务52: 在客户端封装Socket,使其连接到服务器 20:08

任务53: 测试客户端服务器的连接 06:47

任务54: 解决BUG 04:01

任务55: Card(8-9).zip

任务56: GameServer(8-9).zip

任务57: 修改客户端的连接方法 03:33

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

任务59: 测试数据传输是否正确 05:05

任务60: Card(8-10).rar

任务61: GameServer(8-10).zip

任务62: 创建账号缓存层,实现注册的一些方法 09:34

任务63: 完成账号缓存的所有方法 12:08

任务64: 实现账号逻辑层 17:29

任务65: 解决今日BUG 05:58

任务66: Card(8-11).zip

任务67: GameServer(8-11).zip

任务68: 开发提示面板 11:50

任务69: 给登录和注册面板添加提示 09:45

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

任务71: 实现客户端的账号处理、怎样和服务器交互(后面调个bug) 12:25

任务72: 优化服务器,改变传输结果 08:38

任务73: Card(8-14).zip

任务74: GameServer(8-14).zip

第1节: 配音秀第二期(互相理解,谢谢)

任务75: 初步实现场景管理器,融入到框架中 08:38

任务76: 增加当场景加载完成的时候调用的方法 06:20

任务77: 实现登录成功跳转场景 07:21

第2节: 创建UI,没有声音,影响不大,都是创建界面,没技术含量

第3节: 大家可以直接下载我的工程,看一下效果

任务78: 设计UI之主界面的信息面板 09:56

任务79: 设计UI之主界面的匹配面板 04:50

任务80: 设计UI之主界面的设置面板 07:02

任务81: 设计UI之主界面的创建面板 04:30

任务82: Card(8-15).zip

第4节: 离线视频,请在课程话题区置顶帖下载!工程还可以下载!

任务83: 编写信息面板的脚本(请在课程话题区下载)

任务84: 编写匹配面板的脚本

任务85: 修改默认创建的脚本

任务86: 编写设置面板的脚本

任务87: 编写创建面板的脚本

任务88: Card(8-16).rar

任务89: 创建角色数据模型

任务90: 开发角色数据的缓存层

任务91: 完成角色数据缓存层

任务92: GameServer(8-17).rar

任务93: 创建有关角色的操作码

任务94: 实现用户逻辑层

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

任务96: 客户端处理获取角色信息的响应

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

任务98: 发起创建请求和处理创建响应

任务99: 演示本日BUG

任务100: GameServer(8-20).zip

任务101: Card(8-20).rar

任务102: 更新客户端视图

任务103: 编写匹配操作码 08:12

任务104: 定义匹配房间的数据模型 08:00

任务105: 创建匹配缓存层,实现进入匹配队列 12:03

任务106: 实现匹配缓存其他所有的功能 09:34

任务107: 创建匹配逻辑类,实现进入匹配房间功能 14:02

任务108: 优化服务器之群发消息 03:57

任务109: 创建匹配房间的传输模型,在逻辑层进行构造 12:46

任务110: 实现离开匹配房间功能 10:22

任务111: GameServer(8-24).zip

任务112: 实现玩家准备 07:30

任务113: 在客户端发起匹配请求 09:23

任务114: GameServer(8-25).rar

任务115: Card(8-25).rar

任务116: 创建MatchHandler,接收服务器的响应 06:48

任务117: 保存房间信息,他人进入房间广播处理 05:46

任务118: 玩家离开 05:30

任务119: 玩家准备和开始游戏的处理 05:55

任务120: GameServer(8-29).zip

任务121: Card(8-29).zip

任务122: 搭建战斗界面的左、右角色状态面板 11:29

任务123: 搭建战斗界面自我的状态面板 08:39

任务124: 搭建战斗界面上边的底牌面板 04:34

任务125: 搭建战斗界面下边的快捷聊天面板 08:10

任务126: 搭建提示面板和结束面板 04:50

任务127: Card(8-30).zip

任务128: 创建出牌点,实现进入房间按钮功能 11:28

任务129: 控制底牌显示,编写代码 06:39

任务130: 在服务器工程内创建卡牌的传输模型类 07:01

任务131: 分析并创建状态面板的基类 15:16

任务132: 分别创建左、右角色的状态类 12:05

任务133: Card(9-2).zip

任务134: 在匹配网络处理类里面和左、右角色的状态类互相相应 11:20

任务135: 如何控制玩家左、右玩家位置? 11:54

任务136: 进一步修改匹配处理类和左、右角色的相互响应 10:49

任务137: Card(9-4).zip

任务138: GameServer(9-4).zip

任务139: 解决左、右的代码重复部分 03:23

任务140: 创建自身的状态面板(3:50-4:50有爆破音。。大家心准备一下) 15:14

任务141: 完善自身进入更新状态面板 04:39

任务142: CardGame(9-5).zip

任务143: 找之前的BUG(一)(9:30-12:30爆破音。。。) 15:36

第5节: 换新的麦了,之前的几节课大家忍耐一下吧

任务144: 找之前的bug(二) 19:19

任务145: Card(9-6).zip

任务146: GameServer(9-6).zip

任务147: 发送自身准备的请求 08:26

任务148: 创建下边的面板的脚本 13:40

任务149: Card(9-7).zip

任务150: 创建聊天操作码,在客户的发起请求 10:33

任务151: 服务器处理聊天的请求,创建聊天传输模型 12:29

任务152: 111.创建聊天文字的常量类 05:48

任务153: Card(9-9).zip

任务154: GameServer(9-9).zip

任务155: 客户端接收响应,显示聊天文字 11:28

任务156: 聊天声音的播放 09:41

任务157: 测试聊天BUG 04:40

任务158: Card(9-10).zip

任务159: GameServer(9-10).zip

任务160: 所有人准备完毕开始游戏,使用中介者模式触发 10:06

任务161: 逐层分析,创建玩家数据的传输模型 08:36

任务162: 创建并初始化牌库,创建花色的常量类 11:00

任务163: 创建权值的常量类,完成创建牌库的过程 13:16

任务164: 洗牌算法,完成牌库类 05:36

任务165: 创建回合管理类 11:51

任务166: GameServer(9-12).zip

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

任务168: 创建出牌类型,判断能不能管牌 10:30

任务169: 如果出牌判断成功就移除玩家的手牌 11:37

任务170: 增加倍数和更新回合信息 02:57

任务171: 发牌 05:29

任务172: 设置地主身份,创建身份的常量类 05:16

任务173: 补充一些辅助方法,完成战斗房间所有内容 11:09

任务174: GameServer(9-13).zip

任务175: 创建战斗缓存层 15:28

任务176: 定义战斗的一些操作码 09:17

任务177: 编写开始战斗的逻辑 12:25

任务178: 关于发送卡牌集合还是卡牌id的解释 05:40

任务179: GameServer(9-16).zip

任务180: 实现抢地主的方法 12:24

任务181: 创建出牌的传输模型,获取选中牌的权值 11:40

任务182: 判断各种卡牌类型 12:30

任务183: 完成编写出牌的传输模型 09:32

任务184: GameServer(9-18).zip

任务185: 玩家出牌在服务器的处理 10:06

任务186: 转换出牌的实现 05:06

任务187: 游戏结束的处理 13:54

任务188: 不出的处理 03:56

任务189: 玩家掉线的处理 05:34

任务190: GameServer(9-20).zip

任务191: 在客户端创建战斗的处理类,编写获取卡牌的处理 05:59

任务192: 创建客户端的卡牌控制类 13:54

任务193: 创建自身角色控制类,管理卡牌的创建 14:04

任务194: 创建左、右玩家的控制类,管理卡牌的创建 11:55

任务195: Card(9-21).zip

任务196: 给大家录制BUG过程(不想听直接全文搜索 fixbug923) 45:34

任务197: GameServer(9-23).zip

任务198: 开始处理抢地主的响应 11:18

任务199: 发送抢地主请求和抢地主成功的处理 12:32

任务200: 自身的玩家添加三张底牌的处理 11:03

任务201: 抢地主成功的处理完毕 08:49

任务202: 测试抢地主并修改BUG 09:05

任务203: GameServer(9-24).zip

任务204: Card(9-24).zip

任务205: 接收来自服务器的出牌命令 08:22

任务206: 客户端出牌的处理 15:36

任务207: 向服务器发送不出的请求 02:00

任务208: GameServer(9-25).zip

任务209: Card(9-25).zip

任务210: 给卡片添加碰撞器让他能点击 12:53

任务211: 解决出牌BUG 07:02

任务212: 移除出完的手牌 14:06

任务213: 管理桌面的牌显示 13:50

任务214: 出牌特效声音的播放 08:09

任务215: GameServer(9-27).zip

任务216: Card(9-27).zip

任务217: 测试出牌BUG 上部 20:35

任务218: 测试BUG 下部 13:47

任务219: 客户端+服务器(9-28).rar

任务220: 创建OverPanel代码脚本 14:04

任务221: 通过消息机制表现客户端的结束 08:02

任务222: 测试游戏结束 14:34

任务223: 创建背景音乐播放控制脚本 06:05

任务224: 给前两个场景添加背景音乐 05:36

任务225: 165.完结与未完 11:19

任务226: Card(9-30).zip

任务227: GameServer(9-30).zip

第4章: 扩展内容

任务228: 扩展课之ProtoBuf 33:10

任务229: 扩展课之ProtoBuf(10-15).zip

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多阅读