当前位置:首页 > CN2资讯 > 正文内容

我的世界java游戏源码大全 我的世界java源代码

3天前CN2资讯


我已经将近一年没有接触过Minecraft了。最近我重新加入了Minecraft的圈子,并在不久前在Minecraft官网购买了正版。了解到Java版是用LWJGL编写的之后一直对Minecraft的启动原理很感兴趣。我于是开始编写一个启动器来研究Minecraft的细节。

IDEA Minecraft Launcher

IDEA Minecraft Launcher(简称IMCL)是一个开源的Minecraft启动器。代码存放在GitHub

(欢迎点Star)

https:///resetpower/imcl

IMCL的编写语言主要为Kotlin和少量Java,使用JavaFX编写,JSON解析部分使用的是阿里爸爸的FastJSON,UI部分使用了JFoeniX,处于极其不稳定阶段的下载功能使用了Apache的commons-io,下载服务由BMCLAPI提供。

目前支持1.13以上的Fabric Forge 以及纯净版的启动,支持1.12以下的Forge 以及纯净版的启动。Bugjump在1.13修改了启动参数模式,macOS下需要 -XstartOnFirstThread 的jvm命令。1.13以上Forge版本在classpath中添加的并非forge版的jar文件而是对应原版的jar文件。在刚开始适配1.13以下版本的时候我看着一脸茫然 =-= 1.13以上Bugjump在版本json中加入了人性化的「arguments」参数,我就是照着这个参数成功启动的 =-=

那么IMCL就没有什么特色功能嘛 =-= 当然有,那就是从官启学来的「特色版本分离」,也就是将versions libraries等文件夹存放在原路径,而mods saves等文件夹存放在另外的路径。这样可以方便地分离mod而不用像网易一样复制客户端占用空间 =-=

总而言之,希望大家可以下载尝试,提出意见。

需要注意的是该启动器目前仅支持macOS 原因很简单,JVM跨平台但是启动参数并不跨平台,所以核心部分我需要根据不同平台特性作出完善,而这个真的很难。测试方便,所以我是最先支持自己使用的平台,后期再完善的……请大家谅解。

(4月27日更新:支持Windows10下的1.15.2纯净版和Forge版启动)

=-=

开发历程

4月5日,IMCL项目刚刚开启。那个时候的我刚刚了解到JMCCC,打算使用,结果总是因未知原因失败……于是我果断放弃了JMCCC,打算自己写启动核心。

现在的ideamc-core虽然是半残,但是也能启动了 =-=

代码结构介绍

项目使用IntelliJ IDEA Community Edition编写(没错这就是启动器名字来源),目前不使用Gradle、Maven等项目构建工具。

分多个模块。





ideamc结构图

如图,分为ideamc-core ideamc-launcher ideamc-toolkit三个模块,ideamc-core是启动核心,不涉及UI部分,只负责启动功能。依赖FastJSON和commons-io。ideamc-launcher是启动器的基础部分,负责UI和各种花式功能 =-= 启动启动器的时候是启动这个模块的。ideamc-toolkit这个模块比较废……只负责一些与启动器无关却有用的东西,比如里面有被我优化过的Properties类(支持UTF-8字符)

启动逻辑

启动功能由ideamc-core下的Launcher.kt负责。启动方法是这样的


fun


然而,这不是最核心的部分。细心的朋友可能注意到它调用了generateMacOSLaunchScript方法。而generateMacOSLaunchScript方法的源代码是这样的


fun


我知道你没认真看 =-= 基本的逻辑就是判断版本json里有没有inheritsFrom参数(有说明是用了模组加载器,没有就是原版),再判断有没有minecraftArguments参数(有说明是1.13以下版本,没有说明是1.12以上版本)然后解析json里的各种库,然后一堆神奇的操作就生成完了启动命令……

=-=

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/21531.html

    分享给朋友:

    “我的世界java游戏源码大全 我的世界java源代码” 的相关文章

    如何高效使用测速脚本监测网络性能

    在互联网的快速发展中,网络测速变得越来越重要。作为一个互联网用户,了解自己的网络性能是否稳定,以及在不同时间与地点的表现,能帮助我们更好地选择服务和进行问题排查。网络速度直接影响了我们的在线体验,无论是看视频、玩游戏,还是进行远程办公,网络性能都扮演着至关重要的角色。 测速脚本出现在这样的背景下,它...

    提升美国家庭网络安全与光纤宽带普及的最佳策略

    在当今这个数字化时代,家庭网络的建设与发展显得愈发重要。美国家庭对于网络的依赖程度日渐加深,这不仅仅体现在上网购物、观看视频、游戏娱乐等日常活动中,也体现在工作和学习的方方面面。作为一个普通家庭,我们的生活节奏已经被网络所塑造,无论是为了保持与亲友的联系,还是获取最新的信息,都离不开一个稳定而高效的...

    搬瓦工VPS与IPv6: 优化你的网络体验

    搬瓦工(BandwagonHost)作为一家由加拿大IT7 Networks公司推出的品牌,专注于提供性价比较高的VPS主机服务。我一直对VPS的体验充满好奇,尤其是搬瓦工的背景与发展历程。最初,搬瓦工主要销售超低价的OpenVZ方案,吸引了不少预算有限的用户。随着技术的发展和市场需求的变化,搬瓦工...

    蘑菇云:自然与核爆炸的惊人现象及其深远影响

    蘑菇云这个词,一提起来让人既熟悉又敬畏。它的外形就像个倒立的蘑菇,顶部宽大、底部则较小,这是因为它源自于强大爆炸所产生的气体。这种云朵看似平常,却是一种强烈爆炸后气体与空气混合的结果。虽然蘑菇云在现代多被与核爆炸联系在一起,但实际上,火山喷发及一些天体撞击也可能产生自然形成的蘑菇云。 了解蘑菇云的形...

    全面解析UDP攻击:类型、影响及有效防御策略

    在当今网络环境中,UDP攻击是一个话题无法忽视的安全隐患。它是一种常见的网络攻击形式,通常会给目标服务器带来严重的资源消耗。为了更好地理解这一现象,我们不妨简单回顾一下UDP协议的特性,以及攻击者是如何利用这一协议实施攻击的。 UDP,即用户数据报协议(User Datagram Protocol)...

    深入探讨4C与1C:市场营销与电池性能优化的关键

    4C与1C概述 在探讨市场和技术发展的过程中,4C与1C是两个值得注意的概念。虽然它们的名称很相似,但是一个关注的是市场营销的策略,另一个则关乎电池的充放电性能。我常常思考这两个概念的融合点,以及它们对我们生活的深远影响。 1.1 4C理论介绍 4C理论是市场营销中一个重要的框架,帮助企业更好地理解...