• 注册
  • SPTarkov 动态 SPTarkov 动态 关注:246 内容:59

    Modding in Haru 小春的修改

  • 查看作者
  • 打赏作者
  • 当前位置: ODDBA社区 > SPTarkov 动态 > 正文
  • 12
  • SPTarkov 动态
  • SPT主创
    初窥堂奥
    VIP2
    SPTarkov项目组

    Modding in Haru 小春的修改

    Hi everyone!
    大家好!

    Today I want to discuss the state of Haru, show a sneak-peak of what modding in Haru looks like, and discuss the interests of the project for both modders and developers.
    今天我想讨论一下小春的状况,展示一下小春的修改情况,并讨论这个项目对修改者和开发者的利益。

    Discussion of interests

    讨论利益问题

    Thanks to Echo's invitation and the help of Silent.YH, I was given the oppertunity to discuss various issues and hear the opinion of modders on QQ. Here I asked what they would like to see from Haru, and hear the things that need to be improved in Aki.

    由于Echo的邀请和Silent.YH的帮助,我有机会在QQ上讨论各种问题并听取modder们的意见。在这里我问了他们希望从小春身上看到什么,并听到了阿基需要改进的地方。

    It is universally agreed on that bepinex is complex, Aki 3.x's frequent breakage is driving modders away, and that the learning curve is too steep. Modders worry about the complexity of a new language (C#) vs what they already know (JS).

    大家都认为bepinex很复杂,Aki 3.x的频繁故障让修改者望而却步,而且学习曲线太陡峭。修改者担心一种新的语言(C#)与他们已经知道的语言(JS)的复杂性。

    On the developers side of Aki, the switch to DI (Dependency Injection) and event-driven design was the right choice to improve ease of development for the team.

    在Aki的开发者方面,改用DI(依赖注入)和事件驱动设计是正确的选择,可以提高团队的开发难度。

    End users want to play EFT offline without the worry of setting up things, and optionally enhance the experience with mods with as little interaction as possible.

    终端用户希望在离线情况下玩EFT,而不用担心设置的问题,并且可以选择用MODs来增强体验,而尽可能地减少互动

    Development of Haru

    哈鲁的发展

    Since I have continued full-time development of the project, I am making very good progress. My initial goal was to get as fast as possible. However, thanks to the feedback from everyone, I reconsidered my approach. In order for Haru to succeed, it needs a stable foundation. This means:

    自从我继续全职开发这个项目以来,我正在取得非常好的进展。我最初的目标是尽可能快地得到。然而,由于大家的反馈,我重新考虑了我的方法。为了让小春成功,它需要一个稳定的基础。这意味着

    – Modders need an architecture and API to work with that only breaks between major versions of the emulator or whenever EFT changes it's data layout, and should be as straight-forward as possible
    – Developers need a very flexible and versatile platform to deal with EFT's very complex structure
    – End users should just be able to use the work with minimal effort

    – 修改者需要一个架构和API来工作,只有在模拟器的主要版本之间或EFT改变它的数据布局时才会中断,而且应该是尽可能的简单。

    – 开发者需要一个非常灵活和多功能的平台来处理EFT非常复杂的结构。

    – 终端用户应该只用最小的努力就能使用这项工作

    In order to facilitate this, I decided to do what I originally planned Aki to be (see my posts from a year back) but couldn't make happen due to time constraints.

    为了促进这一点,我决定做我最初计划的Aki(见我一年前的帖子),但由于时间限制而无法实现。

    Haru will consists of 2 parts:

    小春将由两部分组成。

    – Core (loads itself into EFT, only contains minimum required code)
    – ModAPI (a layer on top of the core, this is what modders work with, includes helper code for modders)

    – 核心(自己加载到EFT中,只包含最低限度的必要代码)

    – ModAPI (在核心之上的一层,这是修改者的工作,包括修改者的帮助代码)

    The core is flexible and can be broken internally as often as required, but the ModApi will ensure stability of the modders by abstracting the core code away. ModApi is designed to be straight-forward and as simple as Aki 1.x was.

    核心是灵活的,可以根据需要经常在内部打破,但ModApi将通过抽象出核心代码来确保modder的稳定性。ModApi被设计成直截了当的,就像Aki 1.x那样简单。

    These two components will be developed alongside eachother. Haru uses it's self-contained loading mechanism, so mods can provide their own (through bepinex or the simple nlog exploit)

    这两个组件将被同时开发。Haru使用它的独立的加载机制,所以mods可以提供他们自己的(通过bepinex或简单的nlog漏洞)。

    Modding sneak-peak

    修改偷拍

    I don't like empty promises, so today I wrote the code to back up my claims.

    我不喜欢空洞的承诺,所以今天我写了代码来支持我的主张。

    MerijnHendriks/Haru: Escape From Tarkov modding framework (github.com)
    Modding in Haru 小春的修改

    This is an example how someone could add in entire new localizations to the game. The amount of effort it takes is the same as Aki 1.x: You load the data into the program, and then store it into the database. The only difference here is that instead of accessing the database directly, you interact with it over an API (LocaleApi). 

    这是一个例子,有人可以在游戏中加入整个新的本地化。它所花费的精力与Aki 1.x相同。你把数据加载到程序中,然后把它存储到数据库中。这里唯一的区别是,你不是直接访问数据库,而是通过一个API(LocaleApi)与之交互。

    It might look a bit intimidating at first, but like learning JS it doesn't take long to pick up. Especially those with a bit of JS modding experience!

    一开始可能看起来有点吓人,但就像学习JS一样,不需要很长时间就能掌握。特别是那些有一点JS修改经验的人!

    The user side

    用户方面

    For the end-user, Haru is going to be pretty simple. You drop the files you need into the right folder, start the game from a launcher like always (or from steam, instructions included!) and get started playing. Haru's out-of-the-box experience won't be great because it's not designed to be played in it's original state, but you can play.

    对于终端用户来说,Haru将是非常简单的。你把你需要的文件放到正确的文件夹中,像往常一样从启动器中启动游戏(或者从steam中,包括说明!),然后开始玩。小春的开箱体验不会很好,因为它不是被设计成以原始状态来玩的,但你可以玩。

    ETA?

    As always, no clue hahahahaha. I hope to get the core (playing a raid, buying/selling items from traders, managing player inventory) working in Spring 2023, but I have to see if I can actually manage.

    一如既往,没有线索,哈哈哈哈。我希望能在2023年春天让核心部分(玩突袭,从商人那里购买/出售物品,管理玩家的库存)运作起来,但我得看看我是否真的能管理。

    Thank you

    谢谢你

    At last, I would like to thank everyone who participated in the discussion of modding and for your ungoing support! Please let me know your thoughts down below.

    最后,我想感谢每一个参与讨论修改的人,感谢你们一如既往的支持!请在下面告诉我你们的想法。请在下面告诉我你的想法。

    渐入佳境

    请不要让PMC和霉菌、SCVA出生在一起,这个设定真的很无语!辛苦大佬了!

  • 已重置-69422支持
    拉黑 2年前 电脑端回复
  • 回复
    渐入佳境
    打赏了66金币
    回复
    炉火纯青
    VIP3
    打赏了9金币
    回复
    炉火纯青
    VIP3

    作为一个伸手党,无法给出专业的建议。希望开发顺利,然后测试一下下。 [s-10]

    回复
    渐入佳境
    2021

    不错,本身就应该这样设计,mod方面的api应该是稳定的,现在3.x的改动让mod开发者频繁适配,很多改动测试是很浪费时间的

    回复
    略有小成
    打赏了5金币
    回复
    圆转纯熟

    谢谢

    回复
    初来乍到

    支持

    回复
    自成一派
    VIP4
    2021
    赠送了礼物[赞]
    回复
    初窥堂奥
    打赏了1金币
    回复

    请登录之后再进行评论

    登录
  • 签到
  • 任务
  • 发布
  • 模式切换
  • 偏好设置
  • 帖子间隔 侧栏位置: