All streams
Search
Write a publication
Pull to refresh
1940
297.2

Переводчик-фрилансер

Send message

Каскадная трассировка воксельных конусов в игре The Tomorrow Children

Reading time10 min
Views9.7K

Что: трассировка каскадов воксельных конусов


Для The Tomorrow Children мы реализовали инновационную систему освещения, основанную на трассировке воксельных конусов. Вместо использования традиционных систем прямого или отложенного освещения мы создали систему, освещавшую всё в мире трассировкой конусов через воксели.

Таким способом обрабатывается и прямое, и отражённое освещение. Он позволяет нам рассчитывать на PlayStation 4 три отражения глобального освещения в полудинамических сценах. Мы трассируем конусы в 16 фиксированных направлениях через шесть каскадов 3D-текстур и выполняем поглощение света с помощью направленного затенения в экранном пространстве (Screen Space Directional Occlusion) и сферическими окклюдерами динамических объектов для получения конечного результата. Движок также поддерживает модель сферического освещения на основе гармоник, что позволяет рассчитывать освещение частиц и реализовать спецэффекты, например аппроксимированное подповерхностное рассеяние (approximating subsurface scattering) и преломляющие материалы.

Куда уходят игры: проблема сохранения старых видеоигр. Часть 1

Reading time18 min
Views19K
image
Дискеты с исходным кодом Prince of Persia, случайно найденные отцом Джордана Мекнера за шкафом

Мусорные корзины, свалки и мусоросжигатели. Стирание, удаление и моральное устаревание. Этими словами можно описать процессы, происходящие со строительными кирпичиками индустрии видеоигр в разных странах мира. Такими кирпичиками бывают исходный код игр, компьютерное оборудование, использованное для создания конкретных видеоигр, схемы уровней, эскизы персонажей, производственные документы, маркетинговые материалы и многое другое.

Вот только некоторые элементы процесса создания игр, которые утеряны и никогда к нам не вернутся. Из таких элементов состоят игры для домашних и портативных консолей, ПК и аркадных автоматов, в которые вы играли. Единственным напоминанием об игре может остаться её название или финальная опубликованная версия, потому что существует вероятность исчезновения всех других физических копий результатов творчества.
Читать дальше →

После стелса: как сохранить свежесть хоррор-игр

Reading time5 min
Views9.2K
image

Успех культовой серии Penumbra шведской инди-студии Frictional Games привёл к выпуску в 2010 году Amnesia: The Dark Descent. Она стала воплощением «спящего» хита: очевидно нишевая игра завоевала всемирную популярность и сильно повлияла на индустрию. В жанре «хоррор», основы которого были заложены Alone in the Dark и её бессмертными потоками Resident Evil и Silent Hill, стелс-геймплей Amnesia без возможности боя стал странным исключением.

Хотя ведущий дизайнер Frictional Томас Грип (Thomas Grip) назвал Resident Evil своим важнейшим источником вдохновения, Amnesia стала, по моему мнению, явным возвратом к философии Clocktower. В ней акценты сместились с боёв на убегание и скрытность, как в старых играх серии Clocktower. Такие механики практически игнорировались в хоррорах, особенно в играх американских AAA-разработчиков. С помощью Amnesia Frictional напомнила нам, что расстрел врагов не обязательно так же пугающ, как убегание от них. Таким образом авторы возродили ощущение уязвимости в играх survival horror.
Читать дальше →

Нарастающая угроза хакеров видеоигр

Reading time6 min
Views29K
image

После выпуска игры для смартфонов в дополненной реальности Pokémon Go в июле прошлого года она стала международным феноменом. Игра мотивировала игроков выйти из дома и ходить по улицам в поисках монстров. В течение недели после выпуска количество пользователей Pokémon Go за 24 часа было больше, чем активных пользователей Twitter.

Однако запустить игру мог не каждый: дикая популярность Pokémon Go привлекла в неё больше игроков, чем могли выдержать серверы разработчика приложения, компании Niantic. «Наверно, спрос на игру оказался слишком велик», — предположил один из источников, рассказывая о зависаниях и проблемах со входом на сервер у игроков по всему миру.

Однако, истина была немного другой.

Почти после запуска игры хакеры начали создавать армии ботов — цифровых големов, игравших вместо пользователей, фармивших покемонов и осаждавших покестопы для победы в соревнованиях. Рассказывает юный французский хакер Максим Гриот: «Мы обнаружили скрытые переменные, управлявшие „уровнем совершенства“ покемона. Поэтому наши боты могли ловить самые совершенные версии всех покемонов».
Читать дальше →

Почему нельзя отправлять UDP-пакеты через браузер?

Reading time12 min
Views41K

Введение


В 2017 году большинство популярных веб-игр типа agar.io использует для передачи данных WebSockets через TCP. Если бы в браузерах был встроенный UDP-аналог WebSockets, то это бы сильно улучшило работу с сетями в этих играх.

Вводная информация


Работа веб-браузеров основана на протоколе HTTP (протоколе запросов и ответов без сохранения состояния). Первоначально он был предназначен для обслуживания статичных веб-страниц. HTTP работает поверх TCP, низкоуровневого протокола, гарантирующего надёжную доставку и правильный порядок передаваемых по Интернету данных.

Всё это отлично работало многие годы, но недавно веб-сайты стали более интерактивными и перестали отвечать парадигме «запрос-ответ» протокола HTTP. Для решения этой проблемы изобретены современные веб-протоколы, такие как WebSockets, WebRTC, HTTP 2.0 и QUIC, имеющие потенциал значительного улучшения интерактивности сети.

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

Это вызывает разочарование у разработчиков игр, ведь они просто хотят иметь возможность отправлять и принимать UDP-пакеты через браузер.
Читать дальше →

Анализ исходного кода движка Doom: рендеринг

Reading time8 min
Views41K
image

От экрана дизайнера к экрану игрока


Карты разрабатывались дизайнером уровней в 2D с помощью редактора Doom Editor (DoomED). LINEDEFS описывали замкнутые секторы (SECTORS в исходном коде), а третье измерение (высота) указывалась посекторно. Первый уровень Doom E1M1 выглядит так:

image

После завершения работы над картой она нарезается методом двоичного разбиения пространства (Binary Space Partitioning, BSP). LINEDEF рекурсивно выбирались и их плоскости превращались в секущие плоскости. То есть LINEDEF разрезались на сегменты (SEGS) до тех пор, пока не оставались только выпуклые подсектора (SSECTOR в коде).

Интересный факт: И DoomED, и iBSP писались на… Objective-C на рабочих станциях NextStep. Пятнадцать лет спустя тот же язык почти в той же операционной системе выполняет игру на мобильном устройстве! [прим. пер.: в 2010 году Doom вышел на iPhone] Я немного поработал веб-археологом и мне удалось найти исходный код idbsp. На него стоит посмотреть.

Генерирование полигональных карт для игр

Reading time24 min
Views61K
Я хотел научиться генерировать интересные игровые карты, которые не обязательно были бы реалистичными, а также попробовать техники, с которыми раньше не работал. Обычно я создаю карты с другой структурой. Что можно сделать с тысячей полигонов вместо миллиона тайлов? Отчётливо различимые игроком области могут быть полезны для геймплея: местоположения городов, места квестов, территории для захвата или колонизации, ориентиры, точки поиска пути, зоны с разной сложностью и т.д. Я генерировал карты с помощью полигонов, а затем растеризировал их вот в такие карты:

image

Во многих процедурных генераторах карт, в том числе и некоторых моих предыдущих проектах, для генерирования карты высот используются функции шума (midpoint displacement, фракталы, diamond-square, шум Перлина и т.д.). Здесь я их не применял. Вместо неё я использовал структуру графов для моделирования элементов, определяемых ограничениями геймплея (высота, дороги, течение рек, места квестов, типы монстров) и функции шума для моделирования того, что не ограничивается геймплеем (форма побережья, расположение рек и деревьев).
Читать дальше →

Как рендерился кадр в игре Thief 1998 года

Reading time25 min
Views36K
image

В 1998 году Looking Glass Studios выпустила стелс-игру Thief: The Dark Project. В то время аппаратное 3D-ускорение только зарождалось, поэтому в процессе разработки оно не использовалось, игра рендерилась только программно.

Я был основным автором базовой технологии рендеринга Thief (хотя я и не писал рендереры объектов и персонажей), а также связанных с ней элементов. Тот же движок рендеринга, модифицированный другими людьми для использования аппаратного 3D-ускорения, также использовался для рендеринга System Shock 2 и Thief 2.

Движок был написан примерно в одно время с Quake (хотя игра вышла намного позже), и общий внешний вид сильно напоминает Quake. Многие технологии были скопированы из Quake или вдохновлялись им, но часто их работа немного или значительно отличалась.
Читать дальше →

Уроки ВР, полученные при создании EVE: Valkyrie

Reading time5 min
Views11K
image

Эндрю Уиллэнс (Andrew Willans) уже долгое время работает в индустрии игр. Перед приходом CCP Games для работы над Eve: Valkyrie он успел поучаствовать в таких проектах, как Watch Dogs и Grow Home.

На VRDC в Сан-Франциско он рассказал об игре, запуск которой на Oculus Rift, PSVR и HTC Vive научил его очень многому.

Уиллэнс начал работу уже после создания прототипа Valkyrie, но до начала полномасштабной разработки, поэтому его рассказ может быть полезен разработчикам, стремящимся превратить VR-прототип в законченную игру.
Читать дальше →

Функции шума и генерирование карт

Reading time21 min
Views36K


Когда я изучал обработку аудиосигналов, мой мозг начал проводить аналогии с процедурным генерированием карт. В статье излагаются принципы, связывающие обработку сигналов с генерированием карт. Не думаю, что открыл что-то новое, но некоторые выводы были для меня в новинку, поэтому я решил записать их и поделиться с читателями. Я рассматриваю только простые темы (частоту, амплитуду, цвета шума, использование шума) и не затрагиваю другие темы (дискретные и непрерывные функции, фильтры FIR/IIR, быстрое преобразование Фурье, комплексные числа). Математика статьи в основном связана с синусоидами.

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

Динамическое обнаружение в игре Shadow Tactics

Reading time12 min
Views12K

Что: динамическое обнаружение в Shadow Tactics


В Shadow Tactics игроки управляют отрядом персонажей, каждый из которых имеет свою специализацию (в отряде может быть до пяти персонажей). Их задача — прокрасться по огромному уровню, заполненному врагами, и незаметно убить жертву. Каждый уровень — это головоломка со множеством решений. Один из самых важных инструментов игрока — способность отображать область видимости врага в форме конусов, которые мы называем конусами видимости (Viewcones). У конусов видимости есть области разного цвета, определяющие поведение врагов.

image
Рисунок 1: конус видимости Shadow Tactics.

Для тех, кому интересно, как это реализовано технически, я процитирую нашего ведущего технического инженера Фридера Мильке (Frieder Mielke), человека, создавшего всю систему: «Основной принцип, используемый в вычислениях конусов видимости — это использование карт теней. Сначала мы рендерим текстуру глубины из положения глаз выбранного персонажа. Затем при рендеринге основной камеры мы на основании ранее созданной текстуры глубин генерируем маску, содержащую информацию для разных областей видимости (например, „полная видимость“, „полностью скрытая“, „невидимая, когда персонаж ползёт“ и „за пределами видимости“). С помощью этой маски в последнем проходе мы можем раскрасить конус видимости. В этом проходе используется буфер шаблонов (stencil buffer) для исключения объектов, которые не нужно рендерить, и добавления информации об источниках освещения».

С точки зрения дизайна мы проанализировали, как эти конусы использовались в старых играх, и увидели способ их улучшения. Это привело нас к пересмотру некоторых аспектов обнаружения персонажей в этом жанра.
Читать дальше →

Процедурная генерация уровней для M.E.R.C. в Unity

Reading time6 min
Views12K


Часть вторая


В части первой этой статьи я рассказал, почему для игры M.E.R.C. мы выбрали процедурную генерацию уровней, и описал требования к ней. Также я описал процесс генерирования структуры процедурного уровня и соединения множества фрагментов для создания целостного уровня. Во второй части статьи мы обсудим решение проблем освещения и NavMesh в Unity и создание NPC на основании темпа.
Читать дальше →

Новая формула для ролевых игр

Reading time11 min
Views32K
image

Автор статьи Гвидо Хенкель (Guido Henkel) — профессиональный разработчик игр с 1983 года; участвовал в создании Jagged Alliance: Deadly Games, Fallout 2, был продюсером Planescape: Torment.

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

Но ситуация изменилась. Несмотря на мрачные пророчества, жанр выжил, благодаря адаптации и упрощению игровых особенностей. Компьютерные ролевые игры (CRPG) стали более понятными широкой аудитории, и сегодня можно смело сказать, что современные CRPG — это мейнстрим, имеющий мало общего с предшественниками из 80-х и 90-х. Фактически, можно заявить, что они почти не походят на ролевые игры. (Разумеется, я не имею в виду игры, выросшие в последние годы на основе возрождённых ретро-RPG: очевидно, что они представляют собой намеренный возврат к парадигмам классического дизайна.)

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

История создания Final Fantasy VII

Reading time20 min
Views15K
image

Определившись со своим решением покинуть Nintendo, Square быстро приступила к реализации Final Fantasy 7 на PlayStation. Компания наняла большой коллектив специалистов по 3D и художников, приобрела сотни рабочих станций Silicon Graphics. По мнению многих сотрудников, такая финансовая поддержка позволила обогнать конкурентов, разрабатывавших первые 3D-игры.

Тем временем Square вложила большинство своих ресурсов в создание художественного оформления, музыки и сюжета игры. Она экспериментировала со способами изложения истории через полигональных персонажей и CG-ролики. Кроме того, компания потратилась на открытие западного офиса по продажам и маркетингу в США, чтобы повысить популярность игры в тех странах, где эта серия пока «не взлетела».
Читать дальше →

Защита игр GameBoy Advance от эмуляции

Reading time9 min
Views14K


Кое-кто из вас может помнить серию примечательных игр для Game Boy Advance, вышедших в течение 2004 года. Светло-серые картриджи с простыми этикетками сильно отличались от обычных, тёмно-серых, с разноцветными этикетками. На них продавались игры, портированные с оригинальной Nintendo Entertainment System. Эти игры, известные в США как Classic NES Series, интересны по нескольким причинам.

Особенно интересны они с точки зрения эмуляции GBA. Обычно игры для Game Boy Advance невероятно проблемны, а сама платформа содержит множество средств для защиты от сбоев. Поэтому для запуска игр эмуляторы должны быть совместимы с ошибками оригинального оборудования. Однако в серии Classic NES Series разработчики пошли дальше и попытались защитить игру от запуска в эмуляторах.
Читать дальше →

Процедурная генерация уровней для M.E.R.C. в Unity

Reading time6 min
Views18K
image

Часть первая


Процедурная генерация уровней — отличный способ добавить в игру больше контента и неожиданных сценариев. Для сюжетных миссий M.E.R.C. мы хотели создать большой набор сделанных вручную уровней, но осознавали, что нашей небольшой инди-команде не хватит времени или ресурсов на изготовление контента для такой большой игры. Кроме того, мы стремились добавить случайность и повысить реиграбельность игры. Процедурная генерация уровней позволила нам создать большой, бесконечно изменчивый мир, который мы не смогли бы получить, строя отдельные уровни вручную. Использование процедурной генерации позволяет добавить больше контента и улучшить игровой процесс.

Что такое M.E.R.C.? M.E.R.C. — это тактический симулятор отряда в реальном времени с видом сверху. Игрок одновременно управляет отрядом из четырёх наёмников в антиутопическом мире Неотопии, отдаёт приказы и активирует особые умения. Каждый наёмник отряда имеет собственные особые боевые, технические и хакерские навыки, которые необходимо использовать в миссиях. Визуально M.E.R.C. напоминает стиль «Бегущего по лезвию»: тёмные дождливые трущобы и крыши города со множеством извилистых улиц и неоновым освещением. Сюжет заключается в войне могущественных корпораций за контроль над Неотопией. Отряд нанимают для выполнения различных заданий корпораций, таких как похищение учёных конкурентов или убийство сотрудников-перебежчиков. Каждая полученная миссия влияет на отношения с разными корпорациями и в результате изменяет игровой мир. Учитывая всё это, давайте рассмотрим требования к процедурной генерации уровней.
Читать дальше →

Виртуальная кинематография для VR-трейлеров

Reading time10 min
Views5.4K


После создания трейлеров для Fantastic Contraption и Job Simulator в смешанной реальности я захотел немного глубже погрузиться в виртуальную кинематографию, сняв весь трейлер в VR, а не смешивая живую запись с виртуальной реальностью.

Идею съёмки игровых аватаров вместо самих игроков на зелёном фоне мы в меньшем объёме реализовали в трейлере Fantastic Contraption в смешанной реальности. Я хотел развить эту идею и проверить, сможем ли мы записать таким образом весь трейлер, используя разные фокусные расстояния и перемещения камеры, как это делается в традиционной съёмке.

Физика поездов в Assassin's Creed Syndicate

Reading time14 min
Views20K

В этой статье я хочу рассказать о нашем собственном симуляторе, созданном для моделирования физики поездов в Assassin's Creed Syndicate. Действие игры происходит в Лондоне 1868 года, в период промышленной революции, когда развитие общества зависело от пара и стали. Для меня было огромным удовольствием поработать над уникальной возможностью реализации мира Лондона викторианской эпохи. Внимание к историческим и реальным деталям привело нас к созданию этой физической симуляции.

Введение


Сегодня писать свои физические движки не очень популярно. Однако бывают ситуации, в которых создание собственного физического симулятора с нуля чрезвычайно полезно. Такие ситуации могут возникать, когда есть особая необходимость в новой геймплейной функции или части симулируемого игрового мира. Именно такая проблема возникла у нас при разработке системы железных дорог и управления поездами в Лондоне 19-го столетия.

Стандартная система соединения европейских поездов приведена на Рис. 1 слева. Такая же система использовалась в поездах 19-го века в Лондоне [1]. Когда мы начали работу над поездами, то быстро осознали, что можно создать интересные взаимодействия и зависимости, симулируя стяжку физически. Поэтому вместо жёсткого скрепления вагонов мы соединили их подвижным сцепным устройством, управляющим движением всех вагонов поезда.

image
Рис. 1. Слева — детали винтовой стяжки (источник: Википедия [1]). Справа — соединительная система в Assassin’s Creed Syndicate.

Создание реалистичного чата в игре Mr. Robot: 1.51exfiltrati0n

Reading time9 min
Views9.1K
image

Кто: Адам Хайнс (Adam Hines), сооснователь Night School Studio и директор игры, и Кевин Райех (Kevin Riach), гейм-дизайнер и продюсер Mr. Robot Ep1.51exfiltrati0n, выпущенной в августе 2016 года


Кевин Райех: хотя Night School Studio основана в 2014 году, мы с Адамом начали работать над первой игрой студии Oxenfree в июле 2015 года.

imageАдам был единственным сценаристом и директором проекта, а я включился в разработку позже. Меня взяли временным дизайнером, чтобы успеть выпустить игру в срок. В январе прошлого года мы выпустили эту адвенчуру, основанную на вариантах выбора, для PlayStation, XBox, в Steam, GOG и на других сайтах, продающих видеоигры.

После выпуска Oxenfree мы мозговым штурмом начали придумывать разные концепты следующего проекта. Изначально студия была основана именно как небольшая команда для создания игр на стыке истории и интерактивности.

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

Вскоре к нам обратилась Universal с предложением создать игру во вселенной Mr. Robot, и нам показалось, что эти две идеи отлично сочетаются.

Команда, состоявшая из шести сотрудников студии и двух наёмных работников, справилась с циклом разработки игры за шесть месяцев. Почти сразу после начала разработки к нам подключились прежние коллеги Адама из Telltale Games (которой я помогал создавать The Wolf Among Us). Так и родилась игра Mr. Robot Ep1.51exfiltrati0n (дальше я для краткости буду называть её Exfiltrati0n).
Читать дальше →

Борьба с читерами в онлайн-играх: 22 «нужно» и «нельзя»

Reading time10 min
Views58K
image

Почти невозможно найти успешную многопользовательскую онлайн-игру (кроме тех, в которые играют только друзья разработчика), в которой нет читеров. Другими словами, если в вашей публичной игре нет читеров, она или недостаточно популярна, или распознавание мошенников работает не слишком хорошо. Во всех остальных случаях вам придётся иметь дело с читерством. Изучите список шагов которые НУЖНО и НЕЛЬЗЯ совершать (подробное обсуждение темы читерства приведено в моей трёхтомной книге, см. примечание в конце статьи) при борьбе с мошенничеством в играх.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity