Интервью с KillHouse Games
Уже не помню, каким образом я натолкнулся на Door Kickers — двумерный тактический симулятор команды спецназа со свободной паузой (дада, можно нарисовать пути атаки, в любой момент поставить игру на паузу и переделать их. Никаких ходов и гексагонов, никакого жёсткого реалтайма). Факт в том, что купив её, я сел поиграть «пару миссий», и очнулся под утро, когда пытался пройти все уровни с максимальным количеством звёзд. Дальше больше, и в итоге я начал узнавать про фирму издателя (вдруг у них есть ещё подобные проекты?). Оказалось, что игру делает маленькая фирма из Румынии — KillHouse Games, которой меньше двух лет от роду, но у разработчиков уже был ощутимый багаж знаний для разработки собственной игрыTL; DR — трейлер игры (на текущий момент графика в игре выглядит немного по другому):[embedded content]А дальше идёт интервью с ними: — Привет, ребята! — Привет! (С вами Dan Dimitrescu и Mihai Gosa)
— Во-первых, расскажите, пожалуйста, о своей команде. Я знаю что Dan основатель KillHouse Games. Кто ещё работает вместе с вами? MG: Он работает со мной (Mihai Gosa, программист), Catalin Saitan (программист) и с нашим full-time художником, Adrian Cruceanu.DD: Да, мы основали фирму вместе, и являемся её совладельцами.
— Насколько я помню, перед KillHouse Дэн работал на Ubisoft. У вашей команды уже был опыт разработки игр, или пришлось учиться в процессе разработки DoorKickers? MG: Adrian единственный, кто не работал в индустрии разработки игр, но насколько вы видите, он чертовски талантливый художник! DD: Вы можете увидеть наши имена в титрах следующих игр: Silent Hunter 3 /4 / — симуляторе подлодки времён Второй Мировой Войны; Assassin’s Creed Brotherhood; Tom Clansy’s HAWX 2, Ghost Recon Future Soldier; Zombie U и многих других.
— Что вам сказали ваши родные, когда вы объявили им о том что вы уходите в стартап? DD: Если честно, я не помню. Мне кажется я припоминаю энтузиазм, но может быть это мой мозг скрывает насилие включающее в себя сковородку и мою голову :)MG: Жена: О, нет! Родители: О, нет!
— У вас были какие-то сбережения на первое время, или вы работаете все 2 года только на деньги полученые от игры? DD: У меня не было денег, я их все спустил на страйкбол, компьютеры и прочее барахло. Но у моей жены были, поскольку, как вы видите, она не работает главным дизайнером крупнейшей игровой студии в Румынии :)MG: У меня были сбережения на первый год работы без всякой прибыли. Я начал вести учёт финансов примерно за 4–5 месяцев перед увольнением из EA, и прикинул сколько денег мне необходимо чтобы протянуть так долго. К счастью, игра начала приносить прибыль (при продаже через наш сайт) через 6 месяцев разработки (хотя могла бы начать приносить прибыль ещё раньше).
— Ещё один вопрос, ответ на который я очень долго ждал: Вы играли в SWAT-2? Сколько лет я ждал подобную игру, прежде чем нашёл DoorKickers! DD: Я играл в неё, но не так давно — я пропустил её, когда она была новинкой. Я прыгнул с Police Quest Open Season сразу на SWAT3, которая была действительно клёвой. Само собой, в своё время я засиживался над Rainbow Six, Rogue Spear и Ghost Recon.PQ1 и 2 было очень трудно найти в текущее время, но, благодаря gog.com, я их купил. Я помню очень много хороших старых игр, но тогда мы тратили всё время на игры, в ущерб всякой мелочи, типа подготовки к экзаменам.
— В DoorKickers игроки могут приобрести допольнительные «плюшки», типа их собственных портретов в качестве штурмовиков/террористов, домов в качестве карт в игре, доступа к ночным билдам, и т. д. Много игроков покупает такие вещи? И оправдано-ли это финансово? DD: Много игроков покупает возможность добавить свой портрет в игру, и это хорошо для вас как для разработчика, потому что они начинают играть снова и снова когда видят себя в игре. Это приводит к тому, что игроки хвастаются перед друзьями, и те оказываются вовлечены в игру :) У нас так же есть немного проданных «вставьте-ваш-дом-в-игру», но пока никто не купил максимальную услугу «быть заложником/плохим парнем/специальным юнитом». Я думаю, будь мы более знамениты, продажи шли бы лучше, но по нашему мнению текущий результат тоже вполне хорош!
Автор собственной персоной
— Какие средства разработки вы используете? У вас практикуется Continuous Integration? Багтрекер? Какая IDE ваша любимая? MG: Мы используем Visual Studio, Photoshop и 3D Studio Max для разработки, SVN для хранения кода, и Google Docs для документов. Примерно раз в месяц мы используем Xcode и kdevelop для билдов под Mac/Linux. Любимая IDE: Visual Studio, нелюбимая: Xcode.Багтрекер: bugs.txt которую я редактирую с помощью Notepad++.Мы используем некоторые принципы Continuous Integration, которые помогают максимально быстро вести разработку с минимальным оверхэдом.DD: Это может звучать не очень Hi-Tech, но с маленькой группой программистов и очень самомотивированным лидером (MG) — это работает :) К тому же, меньше шансов начать что-то делать не так.
— Вы используете статические анализаторы кода типа PVS-Studio или что-то ещё, кроме стандартного вывода компилятора? BTW, какие компиляторы вы используется для сборки проекта? MG: Мы используем свободные анализаторы cpplint и cppcheck, но не так часто как хотелось бы. Для сборки мы используем cl (Visual Studio), gcc (Linux) и llvm (OSX). Мы не поддерживаем стандарт c++11 потому что мы не нашли как собирать игру под OSX<10.7 с поддержкой c++11. Однажды мы выпустили апдейт который требовал OSX>10.7, и вы бы сильно удивились если бы узнали насколько много человек до сих пор использует старые версии.
— Какую VCS вы используете? Вы часто делаете бранчи (Я имею в виду, бранч для каждой фичи/бага и слияние когда всё будет готово) или используете одну ветку для каждого релиза? Как насчёт Code Review? MG: Мы используем SVN. Никаких бранчей, коммитим сразу в ветку master. Я делаю ревью всех коммитов (и кода, и данных). Игра собирается с помощью очень простого тулчейна, и это помогает минимизировать потерю времени на выделение веток и большого тестирования. Даже в текущей Альфа-версии наши пользователи удивляются насколько стабильна игра. Мы очень редко получаем отчёты об ошибках (имелся в виду crash-report) или баги, которые не позволяют играть в игру.
— Вы используете автоматическое тестирование (или юнит-тесты), или вручную играете сотни раз чтобы найти баг? Кстати, не надоедает играть в свою собственную игру снова и снова? :)MG: Никаких юнит-тестов. Когда 1 человек пишет 80% кода — это даёт свои результаты. Как я уже говорил выше, мы очень редко получаем баг-репорты. Кроме того, игры (и игровые движки) настолько часто меняются, что написание тестов будет занимать существенную часть времени программиста, на что мы пока не готовый пойти. Вообще мы достаточно редко играем в старые миссии. Я надеюсь что это последствия большой практики в программировании и геймдеве, что позволяет игре быть стабильной и без тестов.
— Какую модель для разработки вы используете? Agile, RAD, просто-пишем-этот-код? MG: я думаю мне надо придумать новую терминологию, но это будет что-то среднее между Agile и RAD, с вкраплениями просто-пишем-этот-код. В своей голове я очень много планирую сторону кода, но часто всплывают неожиданные места в дизайне/графике, которые надо изменить из-за пожеланий пользователей или рынка.DD: У нас был Agile в Ubi, но сейчас мы от него очень далеки. У нас не так много ресурсов чтобы тратить их на многочисленные итерации. Мы очень много думаем, пытаемся сделать правильно с первого раза, или просто разбиваем на мелкие задачи и смотрим на реакцию пользователей.
— Одной из возможных покупок на сайте является покупка исходников игры. Не страшно отдавать их кому-то, зная, что этот кто-то может сделать игру которая может превзойти вашу? MG: Вообще мы добавили пункт о неконкуренции в лицензионное соглашение, но я думаю что его можно спокойно выкинуть, потому что мы не отдадим исходники до финального релиза игры. Оглядываясь назад, я думаю что это было не очень грамотное предложение — кто ж будет ждать исходников 1–2 года? К тому же, сомневаюсь что кто-то сможет сделать игру лучше чем наша :-P
Hardcode Geek!
— Что вы думаете об Open Source? Смогли бы вы написать DoorKickers только на пожертвования? MG: Я сомневаюсь что модель open-source будет работать для любых игр, тем более для Door Kickers, так как (несмотря на очень преданных поклонников) у нас очень узкая ниша.
— Тяжело было попасть из Steam Greenlight в основной магазин Steam? MG: Нет, достаточно просто. Greenlight быстро продвинул нас на первое место из более чем 1400 игр, прежде чем мы попали в сам Steam. Одной из вещей которые мы сделали — это выпустили бесплатную (но урезанную) версию игры для продвижения в Greenlight. В ней было много кнопок «голосуйте за нас на Greenlight» :)
— Я нашёл вашу игру только в Steam и Humble Bundle Store. Какие ещё магазины вы используете? Какой из них более эффективен? MG: Мы продаём игру на нашем сайте (inthekillhouse.com), Gamers Gate и MacGameStore. Так же мы планируем добавить игру ещё в несколько магазинов когда мы будем ближе к релизу. Лично я впечатлён интерфейсом разработчика Steam и их системой обновлений, и считаю, что это способствует успеху самой платформы.Самым успешным магазином является наш собственный сайт: это была одна из причин продолжать разработку, потому что тогда мы не могли продавать игру на других платформах. Кстати, больше всего денег приходит именно с него :)
— Я слышал, что Door Kickers используется как симулятор для военных. Можете рассказать об этом подробнее? Вы просто отдали им исходники/бинарники, или переписали часть «казуальной» логики? DD: Версия для военных немного «подтюнена» и в неё добавили несколько специальных уровней. В долгосрочной перспективе мы хотим добавить несколько улучшений для повтора боя, чтобы инструктор мог объяснить «что пошло не так» и «как план может быть улучшен».К тому же мы наверное уберём некоторые элементы рандома, но по правде говоря, военные не озабочены геймплеем. Они используют игру для демонстрации правильного CQB (Close Quarters Battle — ближний бой) и тактики.
Пример плохой тактики — без прикрытия, с пустым магазином, и один против троих. Raccoon не жилец— Какие у вас отношения с коллегами? Вы просто работаете вместе, или периодически выбираетесь в бар, на шашлыки и т. д.? MG: Мы вместе работали в других компаниях, и нам комфортно в окружении друг друга. Кстати, кто-нибудь мне расскажет, неужели бывает что-то ещё кроме работы?! DD: Быть инди-разработчиком означает что вы зависите от себя, и всё доступное время должно быть потрачено на игру. Но в моём случае это трудно, так как у меня есть маленький ребёнок который требует внимания. Всё же, хорошие отношения которые у нас сложились со времён Ubi, означают что мы научились принимать друг друга и верить тому, что все делают всё возможное для разработки игры.
— Сколько времени уходит на управление KillHouse? В больших компаниях есть отдельные менеджеры, как с этим обстоит у вас? MG: Мы команда которая состоит из трёх full-time работников и 5–6 part-time контрактников. Я могу управиться с таким количеством самостоятельно, оставляя разработку во главе рабочего времени. Кроме того, я и Дэн делаем всю работу связанную с поддержкой, управлением сообществом и маркетингом. Я думаю что в настоящий момент отдельный менеджер только замедлит нас, и создаст преграду между нами и игроками.
— Насколько тяжелее живётся когда тебе надо платить зарплату не только себе, но и сотрудникам? Не возникало мысли бросить всё и сказать: «Пошли все к чёрту, я ухожу обратно в большую фирму»? MG: Лично у меня огромная толерантность к давлению со стороны работы, поэтому у меня никогда не было желания бросить всё. Хотя хочется некоторым вещам сказать «Пошли к чёрту» :) Чувство ответственности за сотрудников сильно ограничивает рост компании. Несмотря на то что мы можем ускорить разработку наняв пару разработчиков, мы не сделаем этого пока в бюджете не будет лежать как минимум их годовая зарплата.
— Может ли случиться такое что у работника нет заданий (дизайнеру нечего рисовать и т. д.)? Что вы делаете в такой ситуации? MG: Небольшая команда имеет преимущество в отсутствии «бутылочных горлышек» в коммуникации между собой. Это то что я часто видел в дни работы на большую фирму, и то что я всегда ненавидел. Если такое случится, я дам себе подзатыльник, потому что или я плохо управляю компанией, или я запустил программирование, и дизайнер ушёл далеко вперёд.
— Бывает так что работник «сгорает» — плохо работает, становится вялым. Что вы делаете в такой ситуации? MG: Угрозы обычно работают. Шучу, но на самом деле в стартапах (и особенно в разработке игр) нет места «перегоревшим», так как тут требуются титанические усилия. Это может звучать жёстко, но эта работа не для всех. К тому же, мы стараемся работать с само-мотивированными людьми.
— Можете припомнить какие-то смешные баги/ситуации во время разработки? Я знаю одну игру (речь идёт о посте Багло) где свинье дали пистолет без патронов, т. к. «Свинья» наследовала класс «Солдат». Надеюсь, заложники в вашей игре — это же не Штурмовик-Без-Патронов? MG: С точки зрения разработчика я не знаю никаких «смешных» багов :) Но я думаю, что игроки находят ситуации подобные этой забавными: [embedded content]На самом деле заложники у нас — это Штурмовик-Без-Мозгов. На полном серьёзе — мы удалили им мозги :)
— Какие советы можете дать для начинающих разработчиков игр? MG: Для программистов: пишите много игр с нуля (без помощи всяких Unity), иначе вы ничему не научитесь. Пишите логику, рендер, работу с сетью, звуком, GUI и т. д., безо всякого деления на хочу/не хочу.Для дизайнеров/художников: пишите много игрDD: Мотивация — это уровень топлива за которым вы должны следить, при чём не только за своей, но и за командной. Когда вы запустите проект, постарайтесь сделать его играбельным как можно скорее. Если вы не дадите людям поиграть в игру (а ещё лучше — заплатить за неё) через 6–12 месяцев, вы её провалите. Когда игроки суют свои руки в игру это мотивирует вас, и даёт понять что вы движетесь в верном направлении.
— Пожалуйста, скажите пару слов напоследок для тех, кто дочитал до конца.MG: Поздравляю! Не многие дошли до этого места :-P И покупайте нашу игру!
— И наконец: Спасибо вам, за что что вы открыли редактор и начали писать Door KickersDD: Спасибо вам за интервью :)
P.S. Если остались какие-то вопросы на которые хочется получить ответы — пишите их в комментариях, я с удовольствием передам их разработчикам.