Как Емеля на Ludum Dare ходил
О феномене Ludum Dare
уже есть немало материалов, статей и обсуждений. Например, тут, вот тут или тут, но всё же ниже будет небольшая вводная, минимальный контекст.
Ludum Dare
— это соревнование по ускоренной разработке компьютерных игр. Основано парнем по имени Geoff Howland
и впервые было проведено в апреле 2002. Всего за пару дней вы окунаетесь в безумное приключение с неожиданным финалом. В начале у вас есть только тема (которая выбирается в канун события посредством нескольких раундов голосования из формируемого сообществом пула тем), и что у вас получится в конце — невозможно предугадать и в этом заключается интрига, азарт и одна из вещей, что заставляет людей вновь и вновь жертвовать себя на пару дней этому событию. Кстати, о жертвах. Тема минувшего, 43-го Ludum Dare
была — «Sacrifices Must Be Made». И уж тут полёт фантазии трактовать эту формулировку просто неограничен.
Сжато изложу основные правила (Compo
-режим):
- Вы должны работать один (
самостоятельно
). - Весь игровой код и контент должны быть созданы в течение
48
часов. - Игры должны быть основаны на теме.
- Разрешены все публично доступные библиотеки и middleware.
- Разрешены все утилиты для создания контента и утилиты для разработчиков (3dsmax, Photoshop, Flash, и т. д.).
- К игре должен быть приложен
исходный код
.
Вообще, есть официальный сайт, куда вы подаете заявку на участие и загружаете все материалы по игре, голосуете, играете в игры других участников, вообщем, получаете тот самый фан и ощущение всеобщего праздника.
В данной статье я поделюсь опытом своего участия и личным восприятием. Однако, я не буду рассказывать подробно о своем проекте, технологической стороне вопроса или каких-то трудностях участия во всеобщем соревновании на официальном сайте. Нет. Я хотел бы уделить внимание побочному аспекту мероприятия — оффлайн участие в офисе с живыми людьми, работающими рядом друг с другом в одном пространстве. Это то, что впечатлило меня и доставило мне кайф больше всего!
В нашей необъятной есть города с уже устоявшейся тусовкой, где регулярно в офисах ИТ-компаний проводится двухдневный марафон геймдева. Например, в Омске очень сильное движение и уровень организации и качество проектов вызывают уважение.
В Новосибирске в Академгородке тоже проводят Ludum Dare.
В Санкт-Петербурге эта культура также развивается и идёт в массы благодаря нескольким очень славным и очень инициативным ребятам.
В качестве участника я учавствую в Ludum Dare во второй раз, до этого посещал Ludum только во второй день, пробовал проекты на компьютерах команд на ярмарке игр. И во второй раз я вкусил все прелести и хлебнул все горести и должен заявить — я нисколько не жалею о потраченном времени.
Я просто постарался ощущать все, что я делаю и что происходит вокруг, в то же время пребывая конечно в нескончаемом потоке, под давлением всех дедлайнов, рисков и ожиданий. Да, да! Именно здесь почти каждый впадает в такой качественный поток, что любая картинка с котиком или NSFW
-гифка бессильна оторвать ваш разум от мыслительной деятельности. Вы на 99% фокусируетесь на проекте — getting shit done, так сказать.
Ты видишь здесь команды из нескольких человек, увлеченных одиночек, парочки закадычных друзей или просто парочки (муж и жена, парень с любимой девушкой). Все это очень интересно, очень захватывает, ты невольно с кем-то пересекаешься, иногда спрашиваешь, на какой технологии люди делают свой проект и завораживаешься возможностями движка или тем, как виртуозно этот парень за соседним столом владеет своими любимыми инструментами, своим мозгом и своими скиллами написания игр, создания уровней и текстур.
Итак, пробежимся по тем граблям, которые собрал я, учавствуя в Ludum Dare свой второй раз.
- Не проделал должной работы по продумыванию прототипа, игровой механики и цепляющих фишек, делающих вызов игроку, удерживающих его в моей игре.
- Не накидал плана дедлайнов с ключевыми отметками (этапами, если хотите) того, что уже должно быть у меня в репозитории.
Чтобы немного оправдать себя, скажу, я конечно же вел на бумажке небольшие TODO-листы, где писал, что вот сейчас я сделаю А, Б и В. И брался за это, методично выполняя и зачеркивая пункт за пунктом. Но все это были лишь те самые промежуточные фазы, не связанные между собой единой целью и не вписанные в какие-то временные сроки. Я держал некое подобие плана в голове, но конечно же не был сильно на нём сконцентрирован, отвлекался на что-то, увлекался на починку каких-то мелочей, забывая о глобальной картине и цели — дать игрокам итересную игру. - Плохо знал свои инструменты.
Выбранными технологиями были: Love2d, язык Lua и какие-то графические редакторы под Linux. Конечно же, я изучал движок, штудировал короткие уроки по Lua. И до конкурса пытался написать игру. Однако, ни одной целой игры сделать я не успел, я покрыл мало тем разработки игр — основные техники, приёмы, паттерны, гейм-дизайнерские фишки. Ну и конечно, был плохо осведомлен и слабо ориентировался в экосистеме выбранного движка, где уже есть ворох хороших библиотек и различных плагинов под все типовые нужды видеоигр.
1876
. Столько строк кода суммарно составил мой проект к концу второго дня. Я уверен, код мог бы быть компактнее, лаконичнее и проще, если бы под все подсистемы игры я подобрал известные и понятные мне библиотеки и решения и тогда, моя скорость была бы на порядки выше, а качество — лучше.
В итоге, я потратил уйму времени, кодируя собственный велосипед для системы тайлов, определения наложения и пересечения тайлов, отрисовки этих тайлов, «умной» системы drag-n-drop-а etc. Возможно, это нельзя отнести к ошибке, скорее к отсутствию большого опыта, я просто ещё не набил руку и не расширил свой кругозор в этой области в достаточной мере.
Реализация своей идеи и участие во всеобщем голосовании на сайте — это конечно ценный и крутой опыт. Но давайте попробуем сфокусироваться на офлайн-формате Ludum-а. Итак, ряд ключевых полезностей, которые я для себя отметил.
Вдохновение
В формате сходки ты общаешься с живыми людьми, видишь, как люди пишут код, дизайнят уровни, рисуют текстуры и сочиняют музыку. Я наблюдал художников и музыкантов, приносивших свою аппаратуру, какие-то немыслимые midi-пульты, и это очень круто. Я изредка подходил к людям и стараясь не отвлекать от процесса выяснял, на какой технологии люди делают игру или как именно они сделали какой-нибудь спецэффект или фишку.
(Одна из игр, занявших призовое место в офлайн-голосовании — Paw Of Black)
Такое событие даёт тебе силы и мотивацию — взять и засесть за свой текущий проект, взяться реализовывать будущие долгоиграющие проекты. Да просто выбивает всю лень и неуверенность. Ты впитываешь множество идей, удивляешься разным подходам и тому, как люди берутся за работу. В офисе, где побывал я, собрался народ довольно разных возрастов — студенты, школьники старших классов, взрослые мужики. Но возрастные различия тают во всеобщей эйфории и увлечённости конкурсом. Подведя итог, для меня в плане вдохновения это дало:
- мотивацию
- свежие идеи
- осознание, что всё это увлекает меня и я готов уделять время теме разработки игр — и как досугу и как развитию навыка написания видеоигр.
Один парниша юных лет просто сразил меня наповал своими навыками, талантом и вовлеченностью. Парень настолько виртуозно знал и владел своими любимыми инструментами, что при мне за полминуты накидал и показал на что способна применямая им платформа. К слову, он выбрал очень диковинную (для меня и я уверен, для многих не сильно причастных к game-dev сцене) платформу — PICO-8. Обязательно почитайте про этот феномен видеоигровых систем — это виртуальная игровая консоль. Всё так, нет официальных аппаратных продуктов такой системы (была одна лимитированная серия мини-компьютеров с установленным PICO-8, но кажется проект, канул в лету, сайт уже не работает). Только исполняющая программная среда, эмулирующая некую вымышленную консоль.Опыт острейшего дедлайна
В масштабах большого ИТ-проекта или одного спринта дейдлайны как правило редки и при хорошей организации процессов, грамотных лидах и менеджерах не бьют сильно по ЦНС разработчиков. Однако, здесь, вы так или иначе сжаты рамками жестких неумолимо приближающихся сроков. И вот это как раз тот самый шанс проявить свой талант планирования, учета рисков, расстановки приоритетов, усидчивости и стрессоустойчивости. За два дня (в Jam-режиме — за три) вам нужно довести свою идею до работающего и цепляющего игроков продукта с ключевой фишкой, темой, с некой графической составляющей, ясным управлением и с элементом вызова в конце концов! Иначе, в это будет просто неинтересно играть. А теперь попробуйте уместить все эти аспекты в двухдневный цикл. К концу Ludum Dare я ощущал некое подобие выгорания, когда уже не хотелось делать ничего, просто плыть по течению жизни и не прилагать лишних усилий.
Навык грамотного проектирования и написания прототипов
Что я усвоил твердо и железно для себя по истечении двух дней Ludum-а, так это следующее простое правило:
Упрощая — упрощай.
Нужно работать над максимально упрощенным и минималистичным проектом, имеющим только одну-две базовых идеи, которые вы придумали по теме
Ludum
-а. Это значит — минимальный набор функций, легкий для поддержки, тестирования, компонуемый если нужно в производные элементы, которые добавят разнообразия или улучшат вашу игру. Как раз накануне я читал статью о важности прототипирования в геймдеве, и она всплыла у меня в памяти, когда я уходил домой с мероприятия. Именно здесь нужно подобрать идеальный уровень абстракции и отрешения от деталей, ньюансов, ветвлений и сложных списков правил.
Ваша игра, произведённая за такой сжатый срок — суть ярчяйший пример MVP, прототипа до старта проекта, если хотите, технологической демки вашей идеи инвесторам. Можно наверное подобрать другие аналогии из смежных областей и сфер.
Если правда очень сильно ограничить себя по набору задуманного функционала и задать простоту работы и простоту взаимодействия всех функций игры — то будет очень много шансов успеть сделать игру со всеми составляющими описанными ранее — будет и фишка и уровни и графика и музыка и соревновательный элемент.
(Участники облепили ноутбук с запущенной игрой Jlim — игрой, запускаемой на той самой PICO-8)Ещё я очень четко подметил для себя, насколько этот двухдневный (для меня — двухдневный в силу Compo-режима) марафон является хорошей и наглядной иллюстрацией того, что происходит с кодовой базой проекта, если совершать грубые ошибки разработчика.
Когда вы закладываете ошибки еще на начальном этапе, проектируя плохо расширяемые, негибкие конструкции, криво применяете паттерны или выбираете совершенно неподходящий подход или паттерн, пренебрегаете хорошими читабельными именами функций, переменных и компонентов, выделяете неинтуитивные интерфейсы. К концу первого дня мой код сильно распух и уже превращался в безформенную кашу. Ответственность и абстракции протекали буквально из «класса» в «класс» и это конечно же порождало сложно отлаживаемые баги, замедляло разработку, тестирование и в итоге полностью сорвало все мои сроки и отбросило все мои планы по внедрению фишек в какое-то утопичное нереальное будущее.Навык выступления и презентации
При офлайн-формате вы обычно выходите всей командой (или лично вы, если вы учавствуете один) в центр помещения и анонсируете своей проект, еще до того, как он готов. Вы представляетесь, обрисовываете свою идею, ключевые фишки, сеттинг, Lore, если угодно, описываете технологии, которые планируете применять. Также вам нужно подготовить некую афишу (участники просто рисовали маркерами на больших листах А3 плакаты с произвольным дизайном по своему вкусу, подписывая название команды, название игры, любую другую информацию, которую команда посчитала ценной). Да, это всего несколько минут, да, вы не перед аудиторией в большом спикерском зале, но всё же — чем не возможность немного попрактиковаться в ораторстве, мастерстве продажи идеи, в конце концов просто не бояться публики и её пристального внимания и давления. Здесь все дружелюбны, все шутят и поддерживают друг друга, так что все происходит в мягкой и гладкой форме, и здесь только одни плюсы, никаких минусов.
Также, в моем случае, в конце, во время ярмарки игр, предстояло снова выйти на сцену и немного поиграть в свою игру (организаторы выводили картинку на проектор, звук на колонки), так сказать провести демо с комментариями, что за игра в итоге вышла, почему вы должны её попробовать, что вам удалось, чем вы особо гордитесь, где провалились, всё опять же, в вольной форме, на несколько минут. И это ещё один небольшой треннинг ваших спикерских навыков и навыков проведения демо.
Навыки лидерства и командной работы
В случае, если вы подались в заявку не один, а целой командой, у вас есть дополнительное время и дополнительные ресурсы, но и ворох новых интересных вопросов и проблем. Вам нужно параллелить работу, делегировать, придерживаться общей линии, дизайна, темы и общей планки качества игры, в конце концов. Это не так то просто. Короче говоря, на лицо имеем типичный проект по разработке, только очень креативный, по разработке игры.
За моё посещение Ludum-ов в режиме оффлайн мне несколько раз довелось наблюдать драму раскола в команде, конфликты, недопонимание участниками друг друга, процессов, и все это конечно же плохо сказывалось на конечно результате. Либо человек уходил в другую команду, так как чувствовал себя более нужным в другом месте, либо проект затормаживался или срывались задуманные сроки, и тогда команда жертвовала многими кусками задуманного.К минусам участия в таком мероприятии можно отнести:
- Очень сильный стресс и истощение. Эти два дня реально забирают у вас умственные, эмоциональные и нервные ресурсы. Поэтому рекомедуется завершить такой марафон прогулкой на свежем воздухе, хорошей порцией сна или какими-нибудь релаксирующими активностями, чтобы просто отвлечься от такого напряженного режима работы.
- Возможный конфликт с близкими и родными. Это конечно спорный пункт, но так или иначе, это время вы целиком жертвуете тусовке, и вам нужно хотя бы заранее обговорить свои планы с вашей второй половинкой. Если ваша второая половинка — человек понимающий, вам крупно и круто повезло. Смело идите писать крутую игру, а затем возвращайтесь в реальность.
Хотелось бы поблагодарить организаторов Питерского Ludum Dare (вы классные ребята, так держать!), компанию и их сотрудниц, выделивших офис для участия в мероприятии, организовавших весь процесс (обеспечение электричества, интернета, провизии на два дня, необходимой видео-аудиоаппаратуры, все вопросы логистики и организации, все было классно). Также выражаю благодарность создателям и ментейнерам движка Love2d, open-source сообществу этой экосистемы и своей жене.