默认教学计划
642人加入学习
(7人评价)
价格 免费
教学计划
承诺服务
会员免费学 加入学习
课程介绍

本课程解答帮助群号695494071 泰课会员0203届(unity)  

只要c#有接近中级水平就行。网络开发不熟悉,跟着做下去,就会越来越理解和熟悉。另外有些c#的东西还不太熟的,用着用着,也可以变得理解。

如果面向对象还没有基本的理解,内存,变量,实例,运行与编译环境都搞不清楚,就不适合,还要多去打基础。

本课程为了循序渐进,深入浅出的讲解如何实现网络斗地主案例,包含了主线课程内容,如何一步步应用ET框架提供的实体与各功能组件来开发自己的网络游戏项目。还附加了支线内容,全面的解析了如何实现ET核心通信框架。

网络斗地主的课程案例,使用了 Acgmart 开源项目 ET-MultiplyDemos 中的斗地主前端资源和参考了部分网络请求逻辑。

ETCore作为网络通信核心,是由 ETServer框架 演变而来的,我们的课程项目前,后端都会引用ETCore模块。

课程特点:

1. 本课程是产生过程区别于其它网络课程,课程于2020年4月1日发布,会先在前一个月内主要发布文档课时的方式,一方面及时获取最先加入学习的各种水平同学的学习情况反馈,从而调整课程的内容组成与课时结构。

另一方面通过文档课时可以充分全面的了解各水平阶段的同学在学习文档课时时遇到的问题,获取到还需要详细讲解与操作演示的部分,从而录制成视频,帮助大家更快速掌握课时内容,推进案例的实践开发。

2. 课程内容的设计核心理念是要照顾到大家刚刚能听得懂,做得出来,并以此为基准线稍稍加大些难度。解决跟着视频无脑学习,能力得不到有效提高的弊端。

3. 课程在整个主线案例实现的路线上,准备了丰富的练习,练习目的明确,有启发有留白。任何课程无难度无死角,是对学习者有害的,剥夺了学习者思考,摸索的机会,这样能力提高太慢太有限,属于无效学习,并且使学习者学习能力越来越弱,贻害无穷!(大家要明白,课程学习起来越容易越快速,那你的学习能力与应用能力的提高就越难越慢,这就是学习这件事好像一枚硬币的两面性!希望引起同学们重视!

课程中的练习,并没有提供详细的实现文档与代码,需要同学样在学习的过程中,大家一起来实现,并贡献到课程话题区作为参考。

课程主线内容:ETCore网络斗地主开发实战

课时:斗地主前后端项目创建。程序集,特性扫描,编译环境,运行环境

Add(DLLType dllType, Assembly assembly)
ObjectSystemAttribute,EventAttribute,MessageAttribute
项目asmdef文件 
课时:ET框架的实体,组件,Game,Scene,Event 简单事件应用

实体的AddComponent,GetComponent
EventSystem的Run,Add,Awake方法
课时:项目前端资源加载 ResourcesComponent,ReferenceCollector

 ConfigComponent,config.unity3d
 Bundles目录,Res目录

课时:项目服务端StartConfig,Config组件,指令组件,网络组件

Config组件,序列化与反序列化
OpcodeTypeComponent

课时:前端登录网关,登录大厅,游戏房间等界面

UIComponent,Fairy GUI使用,各UI AssetBundle制作

课时:项目打包发布与Web资源服务器使用

斗地主项目 AssetBundle,游戏打包输出

前端GlobalConfigComponent,GlobalProto.txt,  KV预制体, AssetBundle资源服务器

课时:前端登录网关,大厅的实现

UI组件,逻辑组件开发,请求指令,Message,Handler开发

课时:后端登录网关,大厅的实现

逻辑组件,请求指令,Message,Handler开发

课时:前后端匹配玩家,进入房间的实现

课时:抢地主与发牌的前后端逻辑,消息指令与Handler

课时:出牌的前后端逻辑,消息指令与Handler

课时:出牌的比较及最大后重新出牌实现

课时:飞机,炸弹,顺子,王炸特殊出牌的判断

课时:输赢判断,底牌,积分结算回到房间

课程小示例与练习:

示例与练习会有思路与关键代码的简单教学文档,需要大家一起完成。

另外本课程可报名完成练习获得核心会员活动,每项小练习都有得分,如果参考本课程练习得分满80分,可获得网站核心会员一年。

实现自定义事件 5
实现EventSystem的updateSystems,StartSystems 10
newtonsoft.json,litjson练习 15
定义一个同步方式组件 10
简单的事件机制实现 20
程序集,反射相关的练习 5
实现定义帧同步消息 5
简单聊天的实现:频道,目标,内容,来源 15
信箱与收发邮件 20
聊天或邮件内容中带链接或道具  20
商店与道具实现 20
组队与队伍管理实现 10
排行榜的实现 10
游戏中的托管功能 20
游戏中的闹钟倒计时 5
游戏中的快捷消息与表情动画 10

课程支线内容:ET核心框架构建解析

课时:对象池与事件机制
Message,Event,Opcode,ObjectSystem与特性扫描

课时:回调同步到主线程OneThreadSynchronizationContext:SynchronizationContext
SetSynchronizationContext(SynchronizationContext syncContext)
Thread.Sleep(1)该方法使用 1 作为参数,这会强制当前线程放弃剩下的时间片,并休息 1 毫秒。
所有其它就绪状态的线程都有机会竞争时间片,而不用在乎优先级。
SendOrPostCallback,ConcurrentQueue
课时:ECS:实体Entity,组件Component ,系统System
课时:对象池ObjectPool,IDisposable
对象池简单实现 https://www.taikr.com/article/3930  
课时:事件机制,EventSystem,AwakeSystem等
事件简单实现,扩展方法 
Game.EventSystem.Add(Component component)
Game.EventSystem.Run(EventIdType.InitSceneStart)
Game.EventSystem.Awake(Component component)
Game.EventSystem.GetTypes(Type systemAttributeType)
练习:1 ComponentFactory构建其它CreateWithParent,CreateWithId及示例
      2 实现EventSystem的updateSystems,StartSystems
课时:容器:双重(Opcode),有序多重(TimerComponent),无序多重(EventSystems)
TimerComponent与有序多重 
事件系统与无序多重
指令组件与双重

课时:mongo 序列化,反序列化 ISupportInitialize
Newtonsoft.json,Litjson

课时:OpcodeTypeComponent  指令与handler

课时:MessageDispatcherComponent 消息分发

课时:信道与Service抽象
泛型,委托,抽象类
通信机制: 概念:rpc,socket,通信协议:http,udp,tcp
课时:发送消息,订阅消息,带返回请求,广播消息
session,消息类型,handler,ETask,Message,Opcode,AMHandler,AMRpcHandler
课时:实现侦同步消息,状态同步
课时:分布式Actor实现