整体架构概述请参考:http://dreamyouxi.com:7129/blog/1203

本文以玩家匹配功能为案例,具体阐述将 C# 引入逻辑开发后,如何进行模块拆分的思路。

匹配规则

玩家可以选择地图,只有选择同一地图的玩家才能匹配在一起。这条规则足够简单,便于作为案例展开说明。

在匹配服务器中,匹配逻辑将由 C# 实现。玩家侧只有两个请求:进入匹配和退出匹配;服务器侧只有一个主动通知:匹配结果。这部分逻辑原本全部由 C++ 实现,拆离的核心思路正是基于上述玩家操作概念来划分边界。

引擎层需要提供的支持

根据 C# 逻辑开发的最小需求,需要引擎层提供以下能力:定时器、发起匹配结果通知、接受玩家匹配请求。

由于服务器内部通信对逻辑层屏蔽,逻辑层通过以下 3 个函数与引擎层交互: