这里说的游戏对战平台一般是指采用“局域网”为主的游戏对战平台工具。这些平台通常扮演就是中间人角色,通过软件平台工具的技术手段将全国各地的玩家通过虚拟局域网的形式聚在一起,形成一个游戏对战的圈子。
毕竟这些平台不是游戏发行公司,无论是为了规避版权还是就内容经营许可来讲,这些个对战平台的核心原则就是通过“虚拟局域网”将玩家聚在一起,而局域网支持与否在于游戏自身。因此是否对战成功有2个重要因素,即“虚拟局域网”和“游戏自身是否支持局域网游戏”。
对战平台客户端的核心基础在于架构虚拟局域网,而其他诸如好友体系、房间和游戏分类则属于业务层。而自己才疏学浅未能从更高深层面来讲述,这里通过所见所闻来总结以下(毕竟我曾经很多次打算做这个,但是局限于技术和资金、时间及法规上的准备不足,一直搁置)。
现在流行实现的有三种方式:
- 替换WinSocket DLL,然后可以通过网络封包拦截转发实现。
- 进程注入,HOOK WinSock函数调用。
- 虚拟网卡驱动。
采用第一和第二方案的,国内游侠对战平台、浩方对战平台、虎克对战平台校园版,国外诸如gameranger都是采用这样的技术。其中虎克对战平台还半开源提供了它的平台整套代码及可部署服务端的成品,但其核心关于hook winSocket则是闭源的。但是同样可以在这个作品下感受这种技术体系的特点。
值得注意的是,虎克对战平台除了核心hook.dll没有开源而其他客户端、服务端都是开源的,而以虎克对战平台为原型建立的“互动游戏对战平台”就是典型的例子。
另外有一篇网友发表在CSDN.NET写的很好,参考文章:https://blog.csdn.net/smstong/article/details/4068695
而第三个方案的采用虚拟网卡的国内做出具有规模性的作品的不多,国外如hamachi……,大概就是通过架设中心VPN,然后自己需要负责写客户端,而客户端其实也等于在设计与其中转服务器的通讯(即VPN客户端),而其他业务层方面倒是根据需要写了。
但是核心在于掌握VPN的搭建及用户客户端对自己中转服务器的交互(如连接、控制、权限和流量路由等)。