К основному контенту

Unity or not unity


В начале разработки игры иногда встаёт вопрос выбора технологии, иногда находятся люди, которые настойчиво агитируют за использование unity 3d. Оно и понятно - красивый сайт с рекламными лозунгами, примеры выпущенных продуктов. Но на практике я встречаю не очень лестные отзывы о разработке на юнити. Рассмотрим преимущества и недостатки юнити относительно нативной разработки.

Преимущества:
  • Кроссплатформенность - юнити поддерживает широкий спектр платформ из коробки
  • Полный набор инструментария в одной среде
  • Быстрая разработка, быстрое изучение

Все преимущества хорошо расписаны на официальном сайте юнити. Теперь рассмотрим недостатки на примере моего личного опыта использования и по отзывам других пользователей.

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

Теперь немного отзывов из сети:
  • Unity tends to be somewhat of a memory hog. It takes more memory than you think it should; probably due to caching things like textures. This can cause problems debugging and even OOM errors on mobile devices
  • Performance problems can be hard to locate, address, and fix since you are dealing with a black box (no source code)
  • Unity's own Asset Server costs a pretty penny. And it sucks, really, really hard. It doesn't even have branching. While Unity3D theoretically supports 3rd-party SCM systems, using them is wrought with peril too. I've seen import settings "magically" change after SVN commit, or all objects' parameters disappear after using Perforce. All these can be worked around, but anyway, Unity3D + Source control = pain.
Ещё из личного опыта:
  • Пришлось отказаться от юнити на одном проекте, когда начались проблемы с памятью. Сейчас это не так актуально, т.к. слабые девайсы вытесняются с рынка.
  • Ребята (студенты) писали сравнительно маленькую игру на юнити, в целом они успешно её сделали. Но их впечатления свелись к тому, что они больше не хотят использовать юнити. 
Юнити - это быстрый старт, но не всегда эффективная дальнейшая разработка. В целом если нет своего решения, то надо использовать юнити. Если писать с нуля (движок) за юнити уже не угнаться. Для крупных и средних проектов (скажем так, разрабатываемых больше года, больше чем 4-мя программистами) юнити не самый лучший вариант. Я считаю, что лучшая сфера применимости юнити мелкие проекты (до полугода в разработке, 1-2 программиста). Также юнити хорошо подходит для прототипирования (с учетом того, что прототип пойдет в помойку). Но если нужен стопроцентный контроль над проектом во всех аспектах, юнити не подходит. Путь юнити это использовать то, что вам дали, и как из кирпичиков собирать проект. Если что-то не получается, проблема решается выбором другого компонента или другого решения, а не решением собственно проблемы. Если всё это устраивает – юнити ваш выбор.

Комментарии

Популярные сообщения из этого блога

Редакторы для казуальных и независимых игр. Адаптация открытого непрофильного софта под нужды разработчика игр

Введение Часто инди-разработчики или разработчики казуальных игр сталкиваются с проблемой нехватки специализированных редакторов, инструментов, утилит и т.д. ( так называемого middleware ) для создания контента для своих игр. Пример такого контента - это уровни, сложные анимации, 2d монстры и техника, а также параметры настройки и конфигурации всего этого. Прописывать всё это вручную в текстовых, редакторах (или скажем xml-редакторах) это не всегда удобно. В самом деле не будешь же ручками прописывать координаты полигонов в двухмерном уровне. Или задавать цвет глаз в шестнадцатеричном коде в xml-файле описания эльфа. Обычно бывает сложно найти удовлетворяющий всем нуждам редактор или тулзу. Самые частые проблемы это: закрытый код недостаточные возможности для конкретно вашей игры (ограничения по редактированию) навязываемый api и библиотеки от создателей middleware Часто принимается решение писать свой собственный редактор и набор утилит, но такое решение не всегда раци

профессор Колба

Сейчас Ярило студия разрабатывает казуальную игру под рабочим названием "Профессор Колба и невероятная эпидемия". Я хотел бы немного рассказать о том что это будет за игра и как она разрабатывается. Сюжет незамысловат. Мир охватила эпидемия курино-свиного гриппа и только профессор Колба может остановить её. Для этого он сидит в своей лаборатории и проводит череду нескончаемых опытов по поиску вакцины. Игроку собственно и предстоит искать вакцину проводя опыты, оформленные в виде набора мини игр. Игра выполнена в юмористической, доброй и позитивной манере. Игрок сможет наслаждаться каждой минутой игрового процесса. Во всяком случае это наша цель, как разработчиков, и на это делается упор. Игрок не должен тратить время  и упорно пытаться пройти очередной уровень. В игре сложно проиграть, но соревновательный момент всё равно присутствует за счёт набора очков. Хороший игрок всегда наберет больше очков и будет на первом месте в общей таблице рекордов. А неопытный игрок просто

Портфолио

Копия моего резюме с  linkedin . Тут я подаю информацию более развернуто и в свободной форме. English resume Образование Санкт-Петербургский Политехнический Университет, факультет технической кибернетики, информационные системы и технологии. Одной технической строкой C++, C#, unity, java, many IDEs ( VS, idea, eclipse, etc.), lua, python, assembler, pascal, basic (VBA), windows, Nintendo DS, android, iOS, j2me, brew, porting games, opengl, directx, many libs experience (box2d, rapidxml, xpath, regexp, stl, boost, sdl, irrlicht, hge, etc.), build systems, my own libs, my own crossplatform engine, svn, hg, git, photoshop, illustrator, inkscape, 3d max (scripting for all that editors), FL studio. Личные качества Креативность ( имеется в виду фантазия, умение изобретать, разрабатывать концептуально новые решения ) Гибкость ( умение избавляться от привычек и принимать новое, если это нужно ) Последовательность в достижении цели Адекватность и справедливость ( как не удиви