Конец года — время подводить итоги. 2020-й запомнится нам, мифотворцам, многими приятными моментами, несмотря на сложности, свалившиеся на всех прошедшей весной.
Накануне своего 15-летия мы подумали: вот бы к празднику сделать игру на сайте! А уже через месяц Lineracer (или «Самолет») с азартом проходили и читатели, и МИФовцы (каждый день и не по разу:-). В этом материале расскажем, как придумывали стиль, делали прототип, с какими трудностями столкнулись и чего достигли.
Сила русского авангарда
Сначала набросали простенькое техническое задание: игрок должен летать на самолете, собирать бонусы и получать призы — электронные книги. На встрече обсудили эту идею. А дальше — кропотливая работа и немного волшебства. Нужно было изучить референсы, посмотреть, какими бывают игры, чем они цепляют и придумать, каким будет стиль.
Первые мысли к встрече
Айдар Шакиров, дизайнер:
Айдар Шакиров, дизайнер
— Я собрал все, что понравилось и пошел на встречу с командой. Мы обсудили, что могли бы сделать и снова разошлись думать. На мне был стиль игры. Хотелось связать его с днем рождения МИФа и праздничным мерчем, который сделал наш арт-директор. На глаза попалась книга советского художника Лазаря Лисицкого. В голове щелкнуло: то, что нужно! Русский авангард — это и про прошлое, и про будущее, и про связь времен. А проуны — это готовые препятствия для самолета. Через несколько итераций начала вырисовываться картинка.
В поисках стиля
Стиль оказался совсем не МИФовским, но все были от него в восторге. Можно было переходить ко второму этапу — разработке: думать о механике, экранах, анимации.
Волосатый треугольник, столкновения квадратов, нолики-единички: кое-что о разработке
Ребята сразу поняли: эта игра не похожа на все, что они делали раньше. Это было что-то настоящее, во что люди с азартом рубятся во всем мире. Ведущий разработчик Кирилл Левин взял на себя визуальную часть: реализацию нестандартных анимаций и быстрого движения без тормозов — у него был опыт. А физикой — расчетом скорости движения, перемещений и столкновений, формулами и моделями — занялся Алексеей Игошин.
Кирилл Левин, ведущий разработчик:
— Для начала я набросал простой прототип: красные квадраты и зеленый самолет. Это позволило Алексею начать писать физико-математическую модель. А сам я ушел в работу с графикой, начал оцифровывать картинки, которые нарисовал Айдар. В примере показано, как выглядел нос самолета в коде: это нолики и единички. Единичками помечены реальные размеры объекта, а ноликами те места, которые фигура тоже занимает, но где столкновения быть не может. Дальше модель наложили на картинки. Мы визуально видели места, где можно столкнуться. Попыток совместить графику и оцифровку было несколько.
Дальше стали работать с текстурами. Первое, что ввели — это волосатый треугольник. Фигура помогла пошагово отладить уход самолета от препятствий. Правда, в продакшн не пошла.
Алексей Игошин, разработчик:
Алексей Игошин, разработчик
— Мы долго отрабатывали столкновения. Сначала делали это на квадратах — один врезался в другой. Звучит просто, но только пока не начнешь все координатами рассчитывать. Когда научились сталкивать квадраты, сделали фигуры из ноликов и единичек, о которых говорил Кирилл. Нам нужно было сделать точное пересечение. Поэтому одну матрицу мы накладывали на другую и смотрели: если и у фигуры, и у самолета есть в каком-то месте единицы, значит они столкнулись.
Многие играли в «Супер Марио» и помнят, что он набирает скорость постепенно. Такую штуку хотели сделать и для МИФовской игры. В итоге для начала и конца разгона были введены события: когда они происходят, начинается разгон. Потом была оцифровка текстур, построение трассы.
Без трудностей — никуда
Алексей Игошин, разработчик:
Построение уровня — моя личная боль. У нас уже был движок для самолета (то есть он летал, врезался), но совсем не понятно, как сделать из этого что-то цепляющее. Решили зайти с трассы. Планировали, что она будет генерироваться каким-то рандомным генератором. Даже набросали его, но поняли, что подход не годится: нужно писать серьезно, иначе будет неинтересно. Зато этот наш генератор стал основой для будущих уровней. Грубо говоря, он брал наборы элементов и размещал их на трассе. После этого я включал игру и летал. Иногда это была совершенно непроходимая загороженная трасса, иногда очень скучная. Но пока я летел, я пытался найти куски, которые мне нравилось проходить. В них я что-то добавлял, что-то двигал.
Наконец трасса была готова. Она получилась сложной, опасной, напряженной — и очень нравилась автору. Зато другие МИФовцы сказали, что летать по ней невозможно: дальше десятой детали пройти не получилось ни у кого.
Алексей Игошин, разработчик:
— Это была моя бездна отчаяния! Все было готово, но оказалось, что это не подходит. Я пострадал, подумал и пришел к такой концепции: три уровня сложности. Первый — начальный, это знакомство с игрой, препятствия далеко друг от друга, их легко облетать, можно понять принцип управления самолетом. Второй — поинтереснее, там много деталей. Третий — игроку неуютно, скорость высокая, пролететь мимо фигур можно только в небольшом диапазоне, нужно быть начеку и постоянно уворачиваться. По-моему, эта штука оказалась довольно удачной.
Важно было, чтобы в игру хотелось сыграть несколько раз. Для этого по трассе было разбросано 15 бонусов-книг: их надо собирать, чтобы выиграть подарок. Но сделать это с первого раза практически невозможно — требуется несколько попыток, чтобы запомнить, где размещены самые опасные препятствия и как от них увернуться. К тому же трассу оставили вариативной, а не постоянной, у нее есть простой и сложный варианты.
Кирилл Левин, ведущий разработчик:
— И тут мы поняли, что не успеваем. А нужно было сделать игру в любом виде. К тому же цель — привлечь читателей к книгам, а формы подписки на рассылку еще не было. Тогда было решено привлечь джедая Ивана, который полностью взял на себя то, что касалось взаимодействия с пользователем. Начальный экран, контроль управления, сетку призов, экраны окончания игры, подписку на приз и прочее.
Ребята справились. Даже осталось время на улучшения — анимацию, перемещение самолета с крыла на крыло, исчезание бонусов. В итоге за месяц команда из 4 человек сделала игру, которая увлекла десятки тысяч человек. Многие, «полетав» и получив призы, решили заглянуть в наш интернет-магазин — на книги и мерч была большая скидка. Вот так МИФ заработал 5,7 миллиона рублей — и получил море удовольствия от проекта.
Откроем секрет: ближе к Новому году игра станет зимней! Место самолета займет лыжник 😉