Slings and Arrows: как мы всё успели и выспались

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

Slings and Arrows: как мы всё успели и выспались

Подготовка

Команду я начал набирать как только объявили первый "сайд-квест", правда выполнить его мы так и не успели. Зато, наши работы отметили во втором и третьем задании.

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

  • Геймдизайнер/Unity Developer
  • Аниматор
  • Саунд-дизайнер
  • 2D-художник
  • Unity Developer

За время подготовки мы успели познакомиться, придумать несколько локальных мемов, согласовать стек технологий и настроить Unity для кооперативной работы.

Начало

Тема хакатона: как я занимаюсь сексом

Kovbasyuk Pavel

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

В итоге, умерив нашу разгулявшуюся фантазию мы выбрали концепт который:

  • подразумевал игру против ИИ, но мог бы сработать и в режиме мультиплеера.
  • возможно портировать на различные платформы
  • время игровой сессии не превышало, ну или почти не превышало 60 секунд.

В процессе

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

В самом начале мы договорились о том, что не будем вкалывать круглые сутки, так как сбивать режим никому не хотелось, у кого-то впереди была рабочая неделя, а кто-то и вовсе остался на выходные с маленьким ребёнком на руках. Так что день выдался жарким, спустя какой-то час мы уже выбирали какой из юнитов нам больше нравится по дизайну и какие замки выглядят эпичнее.

К вечеру уже был собран макет сцены, пока что лепили из того что было, но некоторые механики уже работали и даже было сделано грубое подобие UI.

Slings and Arrows: как мы всё успели и выспались

Художник тоже не отставал и примерно к 21:00 у нас было готово окружение и основные элементы интерфейса.

Slings and Arrows: как мы всё успели и выспались

На этом наш первый день закончился, договорились встретиться завтра на том же месте в то же время, поэтому в 10 часов утра работа кипела. Дописывались core-механики и дополнительные инструменты, аниматор закончил с персонажами и пришла пора встраивать их в Unity.

Вот тут и начались проблемы, при приведении всех элементов к общему знаменателю. Консоль начала пестрить ошибками, персонажи отказывались двигаться, механики отрабатывали с ошибками. Стоит ещё отметить, что программист несколькими часами ранее похоронил несколько часов своей работы неудачно смерджив проект и проделал титаническое усилие по восстановлению кода за невероятно короткий срок. Обстановка стала накаляться...

Было принято непростое решение - вставать в 6 утра и работать до последнего и в противном случае отказаться от анимации, а возможно и от звуков битвы. Художник сказал, что не сможет присутствовать, поэтому до глубокой ночи дорисовывал менюшки, совершенствовал замки и придумывал логотип. Со всеми поставленными задачами он справился на ура и примерно в час ночи вся команда уже отдыхала перед финальным рывком.

Slings and Arrows: как мы всё успели и выспались

Конец

Утро вечера мудренее. К 7 часам утра наши персонажи бегали, сражались, умирали и, что важно, издавали звуки. Мы начали готовить проект к финальной стадии, как внезапно нашли досадный баг: после перезапуска сцены кнопкой "Рестарт", она не работала. В паники мы начали искать причину, но так и не могли найти в чём дело, после чего было принято стойческое решение - заливать билд в том виде в котором имеем, так и сделали. Спустя пару часов я нашёл в чём причина и был крайне раздосадован. Мало того, что решалась она одной строчкой кода, так ещё и код который послужил диверсией писал я. Вот он:

if(gameIsOver == true) { if (timeSinceCastleDestroyed < gameOverDelay) { timeSinceCastleDestroyed += Time.deltaTime; AudioManager.instance.PlaySound("Win"); } else { GameOverMenu.SetActive(true); Time.timeScale = 0; } }

Как вы сами можете догадаться, то в этом куске вызывается меню Game Over с результатами,а также скорость воспроизведения сцены становится равна 0, то есть как бы ставит её на паузу, вот только я забыл, что при перезапуске сцены этот параметр не сбрасывается по умолчанию и строчка Time.timeScale = 1; решила бы нашу проблему раз и навсегда. Что ж...

Геймплей

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

Спасибо за внимание.

55
Начать дискуссию