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

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

Вчера скомпилировал выделенный сервер для игры-заглушки на Unreal Engine… потратив три рабочих дня сперва на попытки изучить и следовать инструкциям и документации, а затем фрактально перебирая все возможные варианты. До этого момента был в восторге от движка, особенно от «чертежей», которые я смиренно называю блюпринтами. Делать простенькие, но очень красивые игры очень легко и быстро пока эти игры на одного игрока под родной платформой, даже не нужно знать С++, достаточно базового представления об алгоритмах и времени на просмотр обучающих видяшек на Ютюбе. Сейчас посматриваю в сторону Unity.
Я месяц уже не могу библиотеку nanomsg к анриалу прикрутить, для взаимодействия по ipc
Может проще через сокеты? Я так делал с Unity — там UDPSocket доступен. Для немассовых пересылок сообщений в пределах машины, думается, будет приемлемой заменой пайпам.
Да, спасибо, уже через сокеты делаю. Просто я думал, что сокеты в винде будут блокироваться.
Блокируется неймспейс Network.Data (System.Data или как-то так), из-за которого я в свое время во фришной версии юнити не смог реализовать обмен JSON'ами с использованием Newtonsoft.Json.
Но сами сокеты доступны и UDP работает хорошо.
Далее предстояло определиться, какой движок будем использовать. Вариантов было множество: от Stencyl, GameMaker до Cocos2d и Marmalade и, наконец, Unreal и Unity.

При таком разбросе, ребята по ходу понятия не имеют что делают. В итоге статья это не сравнение движков, а выбор того что им больше подходит для их проекта.
Открывая статью рассчитывал получить более-менее объективное сравнение и не только на одном единственном тесте. На единственном тест кейсе невозможно построить объективные выводы разработки проекта в продакшн. Более того, нет упоминаний о версиях движков и моделях девайсов. От некоторых очень смелых выводов хочется запостить ту известную картинку с Джеки Чаном, но я сейчас пишу этот коммент не за этим. Просто ради установления справедливости, пройдусь по нескольким моментам из статьи (оригинальная в данный момент к сожалению не доступна).

Джеки Чан №1:
Серьезно не хватает документации по C++

Складывается впечатление, что либо автор статьи пользуется другим источником документации для UE4, либо никогда не открывал документацию для Unity3D или (о ужас!) CryEngine. Интересно, чтобы он сказал тогда. К слову, у меня еще ни разу не возникло нюансов с недостатком документации и я считаю, что нет ничего проще чем самому заглянуть в тело метода и прочесть, что же именно он делает, если по какой-то причине недоступно его описание.

Джеки Чан №2:
UE4 поддерживает сборку для устройства с iOS лишь при условии, что ваше приложение состоит только из чертежей.
Это вина Apple

Я все же надеюсь, что это тонкости перевода, но с этой фразы я чуть не поперхнулся чаем, который пил в момент прочтения) На iOS невозможно собрать C++ UE4 проект и в этом виноваты Apple? Really?) Суть в том, что для сборки C++ проектов под iOS необходимы непосредственно OS X и Xcode. Как и в случае с Unity проектами под iOS. В противном случае из под винды можно собрать только BP проект. Строить из этого вывод, что под UE4 вовсе невозможна разработка на C++ для iOS – очень нелепо.

Проект Unity существенно компактнее чем Unreal

Здесь важны оговорки, во-первых в UE4 в проект по умолчанию билдятся все модули, которые совершенно точно не использовались в тестовом проекте. В Unity stripping делается автоматически, в UE4 же это необходимо дефайнить модули вручную в C++ проекте, который у автора «не билдится под iOS». Также по умолчанию во все проекты добавляется около 30мб ресурсов необходимых для Slatе. Это также отключается с помощью конфига. Во-вторых авторы не упомянули о раздувании размера Unity проектов на iOS при использовании IL2CPP рантайма, что теперь (с 1 июня 2015 года) обязательно если вы хотите опубликовать приложение в AppStore (IL2CPP поддерживает архитектуру ARMx64, а та устаревшая версия mono, которая используется в Unity — нет). Опять же, почему автор не привел версии движков, OS и моделей девайсов – не понятно.

Также хочу добавить, что не увидел о Unity3D минусов связанных с ужасной нестабильностью всех последний релизных версий движка на iOS, с ужасным количеством багов, которых с каждой новой версией становилось только больше на протяжении последнего полугода. Лишь только последнем патче для 5.2.1 удалось добиться более менее неплохой стабильности от IL2CPP бэкенда. Складывается впечатление, что у автора не было опыта разработки большого проекта на Unity под iOS, либо опыт был, но задолго до перехода Apple на обязательную x64 архитектуру для приложений.

P.S. Я не призываю к холивару – я призываю к объективности и осторожности с выводами.
Интересная ситуация. Вот правильная ссылка: www.makinggames.biz/features/unreal-vs-unity-which-engine-is-better-for-mobile-games,8472.html, в ней после games стоит запятая, но Хабра такую ссылку не принимает.

Большое спасибо за отзыв

Кстати, смутившая Вас фраза в оригинале формулируется так: " UE4 supports the ability to build to an iOS device if your project is blueprint only. This is the fault of Apple, but we had gone through the entire process of importing the iOS developer keys (quite a process) before it told us this"
BP проект
Расшифруйте, пожалуйста.
BP — BluePrint
Я все же надеюсь, что это тонкости перевода, но с этой фразы я чуть не поперхнулся чаем, который пил в момент прочтения) На iOS невозможно собрать C++ UE4 проект и в этом виноваты Apple? Really?) Суть в том, что для сборки C++ проектов под iOS необходимы непосредственно OS X и Xcode. Как и в случае с Unity проектами под iOS. В противном случае из под винды можно собрать только BP проект. Строить из этого вывод, что под UE4 вовсе невозможна разработка на C++ для iOS – очень нелепо.
Нет, перевод верен и означает он именно то, что означает. Хотя и ваши комментации тоже верны. Скорее всего в мире авторов статьи накого MacOS X нету и не будет. И всё.

Времена когда iOS приносил кучи денег и альтернативы, по большому счёту, не было — завершились. Теперь так: вариант, когда вам нужно купить кучу нового железа только для того, чтобы возможность собрать своё приложение под iOS более не рассматривается. Свершилось то, чего панически боялся Джобс когда он объявлял войну флешу: при наличии альтернативы разработчики не хотят (и, стало быть, и не будут) затачивать всё на одну платформу — тем более такую, где им могут в любой момент указать на дверь. Flesh, в конечном итоге, Apple убить смог, но, разумеется, подмять под себя всю индустрию он, как и в первой попытке — не смог. Дальше — только вниз.

P.S. Интересно, кстати, как дальше развиваться события будут. Сделать iOS SDK для Windows для Apple — не проблема ни разу. Но явно где-то «наверху» принято вполне себе политическое решение, что этого делать не нужно. Изменит ли Apple своё поведение, когда разработчики начнут уходить из AppStore'а? Посмотрим. Пока они только ворчат, но продолжают «жрать кактус» в большинстве своём.
юнити не требует стартовых взносов)
Похоже люди совсем не понимают, что делают.
притянуть в одну кучу мармелад, который по сути фреймвок, и движки анриал и юнити.
Делать какие-то выводы по фпс в редакторе. (можно смотреть на относительное кол-во кадров — в редакторе просел, наверняка и на девайсе просядет, но не мерять точный фпс в редакторе).
Не смогли разобраться с настройками канваса, лейаута, вытянуть тот же UI в префаб и редактировать отедльно, как душе угодно.
Они конечно в начале предупредили, что ни чего не знают и опыта у них нет, но толку от такого сравнения…
Мде. Это из разряда «мы ничего не знаем о вырезании аппендицита, но мы закажем исследование у известного плотника и он нам всё расскажет».

Сравнение нисколько не объективное (это при том, что я сторонник Юнити).
Соглашусь с AndyRoss. Однако, мне понравилась статья. Она скорее для начинающих, кто еще не определился с чего начать «свою игру». Эти парни, что сравнивали движки, делали браузерки и полезли в мобилки, кажется они поэтому и сравнивали Юнити и мармелад и прочее. Забавно видеть как кто-то набил кучу шишек, что и ты когда-то, с тем же iOS билдом и *.apk, с моделями и библиотеками?
Не увидела про какую версию UE и Unity идет речь, в это большая разница.
*я — фанат unity, работаю на кастомном движке, пилю игру на unreal)
Ужасный перевод поверхностной статьи.
Зачем это?
«Ужасное: Серьезно не хватает документации по C++»
В этом месте хохотал в голос. Т.е. раз UE поддерживает кодинг на С++, он должен и справочную информацию предоставлять по этому языку?
Вы бы отхохотавшись прочитали бы ещё пару предложений, что ли?
Серьезно не хватает документации по C++. Онлайновый справочный материал по классам C++ неудобен. Кроме того, из-за постоянных обновлений многие возможности быстро устаревают. Будьте внимательны, просматривая справочные видеоролики, поскольку там может описываться неактуальная версия движка и функции, которые больше не используются.
Совершенно очевидно что под кодовым названием «C++» тут имеется в виду не «язык C++», а «C++ API», который, разумеется, должен быть описать в документации на UE — где же ещё? Так что неясно над чем тут хохотать…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий