〇,循环的开始
你可能会在一段时间内,多次反复打开这个帖子;你会在安装过程中遇到各种各样的问题;即使你终于完成了安装,但也许会因为以后某天想要安装新版本forge,亦是参考或修改别人的mod,而不得不再次打开这个帖子。
本文是安装的正常流程,而能真正完美地按顺序一遍过的人几乎没有,但
你可以
通过
如下方式得到帮助
:
1.
查看本文最末尾章节——关于各种错误的解决方案
。
2.回复本帖,或联系我
3.如果因为
需要访问国外网站
,而导致的网络问题,请更换到"能访问国外网站的网络环境",或者使用一定的
网络辅助工具
。
本文使用的版本:Windows10 2004,IntelliJ IDEA 2020.3.2,Forge 1.16.5
此教程是
通用教程
,原则上
不区分Forge版本
。如果你安装其他版本的时候报错,请留言, 我会手动测试并找到解决方案,再更新此贴。
P.S.:等等!你学过java吗?没学过?那也没有关系,但是你先得会安装jdk,去百度一下再回来吧!如果你想制作mod但不会java怎么办?你可以选择一边制作mod一边学习java哦!或者……直接参与负责mod模型、贴图或玩法等设计方面的工作?
|
以下是我整理出来的一些工作内容,如果你有什么修改建议可以直接在评论区回帖提出来哦
·游戏设计:
1.玩法设计:设计关于mod的游戏流程;设计mod的可玩性。
2.数值设计:调整mod与游戏的平衡性;调整mod间的平衡性。
3.内容设计:设计mod中各种对象(物品、方块、实体等等);设计mod的文本;
设计mod的教程(如果有的话)
。
·艺术设计:
1.美术设计:设计mod中各种对象的贴图;设计mod中的插画;设计mod中的特殊UI。
2.模型设计:设计生物模型;制作生物模型。
3.艺术设计:增强mod的艺术性。
·程序设计:
1.对象实现:编写mod中各种对象的代码;导入资源文件。
2.功能实现:实现各种设计出的功能;算法设计;修复BUG。
3.mod管理:管理整个项目的复杂性,增强可维护性与可拓展性;调整mod间关系。
并非每人只能完成其中一项工作;也并非一人需要完成其中一项工作的所有任务。所有的分工与合作均是灵活的、可变的、动态的、适应每人长处短处的。
|
一,下载IntelliJ IDEA与Minecraft开发包
IDEA
可以选择社区版(Community)或专业版(Ultimate)。社区版开源免费,功能足够;专业版需要付费,并且只有三十天的免费体验,但功能完整强大。这里我选择的是社区版,就是右下角那个黑色(截止发稿日此界面如此,不保证以后改版)。然后下载安装即可,如有任何问题请百度。
Forge Website
左侧是选择Minecraft游戏的版本。选择某一Minecraft的版本后,再选择任意版本的MDK(
Minecraft Development Kit
),最好是
推荐版本
(Download
Recommended
)的,兼容性最好,BUG最少(不一定)。
或者
最新版
(Download
Latest
),会有更多新特性。
下载完成后,是一个压缩包,解压之后,如下图所示:
注:请把文件解压到一个目录,这个目录不能有任何非英文字符
(即,不能用中文、日文、越南文、德文、法文等等)
,并且这个文件夹下的任何文件
(例如*.java文件)
都不能有非英文字符。
但是,如果你已经放在了这种文件夹里,如果不报错,就不能修改;或者,请在另一个符合条件的目录下,再下载一个新的zip压缩包并解压。
错误索引
:
如果出现任何奇奇怪怪的报错或乱码文字,请先参考
错误编号0
Click To Build
文件build.gradle用以构建整个项目,因为Minecraft Forge是一个gardle项目。
|
如果你想要把mod共享到git上(例如
github)
,请把这整个文件夹(如图片所显示的那样)作为根目录上传,因为里面有.
git
ignore
配置文件,防止把巨大的二进制文件一并同步。
|
如果你的build.gradle不是默认用IDEA打开(即图标不是IJ),可以右键属性后,选择打开方式为
IntelliJ IDEA
。
二,进行Building
然后你就可以双击
build.gradle
打开了。当然,也可以通过IDEA内的File>>Open选中build.gradle并打开。
可能需要的时间比较多,只需静静等待完毕即可。
错误索引:
如果你不能Build,并且红色报错,请参考
错误编号6
期间可能会有报错(或只是提示),如果其不影响接下来的流程,可以忽略。但是也有可能对以后的某个操作会有影响,请自己斟酌是否要寻求解决方案。
三,运行生成任务
初次加载完毕后,在你的IDEA界面上可以找到一个菜单栏
Gradle
。如果找不到,可以双击shift,在弹出的搜索栏中输入”Gradle”;或者百度。
Run Gradle Task
然后在”大象”菜单底下选择
Tasks
文件夹,并找到子目录
fg_runs
(
Forge Gradle
的缩写),双击其中的
genIntelliJRuns
,就会开始自动生成项目了。
在短暂的等待后,会显示任务完成。
genIntelliJRuns
任务会帮你自动创建在IntelliJ IDEA上进行
运行与调试
的配置和其他所需的内容。
如果你在github上下载了别人的mod代码,请务必进行这一步操作,因为Forge MDK压缩包里的.
git
ignore文件(git修改的上传忽略规则)里面会把IDEA的配置给忽略掉。
错误索引
:如果你不那么做,会造成
错误编号5
。
四,运行与调试
下载并初始化后,会有一个默认的ExampleMod,如果你的IDEA对于每个java关键字都有不同颜色的高亮显示,则代表MDK安装并识别成功。否则,出现代码报错,请查阅
错误编号4
。
接下来可以尝试运行一下,点击最上方菜单栏 Run>>Run...,之后会在你的屏幕中央弹出一个小窗口(颜色太相似了,注意辨别,点外面就直接取消掉了)
然后点击runClient(运行物理客户端)即可,其中runServer(运行物理服务端)可以在自己的电脑上更好地调试@SideOnly(Server)的仅
服务端
代码。
对于调试来说,只是把Run>>Run...换成了Run>>Debug...(就是刚才点的Run...下面那个),具体调试的用途请百度"IDEA 调试"。
错误索引
:如果你的Run小窗口里面什么都没有,请参考
错误编号5
。
此时会弹出Minecraft游戏窗口,如果其中的Mods列表里面有你刚才的ExampleMod,即表示Minecraft可以正常加载你的mod。(图中以github上 暮色森林mod 1.16.5为例)
Twilight Mod Loaded
五,开始写代码吧!
你可以复制整个MDK多次,自己备用;或者分发给别人,作为离线包。这样一来,就无需在每次写mod前都下载一遍了。如果你有网络问题,这也是终极解决方案。
推荐几个教程文档,但不可全盘照抄,请结合实践结果判断。
Forge的API随
Minecraft
版本变化改动而改动,需要具体问题具体分析,每个教程只能适合对应的版本 (甚至有些教程虽然是同一MC版本下,但是因为使用旧版本forge的API,所以在你进行modding的时候,名称会发生改变!)。
编写Minecraft Mod的很多思维方式和哲学是可以学习积累的,即使你只学其中一个版本的教程,对以后其他版本开发都受益匪浅。
对于一些最新版本的修改内容,可以参考
Forge官方文档。
如果在开发期间,Forge更新了新版本,可以通过如下方式进行
升级
。(建议升级到稳定版本)
How to Get Gradle Version
你可以找到 类似于"1.16.5-36.1.0" 的文字,这个就是ForgeGradle的版本号,请复制它。并将其与 项目根目录下
build.gradle
中的这一行所替换:
|
如果你找不到这行代码在哪里,可以使用Ctrl+F在文件中进行搜索,具有操作请百度"IDEA 代码搜索"
|
-
dependencies {
-
minecraft 'net.minecraftforge:forge:1.16.5-36.1.13'
-
复制代码
把新的版本号(此处是1.16.5-36.1.0),与其中的"net.minecraftforge:forge"的冒号后面的版本号(此处是1.16.5-36.1.13)进行替换。然后再次执行
第二步
与
第三步
的操作即可。
How to Update Forge
你会发现,我刚刚竟然拿"低的版本号"去替换"高的版本号",也就是说——这是
降级
操作。当最新版有致命BUG的时候,可以选择降级回退到之前的稳定版本。
六,制作Mod的联机模式!
如果你在github上下载(pull)了别人的开源mod的代码,你需要按顺序重复上面"第二步"与"第三步"的操作,之后就可以正常对mod进行调试了。
如果你本来就因为网络原因,使用了离线包
。
请注意,你还是
有可能因网络原因而下载失败
,请自行考虑是否使用离线包进行替换文件(是否成功视情况而定)。
如果期间出现了非网络原因造成的报错,请联系mod作者解决。
END,无限循环——各种错误解决方案
如果解决方案无效,请先查看是否有其他问题存在(即多个问题同时造成的结果),若依旧未果,请回帖或联系我。
为了不使帖子显得很长,对所有问题的
解决方案
进行了隐藏,
点击即可展开查看
。
错误编号0
:奇奇怪怪的错误或者乱码
错
误原因:你的项目所在路径中使用了非ASSIC字符,导致java无法识别。
解决方案:那就别用。像我这样做:D:\MyProject\Minecraft\XXXMod。
错误编号1
:SSL连接中断
错误原因:网络问题。
|
解决方案:在 Build窗口>>Sync子窗口 的左侧,有一个"可回收按钮"(Reload Gradle Project),点击进行重试。你可能会在这个错误上循环多次,那就多点几次!如果实在不行,可以百度或者下载forge离线包。
|
错误编号2
:过时的Gradle
错误原因:可能是因为你使用了老旧的Forge离线包。
|
解决方案:三种:
一:点击IDEA窗口下方 蓝色字体的 文本,升级Gradle(
Upgrade Gradle wrapper to 3.0 version and re-import the projec
t
)(不是MCBBS里面的啊喂)。
二:去官网下载最新的Forge MDK包。
三:使用更低版本的IntelliJ IDEA。
|
错误编号3
:JDK选择错误
错误原因:没有选择JDK,或者选择错误的版本(例如过期的java 8,过新的java 11等等)
|
解决方案:有两点需要检查。
1.打开 Settings>>Project Structure,选择正确的JDK版本,不会的可以百度"IDEA配置JDK"。
2.打开 Settings>>Project Settings,同上。图中,我安装了有好几个JDK,请选择java 1.8。
|
错误编号4
:大量imoprt
net
红色报错
错误原因:MDK没有识别成功。
|
解决方案:
首先,考虑是否正确完成
第二步
及
第三步
,遗漏步骤请返回。
其次,考虑JDK是否选择正确,请查阅
错误编号3
|
错误编号5
:缺少Run的配置
No Run Config
错误原因:缺少 项目根目录下 .idea\runConfigurations\runClinet 等几个运行配置文件。
错误编号6
:没法Build
Failed to apply plugin 'net.minecraftforge.gradle'
Failed to apply plugin [id 'net.minecraftforge.gradle']
错误原因:没有选择JDK,导致无法Build
错误编号7
:资源文件没有加载(1.12.2)
错误详情:IntelliJ IDEA 开发 Forge 1.12.2 调试(运行)时没有加载资源文件(语言,材质,模型)。
错误原因:因为IDEA和Eclipse的生成文件目录不一样,mod会找不到resources文件夹。但是导出jar包的时候是正常的。
|
解决方案:请在build.gradle这个文件末尾追加一句:sourceSets { main { output.resourcesDir = output.classesDir } }
|
出于更好的服务大众的目的,你可以自愿在以下几种情况下回帖
:
1.根据教程成功安装。如果期间出现问题(或教程外的问题)但已经解决的,你可以附上你的问题说明和解决方法(如果是教程内提供的
解决方案
,直接给出
错误编号
即可)。
2.安装期间发生失败,并且无法根据 "教程内提供的
解决方案
" 解决,请回帖(最好有截图)说明详情。
如果有"很难用语言描述"或"非常复杂"的问题,可以直接联系我咨询