Как стать автором
Обновить
0
0
Ivan Vodoleev @ivanvodoleev

Technical Sound Designer

Отправить сообщение

Приемы при проектировании архитектуры игр

Время на прочтение11 мин
Количество просмотров146K
К сожалению, нигде нет более менее полной публикации на тему проектирования архитектуры в играх. Есть отдельные статьи на конкретные темы, но нигде все это вместе не собрано. Каждому разработчику приходится самостоятельно по крупицам собирать подобную информацию, набивать шишки. Поэтому решил попробовать собрать часть из этого воедино в данной статье.

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

В публикации рассматриваются следующие темы:
  • Наследование VS компоненты
  • Сложные иерархии классов юнитов, предметов и прочего
  • Машины состояний, деревья поведений
  • Абстракции игровых объектов
  • Упрощение доступа к другим компонентам в объекте, сцене
  • Сложные составные игровые объекты
  • Характеристики объектов в игре
  • Модификаторы (баффы/дебаффы)
  • Сериализация данных

Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии30

Знакомство Unity с FMOD за пять минут

Время на прочтение3 мин
Количество просмотров8.9K

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

Событийные звуки, через код, программиста просят проигрывать с учётом изменения pitch в небольших пределах. Особо никто не парится. Всех устраивает встроенные возможности настройки компонентов и Inspector-ом все довольны.

Теперь представим ситуацию посложнее. Компания/команда решает подтянуть звуковой дизайн игры с помощью FMOD. Программист начинает предполагать, как новые условия / требования повлияют на код. Придется переписывать кучу всего... Короче, страшное дело. Тем более видели этот интерфейс FMOD Studio? Управление космическим кораблем.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Хорошего кода не бывает

Время на прочтение4 мин
Количество просмотров16K

Серьезно. Кода на который можно посмотреть и сказать "это сделано на отлично" почти не бывает – в основном один фарш из легаси, гвоздей, и иероглифов.

Это не пессимизм. Откройте почти любой коммерческий проект, где люди решают задачи, живут с тем что есть, проект уже прожил сравнительно долгую жизнь, а команда меняется (и это нормально).

Тема пойдет про причину, почему оно происходит, и почему не надо создавать себе иллюзий хорошего кода.

Серьезно
Всего голосов 18: ↑17 и ↓1+18
Комментарии41

Мышление письмом

Время на прочтение9 мин
Количество просмотров58K


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

Что же я получил после полугода использования мышления письмом?
Читать дальше →
Всего голосов 67: ↑66 и ↓1+89
Комментарии85

Уютный книжный пост для вас и вашего проекта

Время на прочтение8 мин
Количество просмотров131K
Как заработать миллион за день, стать искусным оратором за неделю, похудеть на 100 кг за 2 дня, стать успешным в тысяча ста начинаниях и прочая мишура регулярно засоряет наше информационное пространство. А порой так хочется взять в руки книгу, которая не просто съест кусок вашего свободного времени повествуя о неприменимых в отечественных реалиях вещах, но и подкинет хотя бы несколько полезных советов, способных оказать позитивное влияние на развитие вашей личности и вашего проекта.

Если вы хотите найти и/или поделиться хорошими книгами, добро пожаловать под кат.

image

Читать дальше →
Всего голосов 76: ↑62 и ↓14+48
Комментарии45

Как создавался звук в Pathfinder: Kingmaker

Время на прочтение17 мин
Количество просмотров11K


Pathfinder: Kingmaker (далее PF:K для удобства) — компьютерная ролевая игра, созданная студией Owlcat Games и вышедшая этой осенью в Steam и GoG. Проект, вдохновлённый классическими играми от Bioware и разделяющий с ними такие особенности, как использование правил популярной системы настольных игр, сражения в реальном времени с паузой, камера с изометрической проекцией, нелинейность прохождения и возможность получить несколько уникальных завершений.


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

Всего голосов 34: ↑33 и ↓1+32
Комментарии15

Оптимизируем производительность игры параметрами импорта звука Unity

Время на прочтение12 мин
Количество просмотров23K
image

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

Этот документ разделён на пять частей:

  1. Как звук влияет на производительность
  2. Разбираемся с параметрами импорта
  3. Рекомендуемые мной параметры для PC и консолей
  4. Рекомендуемые мной параметры для мобильных платформ
  5. Предостережения и замечания

Оптимизация параметров импорта звука Unity — один из простейших способов оптимизации. В случае небольшого проекта у вас может уйти меньше часа для достижения значительных улучшений во времени загрузки, занятой ОЗУ и других аспектах производительности. Надеюсь, это руководство окажется полезным для вас. Информация актуальна для Unity версии 2018.3
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии5

Бесплатные программы для удаленного управления компьютерами

Время на прочтение5 мин
Количество просмотров725K
Программы удаленного управления компьютером позволяют дистанционно управлять другим компьютером через Интернет или в локальной сети. Это удобно, когда необходимо помочь не очень опытному пользователю, например, родственнику или другу, плохо разбирающемуся в компьютере что-либо сделать на нем, не сходя со своего уютного кресла и не тратя при этом свои нервы и время на телефонные разговоры. Такие программы еще удобно использовать для удаленной работы, например, из дома для подключения в офис и наоборот — для доступа к своему домашнему ПК, для системного администрирования целого парка компьютеров и серверов.

Проведем сравнительный анализ программ удаленного управления, выделим их преимущества и недостатки.
Читать дальше →
Всего голосов 21: ↑9 и ↓12-3
Комментарии28

Как я сделал абсолютно бесшумный компьютер

Время на прочтение6 мин
Количество просмотров135K


Почти три десятилетия я пытаюсь делать мои компьютеры тише. Жидкостное охлаждение собственного изготовления, гидродинамические подшипники с магнитной стабилизацией, акустические демпферы, силиконовые амортизаторы – я использовал всё, что можно представить. И на прошлой неделе я, наконец, сумел построить совершенно бесшумный компьютер. Без лишних слов, знакомьтесь: Streacom DB4. Корпус размером 26 x 26 x 27 см без единого вентилятора. У него вообще нет никаких движущихся частей. Полная тишина, 0 дБ.

Если снять с него верхнюю и четыре боковых стенки (штампованный алюминий, толщина стенки 13 мм), вы увидите минимальную раму и центральную монтажную пластину для материнской платы формата mini-ITX (порты ввода/вывода смотрят вниз, сквозь дно корпуса).
Читать дальше →
Всего голосов 130: ↑119 и ↓11+108
Комментарии329

Рыцари плаща и руткитов: что посмотреть про хакеров. Сериалы

Время на прочтение8 мин
Количество просмотров70K
Лето — пора путешествий и заслуженного отдыха.  Каким бы ни было путешествие и куда бы вы ни направлялись, наверняка, это будет длинная дорога (авиаперелет или поезд), или же среднего качества связь, если мы говорим об удаленных от благ цивилизации местах.

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

Мы приготовили для вас небольшую подборку сериалов, так или иначе связанных с ИT. А натолкнула нас на идею этого поста многолетняя дружба ЛАНИТ с Международным фестивалем документального кино "ДОКЕР", где, кстати, в том числе с нашей помощью традиционной стала номинация для фильмов о возможностях информационных технологий «Let IT Doк!».

Кадр из сериала «Mr. Robot» (eps3.1_undo.gz)
Читать дальше →
Всего голосов 93: ↑89 и ↓4+85
Комментарии88

Обзор наиболее интересных материалов по анализу данных и машинному обучению №34 (2 — 8 февраля 2015)

Время на прочтение3 мин
Количество просмотров8.4K

Представляю вашему вниманию очередной выпуск обзора наиболее интересных материалов, посвященных теме анализа данных и машинного обучения.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии0

Как «нарисовать» и «прочитать» звук

Время на прочтение5 мин
Количество просмотров11K

Фото Matthew Potter CC-BY

Как связать звуковую и визуальную информацию? Этим вопросом часто задаются ученые и любители со всего света. Так, в феврале 2006 года новость о том, что ученым удалось воспроизвести звуки с глиняного горшка возрастом более 6500 лет, быстро разлетелась по всему интернету.

Гончар, якобы, нанес музыкальный ритм на горшок при его изготовлении. К сожалению, это оказалось неудачной первоапрельской шуткой бельгийского телевидения.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии6

Типичные грабли на пути программиста от Junior'а к Senior'у

Время на прочтение6 мин
Количество просмотров98K
Молодой программист, едва закончивший или ещё даже не закончивший ВУЗ, готов свернуть горы, учиться, учиться и ещё раз учиться и ему близлежащее будущее кажется таким:



Но более опытные товарищи знают, что на самом деле на его пути давно уже заботливо разложены грабли и путь от Junior'а к Senior'у выглядит как-то так:



Давайте вспомним некоторые типичные грабли, на которые мы все (ну или большинство) наступали сами того не замечая. Конечно, для опытных разработчиков многое покажется очевидным капитанством, однако молодых специалистов такие ловушки могут легко увести на темную сторону силы.
Читать дальше →
Всего голосов 68: ↑55 и ↓13+42
Комментарии73

Практическое применение преобразования Фурье для анализа сигналов. Введение для начинающих

Время на прочтение9 мин
Количество просмотров285K

1. Преобразование Фурье и спектр сигнала


Во многих случаях задача получения (вычисления) спектра сигнала выглядит следующим образом. Имеется АЦП, который с частотой дискретизации Fd преобразует непрерывный сигнал, поступающий на его вход в течение времени Т, в цифровые отсчеты — N штук. Далее массив отсчетов подается в некую программку, которая выдает N/2 каких-то числовых значений (программист, который утянул из инета написал программку, уверяет, что она делает преобразование Фурье).

Чтобы проверить, правильно ли работает программа, сформируем массив отсчетов как сумму двух синусоид sin(10*2*pi*x)+0,5*sin(5*2*pi*x) и подсунем программке. Программа нарисовала следующее:

image
рис.1 График временной функции сигнала

image
рис.2 График спектра сигнала

На графике спектра имеется две палки (гармоники) 5 Гц с амплитудой 0.5 В и 10 Гц — с амплитудой 1 В, все как в формуле исходного сигнала. Все отлично, программист молодец! Программа работает правильно.

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

Итого, наш реальный измеренный сигнал, длительностью 5 сек, оцифрованный АЦП, то есть представленный дискретными отсчетами, имеет дискретный непериодический спектр.
С математической точки зрения — сколько ошибок в этой фразе?

Теперь начальство решило мы решили, что 5 секунд — это слишком долго, давай измерять сигнал за 0.5 сек.
Читать дальше →
Всего голосов 51: ↑46 и ↓5+41
Комментарии83

Безопасность в «облаках»

Время на прочтение7 мин
Количество просмотров6.3K


В последние годы развитие рынка информационной безопасности и рост интереса у широкого круга лиц к данной сфере обусловлены актуальным вопросом защиты персональных данных. Немало приказов, дополнений к Федеральному закону № 152-ФЗ от 27.07.2006 г. «О персональных данных» (152-ФЗ), методик и рекомендаций регуляторов выпущено по этой теме.

Что же можно считать персональными данными? По определению это любая информация, относящаяся к прямо или косвенно определенному физическому лицу (субъекту персональных данных). Например, если есть адрес субъекта, но нет ФИО, это так же персональные данные, но обезличенные, так как установить субъекта персональных данных без дополнительной информации не представляется возможным. Подробная классификация персональных данных приведена в постановлении Правительства от 01.11.2012 г. № 1119 «Об утверждении требований к защите персональных данных при их обработке в информационных системах персональных данных» (ПП-1119). Информацию по обезличенным персональным данным можно найти в 152-ФЗ.

Когда компания — оператор персональных данных — сталкивается с необходимостью защиты системы, содержащей персональные данные, она должна принять важное решение: создавать систему защиты на базе собственной инфраструктуры или перенести информационную систему в «облако», отдав исполнение требований законодательства на откуп хостинг-провайдеру.

В данной статье речь пойдет о втором подходе.
Читать дальше →
Всего голосов 6: ↑4 и ↓2+2
Комментарии2

Оптоволоконные кабели связи. Как это делается

Время на прочтение11 мин
Количество просмотров101K
В нескольких своих постах, опубликованных более года назад, я поднял такую интересную для многих и чем-то захватывающую тему, как магистральные оптоволоконные кабели связи, в частности, тему «подводной» оптики. Информация в данных публикациях была неполной, торопливой и разрозненной, так как статьи писались «на коленке» во время обеденного перерыва. Сейчас я бы хотел поделиться структурированным и, насколько это возможно, полным материалом по теме оптики, с максимумом вкусных подробностей и гик-порно, от которых на душе любого технаря станет тепло.

Внутри схемы, гифки, таблицы и много интересного текста.

Вы готовы?

image
Давай уже сюда свой пост
Всего голосов 65: ↑60 и ↓5+55
Комментарии15

Регулярные выражениия в Java на примере адреса электронной почты

Время на прочтение5 мин
Количество просмотров46K


Известно, что регулярные выражения – это, по сути, шаблоны из символов, которые задают определённое правило поиска. И, среди прочего, с их помощью возможно осуществить проверку определённой строки или строк на соответствие некоему заранее заданному паттерну или стандарту.
Одним из наглядных и довольно простых примеров использования регулярных выражений в Java и не только является проверка проверка данных пользователя, ввёдённых при регистрации на определённом сайте на корректность. В первую очередь это касается адреса электронной почты, так как к нему всегда предъявляются определённые орфографические требования.
Читать дальше →
Всего голосов 21: ↑7 и ↓14-7
Комментарии23

Начинаем любить Go

Время на прочтение5 мин
Количество просмотров27K
Если что, это вольный перевод статьи из блога Jeremy Mikkola.

Эта статья о том, как некоторое время спустя я распробовал и таки полюбил язык Go (аки golang).

Жалобы

Еще год назад у меня было полно жалоб на тот или иной аспект Go. В основном я жаловался на то, что при том, что ты не можешь использовать Go как «настоящий системный язык» (в плане написать-на-нем-операционку), тебе все равно приходится думать о том, о чем обычно приходится думать в системных языках: например, использовать тут указатель или нет. Система типов лежит в непродуктивном ущелье между достаточной строгостью, чтобы стать «автоматичной» (привет адептам Haskell!) и достаточной динамичностью, чтобы не отвлекать (как в Python). Какое-то время я тупил на таких вещах, как проход по юникодовой строке не символами, а байтами, и всякое такое. Я обвинял Go в том, что он так-то не всегда следует своему принципу простоты, так как в нем есть много разных узких штук, вроде make(). И конечно же я жаловался на то, что при работе с Go постоянно приходится повторять блоки if err != nil { return err }.

Поначалу я точно не мог назвать себя фанатом Go.

В техническом плане я согласен с тем, что большинство моих жалоб корректны. Я согласен с тем, что систему типов можно было бы придумать и покруче, а от указателей не помешало бы немного абстрагироваться. Но как только я начинаю понимать, что (не все, но многие) проблемы, на которые я жаловался, на самом деле вроде как даже и не непрягают. В действительности это напоминало нытье на целый лес, из-за пары некрасивых деревьев. В повседневном использовании языка большинство вещей, о которых я так волновался, вообще не давали о себе знать. Я ни разу не встречал баг, так или иначе связанный с проходом по строке. В реальном коде ты почти не кастишь interface{} так часто, как хотелось бы тем ребятам, которые дрочат на системы типов. Ах да, нет беды в том, чтобы вызывать make() в одном месте и new() в другом. Больше всего я ругался на те архитектурные решения языка, которые усложняли создание абстракций. Ты не можешь просто так сделать структуру данных, которая станет альтернативой к встроенным структурам данных (привет кодогенерации!). Без обобщений ты не сможешь строить большие обобщенные абстракции. Скорее всего, это сделано намеренно.
Читать дальше →
Всего голосов 61: ↑43 и ↓18+25
Комментарии73

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность