随笔分类 - mangos
摘要:warcraft是非常经典的游戏,而由warcraft衍生出来的各种玩法(dota、3C以及各种剧情版的war3游戏),同样是经久不衰。这些得益于warcraft的牛逼编辑器。 不管是策划还是玩家都梦想着有一套功能强大且使用方便的编辑器来实现自己想法,而WorldEditor(简称WE)就是这样的编辑器。WE应该是本人见过的最强大的地图编辑器(没有“之一”),这种强大不仅是建立在精妙的算法上,同时更为重要的是建立在一种开放、规范的机制和流程之上。其中规范化的模型制作流程是这种强大的重要组成部分。 PS:可能有人会问:“你丫一个服务器端程序员,为啥要研究模型呢?”;答曰:“不想当策划的程序不是.
阅读全文
摘要:上篇《socket的处理方式》介绍了mangosd是如何接收和管理socket的,而在MaNGOS中客户端的所有游戏操作都是通过消息传递与游戏逻辑服务器进行交互的,比如玩家角色移动,与NPC对话,领取任务,释放技能等等。 消息传递在mangosd上以会话的形式维护,在客户端通过服务器的验证之后,mangosd会主动建立并保持一个与客户端连接的会话。所有的消息传递在该会话里进行。一、会话的建立 会话建立过程如下代码: 1: int WorldSocket::HandleAuthSession (WorldPacket& recvPacket) 2: { 3: ..........
阅读全文
摘要:本篇将介绍客户端与游戏逻辑服务器连接建立以后,mangosd如何接收、解析和处理客户端发过来的协议。本篇不再讨论mangosd与客户端的认证及建立最终RC4流加密的过程,想了解这部分内容请看该系列的第一篇。一、acceptor socket的监听启动及注册 mangosd的main ()函数调用单例对象sMaster的Run ()函数,启动监听socket的代码如下: 1: int Master::Run() 2: { 3: ........ 4: 5: ///- Launch the world listener socket 6: uin...
阅读全文
摘要:在MaNGOS-Zero中使用ACE库来处理网络IO,先看一下realmd工程下的Main.cpp。经过简化后main()函数中和socket相关的代码可以表示为: 1: int main() 2: { 3: ......... 4: 5: ACE_Reactor::instance(new ACE_Reactor(new ACE_TP_Reactor(), true), true); 6: 7: ///- Launch the listening network socket 8: ACE_Acceptor<Aut...
阅读全文
摘要:mangosd是MaNGOS-Zero项目中的游戏逻辑进程,玩家一旦与realmd的keyexchange过程完成后(详细内容见《realmd认证登录服务器(一):认证登录基本流程》),便只与mangosd进行交互。而客户端与realmd的连接也会在客户端向mangosd发送enterworld之后断开。 本文将介绍客户端连接到mangosd后,mangosd认证客户端合法性并最终建立RC4流加密的过程。具体过程如下:(1) 客户端与mangosd建立TCP连接后,mangosd会向客户端发送消息SMSG_AUTH_CHALLENGE 1: int WorldSocket::open (...
阅读全文
摘要:在MaNGOS-Zero中认证登录服务器是已独立的进程存在的,名字叫realmd,这样命名可能是和游戏client端根目录下的realmlist.wtf文件相对应。realmd的主要工作是:检查登录用户的合法性,并在合法的情况下完成通信密钥的交换,最后把游戏逻辑服务器的地址信息列表传给client端。 realmd认证的基本流程如下:图中的(1)~(7)详细过程如下:(1)Client启动后立即尝试连接realmlist.wtf文件中指定的认证服务器,就发送LogonChallenge给认证服务器realmd。协议结构如下: 1: typedef struct AUTH_LOGON_CH...
阅读全文
摘要:最近周末咸蛋,抽时间看了一下传说中的开源WOW服务器模拟器,虽然只看了登陆认证这块,但感触颇多,兴起随便写写。 MaNGOS的介绍如下:What is MaNGOS?The mangos project is a full featured World of Warcraft server suite, including servers for authentication, client updates, world content serving, and battlegrounds. Additional features include tools to build and dev.
阅读全文

浙公网安备 33010602011771号