Gamedev suffering
6.8K subscribers
765 photos
60 videos
13 files
2.11K links
Авторский блог Андрея Апанасика о разработке игр и индустрии.

Разрабытываю сервис для оперирования LiveOps: https://balancy.co

Мысли про другие вещи мне интересные: @apanasik_jobless

Реклама: https://t.me/gamedev_suffering/2202
Админ @Suvitruf
Download Telegram
Годный доклад с GDC от звукорежиссёра Джеффа ван Дайка про создание звуковых эффектов Unpacking.

В процессе работы ему и его жене Анджеле пришлось создать более 14 000 аудиофайлов для игры 🤯

https://www.youtube.com/watch?v=mA4nZQA2wrs

#Unpacking #GDC
Хоть в названии доклада фигурируют кранчи, но разговор больше про управление командой. Вещи хоть и очевидные, но многие про них всё равно забывают.

Основные моменты выписал.
- Эстимейты — это не комитмент.
- Жёстко заданные тайминги выполнения задач не работают. Всё быстро сдвигается, приходится постоянно модифицировать план + стресс у команды, т.к. ощущение, что постоянно не успевают.
- Bell Curve очень хорошо иллюстрирует то, чего ожидать. Если эстимейт был на 3 дня, то выполнить за 5 дней ок. А вот на 10 день уже стоит переосмыслить задачу — вероятно она оказалось слишком сложной. Возможно стоит её вообще отменить или в беклог положить.
- Cone of uncertainty.
- Не нужно засорять беклог мелкими вещами, особенно если доберётесь до них через много месяцев. Достаточно сгруппировать это и/или оформить в виде эпика. А возможно и вовсе выкинуть.
- Не правьте числа/эстимейты после выполнения задачи.
- Если команда делает 10 сторипоинтов за недельный спринт, а осталось 100, это не значит, что вы выполните их за 10 недель, т.к. не учитываете задачи, которые появляются по ходу дела.

- Перфомят не команды, состоящие чисто из профи, а из людей, которые дополняют сильные и слабые стороны друг друга.
- Если вы добавляете людей в проект, то команда замедлится (порой на месяц-два, пока онбординг идёт и всё такое). Я рекомендую всем почитать у Брукса «Мифический человеко-месяц».
- Bus factor (да-да). Не должно быть такого, что критические вещи зависят только от одного человека. В таком случае у вас просто будет группа индивидуалов, а не команда.
- Парное программирование, код ревью и шаринг знаний внутри команды.
- QA должны быть включены в пайплайн, в дизайн ревью, в обсуждения.
- TDD хорошая практика.
- Continuous integration — это не просто использование Дженкинса или Тимсити, они лишь технологии/средства. На почитать: trunk based development, feature toggle.

- Не нужно запарываться над идеальным решением и продумывать всё заранее.
- Качество vs скорость. Не нужно пытаться продумать всё заранее.
- Нужно давать командам побольше свободы и меньше бюрократии (кэп).

#GDC
Неплохой доклад про бекенд EVE Online с GDC. Больше про то, как меняли подход к сервисам и культуру в команде.

Несколько моментов отметил в Твиттере:
- 7k C++ файлов, 12к SQL файлов, 20k на Питоне и...260к+ файлов и 50+ миллионов строк YAML'а 🤯
- Начинали с кучи сервисов, которые, по сути, меш организовывали. Из-за этого сложно вводить/выводить новые подсистемы. Одна жирная БД. Для выкатки обновлений нужна вся команда, Монолит.
- Потом сделали xml поверх http апишку с агрессивным кешированием.
- Переехали на k8s (когда он ещё был в превью).
- Взаимодействие сверисов сделали через message bus, что позволило кучу технического долга сбросить. Начали с Google pub/sub, потом пересели на Rabbit.
- Ранее гоняли json'чики, потом переехали на протобаф, который органически помог выделить домейны и структурировать данные, т. к. с json'ами такой надобности не было, а тут прям протокол, по сути, форсит это делать.
Ещё одна причина выбора протобафа — работа с gRPC. На базе моделей генерили C++ и Питоновский код. И...питоновский код использовал маршалинг в сишечку, что ещё и ускорило всё.
- 30% времени уходило на 3 вещи: сериализация, передача данных, мультиплекс (например, когда игрок стреляет, то это сообщение нужно прокинуть сотням других игроков). И третье практически бесплатно получается с message bus. А вот с сериализацией и передачей проблемки.
Даже не смотря на быструю сериализацию, всё равно нужно ждать глобального лока, который ждёт результата от C++ кода. Тут я не совсем понял, что он имел ввиду, но, судя по всему, они ВСЁ связанное с gRPC вынесли из Питона в C++ часть и там в отдельных тредах обрабатывали 🤔

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

Из забавного. В команде в первые годы был принцип: если ты не можешь загуглить это, то не используй 😅

https://www.youtube.com/watch?v=RR0YTEEMLFg

P. S. держите в уме, что в первые годы разработки игры не было ни gRPC, ни Кубера, ни многих ныне популярных подходов.

#eve #GDC
This media is not supported in your browser
VIEW IN TELEGRAM
Про доклад разработчиков The Ascent с GDC уже было в дайджесте, но я на той неделе в Твиттере небольшой тред по видео накидал с картиночками, можете почитать.
- 11 человек в команде.
- «Ассеты не так важны, важней глобальная картина». Традиционные методы не подошли.
- Очень много объектов используют одну и ту же текстуру, не смотря на то, что визуально так не кажется. Эти сцены используют те же материалы, те же текстуры и ассеты.
- Для ускорения пайплайна ограничили возможности: 3 цвета, 3 металла. Потом сделали кучу инструментов в рамках этого ограниченного пайплайна.
- Снизили использование текстур. «легко иметь 4к-текстуры, если у тебя она всего одна». Менее 100mb на текстуры в игре в любой момент времени.
Т. к. материалы и шейдеры переиспользуются, то очень легко заменить во всей сцене и посмотреть результат.
Из-за того, что одни и те же материалы, одинаковая сложность шейдеров и гранулярность полигонов, довольно легко оптимизировать это всё.

По оптимизации:
- Оооочень много статического света.
- Дофига кубмепов. Разрешение снизили до 64px, в каждый момент времени до трёх сотен.
- Разрешение лайтмепов по дефолту 1к. Увеличили до 2к, сэкономили 10% дроколов, но стоило 50мб (на xbox 1).
- Volumetric ligth запечён. Добавили экстра mip, снизили использование памяти со 150мб до 40мб.
- Фейдинг при отдалении камеры, culling много чего обрезал автоматически за счёт этого.
- Тени можно было выборочно включать/выключать в зависимости от платформы. На некстгене везде включено, на текущем в некоторых местах отключали.

https://twitter.com/Suvitruf/status/1569237971613765633

#TheAscent #GDC
🕹 Это канал про разработку игр. Публикую интересные/важные новости и материалы про разработку и игровую индустрию.

Что здесь можно найти:
1. Новости
2. Ссылки на интересные статьи/видео
3. Разборы видео, например, по тегу #GDC
4. Ссылки на полноценные посты по той или иной теме.
Примеры объёмных статей:
- Кранчи вредят индустрии и «сжигают» людей
- «Разработку целиком и полностью можно назвать хаосом»: трудности при создании Atomic Heart
5. Еженедельный дайджест по тегу #дайджест
6. Какие-то размышление в рамках тематики канала

Где ещё можно подписаться:
- Twitter. Помимо твитов про игры и геймдев немало шитпоста (¬‿¬ )
- Группа про геймдев в VK
- На дайджест можно подписаться в виде рассылки на почту
- Есть ещё канал на Ютубе. Планирую в ближайшее время оживить подкаст и вернуть рубрику #ПосиделкиСИнди
- Есть отдельный канал в Телеге, где я пишу про всякое разное и обзоры игр

Как можно поддержать финансово:
- На Патреоне
- Подписаться на Бусти
- Закинуть через ЯндексДеньги
На канале #GDC очередное видео про #HZD. В этот раз рассказывают про пайплайн создания мехов в игре. Довольно неплохо расписали, как работают от концепта до SFX, затронули ещё тему с аутсорсом.
Стал доступен доклад с GDC 2023 по рендерингу персонажей в The Callisto Protocol.

https://www.gdcvault.com/play/1029339/The-Character-Rendering-Art-of

#TheCallistoProtocol #GDC
У Бена Брода в открытый доступ выложили отличный доклад с GDC про разработку Marvel Snap. Разобрал выступление и выделили основные моменты в треде (лайки и ретвиты приветствуются). Позже в виде статьи опубликую.
- По большей части создание новой игры это не про создание новых ингредиентов, а про правильный подбор и микс уже существующих.
- Zero sum = zero fun. Если настолько фаново побеждать, как и настолько нефаново проигрывать, это «игра в нулевую радость». Вы просто переносите фан с одного игрока на другого. Вариантов улучшения этого много. Например, использовать ботов.
Вы 100% видели в Твиттере (и в других местах) радостные крики, когда игроки в PUBG Mobile занимали первые места, но они не знали, что это всё боты. Бен и сам похвастался победами в Фейсбуке, но друзья спустили его с небес на землю, и он от стыда удалил пост 🫣
- Помимо «больших побед» (непосредственно, в матче) есть и «маленькие победы» по ходу раунда. В том же Counter-Strike ты можешь в одиночку выкосить вражескую команду или навесить хэдшотов. Даже если проиграешь раунд, эти небольшие достижения сглаживают негатив от проигрыша.
- В marvel snap они решили сгладить негатив от проигрыша и...поменяли текст с "concede" на "retreat", а вместо сообщения "You lose" стало "Escaped"! Ты не проиграл, а сбежал, ты гений стратегии! 🤯
- Сложность игры — цена, которую нужно заплатить перед тем, как начать получать фан от игры, а depth — это, по сути, и есть фановая часть. Поэтому Бен топит за то, чтоб игра была максимально простой, но, при этом, обладала большой глубиной.
Игра может быть сложной, но без глубины (Монополия) или же с не самым большим входом, но огромной глубиной (Го). Ну или как Матыга, у которой колоссальная глубина, но, в то же время, она считается одной из самых комплексных игр.
- В ранних версиях HS провокация планировалась как разовый эффект — после одного таунта эффект пропадал. Но в какой-то момент из-за бага эффект провокации не пропадал, в итоге так и решили оставить.
- Сложность касается и текста. Если на экране больше 8 слов, то игрок не станет это читать.
- «Если выбор между скучной историей и вообще отсутствием истории, то лучше выбрать второе». Хороший пример — Street Fighter. Игрока вообще не колышет, почему персонажи сражаются.
- Многие ошибочно считают, что игры находятся на линейной шкале удачи-скилла. Хотя по факту это двумерная история: есть игры, где по большей части всё от удачи зависит, где-то от скилла (шахматы), а где-то и того, и того хватает (покер).
- Добавление случайных событий сильно меняет игру. Есть как входящая случайность, когда ты принимаешь решение после события, с другой стороны, случайное событие происходит после стратегического решения (Рагнарос в HS, который атакует случайную цель).
- Бен особо отмечает, что физическая версия прототипов очень сильно помогает при разработке и тестировании гипотез.
- В первом цифровом прототипе сетевой части не было, играли на одном девайсе. Но зато разработка заняла всего 2 недели 🤯
- В HS была большая проблема с управлением на мобилах, когда нужно выбрать цель для атаки. В Marvel Snap старались максимально упростить этот момент, например, вводя рэндом или изменяя карту, чтоб не требовалось действие игрока.

Выводы:
1. Шефу нужны ингредиенты, поэтому запасайте кладовую. Следите за другими играми, ходите на ивенты для генерации идей.
2. Будьте скоростной лодкой (держите команду небольшой), пока это возможно.
3. Полюбите случайность.
4. Упрощайте (даже если команда вас ненавидит).

#GDC
В виде статьи оформил выступление Броуда. Должно удобней читаться, чем в треде, плюс чуток больше подробностей.

Отдельные рекомендации от Броуда:
- Выступление Джорджа Фана про Plants Vs Zombies: https://www.youtube.com/watch?v=fbzhHSexzpY
- Выступление Ричарда Гарфилда: https://www.youtube.com/watch?v=av5Hf7uOu-o

#GDC
Деволверы на GDC про работу с социалочками для Cult of the Lamb рассказали. Вроде базовые вещи, но многие всё равно как-то забивают на это. Есть и несколько примеров других игр. Может позже краткую выжимку накидаю.

А докладчик энергичный, приятно смотреть и слушать 😳

https://www.youtube.com/watch?v=Bp0-lfjDDFk

#SMM #CultoftheLamb #GDC
Джейсон Скотт оцифровал более 90 кассет с конференции разработчиков игр 1999 года.

70+ часов презентаций.

https://archive.org/details/1999_Game_Developers_Conference_Audio

#gdc
А кто-то пользуется тегами в Телеге? Ищете по ним? У меня есть относительно регулярные теги типа #дайджест или #GDC, но порой или копии создаю случайно, или не проставляю. Вот думаю пройтись по старым постам и проставить. Имеет ли смысл?
Anonymous Poll
12%
Теги не нужны
32%
Нужны, но можно на новых начать проставлять
21%
Нужны, нужно и на всех старых постах проставить
35%
Пофиг, не пользуюсь
Santa Monica Studio выложила слайды своих презентаций c GDC 2023. Доклады как про рендеринг, так и про анимации, AI и прочее.

https://sms.playstation.com/stories/gdc-2023-presentations

#GDC
Какая-то злая ирония. На канале GDC вышло видео выступления с недавней конфы (буквально 2 месяца назад) про разработку Hi-Fi RUSH, студия-создатель которой недавно была закрыта.

Геймдиректор Джон Йоханас рассказал о том, как появился проект, как он его питчил, как шла сама работа.
- Прототип за 9 месяцев двумя разработчиками (с небольшой помощью от аниматоров, арт отдела и VFX)
- На спектре между ритм-игрой с отсутствием свободы игрока и экшенами, где у игроков большая свобода, Hi-Fi RUSH должна была быть ближе к экшенами — большая свобода у игрока, и должно ощущаться будто нет ограничений по геймплею, хотя он, при этом, тесно связан с музыкой
- Использовали «обратный подход». Реализовали RSS (Rhythm synchro system). Игрок не должен подстраиваться под музыкальные beats, в Hi-Fi RUSH наоборот игра подстраивается под инпуты игрока 🤔
- Визуализируют, если ты попадаешь в ритм, но нет пенальти особого, если не попадаешь. Есть скрытый нюанс: если ты попадаешь в ритм, то наносишь больше урона. Но числа урона осознанно не показывают, чтоб не было чувства, что ты наносишь меньше урона.

Вообще там много интересных моментов можно подчерпнуть. Очень рекомендую.

#GDC