我正处于制作 3D“机器人编程”游戏的设计阶段。灵感来自 Colobot、Robot Odyssey、Cholo 等游戏。
我希望游戏中的每个机器人都拥有自己的隔离环境/操作系统/虚拟机,就像在现实生活中一样。每个环境都应该是沙盒的,以便它在与游戏其余部分的交互方式方面对于机器人来说是本地的。
最初我打算按照《计算系统的要素》一书中的描述来实现 HACK VM,但后来很好奇在这种游戏风格的性能方面是否有更好的解决方案。
所以我的问题是:是否有一个已经存在的虚拟机架构可以很好地满足我的目的?
P.s.使用的语言和游戏引擎尚未确定,但可能是 C# 或 Smalltalk。
嗯..在我看来,为每个机器人使用单独的图像有点矫枉过正。 我不知道您的项目的要求,但为什么不使用自己的流程在同一图像中运行所有机器人呢? (你必须知道smalltalk支持绿色线程模型)。
关于 HydraVM:最初它是一个概念验证项目。令人惊讶的是它运行良好并且相当稳定。 但为了进一步开发,您需要一个真正需要这种架构的项目。 坦率地说,当时 Smalltalk 语言级基础设施还没有准备好(我不会说它今天已经准备好了;) 因为要利用它,您需要更好的工具,例如远程调试、远程浏览、远程图像管理等。
听说您能够并行运行 11 个图像,我真的很惊讶。棒极了。因为我从来没有尝试过运行超过 2 个:) 如此多的图像的问题是,您需要不同的内存管理系统。而 Hydra 中使用的一个继承自 Squeak VM,不太适合这样的设计。