Добрый день, дорогие читатели! С последней статьи прошел почти месяц. Как же быстро летит время! Но я без дела не сидел. Во-первых, продолжал ковырять язык Java, во-вторых, допиливал свою основную игру и, в-третьих, мы тут с художником решили поучаствовать в игровом джеме по разработке компьютерной игры за 72 часа. Об этом я как раз и хотел сегодня немножко рассказать. Поехали!
Что за джем и где проходил?
Поучаствовать мы решили в "Siberian Game Jam". Ссылка на их сайт:
Это массовое ежегодное мероприятие (вроде даже и по 2 раза в год проводится), которое проводится как в оффлайне (Новосибирск, Алматы, Екатеринбург), так и онлайн.
Этот джем, если не ошибаюсь, был юбилейным и на него приглашены знаковые люди из игровой индустрии, которые поиграют во все игры участников и оставят свой фидбек (будут записи стримов).
Для меня с художником, можно сказать, это вообще был первый опыт участия в джемах такого формата. Да и вообще в конкурсах по разработке игр мы с ним участвовали последний раз лет 10 назад, и то, там давался месяц на разработку, а не как тут - всего 72 часа!
Тема данного джема была - "Бытие второстепенного персонажа". Элемент - "Торт". Элемент не влияет на оценку игры, это скорее такая вещь для фана. Т.е. в игру нужно просто внедрить этот элемент - он может быть в качестве пасхалки, какого-то игрового объекта или просто изображения на экране. Мы этот элемент, кстати, тоже обыграли в своей игре.
Какую игру делали мы?
Изначально я вообще не планировал участвовать, ну точнее планировал, но только в качестве кодера в приглашенную команду. По работе у нас немного не задалось и я вышел из этой команды, потеряв где-то пол-дня. Ну и мы с художником решили, что все-таки поучаствуем в своем привычном составе - вдвоем. Т.е. на меня опять лег геймдизайн и код, на него - вся графическая часть игры.
Так как время уже поджимало, то я решил сделать игру про кузнеца, который помогает героям победить дракона. По жанру игра ближе к жанру "тайм-менеджмент". Чтобы прикрутить ко всему этому делу еще и элемент "торт", я придумал, что кузнец работает в свой день рождения. Да и мораль всей игры такова, чтобы дать игроку ощутить на своей шкуре, что значит быть обычным, второстепенным НПС, который днем и ночью, в будние и выходные и даже в свой день рождения не перестают работать на благо героев (это все будет в виде текста зафиксировано в игре). Игру решил называть "Blacksmith's Birthday", т.е. "День рождения кузнеца".
Придумав концепцию, я решил быстренько накидать на бумаге основные моменты игры. Сейчас вы увидите, как выглядит диздок для игры, разрабатываемой за 72 часа! )))
Весь процесс разработки я описывать не буду, скажу лишь то, что джем - это очень стрессовая штука! Из-за страха не успеть в срок, пришлось оптимизировать код на лету, многократно упрощать изначальную концепцию, выкидывая многие вещи из игры, и работать днем и ночью (порой разработке посвящал более 12 часов в день).
Вот несколько примеров. Изначально я дал задание художнику нарисовать главного героя в двух вариантах: "стоит" и "находится в прыжке". И эти два спрайта было решено нарисовать в двух видах каждый: вид спереди и сзади. Анимировать героя я изначально не планировал, так как точно не успели бы, а придумал такую вещь, что когда герой просто стоит (состояние idle), то он покачивается слегка со спрайтом стойки на месте, а когда герой бежит, то он меняет свой спрайт на вид в прыжке и начинает резко качаться из стороны в сторону и слегка подпрыгивать. По итогу было решено отказаться от спрайтов с видом сзади - т.е. герой бы у нас всегда бегал лицом в камеру, даже когда шел вверх. А еще чуть позже отказались и от спрайта героя в прыжке, т.е. персонаж у нас передвигался с изображением неподвижно стоящего на месте кузнеца. Но с помощью кода удалось придать герою жизни - он качался и подпрыгивал при движении и как по мне это смотрелось прикольно.
Что касается кода, то начал активно применять в разработке наследование для ускорения. В движке "Game Maker" - это отношения "родитель-ребенок". Причем для ускорения разработки у некоторых объектов была целая цепочка наследования одних объектов из других.
Выглядит эта "походка" как-то так:
Что по итогу получилось? Вполне законченная игра, у которой есть цель, есть условия для проигрыша, есть меню, встроенная помощь, книга чертежей для крафта. И, к слову сказать, мы успели закончить разработку за целых 8 часов до окончания джема! Это при том, что некоторые не уложились в срок и их игры все равно приняли через несколько часов, после завершения джема.
Вот несколько скриншотов из игры:
Поиграть самостоятельно вы можете по ссылке:
Буду рад комментариям на странице с игрой. ))
А вот по этой ссылке вы можете посмотреть все игры, которые участвовали в джеме:
Советы для участия в игровых джемах
Ну и я не я, если бы не делал выводы! )) И тем более, если бы не фиксировал их. Поделившись ими тут с вами, я как бы делаю заметку и для себя. Какие мысли и наблюдения родились у меня во время и после участия в джеме:
1) Не тратьте драгоценное время на планирование, написание диздоков, организацию команды и прочие моменты. Придумывайте концепцию, садитесь и сразу начинайте делать. Дорабатывать будете уже в процессе. Когда есть прототип на руках, легче вносить корректировки в игру, чем когда у вас прототип только лишь на бумаге.
2) Самый лучший вариант для экономии времени, когда кодер сам же является геймдизайнером. Это очень экономит время! Ему не нужно объяснять всей команде досконально как будет работать игра, о чем она и т.д. Он может сразу приступить к работе, а в моменты отдыха, делать задания для других участников команды (т.е. дать задания художнику для отрисовки артов, композитору/звуковику - написать музыку, сделать звуки для тех или иных моментов в игре и т.д.)
3) Итоговую игру заливайте на itch.io не в виде windows-версии (т.е. билд игры, который нужно скачать, распаковать архив и только потом поиграть), а в виде html5-версии (в нее можно играть прямо из браузера). Так в вашу игру поиграет охотнее большее кол-во народа.
4) Игра должна быть с максимально низким порогом входа. Игрок не должен разбираться, как в нее играть - все должно быть интуитивно понятно сразу с ходу.
5) Игра должна быть фановой, возможно с простой, но затягивающей механикой, т.е. она должна с ходу захватить внимание игрока - времени на раскачку нет, так как у игроков еще более 100 проектов, которые он должен посмотреть на джеме. Поэтому длинные тексты с вводной частью и прочее стоит сразу отсечь!
6) Один из работающих вариантов на джеме - это игра с повторяющимся циклом, где игрок умирает, после смерти чуть прокачивается и снова запускается игровой цикл, т.е. некая вариация рогалика. Я не настаиваю на этой схеме, но она вроде всегда хорошо показывает себя, тем более если основной игровой цикл с интересной и затягивающей механикой.
7) По возможности отбросьте идею уровневой системы игры. Вряд ли у вас будет время делать несколько хорошо проработанных уровней. Лучше сделать игру на одной игровой сцене, ну или пару-тройку сцен, между которыми герой может переходить в процессе.
8) После завершения джема активно играйте в игры других участников, оценивайте их и оставляйте комментарии - это даст вам больше шансов, что и в вашу игру сыграют.
Все эти советы носят лишь рекомендательный характер и построены исключительно на моем личном опыте участия в джеме.
Спасибо, что дочитали статью до конца! Если статья оказалась вам интересной и полезной, то ставьте лайки, делитесь статьей с другими, задавайте вопросы, оставляйте комментарии, пожелания и т.д. Времени на написание статьей все меньше, но стараюсь не забрасывать блог и продолжаю писать, как появляется свободный час. Участие в джеме - это отличный повод проверить свои навыки и возможности в стрессовой ситуации в условиях сжатых сроков. Так что всем советую попробовать хоть раз! И помните, главное не победа, главное - участие!