Game engines comparison

Home  /  Game Development  /  Game engines comparison

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


Unity

Плюсы

  • низкий порог входа
  • большое сообщество, которое создает видеоуроки и на форумах почти сразу помогает с техническими вопросами
  • удобнее импортировать модель, состоящую из нескольких объектов (шкаф с дверцами), чем в UE4. Здесь такие объекты импортируются как один объект с иерархией, а в UE4 — каждый объект модели импортируется отдельно и в списке файлов проекта уже не 1, а 5 объектов, каждый настраивается отдельно

Минусы

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

Unreal Engine

Плюсы

  • для программирования используется C++, а не C#, как в Unity
  • возможность перейти в полноэкранный режим
  • если я импортировал модель и настроил ее в движке (добавил коллайдеры, материалы и расположил в пространстве), а потом модель решил отредактировать (при условии, что файл *.blend сохранился), то не нужно обновленную модель заново настраивать, после импорта старая модель заменится на новую, а настойки сохранятся
  • движок хорошо добавляет коллайдеры, можно выбрать из списка тот тип, который мне нужен. Редко приходится добавлять вручную и потом настраивать размеры, границы
  • удобная система нодов для визуального программирования и настройки материалов
  • удобный редактор для создания анимаций. В одном окне можно работать с анимациями сразу для нескольких объектов. Если делать анимацию камер, то прямо здесь можно выбирать, когда какую камеру включать, а в Unity это делалось скриптами
  • сделал анимацию движения лифта и две кнопки — одна наверху вызывает лифт на верхний этаж, другая внизу — на нижний. Если многократно нажимать на кнопку, пока анимация проигрывается, то она не будет каждый раз проигрываться с начала, и если лифт приехал, то после нажатия не будет мгновенно телепортировать лифт в исходную точку и опять двигать его к игроку. А в Unity было наоборот и нужно было писать кучу проверок
  • есть инструмент для локализации. В игре на Unity у меня было 2 текстовых файла — для английского и русского. Нужно было следить, чтобы номера строк совпадали и в коде обращаться к строкам по номерам. В UE4 это сделано намного удобней, но это еще тестовая функция и она не всегда работает

Минусы

  • после импорта, модели *.obj и *.fbx конвертируются в формат *.uasset, поэтому в Unity их повторно использовать нельзя, так-же нельзя открыть в Blender, чтобы отредактировать
  • если учиться программировать под UE по видеоурокам и сделать точь-в-точь как там, то у тебя все-равно будет ошибки компиляции и тебе нужно разбираться, что не так (я уже много видеоуроков по посмотрел и так было в каждом)
  • из-за ошибки компиляции движок может закрыться с ошибкой, а чтобы его запустить, нужно удалить проблемный код (а еще нужно понять, какой код вызывает ошибку) и все перекомпилировать из VS
  • код каждый раз нужно компилировать вручную и это может длиться несколько минут
  • если переместить ассет в новый каталог, то физически он все еще останется в старом. Для полного переноса на каталоге нужно нажать ПКМ -> Fix Up Redirectors In Folder
  • слабая поддержка на форумах, ответа иногда приходится дожидаться несколько дней, а иногда его вообще нет
  • более требовательный к железу, чем Unity
  • освещение не запекается (все становится темным), если у моделей нет lightmap UV (текстурных координат), в Unity такой проблемы не было
  • чтобы переместить скрипт из одной папки в другую, нужно делать это через проводник Windows (файлы *.h и *.cpp), а потом пересобирать проект, в Unity можно перетащить скрипт прямо из проводника движка. Удалять тоже через проводник, потом удалить папку Binaries, пересобрать проект и только потом нормально работать
  • многое зависит от FPS. Например, если скрипт вращает объект, то скорость вращения на слабом и мощном компьютере будет разная. Или если у вас есть лифт, который двигается вверх/вниз скриптами с использованием блока Timeline, а не анимациями, то на слабом компьютере до окончания анимации (той, длительность которой настраивается внутри Timeline) лифт может не успеть доехать до конца и остановится на пол пути
Comments are closed.