开发环境准备
首先你要准备JDK(Java开发工具包)和Eclipse(最流行的Java代码编辑器)
最新版本的JDK应该是JDK8,但到目前为止它尚未发布稳定版,因此建议大家使用JDK7(Java7)或JKD6(Java6)开发.JDK可以在官网下载,网址是:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
根据自己的操作系统来选择相应的版本,64位的Windows使用Windows x64版,32位Windows使用Windows x86版.
顺便一提,MC(至少是MCP)约定统一使用JDK6来编译代码,不过JDK7也依然可以以低版本模式来编译代码,因此在选择JDK版本时大可不必纠结是使用6还是7.
Eclipse可以在这里下载,网址是:http://www.eclipse.org/downloads/
最新版Eclipse是4.3版(代号Kepler),同时Eclipse还分很多个定制版本,每个定制版本都预装了不同的插件,我因为个人需要所以使用的是”Eclipse for RCP and RAP Developers”,你可以考虑”Eclipse IDE for Java Developers”.同样每个版本又细分为64位版和32位版,根据你的操作系统来选择下载.这里下载来的是英文版,中文汉化包自行搜索吧…
首先安装JDK,通常来说如果安装顺利的话程序会自动配置环境变量,否则你需要按照这个的步骤来自行配置环境变量
http://zhidao.baidu.com/question/351018707.html
http://www.cnblogs.com/kevinlocn/archive/2009/10/12/1581855.html
之后安装Eclipse,Eclipse无需注册表或任何安装程序,直接将其解压到一个目录下就能运行了,首次运行时它会要你选择一个工作空间(Workspace)用以存放项目文件,不用在乎它.
然后便是MCP和FML的安装了.首先要说明什么是MCP,以及Forge和FML的区别.
MCP即Minecraft Coder Pack,它类似于其他软件的SDK(Software Development Kit,软件开发工具包),供开发者进行二次开发的源代码与工具包,那为什么MCP不直接叫MSDK(MC SDK)呢?因为MCP是个被官方默许的反向工程项目,Minecraft是个闭源的软件,而MCP的工作组则是将MC反编译并顺带反混淆(官方对源代码进行了混淆操作,将原本有意义的变量,方法,类名变成了无意义的文字,反混淆则是分析其功能并附上合理的名字),同时附上了一些有用的开发工具.MCP是Mod开发的基础,一定程度上说,没有MCP的话,MC也就没有如今的成就.
遗憾的是,MCP项目已经开始没落了…这个将会在下面的FML部分说到.
Forge则是MinecraftModAPI库,它实现了一些被大众所需的最基本的功能,最初Forge只是一个使用ModLoader(简称ML)的Mod,因为它依赖一些ML的功能,同时依赖ML的Mod加载功能.后来在某个版本中Forge实现了自己的Mod加载,于是摆脱了对ModLoader的依赖,并且与ModLoader开始不兼容!后来Forge搞出了个ForgeModLoader.
ForgeModLoader(简称FML)结合了Forge和ModLoader的功能,更重要的是它兼容ModLoader的功能.尽管ForgeModLoader和Forge从来都是捆绑发布和运行的,但从代码的角度来看,两者其实是独立的,这一点你可以从FML和Forge的包结构中看出来.FML跟ModLoader相比有很多优点,首先它是开源的,这意味着任何人都可以对FML做出补充,这也是为什么FML的功能越来越丰富,而ModLoader则始终是只有那几样而已.FML的开发维护者也很多,除去两三位主力外,还有上百位开发者在或多或少贡献代码.更重要的是,如今FML已经掌起了MCMod界的大旗,毫不夸张的说,MC的最高版本不是由Mojang决定而是由FML决定…(就拿1.7来说,如果FML不更新的话,你会玩1.7吗?)如今MCP基本已经弃坑了,其发起人Searge已被Mojang招安…FML已经接替了MCP的任务,并且从1.7开始,FML使用了一种新的代码构建方式:ForgeGradle.
ForgeGradle其实就是一个经过改良的Gradle,Gradle是一个构建工具,它比Ant(一个很基本的Java构建工具)要高级,但比Maven(一个很高大上的Java构建工具)要简化一些,这一低不成高不就的地位导致它很冷门 – 在此之前我从未听说过Gradle…但它使用起来确实挺不错,首先它比Ant的构建功能要强,正好适合MCMod复杂的发布方式,其次它支持类似Maven的中央库功能,Gradle在互联网上有一个巨大的代码库,项目能直接从代码库中下载需要的库,而无需开发者自己手动寻找合适的库.最后,Gradle比Maven要简单一些,开发者不必花费大量的时间来学习.
我们为什么需要ModLoader和FML?最原始的Mod是直接修改游戏文件,这意味着如果两个Mod修改了同一个文件的话,就会发生可怕的冲♂突.ModLoader的出现一定程度上解决了这个问题,它封装了最基本的一些操作,这让大部分Mod无需修改MC原本的类就能实现各种功能.MCPModSystem(请为它点一支蜡烛,虽然没有人记得它,但它确实曾在这个世界上存在过),Spout和ForgeModLoader则将这一特性发扬光大.
下文将介绍如何使用Gradle来配置开发环境,出于各种原因,很多开发者仍停留在1.6甚至更早的环境,因此以下保留了1.7之前的传统配制方法.
备档:MC1.7以前的开发环境配置方法:MCP与Forge的准备
过去,无论是ModLoader还是Forge,都需要开发者自行配置MCP,现在Forge支持一键配置,无需自己下载MCP和准备纯净版MC,只需简单运行一个文件就能完成全部配置步骤.
关于Forge版本的问题:
Forge更新比大姨妈来的还频繁,开发者最好使用Recommended的版本.这是目前最稳定的.
首先我们要下载Forge的源代码,Forge的下载地址在这里
开发环境的配置
首先我们要下载Forge的源代码,Forge的下载地址在这里
http://files.minecraftforge.net/
过去我建议下载Recommended版(即稳定版,非稳定版有小概率遇到猎奇事件,例如某个非稳定版的Forge无法创建世界).但自从1.6开始,FML组似乎被Mojang弄烦了,如果你死等Recommended版的话可能得等很久,比如现在(14年1月10日)仍没有1.7的Recommended版,此时我们只能凑活使用1.7.2的Latest版了.无论你下载的是哪个版本的Forge,记得在这里我们要下载Src(源代码)
另外你有可能会被Forge的文件服务器墙了(Forge的网站对大陆IP很不友好← ←我注册官方论坛后什么都没做就被封掉了),这时就得自备翻墙工具了…
将Forge的压缩包解压到一个文件夹.然后打开命令窗口并切换到那个文件夹.
在控制台内输入:
[backcolor=white !important]然后回车执行…之后ForgeGradle就会自动下载和配置操作环境了,很方便吧…
如果你真以为方便那你就输了,你可能会在下载过程中遇到各种谜の卡死或下载不能,这和天朝的GFW有关,总之你可以挂一个VPN/代理来下载.如果有VPN的话,就再好不过了,如果用代理的话,请确保你的代理支持HTTP/HTTPS,在命令窗口内执行:
如果你的代理需要账户和密码的话,你可能还需要加入http.proxyUser,http.proxyPassword,https.proxyUser和https.proxyPassword来设置账户名和密码…对于对HTTPS支持不好的代理,如GoAgent来说…可以采用代理/非代理交替执行的方式来下载,遇到非代理下不动的地方就用代理下,遇到代理下不动的地方就用非代理来下…
整个安装过程需要一段时间,我建议你此时先往下看,因为下文中有些步骤是可以现在就进行的.
当你安装结束后(我忘了截图了…总之如果你稍微懂一点英语的话,就能看出控制台明显地提示已经安装成功,而不是安装未完或失败.)就可以着手开始配置Eclipse了.
Eclipse配置
现在我们要开始配置Eclipse(如果你是用记事本编java的话请容我一拜)(yyf:我用VIM)
进入Eclipse,工作空间随便选一个,建议默认.之后我们要来准备Minecraft代码项目.
首先我们需要安装Gradle插件,打开Help – Eclipse Marketplace,搜索Gradle,然后选择Gradle Integration for Eclipse插件,这个插件为Eclipse提供了一些兼容Gradle项目的设定.点击它的Install.
然后选择要安装的部分,这里我们只需要安装前两个就好了.
然后便是漫长的安装了…安装完毕后会要求你重启Eclipse,让它重启就好了.
当你安装完Gradle插件后,便是配置项目.
自动配置
Gradle支持自动生成Eclipse工作环境,没错是工作环境(Workspace)而不光是项目(Project).
但愿你现在还没有关掉命令窗口(如果已经关掉了的话…就再打开吧),在命令窗口中执行:
然后等待其操作完成,之后在你的Eclipse中打开左上角菜单File,选择Switch Workspace.
然后将工作目录切换到你的Forge目录下的eclipse目录中.
于是便完了…没错,自动配置就是这么屌炸,连配置启动方案都省去了= =
手动配置
有时因为各种各样的原因,我们不想切换工作目录,这时就只能将项目导入然后手动配置项目了.
首先打开File – Import,然后选择Gradle – Gradle Project
然后选择你的Forge目录
之后点Build Model,让它生成一个Eclipse项目,生成完毕后,就可以将生成的项目导入了.
之后你还需要自己配置启动方案.右键你的项目,选择Properties.
然后选择Run/Debug Setting,点击New添加一个启动方案.
首先我们要创建一个客户端启动方案.名字就叫做Client吧.将主类(Main Class)选为net.minecraft.launchwrapper.Launch.
然后打开Arguments页,在Program Arguments中加入:
[backcolor=white !important]version一项在字面上看是决定版本,但实际上我感觉填什么都可以…tweakClass决定Minecraft启动器(LaunchWrapper)使用的入口类,accessToken…我也不知道啥= =欢迎跟帖补充
用此配置启动的话,你的用户名是Player[随机分配的3位数字],如果你希望指定用户名的话,可以加上–username [用户名]来指定一个用户名,如果你是想体验正版功能的话,还可以加上–session [你的session号],怎么获取session号可以看这里.
然后在VM arguments里加入:
[backcolor=white !important]-Dfml.ignoreInvalidMinecraftCertificates=true如果你有爱的话还可以加入各种虚拟机优化参数
最后,将Working directory选为Other,内容填上:
最后,打开Common页,将Save as项设为Shared file,然后将地址填为:
对于Display in favorites menu…这个是是否显示在启动菜单里,无所谓啦.
于是你便配置完客户端的启动方案了.如果你需要的话还可以配置服务器的启动方案,服务器的启动方案设置和客户端的相似,不同之处在于:
MainClass为:
cpw.mods.fml.relauncher.ServerLaunchWrapper
Program Arguments和VM arguments什么也不用填.
最后一点收尾工作
无论你是手动配置,还是自动配置,都还剩下最后一步需要进行 – 更改文件编码和JDK版本
依然是在Properties页中,将Resource项中的Text file encoding设为UTF-8.否则你的Mod中的中文显示出来的都是乱码的.(如果默认是UTF-8的话那再好不过)
然后检查Java Compiler项,将Compiler compliance level设为1.6 (我们之前已经说过MC约定统一使用JDK6)
最后还有可有可无的一步,设置开发环境中的Java库版本,即使你的代码符合Java6规范,但如果使用了Java7的东西的话可能会在安装JRE6的机器上发生糟糕的事情…为了避免这一步,我们干脆将Java库版本设为Java6.
打开Java Build Path项,选择Libraries,选中JRE System Library,将其改为JavaSE-1.6
至此,开发环境配置便完成了(\散花/) 快点击Eclipse上方的Run按键运行一下看看是不是Minecraft.
欢迎光临 最MC论坛 (http://www.zuimc.com/) | Powered by Discuz! X3.2 |