饥荒mod制作教程(一):整体框架梳理
小鱼干炸了
2024年09月02日 10:33
收录于文集
共1篇
饥荒单人联机

1、基本原理

饥荒的mod是用lua语言编写的,游戏提供了大量的API可供开发者调用,使用这些API可以制作新的物品、人物、生物等,也可以对游戏原有内容进行一定程度上的修改。

2、如何学习

以要想做一个好mod,必须了解lua基本语法,并且掌握一定的编程知识,如果仅仅是为了修改贴图之类的简单需求则可以套用操作(后续会出0基础修改教程)。

3、整体架构

读懂源码并且了解API如何使用是我们的第一步也是最重要的一步,整个学习过程花费时间最多的也是在这一步。我们首先来看一下官方提供的源码结构。

游戏源码存放在如图所示目录中scripts压缩包中,解压后目录为:

  • behavious: 行为,给brains目录里定义的类使用的

  • brains: 大脑,可以理解为AI,定义各种生物的默认行为的,比如各种怪物的攻击、觅食等

  • cameras: 摄像头,一般用不到

  • components: 各种各样的组件,比较常用,用于描述物体的属性或者功能,通俗的说就是用来描述一个物体能做什么

  • languages: 语言

  • map: 游戏中的地形生成的定义,可以用来定义新的地形和生成规则

  • prefabs: 预制体,饥荒里的所有实体都是预制体,比如人物,花,鸟,鱼,树等等

  • scenarios: 情景,游戏中的彩蛋

  • screens: 场景,游戏里每个界面都是一个场景,比如创建世界,生成世界,加载世界,进入游戏的界面都是场景

  • stategraphs: 状态图(区别于状态机,饥荒把行为逻辑抽到了行为树(behavious)里,stategraph就只管理动画逻辑),定义不同状态播放什么动作,比如人物站立时的动画,猎犬攻击的动画,同样还能定义不同状态下的event(事件),handler(处理程序)

  • tools/utils: 各种工具

  • widgets: 小窗口,比如显示血量,季节的那个表盘就是 widget,和screen的分界不是很明显,官方也会混用widgets和screen

后续会用实际案例来给大家讲解详细应用。