Привет, Хабр!
Меня зовут Артём Титов, я lead gameplay programmer в Larian Studios.
Мы очень давно хотели поделиться с вами нашим опытом создания и разработки компьютерных игр, но долго не могли решить, с чего бы начать. Долго размышляя, мы пришли к выводу, что первая статья должна быть не технической, а скорее личной — и для этого я перевёл вам запись в блоге одного из наших сотрудников, сделанную около года назад. Его история даёт очень хорошее представление не только о нашей студии со стороны игр, что мы создаём, но и детально показывает личный аспект жизни рядового сотрудника студии, проходящей через падения и взлёты. Я постарался сделать наиболее точный перевод, но тем не менее полностью от англицизмов и слэнга избавиться не смог.
Итак под катом история моего коллеги длиной в 10 лет.
«Вы можете не думать о программистах, как о творческих людях, но тем не менее программирование — это очень творческая профессия. Это логико-ориентированное творчество.»
Джон Ромеро
Последние десять лет я работаю в Larian Studios, создавая игры, и каждая продавалась довольно хорошо. И вся моя твердолобость не смогла помешать мне почерпнуть определенное количество опыта за прошедшие годы. Итак, вместо рассуждения о Жизни, Вселенной и всём остальном, я расскажу о разнице между созданием игр и игрой в них, а также о том, как справляться со стрессом, вдохновением, разочарованием и увлеченностью. Но давайте начнем с самого начала!
Игры
Ketnet Kick
Обучающая игра, наполненная мини-играми. Меня наняли как геймплей программиста сразу после университета в 2005. Во время моего испытательного срока меня попросили создать 2 мини-игры. Не слишком креативно, зато я получил огромный опыт по работе с движком, управлением, анимациями, эффектами и многими другими системами, уникальным для разработки игр. Это всё потребовало от меня 3-4 месяца, после которых меня наконец-то перевели на проект, ради которого и взяли на работу:
Divinity 2: Ego Draconis
Мой первый большой проект. По сути я был единственным разработчиком геймплея. Мне досталось делать кучу всяких крутых систем: Наземные сражения, Сражение Драконом, Управление и наведение, Вражеский ИИ и Нахождение пути… и еще больше крутых вещей, которые я никогда не делал до этого! Производство набирало обороты, нанимали больше людей, и я стал их лидом. Ближе к концу у нас было 2 команды программистов: команда движка, занимающаяся всем, что ты мог ВИДЕТЬ в игре, и геймплей команда, занимающаяся всем, что ты мог СДЕЛАТЬ в игре. Последняя состояла из 4-5 человек, во главе которых был я.
Также была команда дизайнеров, которая придумывала квесты, истории, диалоги и локации, но сражения и ролевые механики были в основном разработаны Свеном (биг босс) и мной. Это был мой первый заход в дизайн и я начал думать о деталях, придумывая их, прототипируя их, заставляя людей пробовать их, чтобы потом совершенствовать на основе отзывов, и двигаясь к следующей вкусняшке.
К тому же это была первая 3D RPG, которую делала Larian, и вся студия была набита джуниорами, поэтому нас очень быстро завалило огромным количеством фич, задач, требующихся для их создания, а так же багами, которые появлялись, когда мы наконец собирали все вместе. Я попал на управленческую позицию, к которой, скорее всего, был не готов. Мы пропустили несколько майлстоунов, поссорились с издателем (= инвестор, который занимался маркетингом и распространением), и в итоге пришлось выпуститься раньше, чем мы хотели.
Последние месяцы производства были чередой длинных недель, когда основная команда, состоящая из молодых разработчиков, делала все что могла, чтобы выпустить что-то настолько хорошее, насколько нам позволяло время. Это было время, когда я еще не встретил свою жену и жил у себя дома. Работать до часа ночи каждый день, затем еще 15-20 часов на выходных возможно исключительно когда у тебя нет домашних обязанностей. Ты сближаешься с людьми, с которыми делишь окопы и фаст-фуд. Твои друзья учатся тусить без тебя.
Divinity 2: Flames of Vengance
Дополнение к Divinity 2, где мы научились на своих ошибках и получили шанс исправиться. Мы восстановились после жесткого кранча и сильно улучшили игру.
Персонально мне пришлось переделать весь баланс и систему распределения сокровищ. Это значит, что я провел месяц в эксель страницах со списками, числами и графиками, подбирая значения и создавая алгоритмы, и Я ОБОЖАЛ ЭТО! Эта работа не для всех, но для powergamer’a как я это было настоящим счастьем.
Последний акт дополнения представлял из себя массивное сражение дракона и армии, где вам было необходимо защищать дирижабль, перевозящий ядерку к центру вражеской крепости. Это было нечто. Эпично и весело.
И еще это был момент, когда я встретил свою будущую жену, и мы начали встречаться.
Divinity 2: Dragon Knight Saga
Мы взяли все, чему научились на дополнении, и применили к оригинальной игре. Собрали и продали. Людям понравилось и мы получили отличные оценки. У нас наконец-то был продукт, которым можно гордиться, и именно та версия, которую мы хотели выпустить, если бы не закончились деньги. Это было испытание для управленческих навыков Свена (биг босс), в результате которых Larian продолжила жить там, где другие тонули.
К этому времени я был в Larian 5 лет и большую часть я провёл на Divinity 2 и множестве её версий. В какой-то момент оказалось, что я создал, прототипировал практически каждую игровую систему в игре. Это навсегда останется моим главным детищем. Я не буду притворяться, что это лучшая RPG из когда-то созданных или что она идеальна во всех отношениях, но работа над ней навсегда останется моими вторыми по продолжительности отношениями. Ох, я и правда говорю о игре, как о личности?
Divinity: Dragon Commander
После финансового успеха Dragon Knight Saga Larian выросли, переехали в новый офис и начали два новых небольших проекта, через 5 лет ставшие Divinity: Dragon Commander и Divinity: Original Sin. Меня и мою команду назначили на Dragon Commander.
Вы помните ту эпичную концовку из Flame of Vengeance, о которой я говорил чуть ранее, ту с драконами и армиями и взрывами?… а давайте-ка сделаем всю игру такой! Но еще добавим реактивный ранец дракону, чтобы он мог летать еще быстрее и уклонятся от файерболлов и добавим мультиплеер, чтобы люди могли сражаться друг с другом.
Вкратце это и есть суть Divinity: Dragon Commander. Неплохо, да?
Далее последовала лавина прототипов, где мы старались превратить этот крутой концепт в 40 часовую игру. Нам надо было превратить крутое в веселое в жанре, который мы сами же изобрели. Я довольно сильно расширил свои навыки программирования, так как от меня требовались сотни разных механик и фич. И хотя я становился лучше в скоростном программировании, мы так и не смогли найти идеальный баланс между Экшеном и Стратегией, Созданием юнитов и их покупкой, Сражением Драконом и рядовыми юнитами. Было понятно, что у нас в руках нечто очень веселое и уникальное, но закончить это нам было не просто.
Средства уходили, а мы так и не приближались к законченному продукту. Divinity: Original Sin в то же время выросла в масштабах, и такими темпами мы могли остаться на мели (мы были независимой студией, и предпочитали вкладывать свои средства, чем иметь издателя, вмешивающегося в процесс разработки) до того как вышла хотя бы одна из игр.
На личном фронте я «выпер» моих родителей из дома и въехал туда со своей девушкой. Я сделал ей предложение через 6 месяцев, и в один из самых сумасшедших лет моей жизни, я женился, съездил в эпичное свадебное путешествие, купил хороший дом (который правда отчаянно нуждался в ремонте) и зачал ребенка.
Свен (биг босс) принял решение временно приостановить разработку Divinity: Original Sin и направить всю команду в единое русло, целью которого было «Выпустить Divinity:Dragon Commander как можно раньше и в как можно лучшем состоянии». К этому времени постоянное прототипирование превратило код проекта в тихий ужас. Следующие несколько месяцев были возможно моими самыми темными в Larian. Программисты всех остальных команд были оторваны от своих проектов, чтобы исправить мой бардак. Многие из этих ребят были молоды и очень много работали сверхурочно, чтобы закончить игру. Я же, напротив, имел очень насыщенную семейную жизнь и не мог позволить себе работать по 80 часов в неделю. Я заканчивал в 18:00, возвращался домой к жене на ужин, кормил и купал дочь, укладывал их вместе с женой спать и включал компьютер в 10 вечера, чтобы продолжить исправлять баги.
В конце концов мы закончили и выпустили игру, и её неплохо приняли, но я был выжат досуха.
Divinity: Original Sin
После Dragon Commander я попросил босса перевести меня на работу в режиме 4/5. Чтобы оставаться дома один дополнительный день в неделю и заботится о ребенке и следить за ремонтом.
Далее последовал долгий разговор о моем будущем в компании и будущем как программиста. О том, как найти баланс между моими обязанностями на работе и дома. Любой другой начальник возможно уволил бы меня либо дал неимоверно скучную задачу, но Свен предложил вариант оставить программирование для новых программистов и присоединиться к команде дизайнеров в качестве скриптера.
Я согласился и начал воплощать квесты, созданные нашими писателями. Я больше не был вовлечен в разработку боевой системы, управления, AI, но внезапно для себя получал много удовольствия от добавления небольших деталей к сюжетным линиям, от создания головомок и своих собственных небольших веселых сценариев. Я даже начал продумывать небольшие квесты, полностью с нуля основанные на моих собственных увлечениях. Мне поручили создание города в игре, и я добавил жизни везде, где только мог. Я добавил стражей, которые после смены играют в покер, а игрок может к ним присоединиться. Создал квест, где игроку надо пройти через весь процесс создания виски, начиная от сбора бутылок для дистилляции до просьбы к другу-путешественнику во времени помочь состарить напиток. Я начал писать прототипы диалогов, где открыл свою скрытую любовь к писательству.
Конечно, была сверхурочная работа, но не сравнимая с тем, что мы делали для Ego Draconis или Dragon Commander. У нас было четкое видение, какой должна быть игра, и много опытных людей для работы над ней.
Конечным результатом была игра, которую приняли очень тепло. Larian расцвели, мои друзья действительно играли в игру, которую я сделал, уважаемые мною люди высоко оценили то, что я помогал создавать. Но самое главное: я заново зажег в себе искру. И вместе с этим улучшились все аспекты моей жизни.
Divinity: Original Sin: Enhanced Edition
Мы читали обзоры, слушали игроков и сделали список (Ура!) улучшений, которые хотели бы добавить к игре. А еще мы удивительно хорошо перенесли игру на консоли.
Мне надлежало улучшить основную историю и переделать концовку. Я исправлял баги, полировал квесты и создавал системы, позволяющие нам сделать игру еще лучше. В момент написания статьи PC версия имеет рейтинг 94%! Консольная версия находится на значении в 88% (аудиторию консолей всегда было сложно удовлетворить). Игра упоминается наравне с другими играми, бюджет которых был в 20 раз больше.
Divinity: Original Sin 2
Это наш текущий проект. Продолжение по масштабам еще большее и с еще большими ожиданиями. Но у нас есть команда увлеченных и опытных людей, ставящих перед собой цель сделать игру самой лучшей RPG из существующих.
Разработка идет полным ходом, и я не могу говорить о многом, но каждый день я с удовольствием иду на работу, чтобы поделиться своими идеями с коллегами и выслушать их.
Оборачиваясь назад
Смотря на прошедшие 10 лет моей жизни и список из 8 игр, я понимаю что они формировали меня гораздо больше, чем я пытался формировать их. Эти игры были бы другими без меня, и я был бы другим без них. Каждая — это череда уроков, опыт, о котором я могу рассказывать больше, чем мне позволяет длина статьи.
Я пришел в индустрию, полный любви к играм и с кучей идей в голове, и я рад, что спустя 10 лет любовь все еще горит внутри ярким пламенем. Буду ли я этим заниматься еще спустя 10 лет? Я не знаю, но очень надеюсь на это. Мысль о совместной работе со всеми креативными, гениальными и страстными творцами, которых Larian собирала все эти годы, питает мою страсть на работе и дома.
От автора
На этом заканчивается наша первая публикация. Но у нас уже есть статьи и идеи о том, чем же поделится с вами в следующий раз: как и технические ниндзюцу, так и полезные для геймдева советы. Оставайтесь с нами и спасибо за внимание!
Комментарии (21)
Suvitruf
26.02.2017 14:55Larian на хабре, круто ^_^
Было б ещё интересно почитать про времена Divine Divinity. Если уж над Divinity 2 работала куча джунов, кто ж тогда DD в те времена делал? Или новичков было много именно из-за перехода в 3d?zergon321
26.02.2017 21:44Про Divine Divinity есть интервью со Свеном Винке, главой Larian, оно было в 11-ом номере «Игромании» за 2009-ый.
Sellec
26.02.2017 15:35Сразу пробежался по заголовкам и отметил одну вещь — человек проработал 10 лет над одной линейкой игр.
Очень хотелось бы увидеть подобную статью, но про человека, работавшего в условиях, когда нет 100% определенности и приходится переключаться на совершенно незнакомые темы. Например, с гейм-разработки на серверные системы или промышленное программирование и т.п.
Когда сидишь 10 лет в одной компании и работаешь над тем, что разрабатывал с самого начала, это реально легче, нежели раз в несколько лет переходить на что-то совершенно незнакомое.Ermak
28.02.2017 21:50+12001-2003 VisualBasic приложение, работа с Oracle DB
2003-2004 Web GUI ASP + JS
2004-2006 серверная система на проприетарном языке, работа с Oracle DB
2006-2013 серверная система на Java, работа с Oracle DB
2013-2015 Java на разных платформах Hadoop (+Hbase + Pig + Hive) + RDF
2015… Java + Scala + Groovy + Kafka + Spark + YARN на разных платформах Hadoop :)
Как-то так :)
Cim
26.02.2017 16:12+1У меня только один вопрос: какой сумрачный гений придумал ввести в Original Sin эту шизофрению с игрой в Камень-Ножницы-Бумага и спором с самим собой?:)
aspirineilia
27.02.2017 13:16Это фишки кооперативного прохождения. Если играть одному — этот момент настраивается.
Houston
26.02.2017 16:56+3Original Sin великолепна! Единственная особенность — играли с женой на маках. Original Sin 2 же пока работает только на Windows. Пожалуйста, найдите силы и средства портировать её на другие платформы!
lxsmkv
26.02.2017 17:11Намедни купил и начал играть в D:OS EE, а тут такое совпадение. Игра бесспорно уникальная.
Хотелось бы узнать почему отказались от локализованой озвучки. Это частое явление среди игр и хотелось бы узнать отчего так происходит, что при одинаковой цене за копию одни игры полностью дублированы (например тот же Диабло 3), а другие нет.IgeNiaI
06.03.2017 18:55Поздно добрался я до этой статьи, но ладно уж…
Тот же Диабло 3 делает огромная студия с кучей сотрудников, и продает её в количествах, которые полностью перекрывают расходы на локализацию. Еще Blizzard весьма трепетно относится к качествую локализации и она не уступает оригиналу. Другие студии, в том числе и большие, обычно забивают болт на качество, ибо клепают по несколько игр в год. Не все, конечно, но подавляющее большинство точно.
Larian Studios же гораздо меньше и просто не может позволить себе качественную локализацию на множестве языков.
lyti
26.02.2017 20:03Приятно увидеть Larian Studios на хабре :)
Я полюбил вашу компанию с чудеснейшей «Divine Divinity», и в последнее время не устаю радоваться выбранному направлению развития компании и достигнутым успехам, так держать.
P.S. как это ни странно, но ни квеста про виски, ни возможности сиграть в покер я не помню :(
RavenStark
26.02.2017 20:03За Divinity II огромное вам спасибо. Очень жаль, что нет продолжения в том же стиле, с удовольствием играл бы за Рыцаря-дракона и/или за Дивайна в дальнейшей войне за судьбу Ривеллона.
dendron
27.02.2017 11:25Если бы была возможность спросить у автора оригинала, я бы хотел узнать почему под конец Original Sin EE начинает так сильно лагать? При этом это не связано с настройками графики. Такое ощущение что в игре по ходу продвижения что-то накапливается, и видимо какой-то (бывшим дешёвым) цикл вырастает до непомерного числа итераций.
Ещё после каких-то патчей начало чудить переключение режимов — при переключении из fullscreen (или может fullscreen window, не помню) через Alt+Tab и обратно картинка не растягивается на весь экран, а рисуется в области экрана поверх рабочего стола. При этом разрешение fullscreen выставлено меньше разрешения рабочего стола (да, такое всё ещё бывает). Вы уж проверьте там работу с DXGI. Сам не понаслышке знаю о сложностях поддержки "зоопарка" железа на PC, с разными комбинациями разрешений и мониторов.
А так — огромное спасибо за замечательную, уникальную игру и успехов со второй частью!
Seter17
27.02.2017 12:02+2Вот ответ от автора оригинала (если будет нужно я переведу):
«Some bugs only show up if you play the game extensively for 50+ hours. During development, when you test your features, you never really play the game for more than an hour, often using many shortcuts (it's why games have cheat codes, they're originally implemented as tools for testing for developers) and later when testers play the game, they rarely get 50+ hour playthroughs before a new version arrives that has them start over.
We do run stress tests and have automated tests that run for weeks, but they don't catch all bugs.
One of the bugs we noted after release was that we had problems with items generated from traders being bought and sold and stored forever so you could buy them back later. You trade 10 times, no problem; you do it 100+ times, and you're starting to feel a drag. And there's other similar systems that accrue over time from playing the game extensively.
We plug these holes with patches when we can and we learn a lot from them.
Each game we release teaches us a lot and we use that experience when make the next game.»dendron
27.02.2017 22:19Вау, большое спасибо! Действительно, отшлифовать столь обширную и наполненную деталями игру — дело очень сложное. Респект!
Эх, с удовольствием бы послушал все истории из мира разработки, уверен у вас скопилось много и забавного, и поучительного. Пожалуйста, продолжайте писать!
DoNotPanic
04.03.2017 12:55Большое спасибо за пост!
В своё время весьма понравилась динамичная боевая система в Divinity II, было интересно почитать историю человека, который за неё отвечал.
acupofspirt
Большой поклонник ваших игр, здорово что у вас появился блог на хабре — всегда было интересно почитать про их создание. Пишите ещё!