本文描述关于flightgewar的联飞服务器fgms的vs2013构建及简要的分析下。
必备
fgms项目:https://gitlab.com/fgms/fgms-0-x
多线程库pthread win32:ftp://mirrors.kernel.org/sourceware/pthreads-win32/pthreads-w32-2-9-1-release.zip
fgms的配置文件http://flightgear.mxchange.org/fgms/fgms.conf
生成工程方案
打开cmake,fgms的目录下分别填入
source code:E:/fgms-0-x-master
build the binaries:E:/fgms-0-x-master/build
configure->选择vs2013->Finish。
设置pthread的路径
E:fgms-0-x-masterpthreadsPre-built.2include
E:/fgms-0-x-master/pthreads/Pre-built.2/lib/x86/pthreadVC2.lib
Generate生成解决方案->编译生成exe,拷贝pthreadVC2.dll到E:fgms-0-x-masterbuildDebug目录下。
复制文件fgms.conf到C:Usersfreeyun(备注这个是我的用户文件夹,紧供参考。)
fgms.conf这个我还域名深入去研究过它的参数,参数说明http://fgms.freeflightsim.org/fgms_conf.html。
源码简要分析
全部联机玩家的列表:m_PlayerList
//发送数据 int netSocket::sendto ( const void * buffer, int size, int flags, const netAddress* to ) //接收数据 int netSocket::recvfrom ( void * buffer, int size, int flags, netAddress* from )
写在后面
本来是想研究网络游戏的位置同步,不停的查找开源的项目,想起flightgear的项目,发现支持cmake生成。笔者只是初略的看源码,没深入,希望能给flighgear的研究的抛砖引玉,这里没写出联机设置,手册已经有了没必要在这里重复。
联机设置:http://wiki.flightgear.org/Howto:Multiplayer
更多的参考资料:http://fgms.freeflightsim.org/。