魔兽世界serverTrinitycore分析一:前言

一:简单介绍

帖一段官网介绍吧

TrinityCore is a MMORPG Framework based mostly in C++.

Itis derived from MaNGOS,the Massive Network Game Object Server,and is based on the code of that project with extensive changes over time tooptimize, improve and cleanup the codebase at the same time as improving thein-game mechanics and functionality.

 

二:学习缘由

         大名鼎鼎的魔兽世界,那但是我在大学时为之所疯狂的网游啊。后来听说他有个开源的server实现。作为游戏server开发者的我,那还不赶紧clone下来研究一下,哈哈。

         第一次听说Trinitycore这个项目。是在2012年底,当时的我还不是游戏开发者,当时它的底层还是ACE,甚至当然的我还没有办法将它执行起来。可它还是深深地吸引了我。

为了它,我去学习ACE。

结果,我却变成了ACE黑,研究这个项目的计划也不了了之了(唉,传说中ACE“学之者生,用之者死”,还是有一定道理的)

         今年(2014)8月再上Trinitycore官网的时候。却发如今它的最新版本号中。项目底层框架从ACE改成boost。我真是太感动了,再不认真研究一下它,也太对不起老天了。哈哈。

         可接下来却不太顺利,我在虚拟机的Ubuntu上编译它的Debug版本号的时候,一执行worldserver就挂了。开GDB调试。GDB也是一执行就挂。Release版本号却一点问题都没有。后来GOOGLE了一下,可能是我的虚拟机性能不达标导致的。。。算了,不折腾LINUX了。还是装个Visual Studio 2013玩一下吧。话说回来。VS+VA比GDB+VIM(含插件)人性化太多了)。

         换了VS2013之后,编译确实挺顺利的。然后下个魔兽世界3.3.5client玩了一下。却在提示登陆成功之后,在“正在与server交换数据”(好像是这句)这个界面里卡住了,搞了半天,才发现原来是我client的子版本号号不正确,这个server支持的国服版本号仅仅有3.3.5.13930,这个解决起来也不难,下几个补丁即可了。

         唉,部署一个执行环境,就搞了我一个多星期(幸好近期工作不算太忙),好在终于还是以喜剧收场了。想当年,我在学校部署魔兽世界私服的时候,用一键安装包的时候。真他妈的方便啊。

三:我所用的版本号

主程序:TrinityCore-TDB335.55.zip

数据库:TDB_full_335.55_2014_08_24

client:国服3.3.5.13930 (下载地址就不给了,百度一下一大堆)


四:编译并执行

本来想写点东西的,只是后来想了下,还是算了,大家自己上官网看吧

WINDOWS版:http://collab.kpsn.org/display/tc/Win

LINUX版:http://collab.kpsn.org/display/tc/Linux


五:感言

TrinityCore的代码庞大且复杂,只是代码风格和模块化都是很不错的。希望自己能坚持分析下去。直接全然看懂整个项目的代码

PS:我在分析过程中难免会出现错误,如有发现。请留言告知或发我邮箱。我的邮箱是aa1080711@163.com,大家共同学习,共同进步


六:上一张图记念一下


PS:我当年玩魔兽世界的时候,也是这个版本号的。哈哈。

原文地址:https://www.cnblogs.com/yjbjingcha/p/7116231.html