【Devlog】神必布头吉列更新中
本帖最后由 全自动电棍 于 2025-9-20 00:40 编辑StarFabricated
make more lulz <3
Modding的哲学与速通的哲学是相通的。
开发者从胚料中取出游戏,抚平毛刺、打磨细节,力求完美;
速通者接过游戏,仔细打量、从内至外、由长到短,随后轻轻一触便使其破碎;
而Modder所做的则是拾起碎片,拼贴、粘合、重组,最终得到一尊可憎之物。
注意:项目目前处于早期阶段,尚未稳定,因此暂时不会提供文件。
远神是一款上了年头的Java游戏,官方积极开放的API和相对较低门槛的模组制作给这个游戏带来了丰富多彩的内容。
但代价是什么呢?资源系统。
CSV可以说是低门槛,但绝不能说是易用。
我们从中能够看到Alex为降低Mod门槛所作的一系列措施,但在如今看来这些妥协已经进一步恶化了开发体验。任何尝试深入游戏并建立更有趣东西的人都应该深知这一点。
或许如今这一架构设计已经过时,但游戏缓慢的更新周期和无数的社区MOD意味着我们几乎永远不可能去动它。
但为什么?为什么需要一个Fabric?
我们有着稳定、开放的API,并且在官方论坛上几乎有求必应。那为什么还需要一个Fabric?
因为我在说服你们需要^^
欢迎来到StarFabricated。
目前可以使用的功能:
[*]基本模组加载
[*]自定义入口点
[*]Mixin(请在modid.mixins.json中指定兼容性为JAVA_16,17会报错。)
目前存在的问题:
[*]Kont替换掉了游戏自身的Classloader,这导致反射与文件读取限制被意外解除。(很难说这是漏洞还是特性)
[*]MixinExtras在非MC环境出现水土不服的情况,正在排查。【已解决】
[*]由于Loom插件依赖于Minecraft,导致无法使用,进而无法使用其提供的include功能对Mod进行自动Jar-in-Jar。
[*]部分混淆类/方法/字段会导致Mixin类无法通过编译(现在有解决思路了,但是估计得需要一段 很长 时间)
报告坛友们一个好消息,我们又完成了一个feature
已实现:
[*] 入口点 · ModInitializer(位于游戏main函数)
[*]自定义入口点 · VanillaModInitializer(位于ResourceLoaderState.init)
[*]解析Version.class获取 versionOnly 以及 versionString 字段(感谢TriOS)
[*] 转换现有版本形式为语义化版本(例:0.98a-RC114 -> 0.98.0-alpha.rc.114)
[*] 可用的ModTemplate
[*] 演示用模组
[*] Log4jHandle(解决Loader日志不写入文件的问题)
[*] log4j-over-slf4j(bind to Log4j2)
正在实现:
[*]程序化的游戏依赖库解析
[*]基于外部规范(localization_version.json)的翻译检测与版本检测后备
[*]基于解析日志的版本检测后备(deprecated)
部分实现但暂时搁置:
[*] 暂无
计划中:
[*] 更灵活的中间名生成工具(stitch会扁平化一切,这太糟糕了)
长期展望(按预期难度排序):
[*] PEI,但是Mixin
[*]Luncher/Installer(fatjar的类路径过于丑陋了)
[*]starsector-fabric-api(Basic hook)
[*]转移GameProvider中的一些ASM插桩到api,并使用Mixin重新实现。
[*]SpASM(需要进行一些修改)
[*]EventBus(Forge Eventbus7 / NovaBus)
[*]移植lwjglx (2.9.3 -> 3)
[*] InjectedVanillaMod(这真的可能吗)
[*] Gardle工作区插件
注意看,这个男人Overdose了114514罐能量饮料
本帖最后由 全自动电棍 于 2025-9-21 20:44 编辑主楼不太适合放闲聊性质的东西,故此单开一层
bro belike:
另外论坛的oss对我不是很友好啊,怎么传不了视频
火狐不喜欢webuploader
如果我往常用api调用中注入try-catch将其包裹,似乎能避免绝大部分空指针跳出,尽管这可能会导致游戏更加不稳定。
这下VanillaFix转生到远神了XD
并非,VF的重置游戏有点太hacky了,搬不过来。很符合我对1.12.2Modder的想象。
迁移到Slf4j和实现loghandle比我想象中的要简单得多,一个是经历了足够考验的成熟方案,而另一个更是能直接复用已有实现。
Mikohime的转换套件不仅包含Java23,还包括lwjgl3。 我应该是记错了,实际上没有。
我猜要么是游戏没有使用跨版本后不兼容的功能,要么就是使用了兼容层。
无论如何,现在我有点思路了。
有可能的话我应该也会单出一个转换套件(
你说的对,但是《远神》是由Fractal Softworks, LLC.自主研发的一款上古史山Java游戏。游戏被设计为不使用「SemVar」的非标准版本号,在这里,被Alex选中的人将被授予「授权」,引导字节码神力。你将扮演一位名为「开发者」的神秘角色,在并不自由的逆向工程中邂逅性格各异、能力独特的DMCA,被它们一起击败,找回Alex失散的亲人——同时,逐步发掘「CoreModding」的真相。
(目前可以使用的功能:别急){:5_122:} {:tieba_30:}{:tieba_30:}{:tieba_30:}各路神仙都在预备啥东西呢?透露一下打算做啥mod?
页:
[1]