UN——Unity网络开发相关
UN——Unity网络开发相关
前置知识:C#,线程相关知识,二进制相关(变量的本质 + 数据持久化二进制),Json
Unity网络开发
在没有学习网络相关知识之前,我们只能制作单机游戏,玩家之间不能交互,数据只能在本机上存储读取
在学习网络开发相关的知识后,我们可以通过网络制作让玩家之间进行交互的内容(信息同步,信息交换),也可通过网络将动态数据存储到服务器上
注:本笔记对应的课程主要针对的Unity客户端的前端部分的开发,而不是服务器后端,也没有涉及同步模式,但仍然是网络相关课程的基础
笔记代号UN——Unity Network的缩写 (不是联合国!)
本系列学习内容
-
网络开发必备理论和通信前的必备知识
-
网络基本概念
-
IP、端口、Mac地址
-
客户端和服务端
-
数据通信模型
-
网络协议
- OSI 模型
- TCP/IP 协议
- TCP和UDP
-
通信前的必备知识
-
网络游戏通信方案概述
-
IP地址和端口类
-
域名解析
-
序列化和反序列化2进制数据
- 字节编码
- 序列化
- 反序列化
-
-
-
网络通信
-
套接字Socket(长连接游戏常用)
-
Socket的重要API
-
TCP通信概述
-
同步
- 服务端和客户端的同步通信
- 区分消息类型
- 分包、黏包
- 客户端主动断开连接
- 实现心跳消息
-
异步
- 异步通信常用方法
- 服务端和客户端异步通信
-
-
UDP通信概述
- 服务端和客户端同步通信
- 异步通信常用方法
-
-
文件传输FTP(文件传输)
- FTP工作原理
- 搭建FTP服务器
- FTP关键类
- 上传文件
- 下载文件
- 其它操作
-
超文本传输HTTP(短连接游戏常用)
-
HTTP工作原理
-
搭建HTTP服务器
-
C#的相关类
- HTTP关键类
- 下载数据
- 上传数据
-
Unity的相关类
- WWW类
- WWWFrom类
- UnityWebRequest类 —— 获取数据、上传数据
- UnityWebRequest类高级操作 —— 获取数据、上传数据
-
-
-
消息处理
-
自定义协议生成工具
- 如何制作协议(消息)生成工具
- 协议(消息)配置
- 协议(消息)生成
-
第三方协议生成工具Protobuf
-
Protobuf
- 配置规则
- 协议生成
- 协议使用
-
Protobuf-Net
-
-
其它
- 大小端模式
- 消息加密解密
-
-
实践项目
- 消息池和消息处理类
- 实现断线重连
必须达到的水平
- 掌握网络通信中的一些必备理论知识(OSI模型、TCP/IP协议等)
- 能够对自定义类对象进行序列化和反序列化
- 能够熟练使用Socket,进行TCP、UDP的同步异步通信
- 能够处理网络通信中的分包黏包和心跳消息
- 能够使用FTP和HTTP协议进行文件的上传和下载
- 熟练掌握Unity的
WWW
类和UnityWebRequest
类 - 熟练使用Protobuf,了解自定义协议生成工具的制作原理
- 了解大小端模式,消息加密原理
学习这些内容的意义
在网络游戏开发中,前端程序更多的是配合后端程序来完成网络通信
我们相对后端程序来说,网络开发的压力较小,我们只需要保证消息收发的准确性和及时性通信的安全性问题,
比如消息加密,更多的是配合后端来实施加密方案
服务器的承载量问题,比如一个服能容纳多少人,更多的也是后端程序的工作,我们只需要配合他们完成需求即可
因此掌握了这门课程的内容,基本能够应对大部分网络游戏开发中的前端需求
关于同步模式
在网络游戏开发中有常用的几种同步模式,比如:
状态同步模式 和 帧同步模式
这两种模式在该课程当中并没有进行讲解