Как «добавить» параллелизм для существующей JavaScript-игры - PullRequest
4 голосов
/ 02 апреля 2012

Каковы некоторые способы / «лучший» способ добавить параллелизм в игру программирования JavaScript на jsrobots.com ??

Это, по сути, переписывание JavaScript древней игры для DOS под названием CROBOTS, НО с оченьважное упущение - нет правильного параллелизма или виртуальной обработки скриптов робота.Каждый пользовательский сценарий робота выполняется полностью по очереди.

Я объясняю больше об этом ограничении в разделе «Примечания по написанию сценариев робота» страницы «Как играть», но в основном он отстой и делает игру и неиграемой, и ложной.к оригинальным CROBOTS.

Мой вопрос: как мне добавить параллелизм сценариев роботов в игру?Это похоже на NodeJS для более серверного решения или браузера Web Workers, чтобы держать его в браузере.Изначально я в основном играю с веб-работниками.Должен ли я сделать целый объект робота веб-работником?Или просто пользовательский сценарий немного?Текущий объект робота отвечает за рисование самого себя, но веб-работники не могут этого сделать, так как нет доступа к объекту Canvas, DOM и т. Д.

Как бы вы это сделали?

Основной игровой дизайн:как http://tinypic.com/view.php?pic=1zoxnbq&s=5, но это в основном проект FOSS, поэтому не стесняйтесь сходить с ума от View Source ;-) [на самом деле в GitHub есть немного более старая версия https://github.com/danielrhodeswarp/JS-Robots]

Спасибо

1 Ответ

1 голос
/ 02 апреля 2012

Веб-работники могут использоваться для запуска пользовательского сценария, а затем использовать API-интерфейс обмена сообщениями между веб-работником и основным потоком, чтобы возвращать все, что нужно главному потоку для обновления DOM / Draw, когда работник выполнит все, что ему нужно. Это позволит вам иметь работника для каждого нужного вам робота и запускать их параллельно.

Проверьте это особенно часть передаваемых данных.

...