Как стать автором
Обновить

Комментарии 13

Графики, конечно, порадовали :)

А серьёзно: было бы интересно послушать сравнение по движкам, с которыми Вам приходилось работать.
Надеюсь, они выполнили свою задачу :)

Какой именно движок интересует? Могу про Leadwerks, к примеру, статью написать. Правда, не уверен, что он достаточно широко распространен у нас: доступ к форуму дается после приобретения лицензии + на нем нету полностью завершенных проектов (на мой взгляд, это самый большой недостаток) = не особо высокая распространенность в русскоязычной среде.

Если интересуют сравнительные характеристики нескольких движков, тогда для максимальной продуктивности лучше знать, а под какой проект вам нужен движок. К примеру, ААА игры на Unity3d делать определенно не стоит: не потянет.

Хотя, конечно, можно попробовать вывести большую таблицу со списком жанров и движками… интересная идея :)
А можно узнать, что именно в Unity3d не потянет ААА проект?
Конечно.

Во-первых, сам факт того, что на нем до сих пор нету ААА проектов. Одно это уже должно быть серьезным сигналом к тому, двиг для этих целей использовать не стоит (если вы сами не разработчик движка, естественно). Более того, я где-то читал официальные заявления на эту тему, если найду — выложу.

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

В-третьих, размер папки Library растет не по дням, а по часам, проведенным с движком. Ссылаясь на предыдущий случай, могу сообщить точные цифры: весь проект весит 1.873 мегабайт (папка Assets = 282 мегабайта, папка Library = 1.590 мегабайт). Причем оригинальные спрайты весят всего 47 мегабайт, а их атласы 182 метра. Дооптимизировался, называется.
Возможно, если экспортировать рабочий проект в отдельный файл MyProj.unitypackage, а затем распаковать его в пустой проект, может и получится совладать с Library, но я сомневаюсь, что кто-то захочет это делать регулярно.

Что еще хочу сказать… Опыт работы с 3dGameStudio подсказывает, что нету идеальных движков. Последний как раз претендовал на звание «движка, на котором можно сделать любую игру» несколько лет назад. Как у него сейчас с этим дела я не знаю, но из того, что о нем ничего не слышно, можно делать вывод, что дела неважные.
Так о чем это я? Да, так вот: Unity3D отлично подходит для мелко-средних кроссплатформенных приложений. Имхо, именно в этом направлении его эффективней всего использовать.
>> А когда дело дошло до запекания их в атласы
А как время, затраченное на подготовку контента, влияет на скорость работы движка? Я, например, готовлю атласы через расширение самой оболочки unity3d, на выходе получая готовые текстуры.

>> (у меня было около тысячи отрендеренных спрайтов), двиг ооочень напряжно их воспринял.
Опять же — разговор про процесс первоначального импорта (в результате которого происходит их внутренняя конвертация под настройки и генерация превью) или в рантайме? Если в рантайме, то это скорее проблема количества GameObject — нельзя их хранить линейным списком — нужно группировать в иерархию для более быстрого отсечения по BBox-ам родителей.

>> Причем оригинальные спрайты весят всего 47 мегабайт, а их атласы 182 метра.
Забавно, не должно быть такого, если только не крутилось сжатие у атласов руками в сторону его уменьшения / отключения. Еще нужно понимать, что нельзя делать слишком большие атласы (<=4k на десктопе, <=1k на мобилках) чтобы работало относительно стабильно на большом парке железа — лучше сделать несколько отрисовок с меньшей прокачкой текстур, чем наоборот.
//Опять же — разговор про процесс первоначального импорта (в результате которого происходит их внутренняя конвертация под настройки и генерация превью) или в рантайме?

В рантайме все окей, в основном проблемы при первоначальном импорте, скорости загрузки самого редактора при большом количестве объектов, а так же комфортности работы.
Наример, поиграться в тем же сжатием проблематично: после клика по объекту, нужно ждать около минуты, пока движок его обработает.

Кстати, еще есть проблема с работой с памятью: при импорте атласов, приходилось периодически рестартовать двиг, так как он отжирал слишком много памяти и запекание фейлилось. Использовал UIToolkit — возможно, это было не лучшее решение.
Тормоза при импорте текстур наступают только в момент их первоначального детекта оболочкой и при смене платформы. Если не дергать туда-сюда тысячи новых картинок и не переключать платформы — тормозов не ощущается.

>> Кстати, еще есть проблема с работой с памятью: при импорте атласов, приходилось периодически рестартовать двиг, так как он отжирал слишком много памяти и запекание фейлилось.
Генерация атласа прекрасно реализуется встроенным функционалом: docs.unity3d.com/Documentation/ScriptReference/Texture2D.PackTextures.html, доступным как в редакторе, так и в рантайме.
Угу, спасибо за совет — в текущем проекте я именно его и использую.

Тормоза при импорте ощущаются непосредственно при импорте, согласен. Однако, тормоза при выделении объекта с туевой хучей спрайтов, соответственно, ощущаются при выделении объекта :)
Замечание по «мелочам». Если добавить параллакс на сцену, то игра будет значительно сочнее смотреться… сейчас ощущение что самолет просто висит в воздухе и никуда не летит…
Спасибо, я над шейдерами пока на заморачивался, так как в условии к тестовому заданию было сказано «забей на графику, мы хотим проверить твои программерские скиллы».

Однако, думаю, пока буду доделывать — дополню статью мелкими хинтами, по использованию тех же шейдеров — они как раз попадут в 3 категорию. Или может отдельную статью напишу, где более полно распишу эту категорию, включая шейдеры.
Думаю речь была не про шейдеры и не про parallax-mapping.
думаю, dmbreaker прав. Игра воспринималась бы намного сочнее при наличии parallax scrolling. Но действительно, если в тестовом задании такой задачи не стояло, это ненужное усложнение.
Что-то я умудряюсь летать на отрицательных высотах )))
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации