Используя виртуальную машину внутри игры? - PullRequest
6 голосов
/ 11 июля 2011

Я нахожусь на стадии разработки создания 3d-игры "робот-программирование".Вдохновленный такими играми, как Colobot, Robot Odyssey, Cholo и т. Д.

Я хочу, чтобы у каждого робота в игре была отдельная среда / операционная система / виртуальная машина, как в реальной жизни.Каждое окружение должно быть изолированным, чтобы оно было локальным для робота с точки зрения его взаимодействия с остальной частью игры.

Изначально я собирался внедрить HACK VM, как описано в книге «Элементы вычислительных систем», но затем мне стало интересно, есть ли лучшее решение с точки зрения производительности для этого стиля игры.

Итак, мой вопрос: существует ли уже существующая архитектура виртуальной машины, которая бы хорошо служила моей цели?

Ps Язык и движок игры, которые будут использоваться, еще не определены, но, вероятно, будут C # или smalltalk.

1 Ответ

3 голосов
/ 11 июля 2011

Хм .. использование отдельного изображения для каждого робота - это немного излишняя ИМО.Я не знаю требований вашего проекта, но почему бы просто не запустить все роботы в одном образе, используя собственный процесс?(Вы должны знать, что smalltalk поддерживает модель зеленых потоков).

О HydraVM: изначально это был проект концепции проекта.Удивительно, но он работает хорошо и довольно стабильно.Но для дальнейшего развития нужны проекты, которые действительно требуют такой архитектуры.И, честно говоря, инфраструктура уровня языка Smalltalk не была готова к этому моменту (я бы не сказал, что она готова сегодня;) Поскольку для ее использования необходимы более эффективные инструменты, такие как удаленная отладка, удаленный просмотр, удаленное управление изображениями и т. Д.и т.д.

Я очень удивлен, узнав, что вы смогли запустить 11 изображений параллельно.Это потрясающе.Так как я никогда не пытался запустить больше, чем 2 :) Проблема с таким количеством изображений, что вам нужна другая система управления памятью.И тот, который используется в Hydra, унаследован от Squeak VM и не очень подходит для такого дизайна.

...