Pull to refresh
-1
0

Веб-разработчик

Send message

Блуждающий монстр: как избавиться от проблем на карте

Reading time14 min
Views13K
image

Уже в процессе создания The Witness стала одной из самых любимых моих игр. Я начал играть в неё с того момента, когда Джонатан Блоу начал её разработку, и не мог дождаться её релиза.

В отличие от предыдущей игры Джона Braid, масштаб ресурсов и программирования The Witness был гораздо ближе к AAA-проектам, чем к инди-играм. Всем, кто работает над подобными проектами, известно, что объём работы при выборе такого пути значительно возрастает. Над The Witness работало гораздо больше людей, чем над Braid, но как и в случае с любым проектом такого уровня, в нём есть множество аспектов, которые требуют больше внимания, чем может позволить себе руководство проекта.

Поэтому я всегда стремился находить свободное время, чтобы помогать в создании The Witness, когда дело дошло до выпуска игры. Поэтому однажды в День благодарения мы с Джоном уселись и просмотрели список вещей в кодовой базе, которые бы выиграли от дополнительных усилий со стороны ещё одного программиста. Определившись с относительной важностью пунктов списка, мы решили, что сильнее всего выиграет игровой процесс, если мы внесём улучшения в код движения игрока.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments23

VPS.today — каталог виртуальных серверов

Reading time8 min
Views11K
В октябре моему проекту Поиск VPS исполнится 5 лет. В 2013 году я представил его общественности, и он был воспринят пользователями и хостерами крайне положительно. В течение следующего года я активно развивал сайт и добавлял различные функции, однако с 2015 года на сайте не происходило практически никаких изменений. Мое мнение практически во всем — если что-то хорошо работает, то лучше это не трогать. Сайт работает достаточно хорошо, нужно только обновлять тарифы, но мне всегда хотелось большего. Поэтому не так давно я решил сделать небольшое ответвление этого проекта, и в результате получился новый сайт для поиска виртуальных серверов — VPS.today, о котором я сегодня хочу рассказать.



Внешне эти два сайта сильно похожи, все-таки это поисковики и принцип работы у них один и тот же. На новом проекте я постарался учесть все ошибки и добавить много новых функций и улучшений.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments42

Где мои деньги чувак: оформление и бандлы Steam, локализация и дистрибуторы

Reading time27 min
Views19K
Это длиннющие следующие три части из цикла «где мои деньги, чувак» в которых мы будем говорить о важности оформления странице на Steam, работе с комьюнити и важности региональных ограничений. Посмотрим на дистрибьюторов и рынок 3d-party дистрибуции, альтернативных открытых платформах, бандлах, фондах и лучших практиках краудфандинга в 2018 году. Наконец, посмотрим на то, что важно для безболезненной локализации игр и сколько это стоит.

Помимо веселых гифок мы снова будем считать чужие деньги и строить грандиозные планы покорения мира.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments13

Динамическое рисование по мешу в Unreal Engine 4

Reading time8 min
Views15K

В этом туториале по Unreal Engine 4 вы научитесь рисовать цветами по мешу любого типа.

Рисование по мешу позволяет игрокам раскрашивать внутриигровые объекты. Примеры рисования по мешу: граффити (goop) в Super Mario Sunshine, гели в Portal 2 и чернила в Splatoon. Рисование может использоваться как геймплейний элемент или быть просто графическим оформлением. Как бы то ни было, рисование по мешу открывает новые возможности для дизайнеров геймплея и художников.

Хотя в перечисленных выше примерах этот эффект используется почти одинаково, вы можете применять рисование по мешу и для многих других эффектов. Например, можно рисовать на объектах банками с краской, прорисовывать на персонажах раны или даже позволить игрокам самим нарисовать лицо персонажа!

В этом туториале вы узнаете, как рисовать на скелетном меше. Для этого мы сделаем следующе:

  • Развернём меш в его UV-форму
  • Используем точку пересечения трассировки линии для создания сферической маски меша
  • Отрендерим развёрнутый меш и сферическую маску в render target с помощью захвата сцены (scene capture)
  • Используем маску для смешивания текстур в материале персонажа

Учтите, что этот туториал не посвящён рисованию вершин. Рисование вершин зависит от разрешения меша и его невозможно изменять в процессе игры. Используемый в этом туториале метод, напротив, работает вне зависимости от разрешения меша и его можно применять во время игры.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments2

Как восстанавливали видео для Full Throttle Remastered. Часть 2

Reading time17 min
Views7.3K
image

В моём предыдущем посте я рассказал, как мы извлекали контент из исходных FMV-файлов и создали инструменты для анализа примерно 67 ГБ архивов в поисках промежуточных составляющих частей, использованных для создания FMV. Эти части являются базисом для создания remastered-контента FMV и использовались в качестве «сборочных чертежей» для начала проекта.

Как сказано в предыдущей статье, рабочий процесс ремастеринга разделён на три ветви: ремастеринг нарисованных вручную кадров, ремастеринг 3D-моделей и ремастеринг звука. Ниже я расскажу об особенностях рабочего процесса и трюках, которые мы использовали для автоматизации создания основной части видео.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments13

Создание персонажей в Blender и Unity

Reading time18 min
Views165K

Визуально персонажи 3D-игр имитируются с помощью использования моделей, текстур и анимаций.

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

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

Возможность многократного применения анимаций позволяет использовать анимации из Asset store и с таких вебсайтов, как mixamo.com, для ваших собственных персонажей. Это экономит кучу времени!

В этом туториале вы узнаете, как подготовить гуманоидную модель в Blender и как перенести её в Unity. В частности, вы научитесь следующему:

  • Создавать арматуру (скелет) персонажа и выполнять её риггинг (привязку скелета к мешу)
  • Модифицировать персонаж добавлением аксессуаров и объектов
  • Экспортировать модель в FBX
  • Импортировать модели Blender
  • Создавать и настраивать гуманоидный аватар
  • Прикреплять к персонажу объекты
  • Анимировать гуманоида в Unity
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments8

Первый опыт или как пытаться стать Легендой кода и магии

Reading time5 min
Views4.2K
Всем привет. Меня зовут Валентин.

10 июля я прочел на Хабре пост Оли Ollisteka про платформу codingame.com и решил попробовать свои силы в логических задачах, а так же в конкурсе Legends of Сode and Magic.

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

image

Далее будет краткая информация о правилах конкурса, а так же о некоторых очевидных или не очень вещах для новичков.

Legends of Code and Magic


Контест, который проходит с 25 июля по 24 августа. Игра в некотором смысле похожа на Hearthstone, однако часть вещей улучшена в сторону баланса между игроками.

Игра проходит между двумя игроками, и это пошаговая игра. Каждый игрок имеет свою колоду карт, выбранную из доступных вариантов во время фазы Draft перед фазой Battle.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments6

Злоумышленники могут получить полный удаленный доступ к Android-устройству через порт публичной USB-зарядки

Reading time3 min
Views33K


С приходом в нашу жизнь USB-устройств и USB-портов одним из главных требований к безопасности стало внимательное отношение к точкам подключения, которые способны проводить передачу данных между девайсами. Собственно, по этой причине в ОС Android с самых ранних версий (с 2.0 так точно) существует опция ручного включения порта устройства в режим передачи информации с объектом подключения, т.е. с портом USB. Без активации этой функции устройство лишь заряжается от USB, игнорируя всякие (очевидные) запросы на обмен информацией от второй стороны.

Но Кевин Батлер и его исследовательская группа в области информационной безопасности Университета Флориды недавно обнаружили крайне элегантный и при этом довольно опасный способ атаки на пользовательские устройства через USB-порт. При этом сам порт выступает для наблюдателя лишь как источник питания и может размещаться в любом публичном или не очень месте, например, на зараженном ПК, в кафе или точке зарядки USB-устройств в аэропорте. Для атаки должно выполняться одно условие кроме доступа к обмену данными с портом зарядки со стороны злоумышленника: выход экрана смартфона из поля зрения хозяина (чтобы он не заметил, что устройство стало «жить своей жизнью»).

При этом пароль блокировки экрана обходится одной короткой командой, что дает атакующему доступ к главному экрану смартфона.
Total votes 51: ↑51 and ↓0+51
Comments103

Почему персонажи видеоигр почти никогда не раздеваются

Reading time6 min
Views60K

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

Посмотрите на сцену из игры 2010 года Mass Effect 2 с раздевающимся Джейкобом. На первый взгляд кажется, что он стянул рубашку, как это сделал бы любой человек, демонстрируя невидимому оператору заработанные в боях кубики пресса. А теперь приглядитесь внимательно: к моменту, когда его руки движутся по телу, «снимая» рубашку, её уже нет. Игра переключилась с одетой на раздетую модель с помощью иллюзии, заставляющей игрока подумать, что он снимает рубашку.
Total votes 116: ↑115 and ↓1+114
Comments116

Главные ошибки монетизации приложения [и как их исправить]

Reading time7 min
Views6.2K

image


Сегодня на повестке дня постоянные грабли мобильных разработчиков, с которыми я сталкиваюсь во время аудита приложения в Epom Apps — а это более 500 приложений. По большинству ошибок мобильной монетизации есть живые примеры и антипримеры.
Но сначала — три рекомендации от кэпа, о которых нужно подумать до начала монетизации.

Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments1

JavaScript: исследование объектов

Reading time10 min
Views27K
Материал, перевод которого мы сегодня публикуем, посвящён исследованию объектов — одной из ключевых сущностей JavaScript. Он рассчитан, преимущественно, на начинающих разработчиков, которые хотят упорядочить свои знания об объектах.



Объекты в JavaScript представляют собой динамические коллекции свойств, которые, кроме того, содержат «скрытое» свойство, представляющее собой прототип объекта. Свойства объектов характеризуются ключами и значениями. Начнём разговор о JS-объектах с ключей.
Читать дальше →
Total votes 30: ↑24 and ↓6+18
Comments6

Обзор техник реализации игрового ИИ

Reading time55 min
Views58K
image

Введение


Эта статья познакомит вас с широким диапазоном концепций искусственного интеллекта в играх («игрового ИИ»), чтобы вы понимали, какие инструменты можно использовать для решения задач ИИ, как они работают совместно и с чего можно начать их реализацию в выбранном движке.

Я буду предполагать, что вы знакомы с видеоиграми, немного разбираетесь в таких математических концепциях, как геометрия, тригонометрия и т.д. Большинство примеров кода будет записано псевдокодом, поэтому вам не потребуется знание какого-то конкретного языка.

Что же такое «игровой ИИ»?


Игровой ИИ в основном занимается выбором действий сущности в зависимости от текущих условий. В традиционной литературе по ИИ называет это управлением "интеллектуальными агентами". Агентом обычно является персонаж игры, но это может быть и машина, робот или даже нечто более абстрактное — целая группа сущностей, страна или цивилизация. В любом случае это объект, следящий за своим окружением, принимающий на основании него решения и действующий в соответствии с этими решениями. Иногда это называют циклом «восприятие-мышление-действие» (Sense/Think/Act):

  • Восприятие: агент распознаёт — или ему сообщают — информацию об окружении, которая может влиять на его поведение (например, находящиеся поблизости опасности, собираемые предметы, важные точки и так далее)
  • Мышление: агент принимает решение о том, как поступить в ответ (например, решает, достаточно ли безопасно собрать предметы, стоит ли ему сражаться или лучше сначала спрятаться)
  • Действие: агент выполняет действия для реализации своих решений (например, начинает двигаться по маршруту к врагу или к предмету, и так далее)
  • … затем из-за действий персонажей ситуация изменяется, поэтому цикл должен повториться с новыми данными.
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments15

PHP-Дайджест № 137 (6 – 20 августа 2018)

Reading time3 min
Views14K

PHP 7.3.0 Beta 2 и другие релизы, предложение из PHP Internals, порция полезных инструментов, видеозапись «Пишем блокчейн на PHP», и многое другое.
Приятного чтения!


Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments8

Что почитать о звуке в кино, видео и играх

Reading time7 min
Views7.3K
Мы собрали для вас два десятка «аудиоманских» статей из нашего «Мира Hi-Fi» и с англоязычных сайтов. В подборке — тексты о любопытных решениях в озвучивании и дубляже фильмов, о звуковых спецэффектах в видеоиграх, а также об истории развития саунд-дизайна как индустрии.

Наш микроформат — Telegram-канал «Аудиомании»

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments0

Learn OpenGL. Урок 5.8 – Bloom

Reading time12 min
Views16K
OGL3

Bloom


В связи с ограниченным диапазоном яркости, доступным обычным мониторам, задача убедительного отображения ярких источников света и ярко освещенных поверхностей является сложной по определению. Одним из распространенных методов, позволяющих подчеркнуть яркие области на мониторе, является техника, добавляющая ореол свечения вокруг ярких объектов, создающая впечатление «растекания» света за пределы источника света. В итоге у наблюдателя создается впечатление о высокой яркости таких освещенных участков или источников света.

Описанный эффект ореола и выхода света за пределы источника достигается техникой пост-обработки, именуемой блумом (bloom). Применение эффекта добавляет всем ярким участкам отображаемой сцены характерный ореол свечения, что можно увидеть на примере ниже:

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments6

Learn OpenGL. Урок 5.7 — HDR

Reading time9 min
Views15K

При записи во фреймбуфер значения яркости цветов приводятся к интервалу от 0.0 до 1.0. Из-за этой, на первый вгляд безобидной, особенности нам всегда приходится выбирать такие значения для освещения и цветов, чтобы они вписывались в это ограничение. Такой подход работает и даёт достойные результаты, но что случится, если мы встретим особенно яркую область с большим количеством ярких источников света, и суммарная яркость превысит 1.0? В результате все значения, большие чем 1.0, будут приведены к 1.0, что выглядит не очень красиво:



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


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


Дисплей компьютера способен показывать цвета с яркостью в диапазоне от 0.0 до 1.0, но у нас нет такого ограничения при расчёте освещения. Разрешая цветам фрагмента быть ярче единицы, мы получаем намного более высокий диапазон яркости для работы — HDR (high dynamic range). С использованием hdr яркие вещи выглядят яркими, тёмные вещи могут быть реально тёмными, и при этом мы будем видеть детали.

Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments14

Мысли Джимми Уэйлса: «Википедия как сосиска...»

Reading time8 min
Views3.8K
image

Цитаты


Представьте мир, в котором каждый человек на планете получает бесплатный доступ к знаниям всего человечества. Это то, чем мы занимаемся.

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

Википедия как сосиска: тебе может нравиться её вкус, но тебе не обязательно хотеть видеть как она изготавливается.

Когда кто-то пишет 'f**k, f**k, f**k' мы просто исправляем это, смеемся и двигаемся дальше. Но сложными социальными проблемами являются пограничные случаи — люди, которые делают хорошую работу, но также являются занозой в заднице.

Википедия — это, прежде всего, попытка создать и распространить бесплатную энциклопедию с максимально возможным качеством для каждого человека на планете на его родном языке. Спрашивая, приходит ли сообщество до или после этой цели, вы на самом деле задаете неправильный вопрос: вся цель сообщества — именно эта цель.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments11

5 приемов работы с CSS, о которых вам следует знать

Reading time6 min
Views46K


Наблюдая за потоком вопросов по CSS на Тостере уже давно заметил, что многие из них повторяются много-много раз. Да, есть совсем глупые вопросы, на которые так и тянет ответить RTFM! Но есть и более занятные. Они связаны с не совсем стандартной версткой. Не такой, чтобы глаза на лоб лезли, но и заметно выходящей за рамки условного бутстрапа и традиционных туториалов для новичков. Похожие вопросы довольно сложно загуглить — обычно вся суть в картинке, но и отвечать каждый раз надоедает. В этой статье мы постараемся посмотреть некоторые приемы, охватывающие довольно широкий круг подобных вопросов. Информация в первую очередь адресуется начинающим верстальщикам, но возможно и опытным будет, чем вдохновиться.

Total votes 60: ↑58 and ↓2+56
Comments25

«Реальность под вопросом»: основные тезисы книги Джейн Макгонигал о роли игр в современном обществе

Reading time10 min
Views22K
image

Книгу «Реальность под вопросом: Почему игры делают нас лучше и как они могут изменит наш мир» (“Reality Is Broken: Why Games Make us Better and How they Can Change the World”) — известный геймдизайнер и специалист по геймификации Джейн Макгонигал посвятила тому, как и почему при помощи игр человечество может успешно менять окружающий мир.

Книга была издана ещё в начале 2011 года и получила широкую известность, но на русский язык была переведена только в этом году. По сути, это манифест игр и геймификации как главного инструмента и для организации повседневной жизни, и для решения глобальных проблем современного мира. Несмотря на время, прошедшее с момента первой публикации и на неактуальность некоторых примеров, работа Макгонигал не утратила своей ценности.
Под катом — основные тезисы книги.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments45

Создание интерактивной травы в Unreal Engine

Reading time10 min
Views26K

До недавнего времени трава в играх обычно обозначалась текстурой на земле, а не рендерингом отдельных стеблей. Но с увеличением мощности железа появилась возможность рендерить траву. Замечательные примеры такого рендеринга можно увидеть в играх наподобие Horizon Zero Dawn и The Legend of Zelda: Breath of the Wild. В этих играх игрок может бродить по травяным лугам, и, что более важно, трава реагирует на действия игрока.

К счастью, создать такую систему не очень сложно. На самом деле, статья научит вас именно этому! В этом туториале вы научитесь следующему:

  • Создавать векторное поле с помощью захвата сцены (scene capture) и системы частиц
  • Сгибать траву от игрока на основании векторного поля
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments3

Information

Rating
Does not participate
Registered
Activity