{"id":10642,"title":"\u0411\u0438\u0437\u043d\u0435\u0441 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u043e\u0442 \u043a\u0438\u0431\u0435\u0440\u0430\u0442\u0430\u043a \u0438 \u0432\u0438\u0440\u0443\u0441\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430","url":"\/redirect?component=advertising&id=10642&url=https:\/\/vc.ru\/promo\/305439-reshenie-dlya-biznesa-zashchitit-rabochie-kompyutery-i-tratit-menshe-na-tehpodderzhku&placeBit=1&hash=92cac90aee476dcf6c798d57554c147c48c9992484e9b9517cc9679e918eca49","isPaidAndBannersEnabled":false}
Офтоп
Asya Dyu

Комикс: Технический долг в разработке игр

Откопала классное видео от образовательного канала Extra Credits, в формате «как объяснить, что такое технический долг даже ребёнку». Ну, или очень далёкому от разработки взрослому. Мне так понравились иллюстрации, что я сделала из этого видео комикс. Покажите его своему менеджеру, когда он/она будет пытаться воткнуть новые фичи в спринт и забивать на внесения техдолга в бэклог.

Вы запускаете новый проект, всё идет отлично. Вы пишете код, создаете контент и арты. Но прямо перед самым завершением, когда думаете, что почти закончили, начинается ад.

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

Контент не сочетается друг с другом. Вообще все ваши ассеты не сочетаются друг с другом. И самое ужасное, что нет ни времени, ни денег, чтобы что-то изменить.

Что произошло? Наступил срок погашения технического долга.

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

В результате чего их решение становится гооораздно сложнее или дороже.

Потому что технический долг работает почти как финансовый долг.

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

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

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

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

Это не говоря о том, что технический долг не ограничивается простым написанием кода.

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

Все предполагают, что ошибки обязательно исправят. Потом. Кто-нибудь другой. Этот кто-нибудь обязательно займется проблемами в будущем. Ну, или пока просто никто в команде не знает, как исправить эти ошибки. Команда просто двигается дальше.

Это проблема, т.к. стоимость повторного выполнения некоторых работ на поздних этапах проекта растет экспоненциально.

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

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

А еще проблема не всегда выглядит как проблема.

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

На организацию всего проекта на позднем этапе могут уйти часы, дни и даже недели.

Другие причины технического долга — планирование.

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

Например, программистам поручают создать вражеский ИИ. Им говорят, что игра только для одного игрока.

Программисты создают систему искусственного интеллекта, полностью ориентированную на реакцию одного игрока-человека.

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

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

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

Как для разработчиков, так и для дизайнеров, теперь все эти спагетти — помеха в работе с другими функциями или контентом. Приходится постоянно сдерживать этот поезд, катящийся в Ад.

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

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

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

Нет смысла создавать и идеально подгонять систему для прототипа. Особенно, зная, что её спишут после одного игрового теста.

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

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

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

Игру можно допатчить после выпуска. Вы удивиться, узнав, как часто игры релизят под девизом: «грузим сейчас, фиксим потом» в связи с праздничными днями или крайними сроками продажи.

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

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

Выбирайте хорошие методологии работы в начале проекта. И придерживайтесь их.

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

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

0
0 комментариев
Популярные
По порядку
Читать все 0 комментариев
Украли деньги с карты Тинькофф

30.12.2021 года я с семьей дочери поехала в магазин "Спортмастер" в г. Москва покупать коньки. Уведомлений от Тинькофф не было. 31.12.2021 года я увидела что есть какие то пуш уведомление при нажатии на него оно исчезло. Когда я зашла в онлайн приложение, то увидела что у меня с кредитной карты сняли 106 000 рублей , было снятие 7 суммами. Кроме…

Геозоны: разделяй и властвуй

Ильдар Бикташев, руководитель отдела картографии и алгоритмов, уже рассказывал, какие задачи стоят перед картографическими сервисами Master Delivery. Сегодня продолжаем разговор о том, как геоаналитические разработки решают маркетинговые и логистические задачи бизнеса.

Идеальный тимлид: миф или реальность?

Кто такой идеальный тимлид? Что ожидает руководство от такого сотрудника? Колонка Алексея Кирсанова, руководителя разработки «Битрикс24».

BlaBlaCar продаёт билеты на несуществующие автобусы

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

«Не мошенник, а фантазёр»: история афериста Коровко, ставшего прототипом для героя Ильфа и Петрова Статьи редакции

У миллионера Корейко из романа «Золотой телёнок» есть реальный прообраз — Константин Коровко, торговавший в дореволюционном Петербурге паями несуществующих предприятий. На своих аферах он заработал около 1 млн рублей, но перед судом предстал с 220 рублями на счету и обвинил во всём самих пайщиков.

Евгений Евстигнеев в роли Александра Корейко, кадр из фильма Михаила Швейцера «Золотой телёнок» Год Литературы
Как я открывал совместный счет в Тинькофф банке

В самом конце прошлого года Тинькофф запустил услугу “Совместного счета” и прислал мне пуш об этом. Так получилось, что именно в это время у меня возникла потребность в такой услуге, и я решил протестировать их новый продукт.

Акции роста российских эмитентов на ближайшие 5 лет

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

Для абонентов Мегафон и Yota. Вы не знали, а вам открыли счет в банке!

Для тех кому интересна развязка, она внизу (выделено жирным).

Самые сильные идеи в жизни

Предприниматель Сахил Блум публикует в своем Твиттере интересные жизненные идеи и парадоксы. Представляю перевод твиттер треда «22 самых сильных идеи в жизни».

Twitter приобрел миноритарный пакет акций Aleph Group — материнской компании Httpool

Twitter Inc. (TWTR) — первая из компаний Кремниевой долины, которая стала акционером глобальной рекламной группы Aleph, объединяющей компании IMS, Httpool, Wise.Blue и AdDynamo. Таким образом Twitter поддержит международную образовательную инициативу Aleph Group по усилению цифровой экосистемы в странах с развивающейся экономикой.

Мвидео игнорирует мой заказ

Решил купить товар на Мвидео, и 2 раз сталкиваюсь с такой ситуацией.

null