Mooege源码研究系列1
淳于博
2023-12-01
最近下载了mooege源码阅读,随便写写
mooege是使用C#实现的Diablo3 服务器的模拟器,是GNU开源,为学习交流所用,禁止用于商业用途。网址: http://wiki.mooege.org
下载了可运行版本,可是运行时出错了。按照网上提示的步骤登录就出错。就下载了源码下来随便看看(最后发现错误的原因是Diablo3的patch5 mooege还不支持)。
下载的mooege-mooege-80468f4这个版本,所以一下内容只对应该版本,仅为个人观点,如果能作为参考,不胜荣幸。
目录结构
license及readme之类的文件
assets/: 保存account数据库account.db,配置文件config.ini以及拷贝Diablo3的mpq文件的一个目录
build/: 工程文件(*.sln,使用vs2010打开);包括项目总工程及一些tools的工程
contrib/: 该目录个人认为非常重要(不知道从什么地方获取的^_^),该目录描述了Diablo 3的通信协议以及数据结构(protocompiler\definitions目录)的protocol buffers(detail see: http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/overview.html)
首先通过该目录能够自动生成协议的C++, C#, java以及Python语言版的协议类
其次通过阅读这些类就可以知道Diablo 3的通信协议和数据结构
比如Account.proto文件,这是描述账户相关的协议
首先定义了账户相关的BannerConfiguration(用户旗帜配置)数据结构
然后是账户信息以及保存一个账户所以相关的内容。这些信息的重要性可见一斑
运行generate.bat(Linux使用generate.sh)来生成各种语言的类,下面的src\LibMooNet就是从CSharp目录拷贝过去再修改的
src/: mooege源代码目录
包括
LibMooNet/: 上面提到从protocol buffers生成并修改的文件
Mooege/: mooege主要类
tools/: 一些工具的源代码