Mad Professor Post Mortem. LD25 Entry

Часть I. Разогрев

На прошлых выходных проходил последний конкурс Ludum Dare в этом году, в котором мы с devolonter’ом c радостью приняли участие. И поскольку наш опыт участия в августе принес нам только разочарование (мы не смогли завершить играбельный прототип вовремя), мы решили «разогреться» перед LD 25 и принять участие в Warmup.

На создание Survive in gravity мы потратили 2 дня и решили выложить именно завершенную игру. Хотя на Warmup чаще выкладывали свои эксперименты по работе с движками. Наверное, мы сделали это больше для себя, чтобы вернуть уверенность в своих силах после обидного провала.

Мы решили взять простую механику, sci-fi сеттинг и сделать простой runner, с возможностью вращать гравитацию. На этот раз, на создание графики у меня ушло куда меньше времени, поскольку я люблю фантастику, особенно с визуальной точки зрения. В первый день было готово все задуманное: бесшовный фон, препятствия, анимация бегущего силуэта. Позже, было решено разнообразить игру большим количеством фонов.

С программной точки зрения, игра оказалась простой в реализации. Используя фреймворк Flixel for Monkey, первый играбельный прототип был готов уже через 6-8 часов. Основной сложностью стало написание «умного» генератора препятствий, который позволил бы игроку постоянно находиться в тонусе, но в тоже время не был через-чур сложным. Мы учли все ошибки, которые совершили при реализации Stand Alone. И как нам кажется, баланс получился значительно лучше.

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

Мы оказались очень довольны результатом. Но на сам конкурс, делать второй runner как-то не хотелось.

Часть II. LD 25

С самого начала голосования за тему, мы старались не обсуждать и не видеть возможные варианты. Именно это, как я считаю, помешало нам в прошлый раз. Мы пытались угадать тему LD 24, и придумали игру, которая охватывала большинство тем финального голосования. Думаю, это очевидно, что тема Evolution, в нашей наработке, не была раскрыта вовсе. Это нас и подкосило, с самого начала.

В этот раз, наиболее очевидной темой, по понятным причинам, была The End of the World. Но Ludum Dare снова нас удивил, предъявив тему You are the Villain!

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

В какой-то момент, мы всерьез решили перевернуть Super Mario Bros вверх тормашками и сделать игру, под названием «Страшный сон Марио». Главным персонажем должен был стать гриб Гумба. А врагами были бы Марио и Луиджи. Пытаясь развить идею дальше, мы даже достали свой Денди и начали рубиться в игру.

Теперь, оглядываясь назад, мы рады, что отказались от этой затеи, ведь подобные игры на LD 25 попадались на каждом шагу. А я снова вспомнила один из советов участникам LD:

«Первые пять идей по теме можно исключить сразу, поскольку они придут большинству участников»

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

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

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

Поскольку участникам Jam можно использовать свои наработки, моя иллюстрация, созданная на Блиц-Арт сразу же пошла в дело. И думаю, она во многом мне помогла, поскольку я изначально потратила слишком много времени на создание главного фона. Что уж говорить, анимация и размер персонажей шлифовались в последние часы. И это, как и ожидалось, не сделало анимацию идеальной — главный герой бегает так, будто у него сломана нога.

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

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

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

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

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

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

Изначально мы знали, что будем давать ссылки только на web-версии игры, поскольку не многие захотят качать исполняемые файлы. И если раньше, число таких сабмитов превалировало, то сейчас, к всеобщему удобству, большинство разработчиков предоставляют web-версии своих игр. Ура кроссплатформенным средствам разработки!

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

Часть III. Советы на будущее

— Не следует начинать рисовать арт с второстепенных объектов. Сначала должны быть готовы концепты персонажа и врагов, а потом их анимация.
— Не следует пытаться сделать все идеально. Время за шлифовкой проходит неимоверно быстро. И за нее нужно браться имея лишь полноценную играбельную версию игры.
— Чем меньше персонаж в игре, тем меньше его следует детализировать. Выточенные детали будут еле различимы или того хуже, испортят и «замылят» картинку.
— Не стоит расслабляться если программная реализация показалась вам простой. Если завершили основной функционал, работайте над мелочами.

Часть IV. Post Compo Version

Многие из участников LD стараются довести игру до ума уже после соревнования. Ведь большинство фишек приходится вырезать. Мы также решили сделать Post Compo версию игры, и уже обозначили моменты, которые хотим изменить/внести в игру.

Часть V. Реакция сообщества

По сравнению с первой игрой Stand Alone, Mad Professor вызвал куда более активную реакцию сообщества, что не может не радовать. Ведь это поможет нам лучше понять, что нужно изменить или улучшить.

Часть VI. Интересные факты

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

— Мы не успевали сделать анимацию смерти врагов, поэтому решили, что они будут заливаться белым цветом и исчезать. Поскольку реализовать программную заливку цветом мы также не успевали, то решили вручную залить нашу анимацию. А во время смерти, просто подменяли изображение.

— В игре неверно засчитываются очки. За активацию бомбы вам ничего не будет начислено. Все из-за того, что мы повесили увеличение очков не на то событие.

— Из-за бага в игре, можно насобирать до 4-х колб, хотя их максимальное количество не должно превышать 3-х.

— Несмотря на то, что в формуле падения кирпичей есть поправка на случайность, в большинстве случаев кирпич упадет вам на голову.

— Референсом для ползущего врага по лестнице стал devolonter, изображающий это действие на полу. Теперь он не может спокойно смотреть на этих персонажей) Их анимация получилась самой правдоподобной.

  • Страница Mad Professor на Ludum Dare
  • Страница Survive in gravity на Ludum Dare

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">