注册 登录
只需一步,快速开始
33
268
2444
版主
黑板上排列组合你舍得解开吗,谁与谁坐,他又爱着她!
cod4wawbolh.jpg (132.35 KB, 下载次数: 11)
下载附件
2016-10-29 22:49 上传
虽然网络代码和mod几乎是无关的,但是mod却是在正版或者是未加密版的基础上加载入游戏的主运行程序,如果无法进入游戏,则mod无法运行。 在原引擎quake3的框架是有自己的网络通讯代码的,而cod系列(目前所知)从1到9代都是继承绝大部分q3的网络代码特性的,因为cod改写后得引擎代码没有完全开源,只能通过一些从外站泄露出来的游戏主引擎执行程序编译过程的pdb文件dump的数据用一些分析逆向软件来查看或者修改来得到这样的一个推断(这里感谢一直热心关注cod以及bf未加密的zhm86的研究以及消息)。 这里所说的继承是指所有支持主机加入断开的类似服务器性质的网络部分,后来在6代iw又加入了一个关于配对机制的matchmaking另叙。 〔quake3引擎的网络代码部分,互联的对方不是对等的关系,即一个是处理进行游戏大部分公用数据的host,和一个负责输入输出各种如画面,声音,命令操作的client,即使是单机模式也是同时运行两个部分,详情可自行查看源代码quake3-1.32b sourcecode的相应部分。〕 在6代,iw给这种简单的连接添加了一个管理的中间端,叫做iwnet,这个的作用主要用于另一种联机方式——配对 matchmaking 即通过steam的平台程序的入口与每一个steam上激活的cod的client交流,来管理分配这些客户端如何利用一个玩家主机自行组合,在cod6刚未加密的时候,还没有私服,只能进行配对的时候,就是需要每个想要联机的玩家端运行一个民间自行编写的模拟官方iwnet功能的程序,让他来负责组合这些玩家端的联机。 到了7代,为了遏制相对比较容易做到的模拟(因为6代的iwnet的核心是负责分配联机,基本没有验证和同步管理玩家信息的功能),动视使用了一个买断下的专门负责网络代码部分的子公司demonware,让他们来为cod的正版联机加一道大锁,她们在基础的服务器与客户端的简单通讯之中绑定了自己的dw验证,blackopsmp从刚进入ui读取master服务器信息的时候就有着一步步繁琐严格的验证,因为pc端只有通过服务器列表进去的联机方式,dw又添加了一个更加便利的社交的联机方式,通过玩家进入,其中服务器验证需要用到dw的验证过程,进入游戏后的游戏过程只有保存玩家登记信息需要用到dw的验证过程,其他基本没有。而通过玩家进入的方式,完全依赖dw的新的管理代码。 这个附加在原始联机网络代码之中的新的部分并不是通过加载动态库来运行,而是直接和主体一起编译在主程序执体'中,所以几乎无法绕过,只有完全了解dw的机制后自己来通过已泄露的编译过程的dump来找到对应的dw入口,改写一些指向,把它指向到可以同样具有管理验证分配作用的自己写的运行于master端的模拟dw的-程序上,这个几乎是做不到的,然后ntauthority对于cod太了解(此人可谓cod未加密界最强),他不仅完美模拟了dw大部分核心功能的替代代码,还用写了一个模拟steam用户平台功能代码的np服务器程序,与dw一起在master服务器端架起了数据库和管理系统,与bo联机有关所有功能的未加密几乎都完成了。 再之后就是8代的未加密,8代pc端提供的是配对加上服务器列表双方法,同时也支持通过玩家列表加入,这里iw也可能是dw偷了懒,配对以及通过玩家加入服务器或者是主机仍是dw来验证管理分配,但是用户玩家个人数据并不走dw的模块,服务器列表也基本不走dw模块,很快,被未加密mw2合作模式的teknogods抓到漏洞,单独针对1.4之前的版本做了只有服务器列表联机的未加密,没有同步数据,没有配对,没有通过玩家列表加入,而且由于没动dw部分(好像是因为quake引擎开源的原因),动视也不能就此对其进行侵权诉讼,然而cod从1.5版本更新以后,极有可能修补了这方面的问题,所以之后的1.5 teknogods版本迟迟放不出来,索性最后teknogods放出了未加密的全部源码,通过让1.4版本的游戏强行加载dlc的地图来实现对于dlc的未加密支持,然而新地图有部分faceoff地图原生不支持服务器列表,所以对dlc的支持是不全的甚至功能有问题的。而ntauthority却还是沿用未加密bo的思路希望未加密模拟完整的mw3部分,所以联通bo一起(那是是用分网站划开各自游戏的未加密,bo的是alterops.net,mw3是altermw3.net)都被发了律师函,结果是两个项目全部被迫关闭,即使是mw2的未加密也是因为支持iwnet这个没有开源的配对功能,也被一起殃及,才有了后来的4d1网站,全部移除配对,通过玩家加入等dw或者iwnet的功能,最后4d1也关闭的原因是因为一方面源码的泄露导致未加密乱起,分流玩家严重,还有一方面是他未加密了online,再收到诉讼后不想再做cod的未加密,转而研究gta5的mod。9代支持的是通过配对来连入独立服务器的叠加机制,肯定涉及到大部分dw授权的代码,而且我自己也没有太深入的研究这一代,所以不做多可能引起误导争议的介绍。 简单的理解可以这样∶cod加了新的自己的联机方式,模拟它就是侵权,用原来quake3遗留在新编译cod游戏“体内”的代码,动视就无法诉讼未加密者侵权,也就是说,只要开发者不在编译主程序的时候把quake的网络部分移去(之所以不移可能就是quake3的网络部分实际就是运行单机必备的一端,所以除非换引擎或者花费成本动大刀,可能还会造成游戏的不稳定),再掌握了编写简单ui或者解锁控制台直接定位命令的方法,得到泄露的服务器文件(大部分系列服务器甚至就集成在客户端一起),就可以做私服的未加密。 顺便提一下之前版区一个玩家makarov的对teknogods源码的改进版本,其原理主要是更换了主服务器列表dw指向,添加了很多人性化的界面按钮,并汉化了大部分界面的英文,但并未改变teknogods直接使用原方法的联机方式。
imagesdk.jpg (142.4 KB, 下载次数: 23)
2016-10-29 23:15 上传
cod4map,linker_pc ,converter,assetmanager,effecteditor,radiant,maya(图示为COD4的开发套件的组件目录,maya插件在目录下的assetmanager) 还有万能的notepad++ cod4map,linker_pc ,converter是用来打包游戏raw文件的工具,用于把各类准备编辑完毕的最终的raw下的游戏类型需要读取的资源群文件,通过在命令行下对具体文件进行详细的操作打包成ff文件,cod大部分游戏读取的文件格式fastfile assetmanager 雷神引擎自带的编辑游戏用到的各类对象的预设属性信息,包括材质,武器,子弹类型,光照类型,声音种类,模型种类,声音等等 effecteditor 特效编辑器,我基本没用过,所以不多介绍 radiant 地图或者说关卡实体的编辑器,处理的是map格式的文件,在ff工具下编译成和q3类型相似的bsp文件,最终被打包到以地图名字命名的独立的ff文件中 maya 大名鼎鼎的模型编辑工具 用于修改模型用 最后是万能的notepad++,用语编写各个类型的代码,在这里要先讲一下,mod开发者不需要对于游戏专用的脚本逻辑语言有太多的原理上的理解,我自己对于其中很多不明确的东西也是靠猜测,cod的游戏逻辑的执行主要是通过一种类c的语言quakeC来实现,它被以不同的片段模块保存在以gsc为后缀的文件中(gsc可能是指gamesourcecode,也可能是指gamescriptcode),之所以称他为脚本,是因为他不需要编译成机器语言,游戏只是读取他的压缩后的文件再解包,而它又有点像c,虽然c需要复杂的编译器编译链接装载,quakeC它位于渲染之上,即面向游戏玩家的每一个游戏內的动作都是由它控制
loadscreen_mp_dlc.jpg (20.2 KB, 下载次数: 19)
2016-10-28 19:04 上传
使用道具 举报
1
20
32
初级玩家
本版积分规则 发表回复 回帖后跳转到最后一页
Archiver|手机版|3DMGAME ( 京ICP备14006952号-1 沪公网安备 31011202006753号 )
GMT+8, 2026-3-27 03:42 , Processed in 0.030380 second(s), 18 queries , Memcached On.
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.