GGJ-2019 — это проходящий ежегодно, в последние выходные января, глобальный гейм джем. Отличается от других широкой поддержкой (спонсоры, все дела), большим количеством участников, а также тем, что он проходит исключительно в оффлайне. Далее весь опыт, полученный мной на мероприятии, будет описан применительно к площадке ЮУрГУ (Челябинск). Представленные в статье выводы не претендуют на универсальность, но, надеюсь, вы найдете их полезными.
Спойлер алерт: в статье есть список игр-финалистов с мероприятия, некоторые из них вполне играбельны.
![](https://habrastorage.org/r/w780q1/webt/74/hg/ra/74hgraytkaofocmcnbwrsuitqio.jpeg)
Поскольку я опоздал (все из-за пробок на междугородней трассе), то так получилось, что к моему прибытию команды уже сформировались. Вывод первый: не опаздывать на формирование команд. Вопрос, заданный в чат мероприятия, выявил, что JS/PHP/Python программист в команду никому не нужен. С трудом нашел большую лекциионную аудиторию, указанную в программе мероприятия, только для того, чтобы обнаружить, что аудитория наглухо закрыта. Выяснил номера аудиторий через чат, куда разошлись участники, и понял, что есть существенная проблема: как найти их, не смогли толком объяснить даже «добрые» вахтеры. Заблудившись где-то посередине пути, бесцельно бродил где-то в одном из корпусов ЮУрГУ, думая о всем бренном, когда меня увидел кто-то из преподавателей, и спросил, не может ли он мне чем-то помочь. Благодарен этому человеку, что он смог меня проводить до нужного места. Кстати говоря, он был приятно удивлен, что на мероприятие в ЮУрГУ приехали даже иногородние. Позже, походив по аудиториям (тем двум, что располагались на первом этаже, идти на восьмой этаж, вероятно в другой корпус, я не рискнул из-за боязни потеряться еще раз), выяснил, что большинство команд собираются использовать Unity, две команды Unreal Engine, еще одна команда выбрала Construct. Отсюда я сделал второй вывод — ехать программистом на данный геймджем стоит, если заранее потратить время на знакомство с Unity.
У меня был запасной план: если не найду команду, то буду работать самостоятельно. Более того, у меня есть одна игра, которую давно мечтал существенно расширить в соседний жанр, и тут выпал отличный шанс, благо, тема мероприятия, «что значит для вас дом», отлично это позволяла. Третий вывод: иметь запасной план иногда бывает полезно.
Прикинув в уме свои шансы на то, чтобы сделать симпатичную и/или интересную игру, решено было задействовать диверсификаторы, чтобы скомпенсировать недостаток графического дизайна и гейм-дизайна, которыми, к сожалению, мои игры никогда похвастать особо не могли.
Что же такое эти диверсификаторы?
Диверсификаторы* — это отличный способ добавить немного веселья или бросить себе вызов в выходные дни джема. Иногда они могут быть очень полезны для того, чтобы сузить или уточнить ваши идеи. Это абсолютно необязательные ограничения, которые вы можете добавить в свою игру для GGJ19 наряду с основной темой темы. Это может помочь вашей игре выделиться из толпы, и вы можете выбрать до 4 диверсификаторов, когда отправляете игру!
Из этого описания видно, что это вроде ачивок — только не для игроков, а для разработчиков игр. Вот список диверсификаторов, которые я выбрал:
Эфемерный — Сделайте игру, в которую каждый игрок может поиграть только один раз.
Супер Секретный Тайник — Добавьте скрытую комнату в вашей игре.
На веб-странице — Ваш игровой процесс скрыт в, казалось бы, нормальной веб-странице.
Увеличиваться с песней — Ваша игра должна длиться ровно столько, сколько длиться музыкальная дорожка.
или как делать — или как не делать, учитывая, что место я не занял)
Сказано-сделано, и вот я уже начал делать свой проект в традиционном для меня стэке: HTML5.Canvas, vanilla Javascript. Сначала отрисовывался ландшафт, потом объекты, потом туман войны. Если первые два — это предзаполненные двумерные массивы (увы, это получился не совсем рогалик), то туман войны, хоть и является массивом, вычисляется каждый раз (оно и логично), исходя из обновленного положения главного героя. Все это было сделано в первый день, кроме тумана войны — он появился в первую рабочую ночь.
Утром второго дня взял бумагу и написал расписание:
9-11 работа с графикой и диалогами
11-12 работа с музыкой
12-13 работа с эндгеймом.
Это позволило сдать работу практически вовремя. Еще один вывод: сделайте на второй день расписание и следуйте ему, фиксируйте потраченное время и отказывайтесь от лишних деталей, если не успеваете. Моей главной ошибкой было, как мне кажется, то, что я поставил на диверсифекатор «Эфемерность», который принес скорее больше головной боли — и мне и игрокам — чем пользы. Лучше бы я сделал плохой генератор карты за те же часы, что я потратил на него. Также я реализовал «Супер секретный тайник» и «Увеличиваться с песней» во второй день.
Категории наград, как оказалось, не имеют ничего общего с диверсификаторами, хотя было заметно, что некоторые команды пытались их более или менее органично вписать в свои игры. Впрочем, это был еще один опыт, который дорого мне стоил. Несмотря на то, что ветеран данного мероприятия Никита Попов (он участвовал в мероприятии уже четвертый раз!) сообщил мне об этом еще в середине первого дня, я не успел перестроиться сам и не успел перестроить свою стратегию. Кстати, сам он на второй день полностью отказался от идеи, которую делал в в первый день, и принес россыпь электроники, на которой и забабахал свою портативную консольку с одной игрой из двух частей.
Кратко опишу, кто с чем занял призовые места в номинациях.
Лучшая реализация:
Лучшая игра по мнению СКБ Контур — «9 жизней»
Лучшая игра по мнению Napoleon IT
Лучшая игра по мнению ICVR
Лучшая игра по мнению Caravan Games
Лучший художник по мнению ICVR
Лучшая игра по мнению TapClap 1 степени и лучший приз за идею
Лучшая игра по мнению TapClap 2 степени
Лучшая игра по мнению TapClap 2 степени
Наконец, лучшая игра по мнению хозяина мероприятия, ЮУрГУ — «Вписка Tycoon»
Интересное наблюдение: во время награждений судьи не стеснялись называть вслух свои слабости и предпочтения. Среди названных были: игры на космическую тематику (а-ля Астероидс), игры-эксельки (была номинирована игра про цветочек, сделанная командой сотрудников университета, где нужно было его поливать, укрывать от холода и так далее), игры с лучшей графикой, и так далее… На следующий год пообещали награду за лучший код или что-то в этом духе. После окончания церемонии на всякий случай спросил, могут ли ребята, прикрутившие Machine Learning к игре про удары ракеткой на GGJ-2019, рассчитывать на взятие приза в этой номинации. Ответ был неутешителен: несмотря на хайповую тему, Machine Learning тут им не помощник. Так что те, кто во время оглашения результатов судейства поработал в блокноте, могут рассчитывать на следующий год на настоящие бонусные баллы от судей.
Отсюда последний вывод: здесь никакие диверсификаторы не помогут слабой игре на судействе, но знание «слабых» мест жюри может сыграть положительную роль.
Надеюсь, мой опыт был зафиксирован не зря. Ну и надеюсь, что вы тоже позалипаете во «Вписка Tycoon», как это произошло со мною и десятками других ребят на мероприятии.
Приятной пятницы!
Спойлер алерт: в статье есть список игр-финалистов с мероприятия, некоторые из них вполне играбельны.
![](https://habrastorage.org/webt/74/hg/ra/74hgraytkaofocmcnbwrsuitqio.jpeg)
Формирование команд
Поскольку я опоздал (все из-за пробок на междугородней трассе), то так получилось, что к моему прибытию команды уже сформировались. Вывод первый: не опаздывать на формирование команд. Вопрос, заданный в чат мероприятия, выявил, что JS/PHP/Python программист в команду никому не нужен. С трудом нашел большую лекциионную аудиторию, указанную в программе мероприятия, только для того, чтобы обнаружить, что аудитория наглухо закрыта. Выяснил номера аудиторий через чат, куда разошлись участники, и понял, что есть существенная проблема: как найти их, не смогли толком объяснить даже «добрые» вахтеры. Заблудившись где-то посередине пути, бесцельно бродил где-то в одном из корпусов ЮУрГУ, думая о всем бренном, когда меня увидел кто-то из преподавателей, и спросил, не может ли он мне чем-то помочь. Благодарен этому человеку, что он смог меня проводить до нужного места. Кстати говоря, он был приятно удивлен, что на мероприятие в ЮУрГУ приехали даже иногородние. Позже, походив по аудиториям (тем двум, что располагались на первом этаже, идти на восьмой этаж, вероятно в другой корпус, я не рискнул из-за боязни потеряться еще раз), выяснил, что большинство команд собираются использовать Unity, две команды Unreal Engine, еще одна команда выбрала Construct. Отсюда я сделал второй вывод — ехать программистом на данный геймджем стоит, если заранее потратить время на знакомство с Unity.
У меня был запасной план: если не найду команду, то буду работать самостоятельно. Более того, у меня есть одна игра, которую давно мечтал существенно расширить в соседний жанр, и тут выпал отличный шанс, благо, тема мероприятия, «что значит для вас дом», отлично это позволяла. Третий вывод: иметь запасной план иногда бывает полезно.
Диверсификаторы
Прикинув в уме свои шансы на то, чтобы сделать симпатичную и/или интересную игру, решено было задействовать диверсификаторы, чтобы скомпенсировать недостаток графического дизайна и гейм-дизайна, которыми, к сожалению, мои игры никогда похвастать особо не могли.
Что же такое эти диверсификаторы?
Диверсификаторы* — это отличный способ добавить немного веселья или бросить себе вызов в выходные дни джема. Иногда они могут быть очень полезны для того, чтобы сузить или уточнить ваши идеи. Это абсолютно необязательные ограничения, которые вы можете добавить в свою игру для GGJ19 наряду с основной темой темы. Это может помочь вашей игре выделиться из толпы, и вы можете выбрать до 4 диверсификаторов, когда отправляете игру!
Из этого описания видно, что это вроде ачивок — только не для игроков, а для разработчиков игр. Вот список диверсификаторов, которые я выбрал:
Эфемерный — Сделайте игру, в которую каждый игрок может поиграть только один раз.
Супер Секретный Тайник — Добавьте скрытую комнату в вашей игре.
На веб-странице — Ваш игровой процесс скрыт в, казалось бы, нормальной веб-странице.
Увеличиваться с песней — Ваша игра должна длиться ровно столько, сколько длиться музыкальная дорожка.
Про игру
или как делать — или как не делать, учитывая, что место я не занял)
Сказано-сделано, и вот я уже начал делать свой проект в традиционном для меня стэке: HTML5.Canvas, vanilla Javascript. Сначала отрисовывался ландшафт, потом объекты, потом туман войны. Если первые два — это предзаполненные двумерные массивы (увы, это получился не совсем рогалик), то туман войны, хоть и является массивом, вычисляется каждый раз (оно и логично), исходя из обновленного положения главного героя. Все это было сделано в первый день, кроме тумана войны — он появился в первую рабочую ночь.
Про тайм-менеджмент, фичевание
Утром второго дня взял бумагу и написал расписание:
9-11 работа с графикой и диалогами
11-12 работа с музыкой
12-13 работа с эндгеймом.
Это позволило сдать работу практически вовремя. Еще один вывод: сделайте на второй день расписание и следуйте ему, фиксируйте потраченное время и отказывайтесь от лишних деталей, если не успеваете. Моей главной ошибкой было, как мне кажется, то, что я поставил на диверсифекатор «Эфемерность», который принес скорее больше головной боли — и мне и игрокам — чем пользы. Лучше бы я сделал плохой генератор карты за те же часы, что я потратил на него. Также я реализовал «Супер секретный тайник» и «Увеличиваться с песней» во второй день.
Tasogare doki
![](https://habrastorage.org/r/w1560/webt/zi/92/ch/zi92chdedamafevoplll7yjjm_i.png)
Вы играете за маленькую девочку, которая потерялась. Вы должны найти путь домой, где мама и папа ждут вас. Избегайте монстров или они вас съедят. Они видят 1 квадрат и по диагонали и по прямым. Найдите дом, прежде чем музыка закончится, или монстры съедят вас!
Играть онлайн
Исходники
страница игры на Джеме
![](https://habrastorage.org/webt/zi/92/ch/zi92chdedamafevoplll7yjjm_i.png)
Вы играете за маленькую девочку, которая потерялась. Вы должны найти путь домой, где мама и папа ждут вас. Избегайте монстров или они вас съедят. Они видят 1 квадрат и по диагонали и по прямым. Найдите дом, прежде чем музыка закончится, или монстры съедят вас!
Играть онлайн
Исходники
страница игры на Джеме
Про судейство
Категории наград, как оказалось, не имеют ничего общего с диверсификаторами, хотя было заметно, что некоторые команды пытались их более или менее органично вписать в свои игры. Впрочем, это был еще один опыт, который дорого мне стоил. Несмотря на то, что ветеран данного мероприятия Никита Попов (он участвовал в мероприятии уже четвертый раз!) сообщил мне об этом еще в середине первого дня, я не успел перестроиться сам и не успел перестроить свою стратегию. Кстати, сам он на второй день полностью отказался от идеи, которую делал в в первый день, и принес россыпь электроники, на которой и забабахал свою портативную консольку с одной игрой из двух частей.
Кратко опишу, кто с чем занял призовые места в номинациях.
Лучшая реализация:
Defender
Лучшая игра по мнению СКБ Контур — «9 жизней»
9 жизней
![](https://habrastorage.org/r/w780q1/webt/bd/k0/wk/bdk0wk66c_5nvxxur7bsms9mgyq.jpeg)
Девять жизней. Для каждого дом это особенное место. Даже если дом — это картонная коробка, в которой вы живете с девятью котятами. Игрок должен охранять свой дом — картонную крепость с девятью котятами — от напастей. Напасти включают себя церберов, бешенных коров.
Игра
Исходники
страница игры на Джеме
![](https://habrastorage.org/webt/bd/k0/wk/bdk0wk66c_5nvxxur7bsms9mgyq.jpeg)
Девять жизней. Для каждого дом это особенное место. Даже если дом — это картонная коробка, в которой вы живете с девятью котятами. Игрок должен охранять свой дом — картонную крепость с девятью котятами — от напастей. Напасти включают себя церберов, бешенных коров.
Игра
Исходники
страница игры на Джеме
Лучшая игра по мнению Napoleon IT
Defenders of Home World
![](https://habrastorage.org/r/w1560/webt/8e/ts/jv/8etsjvxi3kchworw4sylusx4j8e.png)
RTS с элементами Tower Defence. На землю пришли захватчики. Люди пытаются сдержать их, а отважный командир пытается помочь флоту, снабжая его ресурсами. Но и ему нельзя забывать о своей собственной безопасности. Спасти себя и спасти землю — вот его главная задача.
Игра
Игра
страница игры на Джеме
![](https://habrastorage.org/webt/8e/ts/jv/8etsjvxi3kchworw4sylusx4j8e.png)
RTS с элементами Tower Defence. На землю пришли захватчики. Люди пытаются сдержать их, а отважный командир пытается помочь флоту, снабжая его ресурсами. Но и ему нельзя забывать о своей собственной безопасности. Спасти себя и спасти землю — вот его главная задача.
Игра
Игра
страница игры на Джеме
Лучшая игра по мнению ICVR
Битва Островов
![](https://habrastorage.org/r/w1560/webt/u3/rp/pk/u3rppk4mihwt_vzua1djjapxxj8.png)
Мой дом — моя крепость! Пошаговая игра на двоих. Управление ядром W-A-S-D Между двумя соседствующими островами разразилась война, цель защитить свой дом.
Игра
Исходники
страница игры на Джеме
![](https://habrastorage.org/webt/u3/rp/pk/u3rppk4mihwt_vzua1djjapxxj8.png)
Мой дом — моя крепость! Пошаговая игра на двоих. Управление ядром W-A-S-D Между двумя соседствующими островами разразилась война, цель защитить свой дом.
Игра
Исходники
страница игры на Джеме
Лучшая игра по мнению Caravan Games
Я у мамы хлебушек
![](https://habrastorage.org/r/w1560/webt/b3/ia/zx/b3iazxkkmmwxvgg0zk4cqqxp04q.png)
Игра для тех, кто не любит крошить батон. Когда твоя мать Круассан, а батя — Бородинский, ты — Хлебушек. Хлебушек, который хочет стать сэндвичем. Внимание! Имеются противопоказания. Перед употреблением рекомендуется проконсультироваться с пекарем :)
Игра
Исходники
страница игры на Джеме
![](https://habrastorage.org/webt/b3/ia/zx/b3iazxkkmmwxvgg0zk4cqqxp04q.png)
Игра для тех, кто не любит крошить батон. Когда твоя мать Круассан, а батя — Бородинский, ты — Хлебушек. Хлебушек, который хочет стать сэндвичем. Внимание! Имеются противопоказания. Перед употреблением рекомендуется проконсультироваться с пекарем :)
Игра
Исходники
страница игры на Джеме
Лучший художник по мнению ICVR
Red Pand Affection
![](https://habrastorage.org/r/w1560/webt/s0/tl/zz/s0tlzz5rnszpxziy3kecn5nju_e.png)
Помогите Красной Панде и его семье выжить в этом жестоком мире! Исследуйте лес, находите ресурсы и возвращайтесь домой до того, как сядет батарейка в вашем фонарике.
Исходники
страница игры на Джеме
![](https://habrastorage.org/webt/s0/tl/zz/s0tlzz5rnszpxziy3kecn5nju_e.png)
Помогите Красной Панде и его семье выжить в этом жестоком мире! Исследуйте лес, находите ресурсы и возвращайтесь домой до того, как сядет батарейка в вашем фонарике.
Исходники
страница игры на Джеме
Лучшая игра по мнению TapClap 1 степени и лучший приз за идею
Back to the Home
![](https://habrastorage.org/r/w780q1/webt/pu/tf/q5/putfq5ue-vi3ntkuwd-y3ef24bw.jpeg)
Счастье в ваших руках! Будьте храбрыми, сильными и добрыми. Помогите этим людям вернуться домой!
Игра
Исходники
страница игры на Джеме
![](https://habrastorage.org/webt/pu/tf/q5/putfq5ue-vi3ntkuwd-y3ef24bw.jpeg)
Счастье в ваших руках! Будьте храбрыми, сильными и добрыми. Помогите этим людям вернуться домой!
Игра
Исходники
страница игры на Джеме
Лучшая игра по мнению TapClap 2 степени
Дом на колесах
Лучшая игра по мнению TapClap 2 степени
Find Home
![](https://habrastorage.org/r/w1560/webt/ot/4c/8w/ot4c8wdgzdr3lxf0om8j44btfhm.png)
Игра про краба, который ищет свой дом — свою раковину. Платформер с тремя уровнями и простым и приятным геймплеем.
Игра
Исходники
страница игры на Джеме
![](https://habrastorage.org/webt/ot/4c/8w/ot4c8wdgzdr3lxf0om8j44btfhm.png)
Игра про краба, который ищет свой дом — свою раковину. Платформер с тремя уровнями и простым и приятным геймплеем.
Игра
Исходники
страница игры на Джеме
Наконец, лучшая игра по мнению хозяина мероприятия, ЮУрГУ — «Вписка Tycoon»
Вписка Tycoon
![](https://habrastorage.org/r/w780q1/webt/wq/xc/qp/wqxcqpqk7j620zr9t3zhkghsbg0.jpeg)
Ваш дом свободен от родителей! Не упустите свой шанс, позовите всех друзей на самую лучшую вечеринку! Но будьте осторожны, потому что ваши соседи могут все испортить, если их терпение закончится! А еще не забывайте чинить все в доме за гостями (и не забудьте про выкинутого кота и закрытых гостей на балконе!) — иначе после вечеринки родители вас накажут
Игра
страницы игры на Джеме
![](https://habrastorage.org/webt/wq/xc/qp/wqxcqpqk7j620zr9t3zhkghsbg0.jpeg)
Ваш дом свободен от родителей! Не упустите свой шанс, позовите всех друзей на самую лучшую вечеринку! Но будьте осторожны, потому что ваши соседи могут все испортить, если их терпение закончится! А еще не забывайте чинить все в доме за гостями (и не забудьте про выкинутого кота и закрытых гостей на балконе!) — иначе после вечеринки родители вас накажут
Игра
страницы игры на Джеме
Интересное наблюдение: во время награждений судьи не стеснялись называть вслух свои слабости и предпочтения. Среди названных были: игры на космическую тематику (а-ля Астероидс), игры-эксельки (была номинирована игра про цветочек, сделанная командой сотрудников университета, где нужно было его поливать, укрывать от холода и так далее), игры с лучшей графикой, и так далее… На следующий год пообещали награду за лучший код или что-то в этом духе. После окончания церемонии на всякий случай спросил, могут ли ребята, прикрутившие Machine Learning к игре про удары ракеткой на GGJ-2019, рассчитывать на взятие приза в этой номинации. Ответ был неутешителен: несмотря на хайповую тему, Machine Learning тут им не помощник. Так что те, кто во время оглашения результатов судейства поработал в блокноте, могут рассчитывать на следующий год на настоящие бонусные баллы от судей.
Отсюда последний вывод: здесь никакие диверсификаторы не помогут слабой игре на судействе, но знание «слабых» мест жюри может сыграть положительную роль.
Надеюсь, мой опыт был зафиксирован не зря. Ну и надеюсь, что вы тоже позалипаете во «Вписка Tycoon», как это произошло со мною и десятками других ребят на мероприятии.
Приятной пятницы!