Что общего у разработки программного обеспечения с разработкой настольных игр?

Что общего у разработки программного обеспечения с разработкой настольных игр? Об этом лучше всех знает Сергей Milfgard Абдульманов который учился по специальности «математик-системный программист» и владел IT-компанией, а сейчас известен читателям Хабра постами в блоге компании «Мосигра».


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


image


Сергей: Короче, правильнее будет анонсировать тезис «как мы люто облажались». Это чтобы вы не думали, что мы там новый аджайл придумали или что-то ещё. А ещё у нас тестировщики чуть не набили разработчикам морду. В частном порядке. Но это отдельная песня.


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


Сергей: Это смотря каких людей. Есть горизонтальное масштабирование, это когда одна команда лабает одну игру 5 месяцев. Берёшь и делаешь 10 таких команд, скорость вырастает в 8 раз. А есть вертикальное — это когда ты всё разбиваешь на микросервисы и ждёшь, что каждый участок будет идти быстрее. Мы попробовали и то, и другое, и третье. Думаю, да — если добавлять людей, можно расти в скорости. Но это должны быть профессионалы. Второй вопрос — где их взять или как обучать.


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


— Зачастую программисты по сравнению с другими сотрудниками считаются очень сложными в управлении («это как пасти котов»). Вы видели управление и программистами, и непрограммистами — по-вашему, насколько это представление соответствует истине?


Сергей: Слушай, мужик, чего ты до меня докопался? Я интроверт. Я не знаю, мне одинаково сложно со всеми. Но разработчиков я хотя бы понимаю.


Если серьёзно — нет, таких проблем нет. Есть другие.


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


Сергей: У нас ключевые навыки сохраняются подольше, но у нас самом рынок меняется и развивается. Да и компания, знаешь, не самая спокойная. Девиз есть — «если ты не идёшь вперёд, то ты идёшь на…», ну, в общем не туда идёшь.


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


Тут ещё надо учесть, что мы с нашим 9-летним опытом (а у кого-то он раза в два меньше) сейчас пытаемся вылезти на западные рынки. И получается. А там конкуренция куда сильнее. Вот там реально всё бурлит. Мы для них плюшевые с точки зрения разработки — ничего не знаем во вкусах их людей, а они для нас — с точки зрения розницы. В итоге как-то необычайно хорошо сошлись с голландцами. Они там работают, судя по играм, в изменённом состоянии сознания — и очень хорошо нас понимают.


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


Сергей: Это ты про дядьку Эдисона, да? У нас другая проблема — разработка отсматривает сотни игр в год от авторов. Поэтому ей запрещено работать над своими проектами. А вообще, у нас недавно ИТ-директор стала главой розницы. Вот это был реально крутой финт ушами.


— Вы рекомендовали на Хабре книгу «Психбольница в руках пациентов», где описываются стереотипы мышления программистов/дизайнеров и сложности, которые это вызывает у пользователей. А насколько её содержание применимо к настольным играм — возникают ли там из-за отличий «типичного создателя игры» от «типичного потребителя игры» подобные сложности?


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


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


— Разработка софта — это всегда сочетание «что запланировали изначально» и «что выяснилось в процессе», и даже при чётком начальном ТЗ всё может заметно уйти в сторону. А как в настольных играх соотносятся «вводные данные» и «что получилось» — много ли вводных вообще, и насколько часто в процессе приходится отказываться от задуманного изначально?


Сергей: Если это работа по локализации западной лицензии — то обычно результат совпадает с планом. Хотя, например, мы делали »Trains» (будет мегакрутая игра »Экспресс», я прямо очень жду серийных копий, чтобы утащить сразу кучу на подарки) — это японский бестселлер. Они там на поездах просто чокнутые. Так вот, у неё очень тонкий баланс, завязанный на игровое поле. А игровое поле — это карта железных дорог Японии. А надо России, потому что по Японии играть нашему игроку будет не очень интересно. Мы почти полгода делали заходы, чтобы сохранить изначальный баланс — и получилось. Потом ещё железнодорожнику показали, и прям пронесло, что он только некоторые термины поправил, и ни до чего больше не докопался. Я в этом процессе напрямую не участвовал, но интересовался. Когда в Австралии в Пейн-Крик встретил смотрителя железнодорожной станции, было о чём поговорить. Он думал, я вообще русский железнодорожник.


А если чисто разработка — то тут ещё ни разу по изначальному плану не пошло. Во вводных обычно просто сегмент рынка и потребность на нём. Как решить — это уже вопрос к разработке. Из нерешённого — очень хочется игру по »Элите» уже несколько лет, и вот только-только доходит примерно, как должен выглядеть коммерческий продукт. Или вообще мечта — игра по This War of Mine. Безумная лицензия, но настолку по ней потенциальные противники сделали, и сделали не очень играбельной, увы. Многие проекты прошлых лет лежат, ждут своего часа — когда мы поймём, что и как с ними делать. Опыт копится постепенно.


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


Сергей: Отзыв тиража — это толстая полярная лисичка. И случается ведь. Мы вот посчитали потери на переделках внутри процесса — ещё до релиза, чисто на бете, и поняли, что занимаемся какой-то непродуктивной фигнёй. Но это системно-обусловленная вещь, фреймворк разработки такой. Надо всё менять, а мы не можем. Поэтому сейчас ещё вариант пробуем одного процесса.


Ну и это, правильно сравнивать с бизнес-требовниями в разработке. Это когда ты пилишь-пилишь софтину, а потом по ходу пьесы меняются бизнес-требования внутреннего заказчика. Тут откат не спасёт. В хорошем смысле этого слова.


Что ещё печальнее, тестирование даёт далеко не всё. Тут юнитом не покроешь, очень многие вещи численно неизмеримы. Надо выпускать тираж и смотреть, успешен проект или нет. Очень многое решает интуиция и понимание рынка. Не всегда это можно формализовать.


— Софт выделяется «итеративностью»: пока многие другие продукты создаются «раз и навсегда», тут постепенные изменения, на 1.0 работа не заканчивается, и консерваторы вообще только с версии 1.1 начинают чем-либо пользоваться. А игры обычно выходят сразу в окончательном варианте, или у них тоже второй тираж отличается от первого?


Сергей: У нас бывают хотфиксы — это новые версии правил или эрраты. К турнирам обычно делаются отдельные правила с турнирным регламентом, они отличаются сильно от обычных — например, иначе оговаривается ситуация допустимых ничьих.


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


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


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


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


Сергей: Конечно, Нейрошима-6, это прямо воплощённая отладка и готовый язык. Отличная тактическая игра Михаила Орача. У нас по ней турниры шли регулярные, причём приходили дети, смотрели как большие бородатые дяди играют, быстро усваивали логику и выигрывали в них. Один такой Эндер прямо пару раз на турнирах серьёзных игроков рвал, но выше второго места, увы, не поднялся.


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


Была хорошая игра про программирование »Роборалли», очень детям для обучения. Её Ричард Гарфилд писал, это у нас почти как Ленин. Но в России давно уже нет, только если залежалась у кого.


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

© Habrahabr.ru