Unity — бесплатный кроссплатформенный 3D движок (и браузерный тоже)

Преамбула


Итак, сегодня я хотел бы рассказать вам о Unity (тем, кто ещё не знаком с ним, по крайней мере). Безусловно, на Хабре есть люди, которые знают, что это такое, но поиск выдаёт катастрофически малое количество топиков с упоминанием сабжа — два из них просто сообщают о новых версиях, один кратко презентует и ещё один посвящен всё-таки его использованию. «Непростительно, надо это исправить!», — подумал я, и решил написать краткий презентейшн с целью популяризации технологии. Если вы уже в теме — дальше можете не читать.

Честно говоря, когда я читал на википедии о бесплатном (по крайней мере, с вполне нормальной по функционалу фришной лицензией) 3d движке с нормальным IDE, встроенной нормальной физикой, аудио-движком и прямой реализацией сетевого мультиплеера на котором можно делать приложения для всего, кроме, пожалуй, nix'ов (поддерживаются и нормально работают Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360), я уже чуял подвох.

Когда я узнал, что любое приложение под Unity можно собрать в специальную версию для встраиваемого в браузер плагина, и увидеть в окне Фаерфокса честное, полноценное тридэ, практически не занижая при этом качество моделей и разрешение текстур — я был почти уверен, что это, как всегда в подобных случаях, полная чушь.

А когда я поставил это чудо себе и убедился в правдивости всего вышесказанного — я почти что влюбился.

Много раз на свет появлялись технологии, которые ставили перед собой цель перенести в интернет честное тридэ. Вспомним провальный VRML, чуть менее провальный ActiveWorlds… Сегодня о них почти никто не помнит. Скоро весь мир заполонит HTML5, выйдет новый флэш с 3d-ускорением… Но пока этого не случилось, миром мультимедийного контента в вебе правит текущая версия Flash, вместе с Java и Silverlight'ом. Пожалуй, даже только Flash. Разработчики со скрипом пользуются другими технологиями, оно и понятно — заставить пользователя поставить ещё один сторонний плагин лишь для того, чтобы поиграть в одну игру/посмотреть один сайт сложно.

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

Посмотреть можно много где, но для примера приведу несколько ссылок. По ссылкам вам предложат установить плагин — он весит килобайты и работает без перезагрузки браузера (к сожалению, размер демок вычислить не удалось, поэтому осторожно — размеры могут быть в районе 30-50 метров):
  • Bootcamp — демо к третьей версии, шутер от третьего лица, можно сказать лицо всего движка на данный момент. Также внизу там можно понажимать на другие демки — большинство относится к старым версиям, но все равно можно посмотреть
  • Раздел Юнити на Kongregate.com — тут игры уже адаптированные для веба, весят не больше обычных флешек
  • Список игр на офсайте — тоже можно посмотреть

Давайте же попытаемся разобраться, что же это за зверь такой, и действительно ли он так хорош, как его малюют на офсайте.

Pro et Contra


Для начала, определимся с терминами. Unity — это полноценный игровой движок, рассчитанный на то, что весь процесс девелопмента (ну, кроме подготовки ресурсов и скриптинга) будет происходить в поставляемом в комплекте Редакторе Всего. Обычно такая постановка вопроса означает нежизнеспособного монстра, обросшего тормознутым GUI по самое не балуйся, рассчитанного на то, чтобы дать подросткам из разряда «геймдев-ваннаби» почувствовать себя причастными к геймдеву. Но не стоит пока закрывать вкладку с этим топиком — Юнити не из этого теста. Итак, чем же хорош Юнити? Посмотрим, а заодно сравним с UDK — SDK к UnrealEngine 3, который Epic Games не так давно сделали бесплатным для независимых разработчиков.

Хорош Юнити:
  • Своим IDE — он сочетает редактор сцен (он же редактор всего далееперечисленного), редактор игровых объектов, и даже простенький редактор скриптов вложили. Кроме того, в комплекте идет генератор деревьев а-ля SpeedTree (неплохой) и террейнов (стандартный, удобный);
  • Возможностями для скриптинга — в отличие от UDK, в котором писать можно только на встроенном самописном языке, в Юнити доступны аж три языка: JavaScript, C#, и диалект питона под названием Boo. Мной лично не проверялось, но в русском коммьюнити проскакивали фразы о том, что скорость исполнения скриптов в UDK в разы меньше (оно и понятно — в Юнити ведь скрипты компилятся в нативный код);
  • Кроссплатформенность — как уже упоминалось выше, поддерживаются Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 и XBox 360. Ну и веб-плагин, конечно, забывать не стоит. Не все из них доступны по фришной лицензии (вообще-то, доступны билды только под Вин, Мак и веб), но это вполне понятно. Под Вин и Мак все компилится вообще без всяких изменений в коде, под веб прийдется, конечно, порезать ресурсы — качать 400 метров чтобы открыть один уровень в браузере не очень-то удобно. Работу веб-версии опишу ниже;
  • Вполне современный уровень графики — тому же UDK по количеству реализованных фич Юнити, конечно же, проигрывает — все-таки UnrealEngine можно назвать одним из флагманов по этой части, и переплюнуть его сложно. Но в Юнити есть deferred освещение, встроенный редактор шейдеров, стандартный набор постпроцессинговых эффектов (полный список, можно и свои писать естессно), модный нынче SSAO — короче говоря, весь набор инструментов для создания AAA-проекта есть. Лайтмапы кстати делает более чем достойно и шустро;
  • Физдвижок — есть все, что должен уметь физдвижок. Сделать свой Half-Life 2 с ну-вы-сами-знаете-с-чем? Легко!
  • Производительность и масштабируемость — без колебаний ставим «отлично». Потому что с большей частью рутины в этом отношении движок справляется сам, и справляется замечательно;
  • Запуск любого приложения в веб-плагине — мы об этом уже говорили, но не грех отметить и еще раз.
  • Невысокая цена за лицензию — всего 1500$. И бесплатная версия, без некоторых плюшек;

Ну вот как-то так. Теперь обсудим, чем же он плох:

  • Он закрыт. Т.е. исходных кодов вам не дадут даже по лицензии. С UDK, если я все правильно понял, та же картина — исходники лицензируются отдельно, за бОльшие деньги. Впрочем, в Юнити скриптами можно совершенно то же самое, что мы делали бы с исходниками — замоддить можно практически всё… Но всё-таки исходники всяко лучше, поэтому это минус — по крайней мере для тех, кто хотел бы прикрутить стороннюю физику или тот же SpeedTree;
  • ????
  • PROFIT.

Честно говоря, реальных минусов я пока что не вижу. Движок стабилен, производителен, легок в использовании — а что ещё надо? Недостатки наверняка есть. Так, я часто натыкался на репорты о странно работающем аддитивном блендинге анимаций. Некоторые жалуются на отсутствие назначения множественных материалов террейнам — не знаю, не пробовал. Но так ли это существенно в свете вышеуказанных плюсов? По мне так нет.

Дело в том, что у большинства небольших команд основной проблемой всегда становился движок (ну и отсутствие идеи и хорошего арта конечно же, но мы сейчас не об этом). Писать с нуля — единственному программисту в команде сложно это сделать, учитывая что движок это не только 3d-рендер, это ещё и куча инструментов пайплайна — импортеры, редакторы, вьюверы… Непосильная задача, если только не придерживаться минимализма. Минимализм это не плохо, столько замечательных игр сделано во всеми нами любимом стиле 8-bit, что не счесть… Но большинство из них — однодневки (Minecraft не в счет, да. И он кстати тоже написан не с нуля, а на LWJGL). Когда дело доходит до игры, в которую будут играть не один день, нужен полноценный движок, и тогда мы начинаем искать бесплатные решения. Ogre, Irrlicht и немногие им подобные — хороши конечно, но а) морально стары и б) на их изучение и допиливание до работоспособного состояния требуют много времени и большую теоретическую базу за спиной. Конечно и на них можно написать крутой продаваемый проект (Torchlight на Ogre тому примером), но тут все-таки нужен не один программист. Есть и наборы а-ля «игры без знания языков программирования», типа GameMaker, но это игрушки, право слово.

В случае с Unity же мы имеем уже готовый пайплайн, готовый рендерер, готовую физ., аудио и сетевую библиотеки, кодить можно на знакомом языке — фактически, со стороны кодинга нам нужно только знать основы, допустим, Яваскрипта, и недельку покопаться в официальной справке, чтобы склепать FPS. Минус одна преграда на пути к релизу. Если кто не верит в качество написанного чужими руками кода, который нельзя поправить — зацените, все совсем не так плохо.

Как это выглядит


Картинки кликабельны.

Собственно IDE:

image

Прямо в IDE можно нажать кнопку «Play», и протестить текущую сцену реалтайм:

image

Встроенный инспектор классов прощупывает, простите за тавтологию, классы на предмет переменных и позволяет менять переменные в скриптах на лету, не глядя в код. Причем не только int'ы, но и материалы, текстуры, модели… Очень экономит время. В документации к API указывается хорошим тоном не писать, допустим, путь к текстуре напрямую в скрипте, а просто делать свойством класса пустое свойство соответстующего типа, и выбирать в инспекторе нужное:

image

Инспекторы префабов (справа) и энтитей (слева). Грубо говоря, справа — заготовки объектов, слева — те объекты, что есть в текущей сцене. Удобно, что во время прогона уровня в редакторе (кнопка «play»), можно поставить прогон на паузу и посмотреть текущее состояние объектов — гораздо реже приходится читать логи или выводить на HUD дебажную строку, чтобы посмотреть поведение одной маленькой переменной:

image

А напоследок я скажу...


Подытоживая весь словесный мусор до этого момента, если вы делаете ААА-проект, вы, скорее всего, напишите свой движок. Или у вас уже есть движок от прошлого проекта. Или вы купите что-то уровня пресловутого UnrealEngine 3 с исходниками. Но это если вы делаете ААА-проект с десятком людей только на кодинге.

Если же у вас всего десять человек в студии (а тем паче, два), писать свой движок, как правило, слишком затратно. Одно искушение оказаться на волне полноценных браузерных 3D-игр (java-обертка для Ogre не в счет. Ну правда же) стоит того, чтобы попробовать Unity на практике. Скорость и сложность разработки обычной браузерной казуалки на ней не выше, чем на Flash, а графическое превосходство — налицо. Да и wow-эффект никто пока что не отменял.

В конце концов, на Unity можно делать сайты (спорно, но можно), презентации, визуализировать научные проекты… Все это можно было написать и вручную, на чистом OpenGL, но сравнив время и качество реализации, я все-таки склоняюсь к варианту на Unity. Flash пока что тоже в расчёт не берём — подождем релиза аппаратного 3d-ускорения.

Такие слова вызовут бурю эмоций у приверженцев других движков. «Да это все есть и в %enginename%», «на %enginename% сделана %gamename% и %gamename%, и все это без мерзкого всепоглощающего drag'n'drop'а»…

Я посоветую вам просто дать Unity шанс — своим удобством, возможностями, гибкостью и скоростью разработки она подкупает (по крайней мере, меня подкупила). И кроме того… Эй, это же полноценное тридэ в браузере! :)

UPD: ghisguth справедливо напомнил про русскоязычное комьюнити (довольное большое и активное) и кладезь скриптов, а также кладезь юзерских скриптов и туториалов.
Поделиться публикацией

Похожие публикации

Комментарии 121
    0
    минус — пространство System.Drawing вообще в упор не видит, как не пытайся его прикрутить
      0
      Хм, интересно. Надо попробовать. И чисто человеческий интерес заставляет спросить: а зачем? :)
        0
        нужно было на лету из шрифта текстуру генерировать, окрашивать ее и прочее, с дравингом — это все можно было сделать, даже применить различные эффекты на текст при необходимости и только потом конвертировать текстуру в Texture2D, а так — пришлось делать карту шрифта, заранее ее создавать, т.е. об различных эффектах к шрифтам речь уже перестала идти, вот так вот
          0
          был еще вариант рендерить трехмерный текст на камеру в нужную текстуру, но тип, который является текстурой в которую можно рантайм рендерить — доступен только в платной версии)
            0
            Понятно. А вообще странно, почему стандартный класс мог не заработать. Единственное, что могу предположить — из соображений кроссплатформенности режется всё, что нельзя портировать. Врядли на Андроиде есть System.Drawing

            Кстати, а не вариант ли взять триал на платную версию и элементарно взять за образец их класс, реализующий, допустим, постпроцессинговые фичи? Давно об этом думал, но всё как-то руки не доходят.
        0
        а зачем? В своем проекте я похачил пост рендеринг и рисовал UI при помощи простых рендеров в текстуры и GL вызовами. Зачем System.Drawing если есть такое?
          +1
          Unity хорош, но прежде чем бросаться писать осмыслите 2 минуса
          1: ЗД не панацея и применять его надо осторожно. Посмотрите на топ аппстора — там в основном 2д игры. Посмотрите на соц игры в которые играют сотни миллионов — там нет 3д. Только небольшое количество игровых механик по настоящему требует 3Д.
          2: Сделать сочную притягательную графику на 3Д гораздо сложнее чем на 2Д и удается это только профессионалам. Любители и новички делают с 3Д картинку вызывающую страх и ужас…
            0
            полностью согласен. Но всё таки…

            1) не осторожно, а знаючи. тридэ можно влепить куда угодно, но действительно, надо трезво оценивать, где оно стоит того, а где 2д лучше себя покажет. К сожалению, пока почти никто этого реально не применяет (в смысле мыслительный процесс связанный с одумыванием целесобразности тридэ); на мобильных устройствах сложно нарисовать качественное тридэ — нужна хорошая дизайнерская работа.
            2) воистину, но ведь это недостаток новичков и непрофессионалов, а не движка :) Чем больше людей обратится к тридэ на айфоне, тем скорее появятся стоящие вещи на нем.
          +1
          Эт то да, Unity очень круто, но… дорого!
          Большая студия ещё потянет такие расходы, а вот одиночки и мелкие компании…

          Flash и Unity на сегодня не конкуренты, разные области. Конкурентами они станут, наверное, только после выхода Flash 11.
            +2
            Да, о временной «неконкурентности» я упомянул в конце. Хотя, если честно, достаточно сравнить весовые категории Адоба и разработчиков Юнити — скорее всего, даже если Юнити будет выигрывать по всем статьям, флэш позиций не сдаст. Слишком долго им пользуются и слишком многие. И маркетинг у Адоба покруче.

            А про цену — ну разве 1500$ это дорого? Три человека могут потянуть это даже без сильных голоданий. Конечно, если купить полный комплект, с iOSpro, AndroidPro, и AssetServer'ом, получается 5000$, но и потенциальная прибыль всё-таки растёт на глазах.
            –1
            Едиственное, что мне не понравилось в Unity3D это то как работает GUI — OnGUI вызывается чаще чем каждый фрэим, и какая-то странная работа с сетью, проще самому написать чем использовать их сетевую часть.
              0
              Вот тут-то и вылезает отсутствие исходников.

              Но, надо отметить, на стандартной реализации сети даже ММОРПГ пишут (за качество не ручаюсь, но пишут же). Организация неочевидная, не поспоришь, но по крайней мере в фришной версии можно стерпеть
                0
                У RPG на Unity3d есть один минус — они все одинаковые. Все используют один и тот же бэкэнд. Однако NFS: World написана на юнити.
                Мне вот сейчас интересен UDK, но там только под винду IDE.

                p.s.
                не плохо было бы сделать обзор 3d движков под iOS. Мои данные за год могли уже устареть.
                  0
                  Если игры все одинаковые — это скорее лажа со стороны дизайнеров/артистов/тех кто игровую механику делает. Просто большинство разрабов предпочитает использовать встроенные решения для многих вещей, не пиля ничего под себя. Оттого и чувство, что штамповали их на одном станке :)

                  Про обзор — да, я тоже не в курсе последних тенденций. Нынче все кому не лень клепают конвертеры под iOS. Если время будет — обязательно покопаюсь.

                    0
                    Вики говорит, что на данный момент под iOS есть Bork3D, ShiVa, Torque 2D и Unity. Как минимум UDK ещё они забыли. Будем копать и сравнивать.
                      0
                      Много больше их. Правда из адекватных наверное штуки 3 забыли.
                        0
                        SIO2 вон развивается, про oolongengine и catcake я молчу
                        0
                        Torque пока с непонятным будущим, www.garagegames.com/community/blogs/view/20774

                        компания увольняла сотрудников, пыталась продаться и т.п. Вроде продались, но пока хз
                    0
                    Для реализации своего GUI или сети в данном случае исходники особенно не нужны.
                    +1
                    То, что OnGUI вызывается чаще одного раза за фрейм — написано в документации и вполне себе логично.
                      0
                      потом, когда отключения UI будет понижать фпс до 10 из 30, Вы возможно пересмотрите свою позицию…
                        0
                        Что вы так реагируете-то. Я просто не вижу смысла в вызове OnGUI чаще чем раз в фрэим. Кстати, не могли бы вы объяснить как отключение GUI понижает FPS, я реально не могу понять.
                          0
                          видимо имелось ввиду повышать :)
                            0
                            Да, не поймите не правильно. Просто делюсь опытом. Использование отрисовки UI чисто методами Юнити понижали производительность очень сильно. Пришлось писать костыли и рисовать самим (уже довольно давно работаю с этим движком, был на множестве конференций и сборищах по поводу него, и проблем в нем очень много если тесно поработать два года)
                              0
                              Там у вас опечатка, вы написали «понижает» поэтому я не понял как такое возможно.
                        +10
                        Кому не сильно лень, проголосуйте за Unity на Linux пожалуйста :) Это одна из возможностей получить более менее полноценный 3D движок для игр и надежда в появление нормальных игр на Linux.

                        feedback.unity3d.com/forums/15792-unity/suggestions/164961-platforms-linux-player-web-player-support?ref=title
                          +2
                          Проголосовал :) Отсутствие портирования под никсы всегда расстраивало. Вот казалось бы, что им мешает? Ладно разработчики боятся пиратства привыкших к халяве линуксоидов, но с самой Юнити-то не убудет с этого…
                            +10
                            По поводу «привыких к халяве линуксойдов» возражу.

                            Можно взглянуть скажем на среднюю продажу недавно прошедшего Humble Indie Bundle, заплати сколько хочешь за несколько отличных Indie игр.

                              0
                              Я на линуксоидов бочку не катил, «привыкшие к халяве» — это было мысленное клише основной массы девелоперов. Надо было взять в кавычки.

                              Humble Indie Bundle кстати отличная акция была, очень показательная в плане возможных объемов рынка игр под Линукс. Мне так кажется, это было своеобразное прощупывание почвы — типа, стоит вообще делать порты под Линукс или нет. Надеюсь, я прав и скоро это перестанет быть сладкой мечтой
                                +2
                                Очевидно же — пользователям Win приходится больше тратиться на различные игры/софт, саму ОС в конце концов. Nix пользователи же, в основе своей довольствуются бесплатными приложениями, отсюда и больше сэкономленных средств, которые, как в данный момент, можно пожертвовать на развлечения.
                                +2
                                >Ладно разработчики боятся пиратства привыкших к халяве линуксоидов...

                                Странно. А пиратства со стороны привыкших к халяве вин-юзеров они не боятся?
                                  0
                                  Ну я просто не вижу других причин не выпускать порты под линукс. Раньше рынок был маленький, но сейчас-то все не так
                                  0
                                  Вот когда еще и железо линуксоидам бесплатно давать будут, то можете называть их халявщиками)
                                  А по поводу Unity — отсутствие на linux не дало мне попробовать BSG Online =(
                                    0
                                    кстати, много раз на неё натыкался, но ни разу не тестил реально. Стоит оно того? На словах-то у них все красиво, но и форум тощий, и вообще всё как-то мутно. В Юнити мне нравится документация и широта сообщества — без этого тяжеловато было бы
                                      0
                                      Я тоже не знаю, в комментах прочитал.
                                        0
                                        Шиву я смотрел. Интерфейс очень… эээ… недружелюбный. Скачал пару мануалов, начал разбираться по ним и на очередном шаге иде вылетел и потом не хотел загружать сохраненный проект. В общем это отбило у меня все желание продолжать.
                                      0
                                      За ночь более 250 голосов, неплохо :)

                                      Я замечаю что многие комментируют, но не голосуют. Что бы проголосвать надо нажать на кнопку Vote прямо под счётчиком голосов слева и выбрать количество голосов которые вы готовы отдать за эту идею, +1, +2 или +3.
                                        0
                                        Пожалуйста, две божественные RPG, доступные для всех трех платформ. Игр на Linux достаточно, просто о них не упоминают на обложке известных журналов.
                                          0
                                          И всё же, количество хороших игр под Linux всё ещё оставляет желать лучшего.
                                          0
                                          Тот самый редкий случай, когда сработало и сегодня расцвет игр на юньке под линух)
                                          +20
                                          Кстати, как думаете, может наваять на хабре цикл туториалов для начинающих? Ну там для расширения комьюнити etc
                                            +8
                                            да, неплохо было бы
                                              +8
                                              Окей, начну тогда писать потихоньку. Если у кого есть пожелания — сделать туториал по скролл-шутеру, например, или по FPS, говорите… Мне лично официальные пдф-ки с туториалами по шутеру и по платформеру не очень-то понравились. Сумбурно там как-то все описано, без объяснений сути действий которые тебе говорят делать.
                                                0
                                                Может просто перевести имеющиеся и расширить некоторые моменты?
                                                  0
                                                  Можно было бы, но переводить эти талмуды дольше чем с нуля написать. К тому же лично мне их изложение не понравилось — я гораздо больше из референс АПИ почерпнул
                                                  0
                                                  Интересно всё. Больше хотелось бы симулятор (гоночки) и fps.
                                                    0
                                                    Народный интерес сходится к fps — первым будет он :)
                                                0
                                                да, было бы очень неплохо! в наждежде на материалы карму поднял :)
                                                  0
                                                  Спасибо большое :) А то я ещё думал вчера — блин, пообещал, а кармы не хватит. А просить неудобно…
                                                  0
                                                  Лучше напишите про OpenGL ES + GLSL основа WebGL как-никак.
                                                    +1
                                                    С радостью бы написал, но это тема для отдельного разговора — как вам ниже уже написали, это стандарты, а тут речь о движках шла. К тому же, если честно, я с ним в глаза-то ни разу не виделся :) Не уверен правда, что он сильно отличается от обычного OpenGL'а. По которому, впрочем, тоже внятных туториалов для начинающих — крупицы
                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                      0
                                                      Читайте внимательнее, там в плюсах есть:

                                                      Возможностями для скриптинга — в отличие от UDK, в котором писать можно только на встроенном самописном языке, в Юнити доступны аж три языка: JavaScript, C#, и диалект питона под названием Boo. Мной лично не проверялось, но в русском коммьюнити проскакивали фразы о том, что скорость исполнения скриптов в UDK в разы меньше (оно и понятно — в Юнити ведь скрипты компилятся в нативный код);
                                                        0
                                                        А примеры исходных кодов я не стал пихать потому что если честно великоват топик получился и так. Как я выше писал, постараюсь в ближайшее время написать парочку туторов, вот там-то и будут исходники.
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                            0
                                                            JavaScript — это ежели обобщать, C# с нестрогой типизацией.
                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                +1
                                                                Да тот же ActionScript короче. Переучиваться не прийдется, синтаксис почти такой же
                                                                  +2
                                                                  Ну я бы даже сказал, AS3 сегодня это то чем должен был бы стать JS, но так и не стал, к сожалению.
                                                                  0
                                                                  Я посмотрел на него в Mono ;)
                                                          –3
                                                          Эм, а зачем движок, когда есть WebGL в HTML5 и FF4 и webkit-браузеры уже его поддерживают?
                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                              0
                                                              Разумная критика. Но всё же мне кажется, что свободное решение, для которого можно сделать множество IDE и которая развивается сразу множеством очень крупных фирм (Google, Mozilla, Apple, W3C) — гораздо более перспективная вещь. Плюс он уже есть в браузерах и у него ниже порог входа для новых разработчиков (так как это просто расширение JS).
                                                              Unity мне кажется только временной заменой на 1—2 года. И то, не из-за технологии, а во многом из-за наличия готового IDE и библиотек.
                                                                +2
                                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                                    0
                                                                    > Нет/Мало готовых движков
                                                                    Есть и не мало GLGE, C3DL, Copperlicht, SpiderGL, SceneJS, Processing.js но полноценным движком назвать сложно. Очень хороши SpiderGL, SceneJS.
                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                        +2
                                                                        Это больше фреймворки чем движки. И навряд кто-то согласится инвестировать деньги в разработку используя плохо обкатанные технологии, с проблемами в реализации на разных платформах, браузерах, невозможности нормально закрыть ресурсы игры, сделать p2p (даже связь с сервером типа websockets не сделали еще стандартизировано)… Такие решения скорее для использования в веб интерфейсах энтузиастов, но уж точно не 3D игр, которые даже будучи реализованы на компилируемых языках, используют все ресурсы компьютера.
                                                                  +1
                                                                  webgl это НЕ движок.
                                                                  0
                                                                  Хорошая статья, спасибо.

                                                                  Не соглашусь с Вами насчет Ogre 3D. Во-первых, это самый мощный свободный движок, и весьма мощный среди коммерческих продуктов (скоро обещают допилить direct11, тогда, вполне возможно, утрет еще большее количество коммерческих движков). Во-вторых, количество поддерживаемых форматов, GUI, физических движков и т.д. — огромно! В-третьих, куча документации и книг (в т.ч. и на русском). В-четвертых, изучить его просто, и даже можно написать хороший продукт чуть ли не в одиночку (эту игру написало всего 2 человека).

                                                                  Прибавляем сюда бесплатность и исходные коды.
                                                                    0
                                                                    Возможно я давно не смотрел не апдейты Огра. Как у них там с освещением сейчас, динамическое есть? Раньше он стандартными средствами не резал невидимые полигоны попадающие во вьюпорт, а сейчас как? Движок хороший, с огромным потенциалом, но во-первых это не игровой движок, а 3d, то есть звук, физика — все надо искать и прикручивать. Да и в целом затараты на разработку в разы выше, в том числе из-за отсутствия пайплайна. И кстати о форматах… разве огр не исключительно свой .mesh хавает? Наверное я зря привел Огр в пример, все-таки разные классы это с юнити. Просто хотелось провести аналогию с чем-то более известным.
                                                                      +1
                                                                      освещением сейчас, динамическое есть?

                                                                      Конечно! Все есть.

                                                                      невидимые полигоны попадающие во вьюпорт, а сейчас как?

                                                                      Видимо, Вы использовали уж очень старую версию Огра. Сейчас это делается одной строкой.

                                                                      но во-первых это не игровой движок, а 3d

                                                                      Да, и в этом основная фишка движка. Не для всех проектов нужен игровой движок — иногда как раз нужна система качественного рендеринга и поддержка распространенных форматов.
                                                                      Потом, звуковые и физические движки отлично прикручиваются от сторонних разработчиков. Хочешь bullet — прикручивай bullet, хочешь PhysX — прикручивай PhysX. Опять же, по всем этим отдельно подключаемым модулям присутствует отличная документация.

                                                                      Да и в целом затараты на разработку в разы выше, в том числе из-за отсутствия пайплайна

                                                                      Не думаю, что на этот вопрос можно так просто ответить. На Огр уже много всего реализовано, много всего прикручено, везде полно документации, отличное русское и американское сообщества. Найти разработчиков под Огре тоже вполне реально.
                                                                      Все-таки я соглашусь, что если начинаешь с нуля, то на Огре вряд ли у тебя будет сразу какой-то видимый результат, в отличие от Unity. Но конечный результат, при должной работе, лучше будет на Огре.

                                                                      разве огр не исключительно свой .mesh хавает?

                                                                      Тут вы абсолютно правы.
                                                                      Я имел ввиду, что Огр поддерживает экспорт в меш из всех возможных 3д-редакторов.

                                                                      Unity действительно подкупает своей простотой, надо будет все-таки его попробовать.
                                                                        +1
                                                                        Уже качаю последний релиз :) Я вопросы эти задавал не чтобы уличить Огр в устарелости, а просто интересно, как у них дела.

                                                                        Если честно, Огр мне тоже очень нравится. И если уж совсем честно, я не люблю делать все через интерфейсы, в нутро которых ты никак не влезешь — с исходниками как-то легче дышится. У меня до сих пор пылится на полке штука, которую я с большим удовольствием на нем писал полгода, а потом отпала необходимость в этой штуке :( Но мне все-таки кажется, что в мире было бы куда больше хороших игр, если бы входной порог в дверях 3D-программирования был пониже. Потому что все-таки даже сейчас, когда в инете полно туториалов по программированию трехмерки, начинающему надо очень много материала перелопатить, переварить и осмыслить, чтобы сделать простое передвижение и, допустим, выделение мышкой.

                                                                        Конечно, такие вещи как Юнити привлекут в первую очередь ленивых геймеров, которые хотят сделать свой Сталкер и не постараются напрячь свой мозг чтобы вникнуть даже в самый простой скрипт… Но и сколько молодых перспективных проектов не загнулись бы, если бы у них был такой инструмент!

                                                                        Да, возможности в конечном итоге ограничены, да, не все идеально, но зато удобно, быстро и просто — порой стоит делать выбор все-таки в эту сторону. А казуалки на нем для веба и не для веба делать — вообще одно удовольствие.
                                                                          +1
                                                                          И, тем не менее, на Unity делают серьезные проекты (взять ту же EA).

                                                                          Ogre 3D — это, пожалуй, лучший старт для тех, кто хотел бы серьезно заниматься гейм девом. Разобраться, как все устроено, как все работает, зачем все нужно. Понять, что одному движок не написать :)
                                                                          Естественно, есть таких целей не стоит, то лучше взять что-нибудь попроще.
                                                                        0
                                                                        И демка с солдатом действительно впечатляет.
                                                                          0
                                                                          Меня в ней почему-то больше всего порадовала анимация движения. Это конечно заслуга не движка, а скриптеров, но уж больно натурально он ноги переставляет!
                                                                      +6
                                                                      Автор аккуратно опустил две очень серьёзные проблемы:
                                                                      — Игры на Unity требуют большого трафика,
                                                                      — Нельзя использовать сложные динамичные сцены.

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

                                                                      Моё личное мнение:
                                                                      — Движок Unity, конечно инновационный, но для широкого применения в игровой индустрии ему пока рано, иначе, мы можем получить огромную кучу простых и нудных игр.
                                                                        0
                                                                        Не, ну это вы все зря говорите. Обьем игр отлично масштабируется, и при качестве лучшем чем у флеша размер остается меньше чем у оного. Если бы на флеше делали полноценные игры, они весили бы не меньше. А на размер демок не смотрите — на то они и демки, чтобы на полную движок напрячь. И кстати всю игру целиком как правило грузить не приходится — динамически лоадится только текущий уровень.

                                                                        И сцены динамические делать можно — без всяких плясок с бубном. Вы попробуйте, все просто.

                                                                        А про сложный бой я вообще не пойму о чем вы. Такая ситуация возникнет если у кодера писавшего АИ все плохо. Скрипты на юнити крутятся шустро. И игровую механику можно реализовать любую. Отсутствие пока что хороших законченных проектов это вопрос времени — третья версия ведь не так давно вышла.
                                                                          0
                                                                          Ну, помимо игр на флеше существует огромное количество игр без его использования. Такие игры как минимум в 4 раза быстрее и по графике не очень уступают. Но дело не в этом.

                                                                          Под сложным боем Я имел в виду совместную игру нескольких игроков. Для Unity это является узким местом. Опускать этот момент нельзя, т.к. основное требование к современным играм — это высокая степень социализации. Игроки хотят играть в игры со своими друзьями. Отметьте, что в социальных сетях игр на Unity практически нет.

                                                                          Время Unity ещё не наступило — должно пройти несколько лет, что бы техническая часть подтянулась для реализации 3D браузерных игр.
                                                                            0
                                                                            Про флеш я сказал потому, что вы начали разговор с веб-версии, а тут главный конкурент налицо. Среди обычных движков конкурентов у Юнити больше, конечно.

                                                                            А такое ли узкое место? На том же Kongregate я бегал в шутер «а-ля контра» с восемью игроками, и ничего. Некоторых лагало, но это потому что у игры не было центрального сервера с нормальным каналом и хорошей доступностью со всего мира. Согласитесь, без этого ни одна игра через интернет не реальна. Долго искал забытую ссылку на мморпг с юнити, нашел: статья-подтверждение, сама игра.

                                                                            И время юнити имхо прийдет тогда, когда им начнут пользоваться — тогда многие костыли отпадут сами. Я не стремлюсь навязать вам своё мнение, просто ваш негативный опыт общения с юнити — скорее всего просто неудачное знакомство :) У него есть недостатки, но считать реальным недостатком его работу с сетью все-таки не стоит.
                                                                              0
                                                                              3д игры на флеше на данный момент сильно уступают по уровню графики таким же играм на юнити. С тем, что флеш работает в 4 раза быстрее чем юнити — не согласен. Про так называемые «узкие моменты» написал здесь.
                                                                          0
                                                                          Работал как то с Unity3D (2.6). Сеть там не сделана для большого числа подключений и приходится писать самому (или использовать готовые решения за много килобаксов). Гуй ужасный там, а в остальном движок крутой. Поддержка кеширования ассетов на клиенте продается за отдельные очень большие деньги (это которая не в браузере, а отдельно на диске).

                                                                          Если надо чо то сделать нетривиальное — то в большенстве случаев это реализуется на c# без проблем. В некоторых случаях решение совсем не тривиальное и надо устраивать пляски с бубном и даже не факт, что можно будет решить проблему.

                                                                          В целом от движка остался доволен, надеюсь редактор перестал крешится так часто, как раньше.

                                                                          У движка есть русскоязычный сайт, а так же очень полезен кладезь юзерских скриптов и туториалов.
                                                                            0
                                                                            В третьей версии много изменилось, в лучшую сторону. Сеть в 2.6 не юзал, но редактор ни разу не грохнулся :) да и гуи вполне юзабельный.

                                                                            Ссылки добавлю. Как-то не подумал про них совсем
                                                                              0
                                                                              Обновилась, если я не ошибаюсь, версия Mono. Это уже само по себе очень хорошо.
                                                                            +2
                                                                            Кто-нибудь пробовал Unity для Android / iOS? Как впечатления?
                                                                              +1
                                                                              писал для iphone еще на первой версии экспортера. В принципе косяков особых нет. Я писал игрушку с физикой. Так вот iPhone3G тянет максимально где-то 30-40 положенных друг на друга блока, а потом тормоза. С тех пор и экспортер улучшили и айфон стал четвертым. Так что можно смело писать.
                                                                                0
                                                                                Пробовал под iOS — в любом случае то что шустро бегает под Mac/PC — не факт что будет давать пристойный FPS под iOS. Во всяком случаее у меня так и было, мой проект требует достаточно большой оптимизации (вычисления, память и шейдеры) — для более менее пристойной динамики. Отмечу что некоторые особо вкусныйе штучки вроде Terrain Engine, просто недоступы на мобильных платформах. Еще не понравилось то что приложение агресивно работающее с памятью может запросто привести к перезапуску OS — на старых устройствах iPhone 2G/3G.
                                                                                0
                                                                                В своё время рассматривали этот движок, очень достойный, но свой выбор мы сделали всё таки в пользу NeoAxis ( neoaxisgroup.com ).
                                                                                  0
                                                                                  Ну коли так, отпишитесь хоть — стоило оно того, и если да, то почему?
                                                                                    0
                                                                                    Стоило, очень довольны. И лицензии дешевле, и исходники кому надо купить можно.

                                                                                    Я тут писал обзорную статью подобную этой про NeoAxis, можете почитать.
                                                                                  0
                                                                                  Бесплатный движок с интегрированной физикой? Посмотрю поближе, наверняка со встроенным C# подойдет для разработки утилитариев, типа виртуальных лабораторных работ, там навороты не нужны, только быстродействие.
                                                                                    0
                                                                                    Да-да, я как-раз об этом в конце и говорил. Я не уверен, что можно динамически подгружать модели из внешних источников, например, для вьюверов, но я и не пробовал.
                                                                                      0
                                                                                      мне не нужна динамическая загрузка моделей, мне важно иметь трехмерку с анимированными моделями и элементарную физику, чтобы синхронизировать графическую 3D-оболочку с программным модулем, который читает сигналы от датчиков.
                                                                                        0
                                                                                        а, ну так это без проблем. Не могу сказать с бухты-барахты, как бы связать это с внешним программным модулем, но наверняка это не так проблематично будет
                                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                                    0
                                                                                    Очень нравится тем, как интегрировали mono и компонентная архитектура. Лучше UDK, но я всё равно остался на ogre3d, больше возможностей развернуться в техническом плане :)
                                                                                      0
                                                                                      В итоге что-нибудь получилось с ogre3d?
                                                                                      Каково ваше мнение о нем сейчас?

                                                                                      (особенно в сравнении с текущим unity и чем-нибудь еще, тем-же udk?)
                                                                                      0
                                                                                      Буду очень ждать туториалов для начинающих, пригодятся.
                                                                                        0
                                                                                        Первый туториал на 80% готов. Только вот думаю — не перебарщиваю ли я с разжевыванием того, куда и как нажать. Я там три страницы рассказываю как создать террейн, поставить лампочку и в каком окошке что находится. Может, народу просто скрипты с построчным разбором нужны? Или может в первом просто рассказать как понакидать стандартных скриптов чтобы побегать по холмам да ящики попинать, а во втором уже начать скрипты разбирать?
                                                                                          0
                                                                                          Честно говоря, я сторонник на сей момент подробного туториала, не думаю, что подробности останутся за кадром или будут раздражать. Во всяком случае, я точно с большей охотой начну изучение с пошагового руководства.
                                                                                        +1
                                                                                        Опять мимо линукс, что за скотство!
                                                                                          0
                                                                                          Ну кто знает, петиция может и возыметь своё действие. Скрестим пальцы на удачу
                                                                                          0
                                                                                          Я недавно с ним познакомился и не успел глубоко покопаться, но кое-что могу от себя сказать. Как писал выше — обновлена версия Mono. Теперь, теоретически, можно подключить к проекту DLR (Dynamic Language Runtime). Это означает, что языков скриптования на три, а много больше: IronPython, IronRuby, F# (возможно) и пр.

                                                                                          Из разочарований — сложность создания глобуса из TerrainComponent. Ландшафт на этом компоненте создается через HeightMap.

                                                                                          Из открытых вопросов — откуда такая разница между Web-билдом и билдом для Win (к примеру). Использовал демо проект (Подвал с миниводопадиком — забыл английское название). Веб-билд имеет размер 4-5 МБ, а виндовый — 18 МБ. Размер второго билда понятен — там вагоносостав Моно-рантайм. Но на чем тогда Веб-сборка запускается? Если отключиться от сети и попытаться запустить Веб-сборку, то получим сообщение, что плагин не установлен. А при подключенной сети плагин перед запуском обязательно скачивает что-то.
                                                                                            0
                                                                                            У меня плагин ничего не качает — без инета тоже работает.

                                                                                            А вопрос про размер билдов сложный, я сам до конца не в курсе. Выглядит всё так, что в виндовую сборку включаются дллки C#, Моно и внутренни Юнити. Весят они 7 метров. Моно кстати всего 2 метра весит. Но вот куда остальное место девается — вопрос. Разве что проверьте, у вас в виндвовый билд ложится папка Resources?
                                                                                            0
                                                                                            Меня бы больше заинтересовало сравнение с CryEngine 2 Sandbox, потому что по графике Epic'и скатились в унылый ширпотреб сразу после выпуска Unreal 1 — достаточно вспомнить как вплоть до 2004 года их движок был без гвоздя (ни единого шейдера). По поводу демок Unity — графика заслуживает рукоплескания… но только для браузера. Картинка — всё тот же 2004й год, только в 2011м. Для газет и прочих сайтов потянет, для чего-то посерьёзнее — вряд ли. Браузеру — браузерово.
                                                                                              0
                                                                                              Во-первых, скажите мне, что без всех этих современных наворотов не сделать хорошей игры — и я засмеюсь. За всей этой мишурой люди совершенно забывают о сути игр. Только и слышно — «у этой игры графика уровня прошлого года, поэтому она отстой», «у этой игры графика уровня прошлой недели, поэтому она отстой»… А суть игр в игровом процессе, а не в графическом или аудио-оформлении всё-таки. Мне тоже нравится Crysis, но ставить графику во главу угла не стоит, имхо. Если в игру неприятно играть из-за графики — это не вина движка, это вина разработчиков.

                                                                                              А во вторых, тут знаете какое дело — чтобы сделать графику на уровне 2011 года вам нужна команда. Даже не так, Команда. Моделеры, левел-дизайнеры, скриптеры, просто дизайнеры, художники. Потому что графика 2011 года — это тонны работы артистов прежде всего. И только потом технические возможности движка. Как я в десятый раз повторяю — если у вас есть такая команда, которая способна выдать соответствующий арт — вы и смотреть на юнити не будете, конечно, иначе арт будет бесполезен. А если нет — то и CryEngine 2 вас не спасет. Современные игр поставили настолько высокую планку требований к качеству ресурсов, что достигнуть её могут очень немногие. Удел маленьких команд — игры с оригинальной игровой механикой, интересным сюжетом и хорошим дизайном. Но разве это плохо?
                                                                                                0
                                                                                                Всё верно. Но гланая фишка Unity — уровень трёхмерной браузерной графики, поэтому на графике и акцентируем внимание. Если же абстрагироваться от уровня графики, то я сильно сомневаюсь, что возможности Unity по игровой механике сильно впереди flash'а со всеми gamedev framework'ами последнего.

                                                                                                Тем не менее, для браузерной сферы, которая стабильно отстаёт от бинарного мира на 5-10 лет, Unity является серьёзным достижением с хорошим будущим.
                                                                                                  0
                                                                                                  Разжуйте мне пожалуйста в чем смысл браузерного билда? Ну сделали билд виндовый, ну вылили его на сайте. Юзер скачал — запустил. Без установки. Та же браузерная игра по сути точно так же разворачивается, только рантайм уже на компе в виде плагина. В чем преимущество браузерного билда?
                                                                                                    0
                                                                                                    Ни в чём. Преимущество браузерного билда — только в кросс-платформенности. Преимущество кросс-платформенности — в поддежрке телефонов. Остальные бонусы кросс-платформенности рассматривать нет смысла, потому что денег они не приносят. Только телефонам 3D так же «позарез надо», что и 7.1 акустика :) А для Win/Mac достаточно бинарника.
                                                                                                      0
                                                                                                      Вы, должно быть, не в курсе, насколько широк и прибылен рынок браузерных игр (в основном флеш, конечно). Очень многие люди скорее поиграют в браузере, нежели скачают и установят игру. Конечно, портировать большой десктопный проект и на винду с маком, и в браузер или на айфон нет смысла. А вот браузерную игру на айфон с андроидом и обратно — стоит того.
                                                                                                        0
                                                                                                        Я конкретно про сравнение билдов под Вин… Про броузерные игры все понятно (casual, shity fun games etc). Но, как мне показалось, под виндой плагин все то же и скачивает, что внедряется в Stand Alone build. Раньше я как-то понимал в чем преимущество хостинга в браузер. Но тут что-то запутался (чем больше узнаю, тем больше не понимаю).
                                                                                                        Если разница лишь в способе разворачивания приложения, тогда все понятно — тык в браузере на сайте вместо загрузки инсталятора и запуска его на машине. Если еще что-то есть, расскажите.

                                                                                                        А насчет кроссплатформенности — так она тут сомнительная. Тем более странно, что движок на Моно, а в Линукс нет порта.
                                                                                                          +1
                                                                                                          А какие преимущества вы видели раньше? Единственное его преимушество — в том, что ты открыл ссылку и играешь. Не понравилось — закрыл вкладку и открыл следующюю. Не надо недооценивать важность этого фактора. Я сам не люблю играть в браузере, потому что предпочитаю полноценные игры с нормальной графикой, чего тот же флеш в большинстве случае дать не может. Но посмотрите, сколько кругом бразерных онлайн-игр и флеш-порталов — сотни, и я никогда наверное не пойму, откуда у всех у них такие большие аудитории. Какие у них у всех преимущества по сравнению с нормальными, полноценными играми? Да никаких, кроме открытия в один клик. Но это факт — люди готовы ради этого жертвовать качеством игры.

                                                                                                          А в целом, обоим билдам нужны а) графиеские и аудио-ресурсы; б) скомпилированные скрипты; в) библиотеки. И никуда от этого не денешься — остается резать ресурсы, ибо именно они основную массу игр составялют.

                                                                                                          Хотя в общем-то, пока я это писал, я вспомнил про ещё одну немаловажную вещь: билды Юнити-игр в браузере не надо качать целиком. Даже самая простенькая игрушка со всеми уровнями и текстурами может весить метров 50, в то время как в каждый конкретный момент используется метров 5 допустим. А новый уровень с новыми текстурами надо начинать грузить тогда, когда возникает необходимость. Опять-таки не стоит это сбрасывать со счетов.
                                                                                                            0
                                                                                                            Текстуры у уровней обычно одинаковые. В целом это сводится к тому, что пока не выкачаешь 200-800Mb, все белые пятна и квадратные камни из кадра не исчезнут.
                                                                                                              0
                                                                                                              Не скажите, все зависит от проекта. Но я в предыдущем комментарии явно указал единственный способ — резать ресурсы, так резать чтобы игр с 200-800 мб на карту быть не должно. Всё-таки возможность портировать одну и ту же игру на платформы с разными физическими возможностями — как правило не более чем интересная фича. Хотя я всё же вижу её какое-то применение: например, в веб выкладываем порезанную бесплатную версию, а полноценную с дистром — продаем.

                                                                                                              Ещё такая возможность избавит народ от качаний демок. Мне всегда лень их качать: ну посмотишь 5-10 минут, сложишь впечатление и всё, только аппетит раззадоришь.

                                                                                                              Просто не надо думать, что этот прикол с портированием — манна небесная и откроет новую эру в играх без всяких минусов и подводных камней. Каждому инструменту своё место; но это не значит что инструменты должны оставаться на уровне прошлого века по своим возможностям.
                                                                                                                0
                                                                                                                Браузер всегда будет оставаться в прошлом веке по своим возможностям. Хайтек и www — плохо совместимые вещи. Потому что у них разные цели.
                                                                                                                  0
                                                                                                                  ну раз мы оба это понимаем, то о чём разговор :) просто прошлый век уровня Юнити несколько продвинутей, чем обычный прошлый век в этой отрасли на данный момент.

                                                                                                                  Цели-то разные, но сейчас народ просто свихнулся на переносе всего, что только можно в интернет. Печальная тенденция
                                                                                                                    0
                                                                                                                    Просто в вебе больше денег :) А хайтек — как классическая музыка: стабильно возбуждает только тех, кто имеет к нему непосредственное отношение.
                                                                                                                      +1
                                                                                                                      Однозначно. Ну и иногда хайтек красиво подается простому пользователю, и тогда он нравится всем. Но это единичные случаи.

                                                                                                                      P.S. А CryEngine 2 Sandbox это ведь всё-таки редактор уровней, а не движок — поэтому сравнивать его с Unity было бы некорректно. Даже с Mod SDK полноценную отдельную игру на нем будет не так просто. И продавать её будет незаконно.

                                                                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                              Самое читаемое