Pull to refresh

Comments 13

Да, знаю о существовании этих движков. Дело в том, что политика нашей компании и требование заказчика — разработка исключительно под веб.
Я так же сталкивался с приложениями, портированными из Unity и они не устраивали заказчика своей производительностью и рендер отличался от десктопного приложения. Не знаю, с чем это связано, я в юнити не эксперт.
В первую очередь мы нацелены на мобильный браузерный AR/VR, так что defold точно не подходит, а godot не решает наши задачи. Уж лучше юнити тогда сразу)

Как-то делал компиляцию из Unity в WebGL. Работало, но глубоко не копал. Чем этот вариант не устраивает?

Продублирую ответ из комментария выше:


Дело в том, что политика нашей компании и требование заказчика — разработка исключительно под веб.
Я так же сталкивался с приложениями, портированными из Unity и они не устраивали заказчика своей производительностью и рендер отличался от десктопного приложения. Не знаю, с чем это связано, я в юнити не эксперт.
В первую очередь мы нацелены на мобильный браузерный AR/VR, так что лучший вариант — использовать нативный инструмент на выбор из 4 пока: Three.js, A-Frame (обёртка над three), Babylon.js или Playcanvas. Последний самый приятный, как по мне.

Спасибо, тема интересная. Сам недавно ковырял Three.js удивило что нельзя задать параллелипиед координатами углов, только центр и углы поворота. Пришлось писать кастомную функцию для этого дела, заодно реализовал произвольную ориентацию параллелипипеда с указанием центров противоположных граней — нужно для длинных «палок».
Насчет playcanvas — не боитесь связываться с облачным сервисом? Как говорится, дай бог ему здоровья, но если что-то с ним случится, не получится так что годы работы будут потеряны, или есть варианты экспортировать проект под другие платформы?
У них есть платная версия за $15, которая позволяет self-hosting на своих серверах и за $50, которая позволяет скачивать билды, которые можно хранить оффлайн и потом с них восстановится, в случае чего.
Но это, конечно, не совсем то, потому я и хочу оффлайн редактор настолько, что готов сам его сделать :)

А про палки, есть scale, тут выдумывать ничего не надо особо. Только если у параллелепипеда нужно сделать рёбра не перпендикулярными друг другу. И то в таком случае лучше отдельно замоделить.
Это здорово, что есть self-hosting и возможность экспорта.
Не совсем понял, что вы имели в виду под «scale». Это ведь масштаб. А палки — это вытянутые параллелипипеды, я из них каркас в пространстве моделирую.

Ну так параметр у любой сущности. Object3D.prototype.scale, в документации есть. Вытягиваешь по одной оси обычный box — вот тебе и длинная палка.
Но даже если scale по каким-то причинам не устраивает, то уже есть готовые методы типа THREE.BoxGeometry()
Но опять же, это тема не про three.js

Вы говорите, что альтернатив нет, но сами в начале статьи упоминаете babylonjs, он не альтернатива? Тем более там заявлены редакторы шейдеров, и даже в каком то виде «префабы». Опять же есть поддержка Typescript, что в 3д разработке удобно, как по мне. Сам работаю на unity и столкнулись с ситуацией, когда появился заказчик с требованием писать под чистый WebGL на все платформы. Тут же всплыли проблемы с тачем, поддержкой мобилок, hires экранами, весом wasm и тд. Все проблемы более менее решаемые, но ищем альтернативы на будущее. Взгляд упал на playcanvas и babylonjs. Было бы очень здорово увидеть разбор этих движков, в сравнении чем кого лучше-хуже.
К сожалению, я не работал плотно с Babylon.js. Наверное, стоит попробовать. Когда я выбирал движок в 2017 году, динамика развития babylon мне не очень понравилась. Смотрю по релизам на гитхабе сейчас и вижу, что были перерывы в полгода между версиями. Сейчас уже аж на 4.0 вышли… Мне не очень понравились апи и редактор, у playcanvas как-то поприятнее, субъективно. Ну, надо попробовать на нём что-то сделать, чтобы разобраться точнее, пока не могу сказать.

Upd: уделил час этому движку, нашёл кое-то интересное в апи вроде WebXR хелперов. Но редактор ужасен. Я не знаю, как в нём можно что-то вообще сделать. Даже скрипты не создаются, только библиотеки. Может, это я не разобрался, конечно… Но на первый взгляд, проблем в нём гораздо больше, чем у редактора playcanvas. С одной стороны, я вижу graph editor, code editor, post-process editor, animation editor, path finder даже, очень круто, но они не работают. Редактора шейдеров не нашёл, только пост-процессинг работает. Если под редактором шейдеров подразумевается graph editor, но насколько я понял из форума, это редактор скриптов.


Для меня ключевым параметром в выборе движка является редактор. Конечно, с помощью кода можно сделать всё, что угодно, но вопрос в том, как это потом поддерживать, как дать возможность редактировать сцену дизайнеру или техарту. Если бы для меня не был важен редактор, этой статьи и не было бы, ведь апи playcanvas весьма годное само по себе. Как и у three, как и у babylon, вероятно. И без редактора в playcanvas можно использовать typescript. Но создать что-то более-менее серьёзное таким способом вряд ли получится. В общем, пока для меня babylon.js не конкурент.

Спасибо за подробный ответ, сам смотрю на два движка и думаю в который силы кинуть на исследование и попытки перенести какие-либо из наших наработок. Нам тоже важен удобный редактор, понятный тридешникам. Но смущает что у PlayCanvas нет ES6, а у Babylonjs вроде и тайпскрипт, и ES6, но какая-то чрезвычайно разрозненная экосистема, в которой не понятно как работать. Причем и у тех и у тех, как я понимаю, нет префабов в привычном для Unity или Unreal разработчика виде. Редактор отдельно, редактор материалов отдельно, PlayGround — вообще какой то мутный и непонятный в пайплайне инструмент. Что же, будем думать, пока весы перетягивают в сторону PlayCanvas.

Привет из 2022. Подскажите, пожалуйста, выбрали по итогу что-то?)

Раньше работал с Unity и сейчас стоит задача сделать игру под браузер.

Думал брать Babylon, но набрёл на Playcanvas и пока не могу понять, что лучше, какие подводные камни и т.д.

Sign up to leave a comment.

Articles