Между делом собрал заготовку для одного подобного ремейка, игры с переключением измерений. На данный момент есть враги, преследующие мячик в обычном мире. На уровне разложены бонусы, которые нужно собирать. Кнопкой PageDown можно переключиться в тёмный мир, где враги становятся проницаемыми и прекращают преследование (PageUp возвращает обратно в базовое измерение). Бонусы здесь не видны, но если собрать их все, то в тёмном мире откроется переход на следующий уровень.
А какие-нибудь "подводные камни" при работе с PlayCanvas возникли?
Я, например, заметил что с ассетами довольно неудобно работать. Нельзя просто разместить ассеты в папке проекта и загрузить потом нужный путем поиска по имени. Надо обязательно атрибуты в скриптах объявлять и назначать туда ассеты.
Я, пожалуй, подпишусь. Движок ну очень не популярный, особенно по сравнению с Годотом, информации по нему мало.
Возникли. Просто в основном это особенности конкретно программирования javascript под webgl. Любой движок нужно осваивать.
Не знаю в чём проблема с ассетами, они должны быть добавлены в каком-либо виде на сцену, в составе каких-то entity. Или нужно их предзагружать в скриптах. Иначе откуда движку знать, что нужно брать их в билд.
Есть некоторые нюансы работы с онлайн редактором, вроде того что шаблоны (префабы) создаются, но не отображаются сразу и приходится перезапускать редактор, чтобы снова сделать шаблон.
Или при сжатии текстуры с прозрачностью, назначенной на материал, проект может не запускаться. Или то, что нужно правильно объявить переменные (в initializate, а не раньше) и обращаться к ним (через this.). То, что var создаёт переменную видимую внутри всей функции, а не только внутри конкретных скобочек, причём все var ещё и всплывают в начало функции при выполнении, поэтому все var желательно объявлять в начале функции и единым вызовом, перечисляя их в нужном порядке.
Используемые материалы нужно показать на камеру в начале, иначе во время игры когда каждый новый материал появляется в кадре - происходит небольшая задержка, на его компилирование. Собственно, в Godot тоже есть подобный момент. И с источниками света примерно такой же момент, но его уже сложно предварительно на камеру засветить.
Ещё тут есть группы батчинга. Но, опять же, с этим нужно аккуратно обращаться. Например, если отключить потом часть объектов группы, то и остальные пропадут, потому как становятся по сути единый мешем и не важно что они в иерархии раскиданы могут быть в совершенно разные места.
Ну и так далее. Нудно просто делать конкретный проект на котором и осваивать особенности фреймфорка.
Вобще писал статью с написанием кода "паучьих лап" на Godot, Unigine и PlayCanvas - как раз можно посмотреть отличия: https://habr.com/ru/post/536114/