异星工厂模组开发从入门到入土(一)开发前的准备

异星工厂这款游戏想必很多人都不陌生,因为这款游戏实实在在让人体验到自动化工厂产业链的快乐,同时相较于隔壁的幸福工厂他要求的配置更低,因此一直处于好评如潮的地位。同时这款游戏模组开发部分也是非常自由,相较于其他游戏来说,算得上是非常自由了,因此模组也是此游戏的一大玩点

好了,废话不多说,开始接下来的正题吧

一、开发必要的软件

PhotoShop [用于制作贴图]

VScode [用于敲代码]

Excel [用于写配方]

二、需要Ctrl+D的网站

异星工厂模组Mod开发教程从入门到入土

异星工厂官方API

异星工厂原型类

三、模组路径和游戏路径

这两个是需要知道的

模组路径:%APPDATA%Factoriomods

模组路径

三类文件:

mod-list.json [游戏模组列表,与开发无关]

mod-settings.dat [游戏模组设置,与开发无关]

xxx_x.x.x.zip [游戏模组]

游戏路径:X:SteamLibrarysteamappscommonFactorio

游戏路径

五类文件:

bin [游戏exe可执行二进制文件,与开发无关]

data [游戏主体文件](开发相关)

doc-html [游戏官方API](开发相关)

config-path.cfg [游戏设置路径可读,与开发无关]

debug.log [debug报告,与开发无关]

Data文件夹

这里是我们要主要参考的主体文件

base 基础游戏文件[游戏里面的配方啊,物品啊,实体什么的](开发相关)

core 主体游戏文件[游戏的UI方面](开发相关)

cacert.pem [游戏密钥]

changelog.txt [更新日志]

credits.txt [开发者]

eula.txt [使用者授权合约书]

licenses.txt [证书]

map-gen-settings.example.json [地图根设置-样本]

map-settings.example.json [地图设置-样本]

server-settings.example.json [服务器设置-样本]

server-whitelist.example.json [服务器白名单设置-样本]

Base文件夹(Core文件夹也是一样的)

campaigns [战役文件]

data-updates.lua [二级data文件]

data.lua [三级data文件]

graphics [贴图]

info.json [info文件]

locale [文本翻译]

menu-simulations [开局游戏场景文件]

migrations [旧版迁移,1.1版本以后就没用了]

prototypes [类文件]

scenarios [场景文件]

sound [音效文件]

thumbnail.png [base包贴图]

tutorials [教程文件]

prototypes [类文件]

categories [工厂类]

decorative [装饰物类]

entity [实体类]

legacy [其他类,这个翻译为遗产就很操蛋,里面的内容差不多是effect类]

tile [地皮类]

achievements.lua [成就类]

ambient-sounds.lua [音效类]

autoplace-controls.lua [自动生成类]

custom-inputs.lua [按键事件类]

damage-type.lua [伤害类型类]

demo.lua [弹夹类]

equipment-grid.lua [装备模块类]

equipment.lua [装备类]

fire-util.lua [火焰类]

fluid.lua [流体类]

item-groups.lua [物品组类]

item.lua [物品类]

map-gen-presets.lua [地图根设置类]

map-settings.lua [地图设置类]

particles.lua [粒子类]

recipe.lua [配方类]

shortcuts.lua [快捷键类]

signal.lua [信号类]

technology.lua [科技类]

tips-and-tricks-simulations.lua [技巧动画类]

tips-and-tricks.lua [技巧类]

trigger-target-types.lua [触发目标类,我也不知道这是个啥]

tutorials.lua [教程类]

utility-sprites.lua [精灵类]

四、模组的主体

这是樱满星辰的样例

如图,这就是一个mod的主体

xxx_yyy.zip:xxx mod的名字 yyy mod的版本

模组的主体(*代表必须)

info.json*(模组声明)

data.lua(模组data,三级data)

data-updates.lua(模组data,二级data)

data-final-fixes.lua(模组data,一级data)

settings.lua(模组三级设置)

settings-updates.lua(模组二级设置)

settings-final-fixes.lua(模组一级设置)

control.lua(脚本控制)

changelog.txt(更新日志)

license.md(证书)

thumbnail.png(模组图片,1:1)

locale(翻译文件夹)

剩下的文件夹是可以随便命名的,不知道能不能命名为中文,反正建议英文。而且模组包里面存在的文件格式强烈建议只有:*.txt*.lua*.md*.zip*.json*.png*.ogg*.cfg其他的文件强烈建议不要放入,因为可能会导致游戏认为模组出问题,从而认为此非模组文件(之前我就在里面放了.psd导致游戏识别不出来)

五、模组的data内容

我们先解释一下data文件是什么,data文件就是游戏中所有实体、物品、配方、科技、精灵等等的东西

例如:base文件里面的item.lua

我们先往下翻,看到data:extend这里,这里的stone-brick就是代表着石砖物品

再例如recipe.lua

这里就代表着配方,其中speed-module意思就是速度插件的配方

总之,先了解个大概,具体的下文再说

然后再解释一下三个data.lua是什么

这个图就能解释是什么意思,首先游戏根据模组名和模组依赖的顺序加载所有模组的data.lua文件,从而生成物品、实体、配方等。然后等所有模组加载完后,再加载data-updates.lua文件,最后再加载data-final-fixes.lua文件

然后再解释一下settings.lua

和上面一样,说句实话我也不知道为什么要搞个三级加载

总之,今天就到这里了,接下来我会以樱满星辰-花与香水DLC作为例子(同时边开发边作为教程的例子)继续写教程

发表回复

相关推荐

血管内皮生长因子VEGFA功能

VEGFA的体外活性是促进动脉、静脉和淋巴管内皮细胞的生长。

· 25秒前

中國合同能源管理(EMC)十四五規劃及未來發展趨勢預測報告2023 VS 2029年

中國合同能源管理(EMC)十四五規劃及未來發展趨勢預測報告2023 VS 2029年第一章:合同能源管理發展必要性及政策分析第一節合...

· 3分钟前

大般涅槃

阿难:佛陀,我听到舍利弗涅槃的消息震惊的无法自持,如同失去了知觉,头脑中一片模糊,实在是不知所措。

· 5分钟前

武汉的地质大学才称地大——中国地质大学(武汉)及现任校领导简介

中国地质大学(武汉)(China University of Geosciences, Wuhan),简称地大,位于武汉市,是中华人民共和国教育部直属的全 ...

· 7分钟前

《真相至上》——原则与生存的两难抉择

我在网上过看到一个消息,说这部电影的真正名字是《真相至上?》

· 10分钟前