Многопоточность в JavaScript для разработки игр

Я думаю о разработке игры на чистом JavaScript и html5, без использования каких-либо сторонних плагинов. Проблема, с которой я столкнулся, заключается в том, что я не могу найти способ разделить различные «модули» игры на отдельные потоки, такие как задание рендеринга, игровая логика, загрузка ресурсов и так далее.

Веб-воркеры, похоже, могут разделять код на разные потоки, но проблема с ними заключается в ограниченной информации, которую я могу передавать между ними. Например, для задания рендеринга мне нужно передать весь «мир» со всеми объектами, сетками, текстурами и так далее для каждого обновления игры, потому что рабочие потоки не могут совместно использовать память. Его можно оптимизировать, например, отправлять статические объекты только при инициализации (сетки, текстуры), а затем отправлять только состояние объекта при обновлении (это мировое преобразование), но это все равно нежелательно.

Есть ли способ передавать большие данные между ними или сделать так, чтобы они совместно использовали некоторые объекты? Или есть совершенно другой метод достижения настоящей многопоточности? Я знаю, что есть более простые способы добиться этого с помощью плагинов / механизмов, но мне нужно использовать только методы, доступные в открытом Интернете;

6
задан Colin Dumitru 15 June 2011 в 09:51
поделиться