Создание компьютерных игр является одной из самых сложных областей в сфере информационных технологий. Для создания качественных компьютерных игр нужно обладать знаниями во многих областях науки и техники одновременно. Хорошо сделанная игра требует понимания не только трёхмерной и двухмерной компьютерной графики, как это может показаться простому человеку, но и большого объёма иных знаний и умений.
В данной небольшой заметке мы попробуем очень поверхностно рассказать о том, почему процесс создания компьютерных игр является самым сложным видом деятельности в И.Т. и почему движок Unity не годится для этих целей в 2024 году. В данной статье будут рассмотрены несколько важных аспектов качественно сделанной компьютерной игры и сделаны отсылки на упомянутый движок Unity.
I. Пользовательский интерфейс // User Interface
Начнём обзор с самых простейших вещей и понятий. Для отображения пользовательского интерфейса на мониторах современных компьютеров важна красивая и качественно сделанная двухмерная графика. Многие люди до сих пор не понимают этого простого факта. Не смотря на большую мощность современных видеокарт, ускоряющих работу с 3D контентом, основное время в игре пользователь проводит, не рассматривая отражения источников света в лужах на асфальте, а читая тексты пользовательского интерфейса и нажимая на кнопки органов управления.
Если вы играете в глупые игры, в которых нет текстов и отсутствует какое-либо взаимодействие с пользователем, то вы, скорее всего, застряли где-то в 1990-ых годах и играх жанра «3D шутер» (трёхмерная стрелялка), в которых весь игровой мир состоял из так называемых «коридоров», по которым ходили так называемые «монстры», которых нужно было «отстреливать». Современные компьютерные игры очень далеко шагнули от примитивных стрелялок типа Doom и Quake.
Один из самых известных примеров качественно сделанного пользовательского интерфейса в игре был создан великим, но при этом мало известным в современном мире, человеком по имени Кристофер Сойер или сокращённо – Крис Сойер (англ.: Chris Sawyer, Christopher Sawyer). Кристофер Сойер – по истине уникальный человек. Он создал такие шедевры мирового игростроения, как Transport Tycoon и Roller Coaster Tycoon. Обе упомянутые игры навечно вошли в историю в виде проектов OpenTTD и OpenRCT2, которые сейчас являются разрабатываемыми и поддерживаемыми мировым сообществом проектами с открытым исходным кодом.
Почему игры серий Transport Tycoon и Roller Coaster Tycoon были, есть и будут популярны среди здравомыслящих людей ? Кроме их позитивной направленности на добро, творчество, развитие и созидание, они предлагают качественно сделанный продукт вместе с очень высокоэффективным графическим интерфейсом пользователя (англ.: Graphical User Interface, сокращённо – GUI). В играх Transport Tycoon (OpenTTD) и Roller Coaster Tycoon (OpenRCT2) пользователь имеет дело с большими объёмами информации об игровом мире и при этом он может очень легко и удобно взаимодействовать с этой информацией благодаря продуманному GUI.
В эти игры встроен целый программный комплекс, называемый сегодня термином «Оконный Менеджер» (англ.: Window Manager), позволяющий открывать множество окон, передвигать их как угодно пользователю и использовать встроенные в него элементы управления. Функционал менеджера окон в этих играх позволяет не только нажимать кнопки, вводить тексты и листать списки. Одной из уникальных особенностей менеджера окон в этих играх является возможность настройки шрифтов интерфейса в игре и возможность кастомизации органов управления. Все окна и панели в этих играх можно двигать в любом направлении, можно изменять их размер и, кроме того, все окна интерфейса имеют возможность прилипания друг к другу. Даже в оконном менеджере современных О.С. Windows в 2024 году отсутствует функционал прилипания окон друг к другу, а в игре 1994 года эта возможность была встроена в игру !
На самом деле, мы описали только часть функционала этого менеджера окон, потому что не хотим углубляться в эту тему и увеличивать размер этой статьи. Функционал, стоящий за «примитивными» прямоугольными окнами и кнопками, поражает наше воображение. Ещё ни одна компьютерная игра современного человечества со всеми новомодными «искусственными интеллектами» и «многоядерными процессорами» не смогла дотянуться по своим возможностям и удобству до интерфейса, придуманного гениальным шотландским разработчиком более 30 лет назад.
Для того, чтобы создавать такие продуманные интерфейсы пользователя нужно обладать высоким интеллектом, способностью к классификации и систематизации информации. К сожалению, современные операционные системы Windows пошли по совершенно противоположному пути. Начиная с Windows 8, GUI современных О.С. Windows потерял такие вещи, как кнопка с гранями, элемент типа «рамка», границы окна (англ.: Window Borders), цветные иконки-пиктограммы и многие другие вещи, делавшие интерфейс старых О.С. Windows легко читаемым и понятным. Современный «плоский» стиль кнопок и полное отсутствие граней у элементов управления погружает пользователя Windows 10 в туманное, расплывчатое и безразмерное «ничто», в котором отсутствуют понятия и границы, а упорядоченность информации полностью потеряла свой смысл.
Теперь вспомним то, что касается движка Unity.
Разработчики игр, использующие движок Unity вот уже несколько лет борются с создателями движка Unity, сломавшими алгоритмы отрисовки шрифтов. Начиная примерно с версии 2018, движок Unity поломал рендеринг шрифтов (англ.: Font Rendering) как в самом редакторе, так и в играх, созданных с помощью этого редактора. Вместо решения проблем в двух существующих методах отрисовки (рендеринга) шрифтов, разработчики движка Unity работают над созданием нового, третьего, рендерера для шрифтов. Судя по всему, они будут работать над ним вечно, потому что они не имеют способности смотреть в корень и видеть источник проблем – они замечают только последствия своей недальновидности и пытаются «лечить» симптомы болезни, вместо устранения источника проблем.
Таким образом, если вы увидели где-то в Steam компьютерную игру с кривыми, расплывчатыми или странно выглядящими шрифтами текста, то с большой вероятностью эта игра была сделана на движке Unity версий 2018 или более поздней.
Учитывая факт того, что текстовая информация крайне важна в компьютерных играх таких жанров, как настольные игры, стратегии, ролевые игры и всевозможные симуляторы, то движок Unity стал попросту бесполезен для создания игр в этих жанрах.
II. Аудио // Audio
Аудио, т. е. звуковая составляющая, важна в компьютерных играх ни чуть не меньше, чем визуальная часть. Во многих старых компьютерных играх звуковой «слой информации» позволяет дополнить игру недостающими данными, которые сложно показать с помощью примитивной двухмерной графики. Так например, в классических играх серии Fallout, с помощью продуманного саундтрека была воссоздана эмоциональная атмосфера, которую было невозможно передать с помощью ограниченной на тот момент времени цветовой палитры в 256 цветов и низкого разрешения экрана компьютеров тех времён. Аналогично, компьютерные игры Heroes of Might & Magic II и III знамениты своим высококачественным саундтреком, позволявшим игроку погрузиться в мир приключений и фантазий несмотря на ограничения примитивных компьютеров своего времени. Упомянутые компьютерные игры остаются популярными в своей сфере до сих пор и, судя по всему, навечно останутся в памяти как пример качественно сделанных компьютерных игр.
Что касается движка Unity – он имеет большие проблемы с микшированием музыки и звуков. Проблема осложнена фактом того, что движок Unity является закрытым, то есть его исходный программный код закрыт от просмотра, и у пользователей нет даже малейшей возможности понять причину происходящих проблем. Если вы встретили игру, в которой присутствует случайное искажение звуков, такое как, например, потрескивание, похрустывание, щелчки, пропуски, обрывы и иные искажения звуков, то с большой вероятностью эта игра была также сделана на движке Unity.
III. 3D графика // 3D graphics
Трёхмерная графика в играх имеет большое значение, но по своему качеству она до сих пор не смогла превзойти хорошую заранее подготовленную (англ.: Pre-Rendered) двухмерную картинку. Кроме того, современные тенденции в области ускорителей графики идут в неправильном направлении. Вместо унификации и стандартизации архитектуры графических ускорителей, корпорации типа nVidia и AMD выдумывают новые типы «ядер» в своих GPU, делая разработку компьютерных игр с трёхмерной графикой всё более и более бесперспективным типом деятельности.
Ещё недавно мир радовался появлению в видеокартах унифицированных шейдеров, а сегодня скупердяи и обманщики из корпорации nVidia пихают в свои чипы GPU отдельные узкоспециализированные ядра для трассировки лучей и отдельные узкоспециализированные ядра для тензорных (матричных) вычислений.
При всём этом во главу «качества» ставится «модность» и «блестящесть» картинки в статическом положении, а не её реалистичность в динамике. То есть, современные разработчики считают, что блеск света фонаря, отражённый в луже на асфальте, важнее реалистично движущейся растительности на деревьях или траве. Количество полигонов на неподвижном пластиковом манекене для них важнее реалистичного движения конечностей персонажа. Трассировка лучей стала важнее законов физики и плавной реалистичной анимации. Вместо продуманных и логичных вещей пользователям предлагаются искусственные заменители «со вкусом лимона», в которых нет ни единого атома от настоящего лимона просто потому что корпорации не имеют ни малейшего понятия о том, что такое природа и как она на самом деле создаёт настоящие лимоны.
Корпорация, купившая в своё время конкурентов из 3dfx и перспективный проект Ageia с технологией PhysX от NovodeX, превращает разработку компьютерных игр в соревнование в стиле «у кого трассировка лучей покажет меньше кадров в секунду». Вместо развития реалистичности физики в играх, nVidia продвигает никому не нужные «лучи», отражающиеся в лужах на асфальте. Именно поэтому в данной статье нет и не будет отдельного пункта, посвящённого физике и реалистичности в компьютерных играх. Корпорация nVidia попросту «убила» физику и реализм в играх в начале 2000-ых годов, купив конкурентов с помощью большого мешка денег.
Вместо развития унифицированного интерфейса OpenGL, разработчики придумывают сложные API DirectX и Vulkan, в которых для того, чтобы нарисовать простейший кубик на экране, нужно написать несколько десятков тысяч строк программного кода. Пользователь становится очень сильно зависим от чужих движков для создания компьютерных игр просто потому что разработчики API DirectX и Vulkan не посчитали нужным сделать свои творения дружелюбными к человеку.
Несовместимость разных технологий друг с другом в 2020-ых годах возвращает разработчиков компьютерных игр из светлого будущего с унифицированными шейдерами начала 2000-ых годов обратно в темноту 1990-ых годов, когда каждая компания писала свой собственный движок под свои нужды, а отдельный человек не имел возможности сделать что-то по-настоящему качественное в области трёхмерной графики. Общество людей становится более разобщённым и атомарным. Корпорации навязывают свои ложные «стандарты», а настоящие творцы уходят в иные области творчества, где нет диктатуры «денежных мешков».
Во всём этом мраке попытки создания движков для компьютерных игр с открытым исходным кодом являются последней надеждой человечества на светлое будущее. Мы рекомендуем игнорировать закрытые технологии и использовать для разработки компьютерных игр только те движки, которые имеют открытый исходный код. Только открытость и свобода от корпораций способны вернуть человечеству возможность заниматься творчеством.
X. Резюме // Résumé
Судя по всему, разработчики движка Unity не заинтересованы в предоставлении разработчикам игр инструмента для создания качественных продуктов. В 2024 году стали популярны такие новомодные искусственные слова, как «хайп» (по русски – шумиха) и «мобилки» (мобильные телефоны и прочие миниатюрные переносные приборы типа портативных игровых консолей). Движок Unity старается соблюдать тенденцию и быть «хайповым» и «мобильным». Для «хайповых» «мобильников» не нужен мозг, не важно, как выглядит шрифт, и не важно, что звук хрустит и прерывается. Для них важно продать «хомячкам» миллиард копий никому не нужного продукта.
Маленькие дети !
Ни за что на свете
Не ходите в Unity,
В Unity гулять !
P. S.
Движок Unity был создан двумя программистами из государства Дания по имени Дэвид Хелгасон (David Helgason) и Николас Фрэнсис (Nicholas Francis). Работа над движком началась в 2002 году, а первый официальный релиз продукта состоялся через три года – в 2005 году.
В 2014 году один из двух основателей движка Unity, Дэвид Хелгасон, покинул позицию генерального директора компании Unity Technologies. На его место пришёл Джон Ричителло (John Riccitiello), бывший руководитель компании Electronic Arts.
В начале 2019 года, пока компанией управлял J. Riccitiello, между руководителями движка Unity и компанией Improbable произошёл скандал. Менеджеры Unity обвинили компанию Improbable в нарушении лицензионного соглашения и вынудили её закрыть все свои сервера. Этот факт примечателен тем, что в тот самый момент времени Unity и Improbable вели переговоры о кооперации и совместной работе !
После произошедшего скандала с Improbable компания Epic Games организовала специальный фонд, который помогал разработчикам, создававшим игры на движке Unity, отказаться от кривого движка Unity и перейти на нормальные альтернативы. После этого компания Unity Technologies отказалась от кооперации с Improbable.
Теперь, уже по прошествии нескольких лет, кажется, что тот скандал стал настоящим подтверждением того факта, что движок Unity «сошёл с рельс». В 2022 году компания увольняет четыре сотни своих сотрудников и увеличивает стоимость своих продуктов до 600 долларов США (USD). Репутация движка падает до рекордно низких отметок, разработчики компьютерных игр массово отказываются от использования движка Unity.
Примечателен факт того, что за несколько дней до объявления о новой тарификации руководство компании продало свои акции. Было ли это попыткой бегства с тонущего корабля ? Видимо, да. В 2023 году J. Riccitiello уходит с должности главного исполнительного директора Unity и покидает компанию.
В 2024 году Unity пытается поднять свою репутацию, упавшую в грязную лужу, но время уже потеряно. Разработчики движка продолжают заниматься бессмысленными вещами вместо починки сломанного движка. Пользователи бегут от дырявого продукта, корабль Unity уходит на дно.