cqgasdfghjkl 发表于 2018-7-31 17:28

【COD5】【教程】COD模组开发的入门思想理论

引言
虽然本文是针对COD模组开发者的入门教程,但是主要涉及理论思想,只是用来给各位还在摸爬滚打的开发初学者指路。抱有“武圌器怎么加?”之类的XXX怎么实现之类问题的童鞋趁早滚蛋,没耐心看“废话”的也趁早滚蛋。三分钟热度真的别来弄模组,乖乖去做一个“玩家”,这是为了节约你宝贵的时间。制圌作模组需要有一定的自学能力和动手能力,只靠嘴皮子说说成不了事。因此,本文不会提及一些“基础的基础”,比如怎么安装运行游戏和MOD TOOLS之类的问题,这些都是你在阅读本文前必须自己能独圌立解决的。

索引

2L 定义与索引
3L 开始前的准备
4L 素材
5L 地图层
6L 代码层
7L 模组打包

cqgasdfghjkl 发表于 2018-7-31 17:28

定义


这里将罗列出一些后文中可能出现的特殊名词,请在之后的阅读中自行带入定义。

玩家:以运行模组并开始游戏为主要目的的用户。

开发者:以开发模组为主要目的的用户。

模组:地图模组和MOD的统称。

地图模组:模组的一种,特指加载后存在可玩的自圌制第三方地图的模组。早期出现的地图模组在游戏系统设定上更接近官方版本,侧重设计地形。近几年则出现了大量的魔改地图。此处仅举例“纯粹”的地图模组。
例:nazi_zombie_ufso http://tieba.baidu.com/p/1857993351
nazi_zombie_kyassuru http://tieba.baidu.com/p/1852024266

MOD:独圌立MOD和开发组件的统称。

开发组件:MOD的一种,特指面向其他开发者,本身无法直接由玩家运行,需要额外开发编译,用于支持其他模组开发的模组,
例:UGX-MODS Standalone http://tieba.baidu.com/p/36О8774800

独圌立MOD:MOD的一种,特指不含地图,加载后用于修改游戏功能的模组。
例:(武圌器类)僵尸现代武圌器多枪版AMG http://tieba.baidu.com/p/1882223269
(系统类)TowerDefense塔防型僵尸模式

功能MOD:独圌立MOD的一种,特指加载后从多方面对游戏功能进行修改,使游戏玩法有重大变化的独圌立MOD。
例:僵尸革圌命无限版 ZombieRevolutionInfinite http://tieba.baidu.com/p/3466611931
职业化僵尸模式 Zombie_RealiSΜ http://tieba.baidu.com/p/22034б2886
1.1地图增强包现代武圌器版 ZCT2MW http://tieba.baidu.com/p/1857803460

魔改地图:地图的一种,特指地图中存在非COD MOD TOOLS中提圌供的资源素材,或者已经实现官方地图中未出现功能的地图。目前有很多地图模组基于MOD(如ZCT2MW和UGX-MODS Standalone )进行开发,这类地图也是魔改地图。
例:(本身具有魔改特性)nazi_zombie_pc http://tieba.baidu.com/p/1841339023
(基于独圌立MOD开发)Zombie_rich http://tieba.baidu.com/p/1976651341
(基于开发组件开发)大部分UGX MODS地图 如UGX_comosea

cqgasdfghjkl 发表于 2018-7-31 17:29

为了更加浅显易懂地解释模组开发中可能遇到的一些概念,我将在本章采用比较“荒诞”的类比方法,理解力不佳的童鞋请自行理解。

【在一个剧场中,开始演出一场戏剧。这个戏剧需要布置一个舞台,舞台中需要布置一些道具,制圌造一些地形,做一些背景和美化。然后需要演员,同时也需要剧本。可能还需要一些演出道具和特殊设备。你身兼本次戏剧的导演、编剧和舞台美术设计。你手下有很多配合你的工作人员,他们都需要你的调度和指挥,同时会指出你工作中圌出现的问题。】



======================================================
请记住上面的场景,后面我们会多次提及。
======================================================


现在我们把上面的场景和模组开发结合起来看。开发完成一个COD模组的直接结果就是在玩家的游戏中(剧场)完成一次成功的加载运行(演出这场戏剧)。一个模组可以由三个部分构成:素材(演员、道具、灯光设备、音响等)、地图层(舞台)和代码层(剧本)。至于如何把握三者的关系请参考刚才提出的场景设定。身为模组开发者,根据设计的模组规模,你可能需要调用任何可能需要的素材,修改已有的地图或者创建一张全新的地图,修改已有的代码或者编写全新的代码。MOD TOOLS并不万能,也不智能,模组开发过程中你会深刻领会这一点。

【你想开始一场全新的戏剧演出,虽然剧本的细节未定,但是你已经有了一些朦胧的思路,比如你想呈现给观众的看的。剧场已经提圌供了最基本的剧本和演出人员,舞台却还没设计,你还得考虑一下这次演出的规模和形式。】

想制圌作一个模组,你至少应该知道自己准备做出什么东西,展开来说,也就是确定开发目的和开发规模。开发目的不再赘述,你能看到这里相信也已经有一些方向了。这里仅讨论僵尸模组开发规模的思路。

我们先来定义一下“可玩的模组”这个概念,一般来说,一个可玩的模组必须可以在加载后能正常玩模组指定的地图,“正常玩”就是说不需要玩家通圌过作圌弊命令之类的方式,只需要通圌过自身技术和运气就能达成目的的玩法。

独圌立MOD是仅有素材和代码层的模组,视开发目的也可以仅由素材或者代码层单独构成。仅由素材构成的独圌立MOD多用于替换武圌器和角色外观,如AMG。仅由代码层构成的独圌立MOD多用于修改游戏规则或者添加特色功能,如TowerDefense塔防型僵尸模式。作为放弃地图层的代价,独圌立MOD在开发自圌由度上受到了很多制约。其共同特点是无法圌像地图模组那样加载后有独圌立运行的新地图,必须依附在其他地图才能发挥作用。

功能MOD可以看做是多个独圌立MOD的堆叠,多数情况下针对特定地图进行特化处理,在既定的地图中实现多种功能改动,从而使玩家产生与官方标准模式完全不同的游戏体验。开发圌功能MOD时需要时刻注意素材和代码间的平衡和兼容性。

地图模组是最完整的模组,素材、地图层、代码层全部齐备才能完成一个可玩的地图。MOD TOOLS中已经为开发僵尸模组提圌供了基本的素材和代码,只缺一张能够展现这些的地图。因此,早期出现的地图模组都采用和官方地图基本一致的规则,这些地图就像是换个地方打官方僵尸。近几年随着MOD,尤其是开发组件的兴起,出现了很多具有特殊性的魔改地图。

cqgasdfghjkl 发表于 2018-7-31 17:30

【为了开始进行这场演出,身为导演的你需要先把登场演员和使用的道具找齐,并将这些信息向所有工作人员宣布】

素材是模组的基础,它由各类素材文件构成,比如xmodel模型文件、materials材质文件、xanim动作文件、sound声效文件、fx画面特效文件、images贴图文件、weapons武圌器属性文件、ui用户界面文件等。在CODMODTOOLS,你可以在raw文件夹中找到许多官方素材,使用这些素材完全不用担心兼容问题。任何需要在模组中用到的素材都必须在模组中“注册”,你可以在MOD.CSV中完成大部分素材的注册,MOD TOOLS中的zone_source文件夹内有大量可以作为参考的注册文件实例,用记事本就可以打开查看。
注意,所有用于注册的素材文件都必须放置于RAW文件夹下的对应文件夹位置。MOD.CSV中注册的素材在加载模组并运行地图后必定加载,但是不会被代码层识别。

来自素材的错误只有3种情况,存在损坏、存在重复、和不存在(未注册)。因此这类错误是开发中最容易避免和处理的错误。

另外,COD5的引擎存在严重的限圌制,一场游戏中最多只能加载128个武圌器属性文件、400个画面特效,1024个模型,2048个材质,1600个音效。而官方图普遍存在已加载过多素材的问题,导致可额外添加的素材数量很少。

cqgasdfghjkl 发表于 2018-7-31 17:31

【接下来需要为上演的戏剧布置一个合适的舞台,环境道具和大背景可以在这个时候摆上去。同时将灯光和演出中需要的零碎物布置上,为了演出顺利进行,可能还需要在舞台中为演员和后圌台工作人员设置一些站位标记】

地图层可以理解成呈现素材的舞台,可以在MOD TOOLS中使用Radiant来创建和修改。地图层不仅用于设定地形和区域,还决定了绝大部分静态的事物,如玩家出生地、僵尸行动路径、互动物品位置、环境光影效果等等。地图的优劣直接决定了模组的可玩性的上限。另外,在仅用于地图层的素材也可以在地图层的CSV文件中进行注册。
想要学习地图层开发,可以看看
CoDWaW模组教程视圌频 http://tieba.baidu.com/p/4260683541
而这个开发实例,可以更好的帮助你理解素材、地图层、代码层三者的工作原理和使用方法
(模组开发专用实例)nazi_zombie_tutorial http://tieba.baidu.com/p/36О8663582

来自地图层的错误五花八门,但是只要地图源文件未删除,就可以通圌过MOD TOOLS错误提示和游戏内视野迅速寻迹修复(这类错误多数可见或者比较明显,跑着跑着掉进深渊之类的)。地图经常需要多次测试才能找出BUG,但是修复方法相对简单。

cqgasdfghjkl 发表于 2018-7-31 17:31

【最后需要将剧本完整地编写出来,通圌过剧本告诉演员如何表演、何时出场,告诉工作人员在演出中如何运用音效、灯光,何时插圌入旁白等】

代码层就像提线木偶的线,操控和联圌系着地图层和素材。从僵尸的生成、行动攻击,到技能效果、环境动画、互动执行等,均由代码层完成。绝大多数奇迹武圌器的功能也由代码层负责。如果说地图层和素材是模组的骨骼和血肉,那么代码层就是模组的思想和灵魂。在RAW文件夹中的GSC和CSC文件均为代码文件,代码层可以通圌过大部分文本编辑工具(如记事本)进行编辑,需要有一定的程序编译基础。如果不知道如何开始,或者不打算对代码层进行处理,可以直接沿用上文提到的实例中的代码文件。(事实上,很多开发者就是直接在实例上重新编辑自己的地图)

来自代码层的错误是如地狱一般的存在,一般来说,一旦涉及到代码层的开发,地图层和素材的错误总和可能都达不到代码层错误出现数的零头。MOD TOOLS会在编译地图层和注册素材时提圌供检测错误的提示,到了代码层则是爱莫能助,仅有来自开发模式的游戏控圌制台的简单提示。而且有些错误为逻辑错误,也就是程序不认为有问题,但是玩家会觉得有问题(一个典型案例:游戏可以正常运行,但是就是不出现任何僵尸)。逻辑错误是没有任何提示的,只能靠开发者自己排查。

在游戏设置中,打开控圌制台选项后,之后在游戏中按 ~ 键即可打开简易控圌制台,按shift + ~ 可以打开详细控圌制台。开发和调试中你将经常用到它们。

关于调试部分,已经有很多人写过(编程的人一定绕不过的),这里就直接给出一篇比较完善的模组调试指南,请自行阅读。
代码层调试 ugx-mods.com/forum/index.php/topic,2⑧91.0.html

cqgasdfghjkl 发表于 2018-7-31 17:32

【演出开始前,你需要让所有人进行多次排练,看看演出效果是否到位,并对各方面进行改进】

当你通圌过了上面几个阶段,你就完成了一个模组的雏形。现在可以尝试在MOD TOOLS中运行这个模组。运行前后可能出现任何问题,请根据上文提到的方法的顺序自行排查。

【在剧院的演出已经成功,其他剧院也想进行一次公演,这时,你需要将之前的人、事、物组圌织起来,组成一个剧团,然后带上各种东西前往其他剧院准备演出】

在模组开发的最后阶段,需要对所有文件进行打包。打包文件一般有两种,FF文件和IWD文件。MOD.FF记录了MOD.CSV注册的文件,其他FF文件为地图层文件编译后的产物。一般而言,贴图文件、代码文件、武圌器属性文件等都需要打包至IWD中,才能在模组运行时被成功读取。

一个完整的模组结构可以在任意一个地图模组的文件夹中看到。

cqgasdfghjkl 发表于 2018-7-31 17:33

COD模组开发的入门思想理论
==================本文完=====================

后记:

没错,我胡汉三又回来了

这次算是来打个招呼,哈哈哈哈

话说,这个区真的很冷啊

ct10asd 发表于 2018-8-2 21:29

cqgasdfghjkl 发表于 2018-7-31 17:33
COD模组开发的入门思想理论
==================本文完=====================



不然呢{:3_91:} 你懂的

呼啸的羽翼 发表于 2018-9-29 19:45

看的头大 楼主厉害
页: [1]
查看完整版本: 【COD5】【教程】COD模组开发的入门思想理论