gpt4 book ai didi

java - 创建一个可以注入(inject)修改的游戏

转载 作者:搜寻专家 更新时间:2023-11-01 08:03:52 25 4
gpt4 key购买 nike

情况:

我正在开发一个 Android 和 PC 游戏的概念验证,它实际上将单独用作基本沙盒,而实际的“游戏”是在提供的沙盒之上分层的模组。我无法弄清楚的是如何将开发人员代码注入(inject)我的应用程序实例。

mod 需要加载到一个已经运行的沙盒实例中,而不是对我的原始应用程序类文件进行编译重写和重新分发。而且,虽然 mod 将引入它自己的代码,但预计开发人员将需要在给定沙盒基础设施的特定范围内工作。

我设想的解决方案:

我认为最好的解决方案是在沙箱旁边创建一个库。该库将包含沙箱将理解如何调用的类和接口(interface),并且通过扩展和实现,开发人员可以对可以适合代码的类进行编程,作为它自己的一个,同时还能够实例化由开发人员实现的外部类.

问题:

问题出在我为这个概念计划的执行上。 愿景 是一个人可以下载一个 mod,将它移动到 mods\文件夹,启动我的应用程序,单击“玩游戏”,然后是一个包含所有可玩 mod 文件的下拉菜单mods\文件夹,当场加载即可播放。每个游戏都将使用熟悉的 UI 风格,基本图形架构,按钮响应,玩家或单位移动,HUD,图标排序,都将具有熟悉且可预测的风格,但每个模组都有独特的实际从一个完全独立的开发者的头脑中获得游戏体验。 我想不通的是如何动态地将代码从单独的开发人员注入(inject)到我的原始应用程序中并被识别,因为它既不在类路径中也不在我的任何原始包中。

最佳答案

这很简单:将配置文件放入 mod,该配置文件指定 mod 的“主”类。

您的沙箱只需要获取信息,为 mod 的类路径创建类加载器,加载该主类并调用其启动方法(您定义它需要实现的签名/或接口(interface))。

关于java - 创建一个可以注入(inject)修改的游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17058774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com