Pull to refresh
1909
224.2

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

Send message

Поиск пути в играх Tower Defense

Reading time6 min
Views19K
[Прим. пер.: в оригинале статьи есть интерактивные демо, которые я продублировал с помощью видео. Для большей наглядности рекомендую изучить примеры в оригинале.]

В играх жанра Tower Defense (TD) множество врагов стремится добраться в одну точку. Во многих играх TD существует заранее заданный путь или несколько путей. В некоторых, в том числе в классической Desktop Tower Defense можно размещать башни в произвольных местах, и они становятся препятствиями, влияющими на пути врагов. Запустите демо и нажимайте на карту, чтобы возводить или убирать стены:


Аутисты — вундеркинды программирования: разрушение мифов

Reading time5 min
Views28K


В апреле 2016 года Алекс Сент-Джон, один из разработчиков технологической платформы DirectX Microsoft, написал статью, в которой он защищал восьмидесятичасовую рабочую неделю, презрительно отзывался о балансировании работы и личной жизни, а фарфоровые унитазы назвал «невероятно декадентской роскошью». Статью Сент-Джона сильно критиковали за поддержку того, что многими считается эксплуатацией трудовой деятельности и отношений в индустрии видеоигр.

На волне критики всплыла написанная Сент-Джоном презентация PowerPoint, на одном из слайдов которой инженеры с синдромом Аспергера называются «священным Граалем» для нанимателей. «Они работают как механизмы», — написал он. «Не интересуются политикой, не ввязываются в отношения и никогда не меняют место работы».
Читать дальше →

Thief: создание нарратива с помощью дизайна уровней и механик

Reading time9 min
Views12K
Недавно мне удалось выступить с докладом о Thief: The Dark Project на Game Developers Conference в рамках конкурса обзоров игровых нарративов, где я занял первое место. В сущности, я полностью изложил зрителям нюансы и элементы нарратива, сделавшие важнейший проект Looking Glass настолько совершенным примером использования игрового окружения в повествовании (environmental storytelling).



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

Анализ исходного кода Duke Nukem 3D: Часть 2

Reading time7 min
Views22K
image

[Перевод первой части находится здесь.]

Унаследованный код


Build — это выдающийся движок, а множество игр, использовавших его, принесли большую и заслуженную славу и Кену Силверману, и 3D Realms.

Кен Силверман выполнил условия договора: он предоставил двоичный файл потрясающего 3D-движка с хорошо задокументированными методами и форматами ресурсов. В качестве признания его заслуг 3D Realms указала его имя в титрах как «Ken 'I can do that' Silverman» (Кен «Я могу это сделать» Силверман). Но разработка Build была сосредоточена на возможностях и скорости, а не удобстве портирования и чтения. После изучения кода я думаю, что open source-разработчики избегали его по следующим причинам:

  • Его обескураживающе сложно читать и получать из него знания.
  • Он не был портируемым.

В этой статье я перечислил часть сложностей, с которыми столкнулся. Также я выпустил порт Chocolate Duke Nukem 3D, призванный решить эти проблемы. Я хотел, чтобы люди запомнили, какой уровень гениальности нужен был для создания 3D-движка в то время. Кроме того, я хотел, чтобы они осознали, как движимый страстью подросток смог внести вклад в одну из величайших игр всех времён.
Читать дальше →

Гейм-дизайнеры, учитесь программировать

Reading time6 min
Views16K


Когда мне было 11 лет, наша семья купила первый компьютер: AST «Advantage!» с процессором 486 (66 МГц), 4 МБ ОЗУ и жёстким диском на 32 МБ. Это не был самый мощный компьютер, даже в те времена, но на нём был QBasic. Я всегда хотел делать игры, поэтому немедленно погрузился в программирование.
Читать дальше →

Анализ исходного кода Duke Nukem 3D: Часть 1

Reading time19 min
Views44K
image

Уйдя с работы в Amazon, я провёл много времени за чтением отличного исходного кода.

Разобравшись с невероятно замечательным кодом idSoftware, я принялся за одну из лучших игр всех времён: Duke Nukem 3D и за её движок под названием "Build".

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

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

Каскадная трассировка воксельных конусов в игре 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
Views40K
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
Views35K


Когда я изучал обработку аудиосигналов, мой мозг начал проводить аналогии с процедурным генерированием карт. В статье излагаются принципы, связывающие обработку сигналов с генерированием карт. Не думаю, что открыл что-то новое, но некоторые выводы были для меня в новинку, поэтому я решил записать их и поделиться с читателями. Я рассматриваю только простые темы (частоту, амплитуду, цвета шума, использование шума) и не затрагиваю другие темы (дискретные и непрерывные функции, фильтры 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-ролики. Кроме того, компания потратилась на открытие западного офиса по продажам и маркетингу в США, чтобы повысить популярность игры в тех странах, где эта серия пока «не взлетела».
Читать дальше →

Information

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