Unity5.6直接利用C# Socket/TCP开发《丛林战争》网络游戏
课程目录 ! l ]% v( S6 D- O
00-《丛林战争》演示
01-学前必读
02-什么是IP和端口号
03-什么是TCP协议,TCP协议的三次握手& Q; t# @7 {; c7 W r" ~9 n
04-创建服务器端控制台应用程序
05-创建服务器端Socket并绑定IP和端口号
06-开发服务器端的发送数据和接收数据$ e6 t9 y% M6 Q0 v) ?' z* y9 Y
07-开发TCP客户端的接收数据和发送数据. ^0 E; e' O2 j! I; q4 ~8 s
08-实现服务器端异步的消息接收
09-修改服务器端开启异步处理客户端链接请求5 R- S$ O7 R( Y O2 o
10-在服务器端处理客户端的连接正常关闭和非正常关闭
11-什么是粘包和分包
12-粘包和分包问题的演示
13-粘包和分包问题的解决方案: H4 `" Y8 C5 A0 K
14-字符串和值类型如何转换成字节数据
15-在客户端发送数据的时候加上数据长度! ?- E. ]% R* c/ m
16-在服务器端解析数据
17-Fixbug4 n7 r8 f- d! x/ ^' c
18-数据库连接准备- B& P2 B' K" j: @% r6 [3 |, Y
19-数据库查询* t3 u/ k* G8 ^/ B0 J9 a3 q, J, `$ i
20-数据库插入
21-如何解决SQL注入问题5 x5 J, {. c$ c& s! _, d2 \: Z
22-数据库数据的更新和删除
23-服务器端分层架构( \5 w. x: B$ Y, _1 i# P( A
24-学习小提示和项目的目录结构的创建
25-创建Server类,开启接收客户端连接
26-创建Client类,处理跟客户端的数据通信
27-创建Message处理客户端消息的解析
28-开发Controller控制层
29-客户端和服务器端的请求发起处理的流程图7 s/ c9 y+ D2 h4 L4 D
30-创建ControllerManager管理所有的控制器
31-通过ControllerManager进行请求的分发处理( b j' N8 g7 P q& N V5 C
32-客户端请求响应的处理
33-如何把客户端消息的解析和传递给ControllerManager进行处理
34-数据的打包和数据的发送到客户端
35-创建ConnHelper,数据库连接的创建和关闭
36-导入开发好的UI框架和框架目录介绍
37-导入游戏素材
38-游戏客户端架构分析: G; V; x; Y- h6 d- b/ l& o
39-创建客户端架构基础类
40-开发ClientManager,跟服务器端连接的建立和关闭
41-共享工程的dll的导入问题和Message类的导入0 f9 ?6 H5 i2 C" a& f$ C
42-开发客户端向服务器端请求的发送功能" ~5 p, |2 y8 t3 c5 ~8 E
43-接收服务器端的消息并解析5 ~+ _0 n! Y/ m$ s6 h/ l# W% m
44-修改BaseManager# {, C: D' b5 t
45-创建BaseRequest请求的基类
46-Request对象的管理0 Q5 N& a: w4 L& z( m8 I
47-把消息转发给对应的Request处理
48-控制场景的视野漫游动画作为菜单界面背景3 O' M2 C5 n3 e( b2 F5 l2 {# ^3 F5 F
49-开发登录按钮
50-设计登录面板UI. P! j: c; |8 P& H4 T9 _
51-开发注册面板和提示信息面板
52-创建面板脚本. G( r, o0 x# V$ A {8 K( c
53-创建面板的Prefab、Json和PanelType的修改0 J$ h3 b# j* c# J
54-开发提示信息模块
55-DoTween插件替换
56-开发开始界面和面板进入的动画
57-动画的优化(bug调试过程)4 t/ R8 d) X& }- H; ~5 {. z" Q! z
58-FixBug
59-设计数据库表(用户表和战绩表)1 ]. |) u5 ~% [- U/ ^% [6 O0 r
60-处理登录按钮的点击,校验账号信息是否为空并提示
61-代码修改(一个ActionCode对应一个Request类)* k' n. h2 w! @8 Q: s) D
62-在客户端发送登录请求# z/ s' A& p* l w
63-创建UserController、User和UserDAO做数据库查询校验' F0 S( L2 J9 p* z; h5 H2 v! d
64-在服务器端发送登录的响应" U+ P, [% U7 w# B
65-在客户端处理登录的响应" v/ L7 K, s: j, W1 m( W3 G
66-测试整个登录流程
67-注册面板显示和隐藏动画的设计
68-在客户端发送注册请求
69-在服务器端处理注册请求. v' V7 Y+ k) V. I
70-在客户端处理注册的响应/ \8 {' y' t e% Y
71-开发声音管理器
72-控制按钮的点击声音的播放
73-设计房间面板,显示个人信息
74-设计房间列表的UI界面
75-开发房间列表的滑动条和按钮; Y( J. N* J% n0 c0 L% Q9 P3 u/ v
76-控制房间列表面板的显示
77-面板加载的各种动画开发" R: s0 \: `# I
78-解决页面跳转的Bug$ J. d8 i# p5 O3 B6 y/ O
79-解决Socket关闭的问题
80-修改服务端对登录请求的处理,返回战绩
81-在客户端处理响应保存战绩9 i: E' E5 M4 J* u# ~) a0 |2 r h% j
82-显示个人战绩; \- w7 n" c& d; q& `
83-创建RoomItem控制一个房间项的显示和点击处理
84-通过代码动态创建房间列表- T9 m. c% A) }: X2 T3 a5 i& ~
85-在服务器端创建跟房间相关的类与成员
86-开发房间界面UI. I. U8 X* }6 u/ V: Z" J
87-开发设计房间面板的动画行为和按钮监听
88-控制房间列表面板和房间面板的切换显示) l& P( F1 y' U' d8 z) a& g. m7 @
89-发起创建房间的请求,在服务器端保存房间信息
90-请求房间列表,在服务器端取得房间列表信息并返回
91-在客户单解析房间列表信息,并加载房间列表UI0 s* a9 u- S5 U) Y& R. E) ?+ E
92-给房间添加id,处理加入按钮的点击
93-修改创建房间请求的发起时机) _; v" V; M) X! T- {( I2 b
94-处理断开链接的时候,房间的关闭
95-处理加入房间请求的发起,和服务器端的处理
96-处理加入房间的响应,显示房间玩家战绩; D' B! E1 ^/ D
97-解决bug n7 j8 l0 |! G3 K
98-在服务器端进行新玩家加入的消息的广播
99-在客户端接收消息,更新界面
100-处理非房主的退出房间功能( m0 y% E3 }1 \; i3 x/ A& d
101-房间退出到时候,更新其他客户端的界面
102-房主的退出房间的功能 {% B6 z* `2 P* k# B# e9 l% M& z2 Y
103-FixBug
104-处理开始游戏的请求的发起和处理. I K9 e7 I) Z4 P3 Z
105-开发倒计时的面板,和倒计时效果0 \* B6 Z+ [' U0 r- p% O0 a
106-开始游戏显示倒计时面板
107-在服务器端进行开始游戏的计时: v9 t2 B. M& z; G* u- M
108-在客户端显示倒计时效果
109-开发角色的动画状态机
110-控制人物的移动' j; U, T2 |3 ?
111-设计两只箭的Prefab* _) E1 G2 j* {6 U% W8 D8 y
112-控制任务的攻击,箭的实例化4 R. v: v" H, y! n; e/ Z: m" o6 N
113-修改设计,让设计效果更加好" c3 c6 {) L }: ?9 T6 X$ h5 _3 T
114-创建RoleData管理所有的角色信息
115-控制相机的跟随9 ]% S4 F1 ~( G# X
116-控制相机视野跟随和视野漫游的切换6 q( {4 x3 [( {+ l' T. @2 [$ l% O
117-FixBug,让相机视野切换无缝衔接, T& I/ M+ g( m! b4 o% O. c5 R: Q
118-控制角色的产生0 Y+ O" v) i- j
119-取得当前客户端所控制的角色游戏物体
120-开始游戏后控制视野跟随角色
121-游戏开始后,给角色添加控制脚本
122-创建同步角色移动的Request
123-发送移动信息,并在服务器端转发移动信息
124-解析移动信息,并设置为其他客户端
125-Fixbug; d9 g5 i. R: L+ @$ z+ i7 P
126-发送射箭的请求,在服务器端完成转发; y' L6 o, l# {' z
127-解析箭的数据,在其他客户端同步创建箭3 p3 ], H6 [1 ]* L
128-测试箭的同步# V7 R" o4 [2 B% `- n/ C
129-创建箭爆炸的特效# h" p* G4 X! W' A" x' w0 z8 i! y
130-控制箭的销毁和特效播放
131-添加战斗音效
132-在客户端向服务器端发起伤害的请求
133-在服务器端处理伤害
134-在客户段处理游戏结束的结果
135-FixBug( C$ V z' M1 a3 q. k
136-战斗结束返回到房间列表页面6 T% s- {/ R, r6 w4 m6 S
137-在服务器端更新战绩到数据库 ` h" o6 O! ^- T8 h& L0 k v
138-测试数据库的战绩更新& w5 I. |, K/ W/ t
139-处理战绩在客户端的更新% g- N8 r: s, ^$ n, R
140-开发游戏中途退出功能+ W0 @) ?' q6 R8 V& e
141-数据库的备份和还原运行
142-阿里云服务器的购买ECS云服务器8 C) k l' t! ]
143-阿里云安全组规则设置$ J9 Q8 M/ x$ |1 y
144-链接远程服务器
145-在服务器上安装数据库! T ^4 g I3 s4 u& }% P. r& q
146-还原数据库到服务器
147-在阿里云服务器启动我们的游戏服务器端6 P% N) a B" U4 A
148-设置游戏运行的分辨率) Z9 ~8 g1 O4 w
149-课程结束语
下载地址回复可见:
|