13 декабря 2021 13.12.21 2 1178

Новогодняя открытка: джем и релиз за 6 недель

+12

Всем привет! Хочу рассказать, о небольшой новогодней игре, которую мы начали делать на конкурс разработки игр Gaminator 22 всего 6 недель назад (1 ноября), а сейчас она доступна в Google Play и не только.

Немного о конкурсе

Gaminator 22 - это конкурс по разработке игр, который проводится на сайте Gamin.me.

Тема конкурса была "Важные даты" и продлился он 7 недель:

  • 1 неделя - анонс с традиционным отгадыванием темы. Организатор создаёт картинку и выкладывает её, в ней загадана тема конкурса. Все желающие могут поучаствовать в её попытках понять, что же задумал организатор. Это просто развлечение, которое не несёт никаких привилегий или наоборот.
  • 3 недели - творческий этап. Это время разработки, реализации своих идей.
  • 1 неделя - продление творческого этапа. Да, да, такое бывает. Организатор старается поддерживать дружескую атмосферу и если участники просят о продлении, то проводит голосование. Плохо это или хорошо каждый решает для себя сам (в этот раз были споры и много обсуждений), но это факт.
  • 1 день - багодень. Игру обязательно нужно выложить до окончания творческого этапа. Но есть ещё 1 день для исправления ошибок. Ничего добавлять в игру нельзя, только править ошибки (изменения описать в файле readme.txt, который должен идти с игрой). Разумеется, всё должно быть честно и в любом случае обе версии игры (до багодня и после) попадут в общий архив с играми.
  • 2 недели - время играть, комментировать, смотреть стримы и голосовать.

Состав команды

В команде нас было двое: Rosko Vair и Я. Rosko занимался музыкой и локализацией на англ. язык, я занимался всем остальным. Про наше с ним знакомство и взаимодействие я уже писал в другой статьей.

Идея новогодней открытки

Что появилось раньше: яйцо или курица? А что появляется раньше у разработчика в голове: механика или сюжет, графический стиль или музыка, желание победить или желание сделать?

В каждой ситуации по-разному. Меня лично, давно гложет желание сделать игру в рисованном стиле. С тех пор, как я посмотрел фильм о мальчике, который выжил.

Со мной даже случился забавный случай около 5 лет назад. Под Новый год мы с супругой узнали, что её племянница хочет себе кигуруми. Эта такой покрывающий всё тело (как комбинезон) костюм, чаще используется как пижама. Мы нашли подходящий и заказали. Когда покупка приехала, мы открыли упаковку и обнаружили там конверт.

Конверт
Конверт

Разумеется, там был листок с благодарностью от магазина. Но это заставило нас удивиться и улыбнуться.

Так вот, помните дневник Тома Реддла и Карту Мародёров?

И я помню. Мне очень понравились эффекты чернил на бумаге, но я никак не мог придумать идею игры. Скоро Новый год, а у меня фильмы о Гарри Поттере чётко ассоциируются с этим праздником. Это меня и подтолкнуло к использованию данного стиля.

Зарождение идеи

Как только стартовал творческий этап конкурса (1 ноября), я решил что буду делать новогоднюю игру, ну вот хочется и всё. В голове сразу появился образ нарисованной ёлки и игрушек. Дальше развивалась идея в направлении: игрушка должна попасть на ёлку. А как попасть? Вот тут игрок и должен ей помочь. Именно это слово мелькало в мыслях — «помочь». И тут вспомнилась игра Лемминги.

Разумеется, идея игры была переработана. Сначала, я решил, что персонаж у меня будет один. Чтобы каждая игрушка олицетворяла один уровень. И в завершении, мы нарядили одну ёлку.

Далее, управление персонажем. Лемминги двигаются в одном направлении, пока не упрутся в стену и разворачиваются в обратную сторону. Мне так не хотелось: во-первых, потому что это уже совсем похоже было на игру про зеленоволосых; во-вторых, подобных игр много, это уже раннер напоминает. Поэтому я решил заманивать персонажа куда-либо. Отсюда появилась снежинка и притягивание к ней. Это позволяло делать уровни разными по структуре.

А что же с ёлкой? Да, игрушкам нужно до неё добраться, а, значит, они «разбросаны», где-то рядом. А почему бы игроку самому не наряжать ёлку? Ведь это просто механика Drag-Drop, которая реализуется за секунды (в движке есть готовое поведение). Получается некий элемент творчества. А что с ним хочется сделать? Показать! Значит, надо дать возможность сохранить результат. Сохранить картинку с наряженной новогодней ёлкой, и это же как «открытка»! Такими путями шли мои мысли и сформировали данную идею.

Ход работ

Первая неделя разработки: подбираю стиль, шрифты, рисую немного, работаю над механикой управления. Прогресс идёт спокойно и всё получается, это не может не радовать. По окочанию этой недели чётко ставлю себе цель, что хочу довести проект до финального вида, чтобы прям сделать полноценный релиз. А почему бы не выложить под самый Новый год такую игру?

Вторая неделя уходит на дальнейшую работу с анимацией, эффектами, багами и проектирование уровней. План минимум - 5-7 уровней (для конкурса), максимум - 17-18 (для релиза). Я занимался одним уровнем, хотел довести его до финального вида, чтобы потом на основании его только проектировать новые, расставляя элементы. В конце недели такой уровень был, но не без багов и косяков. Но ещё не было сцены выбора уровня и всего остального. Код меня не устаивал и с ним становилось сложнее работать и править.

Третья неделя: Нужен рефакторинг! Долой старый код, всё заново. Графика уже есть, принципы понятны. Но начал со сцены выбора уровня, чтобы отточить анимацию, эффекты. Прошло 3 дня и у меня открытка, окно выбора и сам уровень готовы в новом «исполнении». Что же я успеваю сделать минимальное количество уровней, протестировать их, сбалансировать. Уточню, что из механик только была способность прыгать, пружина ещё не нарисована даже. И нет настроек, сохранения и ещё мелочей.

Чётвертая неделя: исправления, новые уровни, новая механика (пружина), звуки и музыка. В рамках тестирования игры, проверял не только для ПК управление, но для мобильных устройств. Игра простая по управлению и хорошо подходит для touch-управления. Поэтому я и сделал веб-версию на сайте Itch.io и выложил добавил ссылку на неё в заявку. Правда немного повозился с тем, как скачать полученную открытку пользователю в браузере, но решение нашлось, тут спасибо документации PixiJS и его возможностям. Есть модуль, который позволяет получить доступ к отрендеринным спрайтам, и получить их сразу в Base64-формате. Всего 5 строчек кода, но поиск, как обычно занимает пару часов.

В период 3-4 недели я создаю аккаунт разработчика в Google Play, оплачиваю. Всегда надо иметь в виду, что это не быстрый процесс. Необходимы одобрения, модерация и т.п. Поэтому я старался делать некоторые вещи заранее, чтобы успеть в декабре всё это завершить.

Наступила дата завершения конкурса. Выложил конкурсную версию. Но я же поставил себе цель довести игру до релиза. Значит, время продолжать разработку. Новая цель: за 1 неделю доработать текущую версию. А именно:

  • исправить ошибки;
  • правки по замечаниям из комментариев;
  • добавить новые уровни (новые механики): всего должно быть 12 уровней (но игрушек будет 9). Что и символично, и не слишком много, и чтобы успеть;
  • добавить сцену об авторах;
  • добавить ещё одну сцену, о ней я ниже по тексту;
  • тестирование и ещё раз тестирование.

Из первых комментариев к моей игре стало видно, что игра нравиться (вызывает приятные чувства), а значит, я иду правильной дорогой. Из глобальных исправлений уже готово, я сделал:

  • уменьшил промежуток между проигрышем и доступом к игровым элементов, а точнее ускорил анимацию появления шарика после «шмяка»;
  • изменил порядок уровней;
  • объединил уровни, так как хотел сделать 9 игрушек (больше уже перебор), но 12 уровней. Поэтому объединил начальные, обучающие уровни в один (как бы подуровень).

Шестая неделя: правки ошибок, корректировка уровней, тестирование и отправка на модерацию в Google Play. Игра проходила модерацию 4 дня. Зато обновления теперь проходят за 1 час.

Создание уровней

В принципе рассказывать нечего, за исключением того, какова была цель. С самого начала я не хотел делать уровни сложными, задача была сделать уровни разнообразными. Мне нужно, чтобы игрок получил финал, открытку и не застрял где-нибудь в расчётах траекторий движения магнитных полюсов Земли относительно Юпитера во время парад планет, если в качестве центра координат использовать положение Венеры в момент её прохождения по диску Солнца.

Это должна была получится лёгкая, развлекательная, новогодняя игра. Пройти, которую не составит труда, но оставит приятное ощущение. Соответствуя её названию: «Новогодняя открытка». Если бы там было 50 сложных уровней, то это была бы уже новогодняя речь: длинная, сложнопонимаемая, создающее чувство «Когда это закончится?». Пусть игрок сможет пройти всю игру пока едет в метро, трамвае, автобусе – это будет здорово!

Обучение
Обучение

А достичь такой цели не так легко. Очень просто сделать либо очень банально, либо хардкорно. Поэтому проектировать уровни требовался тщательно. Достиг ли я этой цели? Увидим.

 

Демонстрация игрового процесса

Публикация

Игра опубликована на следующих площадках:

За «Спасибо»

Игра маленькая и, конечно, распространяется бесплатно. Но я решил поэкспериментировать. В версии для Google Play можно увидеть, что в игру добавлена реклама, но никаких баннеров или до/во время/после уровня не будет. Увидеть игрок её сможете только, если сам этого захочет (кнопка «Сказать «Спасибо»).

Точнее, он попадёт на сцену с таким сообщением. А дальше уже ему решать. =)
Точнее, он попадёт на сцену с таким сообщением. А дальше уже ему решать. =)

Спасибо, что дочитали! Приятной игры! =)


Лучшие комментарии

Ух ты, классненькая игра, спасибо)

Спасибо за отзыв! Рад, что понравилось! =)

Читай также