Я играю в компьютерные игры уже достаточно давно. Настолько давно, чтобы хорошо помнить, какими они были раньше, и иметь возможность сравнить с тем, какими они стали сегодня. Написать эту заметку меня побудила недавно вышедшая демонстрация нового игрового движка от компании Epic Games – Unreal Engine 5 в игре про Лару Крофт, расхитительницу гробниц (Tomb Raider). Как любитель и ценитель хорошей графики, а также человек, который «что-то в этом понимает» – я был приятно удивлен. Не могу сказать, чтобы я был потрясен до глубины души, потому как в последние годы вышло довольно много игр с превосходной графикой на самых разных игровых движках, но удивлен – это точно. Разработчики движка совершенно очевидно, заметно и ощутимо взяли новые вершины – при том, что предыдущий их движок Unreal Engine 4 был также очень и очень неплох.
Что мне очень нравится в прогрессе компьютерных игр – то, что с каждым годом «сделать красиво» становится возможно с минимумом затраченных усилий. То есть сегодня вы делаете почти кинематографического вида игровой уровень за то же время, которое вам раньше требовалось на создание простеньких примитивных моделей. Когда-то давно я был студентом, увлекался компьютерными играми и в меру своих знаний и возможностей пытался делать что-то самостоятельно. Например, я пытался делать карты к игре Counter-Strike версии 1.6. Графикой игра не блистала уже тогда, уровни представляли собой объекты, созданные с помощью простейшей геометрической фигуры – прямоугольника - и различных его деформаций. Смотрелось всё это довольно уныло – даже круг был не круг, а скорее кругообразный набор из прямоугольников, развернутых под разными углами (колесо такой формы далеко бы не уехало). И все эти деформации создавали для игрового движка множество проблем – появлялось больше плоскостей, которые видеокарте и процессору нужно было просчитывать, то есть нагрузка на компьютер существенно увеличивалась. Поэтому в советах к редактору карт по игре так и писали – обязательно нужна оптимизация – делайте уровень из простых объектов с минимумом деформаций, иначе получите у себя на компьютере слайд-шоу, а не игру. Именно слайд-шоу у меня обычно и получалось, потому как хотелось, чтобы игровой уровень выглядел реалистично, а не как набор конструктора Lego для детей.
Современные редакторы игровых уровней стали намного более мощными (их возможности по созданию разнообразных объектов увеличились многократно), но при этом намного более простыми в освоении, чем редакторы прошлых лет. Добиться этого удалось за счёт разработки современных мощных игровых движков, которые умеют рисовать фантастически детализированные сцены и при этом не нагружать видеокарту «под завязку». По количеству доступных игровых эффектов современные игровые движки без преувеличения совершили революцию. Технологии в компьютерных играх уже вплотную подошли к созданию графики такого уровня, который сложно отличить от реальности. Например, глядя на скриншоты таких игровых рендеров (изображений, полученных посредством игрового движка) уже далеко не всегда можно сразу понять, где реальное изображение, а где созданное движком. Уверен – пройдет еще совсем немного времени, и игры выйдут на уровень качества картинки, сопоставимый с кинематографом. Но если сейчас кинематографические эффекты доступны лишь большим студиям с сотнями килограмм дорогого компьютерного «железа», то в будущем всё это станет подвластно любому игроку прямо у него на домашнем компьютере, который не будет стоить как «крыло от Boeing».
В демонстрации движка Unreal Engine 5 хорошо видно, что детализация объектов кратно выросла – это уже не какие-то смазанные фигуры, как было раньше, а совершенно реалистично выглядящие камни, скалы, статуи в древнем храме, тени, солнечный свет и т.д. На объекты наложено огромное количество различных эффектов, что придает игре небывалую прежде реалистичность. Опытный игрок всегда видит «огрехи», шероховатости в любой игре, в то время как у человека, который играет редко, никаких претензий к изображению не будет – лишь бы было весело и интересно играть. Вот здесь цвет камней неестественный для данного времени суток (плохо рассчитанное освещение, недостоверно выглядит, нереалистично), здесь лицевая анимация у персонажа «дубовая» - она как бы есть, но её как бы нет, здесь текстура (изображение на объекте) выглядит так, как будто её растягивали, ухватившись за разные края, или текстура мусора ну никак не выглядит как мусор, а скорее как одеяло, ну и так далее. Правда, должен сказать, что в современных играх претензий к реалистичности изображения с каждым годом всё меньше и меньше. Понятно, что нет предела совершенству и всегда что-то можно сделать еще лучше, еще реалистичнее, но и сегодняшний уровень весьма неплох. Очень радует тот факт, что прогресс идет очень быстро – для создания мощных движков не понадобились десятки лет эволюции, всё прошло намного быстрее. Часто разница между играми всего несколько лет, но прогресс видно невооруженным глазом.
Очевидно, что игровые движки у компании Epic Games получаются очень хорошо, что меня, как игрока, безмерно радует. Любая игровая студия может купить лицензию на использование движка в своей игре, что изначально повышает качество изображения до уровня «очень хорошо» (а дальше уже зависит от разработчиков игры, насколько у них «прямые руки» и в какой степени они понимают возможности игрового движка, как их можно максимально задействовать в собственной игре). Также очень многие современные редакторы уровней позволяют видеть, как будет выглядеть уровень в игре, не выходя из самого редактора. Раньше для того, чтобы увидеть, что же получилось, нужно было проводить компиляцию, то есть просчёт всех заданных параметров (объекты, освещение, текстуры и т.д.), построение игрового уровня. В зависимости от мощности компьютера компиляция могла занимать много часов, и только по итогу разработчик мог увидеть, что именно он сделал не так, в чём ошибся...потом исправлять и компилировать по-новой.
Еще один интересный момент – именно разработчики игр создают требования к производителям видеокарт. Да, разработчики в процессе создания игры ориентируются, в том числе, на доступные игрокам мощности – у кого какие стоят видеокарты. Но обычно сначала создается игра, потом эту игру запускают на имеющихся видеокартах и понимают, что нужно делать их мощнее, искать другой подход к сглаживанию и оптимизации производительности – это стимулирует разработки в сфере создания компьютерной техники. В какой-то мере можно сказать, что именно игры являются реальным двигателем прогресса вычислительных мощностей компьютера. Дело в том, что в компьютерные игры играет огромное количество людей, в том числе весьма далеких от компьютерного «железа», разработки игр и прочих технических областей, а всякие специализированные программы, требующие высокой вычислительной мощности, не пользуются таким же массовым спросом.
Прогресс движется семимильными шагами как раз потому, что есть потребитель, «его много», он готов оплачивать эти разработки. Если раньше в компьютерные игры играли только «ботаники», то теперь не такая уж редкость увидеть какого-нибудь отца семейства преклонных лет, играющего не в традиционный «пасьянс», а сражающегося в танке на Курской дуге с фашистскими захватчиками или отбивающего атаки на караваны судов в Атлантике, сидя за штурвалом полярного истребителя. Прогресс намного быстрее идет в action-играх (шутерах от первого или третьего лица и т.д.), чем в неспешных стратегиях и головоломках. Именно для шутеров постоянно усовершенствуются старые и создаются новые технологии обработки изображения, делающие картинку красивее, и при этом снижающие потребление ресурсов системой. Самое главное – то, что прогресс доступен не только самым обеспеченным представителям населения, а большинству, хоть и не сразу – потому что новые технологии стоят очень дорого только на этапе внедрения, а потом их себестоимость снижается.