Беседа с композитором No Man"s Sky

Создатель блога «Игрозвук» Денис Злобин пообщался с Полом Уиром, ветераном игровой индустрии, ответственным за звук и музыку в No Man’s Sky.

За последние 20 лет Пол приложил руку к десяткам проектов, среди которых Thief (2013), Strike Suit Zero, Pure, Broken Sword IV, Juiced 2 и Discworld Noir.

Помимо прочего, Пол работает аудио-директором британской студии Microsoft Lift London, занимается генеративной музыкой, аудиобрендингом, и преподаёт игровое аудио.

Расскажите про работу с 65daysofstatic над музыкой No Man’s Sky.

С 65daysofstatic было замечательно работать. Они сразу поняли идею игры. А когда мы начали обсуждать генеративную музыку, оказалось, что у них есть и такой опыт. Мы выбрали достаточно рискованный подход, и решили не вмешиваться в их нормальный рабочий процесс. Тем более, мы не хотели, чтобы они писали игровую музыку. Они как раз заканчивали работу над новым альбомом, в котором чувствовалось лёгкое влияние sci-fi. Когда я завершил разработку нашей музыкальной системы Pulse, они уже всё записали и приступили к финальной стадии производства.

Тогда мы углубились в то, что написали 65daysofstatic. Мы прошли обратный путь, настолько далеко, насколько это было бы возможно, и начали писать новую музыку, но очень близкую к композициям с альбома. Если в треке была мелодия на пианино, и он был построен вокруг неё, мы доставали нужный сэмпл и делали вариации мелодии, превращали всё в такие модульные компоненты. Я тоже немного редактировал их материал. Поэтому в игре невозможно услышать трек в том же виде, в котором он звучит на альбоме. Но повторюсь, процесс был очень рискованным, и были моменты, когда я уже соглашался с тем, что в игре будет очень мало музыки.

Стали бы вы теперь рекомендовать разработчикам привлекать группы к записи игрового саундтрека?

Это большой риск. В обычной ситуации я бы не стал этого делать, No Man’s Sky была исключением. Зачем работать с людьми, которые не понимают игры как медиа? Это всё равно что приглашать группу написать саундтрек к фильму. Иногда результат просто ошеломляющий, потому что у людей свежий подход к музыке. Иногда случается полная катастрофа, когда они пытаются объединить две сферы, которые плохо уживаются между собой. Я точно не ищу другие группы, но с удовольствием снова поработаю с 65daysofstatic. Вообще не важно, группа перед тобой или нет. Важно, понимают ли эти люди игры.

Расскажите про аудио-отдел Hello Games.

Ты прямо сейчас смотришь на аудио-отдел Hello Games.

Хотелось нанять кого-нибудь ещё?

Мы никогда не рассматривали такой вариант, у нас очень маленькая команда. Производство аудио целиком на мне. У нас даже аудио-программиста нет. Один из программистов Hello Games — Гарри Денхолм — брал на себя его функции. Он в этом очень хорош, и без него в игре бы вообще не было бы звука. Ещё мы работали с программистом по имени Сэнди Уайт. Он разрабатывал плагин вокального синтеза для Wwise, то есть занимался только DSP-частью.

Уже в самом конце производства, мы ненадолго наняли аудио-программиста Энди Хатчингса, чтобы вычистить все баги. Ничего страшного там не было — просто что-то не воспроизводилось в нужный момент, или вело себя неправильно. Энди отлично умеет влезть в Wwise, самостоятельно найти проблему и самостоятельно же её решить. В конце, конечно, началось лёгкое безумие — был Энди, Сэнди, Гарри и группа — и мне нужно было работать с ними всеми. Так что если всех посчитать, то к звуку в No Man’s Sky причастно восемь человек.

Вообще, в Hello Games работают специалисты широкого профиля. У нас есть художники, но нет, например, 2D-художников или аниматоров. Мне нравится такой подход, я же тоже занимаюсь разными вещами. А ещё я не очень люблю работать с другими дизайнерами звука, особенно на проекте с чётко выдержанной звуковой стилистикой. Её нужно доносить до людей, но зачем тратить время на это, когда ты можешь всё сделать сам?

Да, с моим опытом обычно занимаются аудио-менеджментом. За это больше платят, но это не самая творческая работа — ты больше управляешь другими людьми. Я всегда этому сопротивлялся. Даже когда я пришёл в Microsoft (здесь и далее речь идёт о лондонской студии Microsoft — Lift London), мне предложили позицию менеджера, и я сказал, что не хочу этим заниматься. Мне нравится самому работать над звуком. И мне повезло, что они мне это позволили. Хотя в какой-то мере это ограничивает возможности, открытые передо мной.

Как часто вы используете foley (техника записи шумов в студии, подразумевающая их воссоздание или имитацию — прим.ред)? Насколько это вообще распространено в игровой индустрии?

За последние пять лет в играх стало намного больше foley, к этому стали серьёзнее относиться. Я — большой фанат этой техники, и записывал много foley для игры Thief, прежде чем покинуть проект. В No Man’s Sky большинство звуков синтетические, традиционного foley немного. Но все звуки там полностью оригинальные, никаких библиотечных эффектов. А в более широком смысле, я постоянно что-то записываю. Особенно механические устройства. Я везде с собой вожу маленький рекордер Sony PCM-M10. Шаги, например, я записываю у себя в саду по ночам — тогда не так шумно, а на улице можно не бояться реверберации комнаты.

Сколько проектов вы можете вести параллельно?

Зависит от проектов. В конце разработки No Man’s Sky я работал только в Hello Games и в Microsoft. Обычно у меня есть пара основных проектов и несколько проектов поменьше. Сейчас у меня есть Hello Games, Microsoft и The Sound Agency, любая из этих работ могла бы быть единственной. Но в Microsoft я работаю пару дней в месяц, и их это устраивает. У многих только одна работа, они приходят вечером домой и забывают о ней. Я — полная противоположность. У меня не бывает моментов, когда передо мной не стояло бы каких-то рабочих задач. Я работаю постоянно и это, наверное, не очень хорошо.

Вы как-то писали в «Твиттере», что используете стереомикрофон Audio-Technica AT2022 для записи звуков в No Man’s Sky. Вы часто записываете объекты и foley в стерео?

Это очень хороший вопрос. Я не считаю себя звукорежиссером. Я даже в студиях толком не работал, разве что в своей собственной. Но я записываю в стерео практически всё. Недавно я делал много записей на Sennheiser MKH-416 — это такой стандарт киноиндустрии. А ещё у меня есть пушка от Sanken. Так вот, когда я параллельно записывал на пушку и на мой стереомикрофон, я всегда в итоге использовал запись с AT2022 — мне просто нравится его звук. В кино звуки бесспорно нужно записывать в моно. Но в играх всё по-другому, особенно в играх от первого лица. Там через стерео создается эффект присутствия. Так что да, я использую стерео намного чаще, чем моно. И если речь идёт об игровом объекте, я просто задаю настройки стерео-моно преображения в зависимости от дальности объекта от игрока.

Что делать, если ты доволен результатом работы, а заказчик нет?

Зависит от заказчика и от ситуации. Если у нас хорошие отношения и я уверен в своей правоте, я вежливо объясню свою позицию. Или попробую изменить какую-то деталь. Потому что часто люди бракуют результат, но на самом деле им не нравится какой-то маленький элемент, они просто не могут этого объяснить. Но если после моих доводов и исправлений клиент останется недоволен, я всё переделываю.

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

Насколько получение большого проекта зависит от удачи?

Влияет не столько удача, сколько возможности, которые ты создаёшь себе сам. Ничего не происходит по мановению волшебной палочки. Надо смотреть, что происходит с другими людьми, следовать за ними, заводить контакты, интересоваться. Реагировать на ситуацию, только не доставать окружающих требованиями «Дайте мне работу!». Так и создаются возможности, и кто знает, к чему они приведут.

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

Если ты хороший дизайнер звука, ты найдёшь работу. Это может занять несколько лет, некоторые ждут по три-четыре года, прежде чем получить работу мечты. А может, всё получится сразу – так это произошло со мной. Да, мне просто повезло. Я даже не искал работу в игровой индустрии, всё по себе само сложилось. Прости, это ужасный пример. Но это было 20 лет назад, индустрия была совсем другой.

Так вы начали работать над серией Discworld?

Да, я попал в Perfect Entertainment к концу разработки Discworld 2. Работа была даже не над конкретной игрой — просто компания расширялась. Я случайно встретил руководителя их аудио-отдела и решил с ним поболтать — раньше я никогда не общался со специалистами по игровому аудио. И просто потому что я знал ноты и мог записывать музыку нотами, он сказал: «Ты молодой, умеешь то, чего не умею я, и не просишь кучи денег — я попробую тебя пристроить». Это было очень легко, вот строить карьеру фрилансера было сложнее.

Что изучать сегодня, чтобы работать завтра? Техники, аудиодвижки, программирование?

Просто интересуйся тем, что ты делаешь. Узнавай новое. Все говорят «изучай виртуальную реальность», но я немного скептически к этому отношусь. По-моему, виртуальная реальность ничего не меняет с точки зрения звука.

А я думаю, меняет.

Значит, дальше у нас будет интересная дискуссия. Но возвращаясь к изначальному вопросу, надо просто знать, что происходит вокруг. Какие есть технологии, как они работают, чем занимаются другие специалисты. Знать, что есть VR и AR, которая, на мой взгляд, намного потенциальнее VR. Изучать Unity, обязательно разобраться с Wwise. Комбинация Unity и Wwise очень часто встречается в наши дни. Выучить Fmod тоже неплохо. Новые плагины, новые игры — надо просто знать свою индустрию.

Но всё-таки, ковырять новый синтезатор, или учить язык программирования?

Зависит от человека. Я не программирую, хотя могу писать простые скрипты. Зато я отлично нахожу общий язык с программистами, и это важно. Раньше я говорил, что дизайнерам звука вообще не нужно ничего программировать. Сейчас времена чуть-чуть изменились. Иронично, но чем больше мы используем аудиодвижки, тем полезнее оказывается знание программирования. Есть дизайнеры звука, которые выучили С++, чтобы самостоятельно интегрировать Wwise. Если у тебя есть интерес и способности к программированию, это твоё преимущество. Если нет — ничего страшного. Я не хочу учить C++.

Как ветеран индустрии, вы чувствуете конкуренцию со стороны молодых специалистов со свежими идеями?

О, нет! Конечно, когда ты фрилансер, всегда есть страх не получить следующий заказ. Но у меня есть несколько преимуществ. Во-первых, мой опыт богаче, чем у большинства дизайнеров звука — я же работал с радио, кино, делал генеративные звуковые инсталляции. Я мог бы зарабатывать себе на жизнь в каждом из этих направлений, просто мне нравится делать разные вещи. Во-вторых, после такого проекта, как No Man’s Sky, я достаточно уверен в себе. Я сталкивался с разными проблемами и через многое прошёл. Вижу суть проблемы и знаю, как её решить. Знаю у кого просить помощи, и представляю себе весь процесс от начала до конца. К тому же, в Великобритании не очень много звуковых дизайнеров моего уровня и аудио-директоров, которые занимаются фрилансом. Вот уровнем ниже конкуренция действительно высока.

Что будет с профессией в будущем? Уже сейчас лишь единицы из сотен желающих прорываются в индустрию.

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

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

Что если завтра придётся конкурировать с нейронными сетями?

Я очень интересуюсь машинным обучением, и не вижу тут никакой угрозы. Наоборот, оно даёт нам много возможностей, и я жду не дождусь их использовать. Так со всеми новыми технологиями — они не представляют угрозы, пока ты сам не сделаешь их угрозой. Нейронные сети очень мощны, но они не могут работать в реальном времени. Но всё равно мы неоднократно обсуждали с Сэнди (моим аудио-программистом) возможность применять их в процедурном аудио. Потому что там действительно есть проблемы — например, имитация человеческого исполнения. Нейросети отлично бы в этом помогли.

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

Вы согласны с тем, что виртуальная реальность принесёт больше рабочих мест?

Да, в каких-то пределах. Но это странный рынок, показатели ещё далеки от идеала. Он ещё только зарождается. Мы только пытаемся установить принципы дизайна игр в виртуальной реальности. И знаешь — мы же уже делали это в 90-ых, и многие принципы с тех пор оказались благополучно забыты. Я тогда, правда, в этом не участвовал, зато я работал с Питером Уиллиамсом, который делал очень интересные вещи в виртуальной реальности в начале 90-ых. И представь, каково ему сейчас к этому возвращаться: «Я же всё это знаю, я всё это проходил!». Но дополненная реальность интересует меня намного больше. Она обязательно придёт, но непонятно, в каком виде.

Давайте перейдём к дискуссии про отличия звука в VR от традиционного.

Очевидно, позиционируемый звук становится более важен. Звук сам по себе становится более важен. Относительно требуемых навыков — я не вижу особых различий. 3D-игра остаётся 3D-игрой, просто значимость 3D вырастает. Я говорю про окружающее пространство — отражения от стен и подобные вещи. Сведение немного отличается, но в целом для меня в VR пока нет ничего, чем я бы раньше не занимался.

Но всё, о чём вы говорите, происходит на уровне движка. У нас уже есть плагины для этого. Они, конечно, ужасные пока, но они разовьются.

Но мы всё ещё не знаем, как сделать очень хороший 3D-звук.

Эта проблема ещё не решена? Есть же много отличных бинауральных записей, есть к чему стремиться.

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

Даже в тех записях от Sensaura? Вроде виртуальной парикмахерской?

Хорошо, что ты про неё вспомнил. Она работает, но они много хитрили. Они использовали статичный звук с большим количеством высоких частот. Но чем больше у тебя звуков, тем менее заметен эффект — они начинают смешиваться друг с другом. А если в звуке мало высоких частот, то эффект вообще не работает. У Dolby Pro Logic были те же проблемы. В «парикмахерской» у тебя лишь пара звуков с кучей высоких частот — это не то, как звучат игры. Пока что технологии, которая могла бы обеспечивать хорошее позиционированное аудио для всех в наушниках или колонках, не существует. Это проблема, которую нужно решать, но я не знаю, поддаётся ли она решению.

Что на счёт недиегетической (музыка, звучащая за кадром, которую слышит зритель, но не персонаж — прим.ред.) музыки в VR?

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

По моему опыту, музыка там вообще не к месту — я вовлечён в виртуальный мир, и что-то начинает играть прямо в моей голове.

Это потому что она звучит слишком близко. Я бы размещал её в пространстве. Добавь немного реверберации в конечный микс, отдали её от слушателя.

Представьте, что вы бросаете в стену какую-нибудь вазу. В обычной игре она разбивается, объект издаёт соответствующий звук. А в VR нам нужен отдельный источник звука для каждого осколка, они могут разлететься вокруг вас.

Да, так надо делать, если ты используешь физику. Но мы это делали ещё в Pure — игре про гонки на квадроциклах. Там у каждого кусочка гравия, вылетевшего из под колёс, был свой источник звука. Так что это применяется не только в VR, это справедливо для всех игр, где физика частиц имеет какое-то значение. А в VR точно так же возможна статическая анимация.

Я думал, ты о другом заговоришь. В VR у тебя есть контроллер, и ты физически им управляешь. Если ты что-то бросаешь, ты, как правило, вовлекаешь игровую физику. С какой скоростью ты бросаешь эту вазу, во что она врежется? Потенциально, растёт необходимость связи физической и звуковой системы, и этого очень трудно достичь. Так что, возможно (!), это повод обратиться к физическому моделированию. И, возможно (!), именно это и нужно сейчас изучать. Это, правда, может звучать менее реалистично, менее правдоподобно. Как дизайнер звука, я против этого. Но тут у нас образуется разрыв, который нужно сбалансировать. Эффективнее ли, если я бросаю объект, и он хорошо звучит, но его поведение не соответствует моим ожиданиям? Или лучше наоборот? Что из этого правдоподобнее? Я не знаю, это нужно изучать.

Мы редко используем реалистичные звуки — мы их раздуваем и приукрашиваем, это перешло к нам из кино. Не требует ли виртуальная реальность более реалистичного звука?

Я говорю о правдоподобности, а не о реализме. Но это интересный вопрос — требует ли правдоподобность в VR более реалистичного подхода. Я точно не знаю, но нутро подсказывает, что нет, и старые правила будут работать. Но нужно добавлять элементы контроля, потому что иммерсия легко нарушается, когда что-то ведёт себя не так, как ты ожидаешь. Это как RTPC в Wwise — они позволяют добавить гибкости тому, что ты моделируешь.

Как эксперт по процедурному и генеративному аудио, расскажите, что это вообще такое.

Никто точно не знает, и меня это раздражает до бесконечности.

В моём понимании, это синтез в реальном времени, который глубоко интегрирован в игру, управляется игрой и подчиняется её логике. Зачастую он связан с игровой физикой. А ещё важно, что я таким образом что-то моделирую, иначе можно просто генерировать белый шум. Просто синтез в реальном времени не считается — это было ещё в Pacman и Asteroids. Кто-то скажет, что это всё равно процедурное аудио, но тогда почти всё можно назвать процедурным. И если всё попадает под определение, то зачем вообще нужен этот термин.

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

Другое дело, когда проблема существует. В No Man’s Sky у нас были инопланетные создания, которые должны издавать какие-то звуки. Традиционные методы решения этой проблемы были слишком дорогими и накладывали слишком много ограничений. Поэтому мы смоделировали голосовой тракт и встроили его в игру. И мы столкнулись с кучей проблем — например, с проблемой исполнения звука. Просто проиграть статичный звук недостаточно, его что-то должно издать, исполнить. Но что? В итоге мы оцифровали собственное исполнение в MIDI и использовали его в игре. Может, есть и лучший способ, но мы пошли таким путём.

Я недавно работал над проектом, и мне понадобился огненный «вуш» — звук взмаха факелом. У меня не было ничего подобного в библиотеке, и я сделал его на синтезаторе. Мне понравился результат, и я допилил патч, чтобы можно было генерировать разные «вуши».

А теперь я хочу воспроизвести его на Pure Data и сделать интеграцию с Unity, чтобы генерировать такие звуки прямо в движке. Но судя по всему, игра не стоит свеч?

Зависит от того, насколько ты в этом заинтересован. Просто ради опыта — почему бы и нет? Но «вуши» — это очень легко. Ты узнавал, сколько людей использует SoundSeed от Audiokinetc? Он может производить такие звуки, и вроде бы, он не слишком то популярен. Хотя, может, кому-то и пригодится. Но мне кажется, что сначала нужно создать какой-то фреймворк, концептуальную основу. Сейчас многие это обсуждают. Нам надо разработать архитектуру, сделать аналог VST для игрового аудио.

В чём разница между генеративным и процедурным аудио?

По-моему, у термина «генеративное аудио» вообще нет никакого значения. Я называю свою музыку генеративной, но я не в восторге от этого определения. Есть одна крайность — это чисто алгоритмическая музыка, когда музыка полностью создаётся компьютером. Я уважаю этот подход, но в результате получается либо что-то не очень музыкальное, либо модель нужно подробно детализировать. И чем более музыкальной она становится, тем с большим количеством ограничений придётся столкнуться. Поэтому я никогда не шёл по этому пути. Я скорее на противоположном конце спектра — считаю, что писать музыку должны композиторы, но я выбираю иные подходы и наборы инструментов, чтобы композиция могла выстраиваться в реальном времени. У тебя есть разные слои, ты знаешь тональность, и знаешь, чего хочешь добиться. И ты ориентируешься на нечто адаптивное, меняющее форму и постоянно развивающееся — может, даже с частицей настоящей алгоритмической музыки внутри. Вот что я называю генеративной музыкой. Можно скептически к этому относиться и называть то, что я делаю, плеером случайных файлов, но внутри него скрывается некая логика, управляющая тем что, как и когда воспроизводится.

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

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

Генеративная музыка — это интересно, но на выходе получается достаточно блёклый результат, пока мы не пропишем множество правил. Для этого надо хорошо знать математику, использовать цепи Маркова?

Я бы не лез так глубоко, разве что ты питаешь к этому исключительный интерес. Цепи Маркова — это здорово, но они требуют очень глубокого изучения. Как композитор, я бы ограничился простыми вещами. Я сочиняю линейное произведение. Потом я смотрю, насколько я могу его гранулировать. Как я могу его разобрать разными способами, какие правила добавить.

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

Огромное спасибо за интервью!

Спасибо за интересные вопросы!

Нравится3
Комментарии (2)
B
i
u
Спойлер