Tower Bombarde Remastered - прохладные истории

10 лет назад я сделал игру Tower Bombarde, благодаря которой (и Козинаке) я попал на Гамин тогда ещё под ником CRYSTALL_m.

TUa8Y3w

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

Я установил старый добрый GM 8.1 и импортировал в него чудом сохранившийся исходник бомбарды (о трагических событиях моего харда знают многие). Учитывая что бомбарда была написана на GM7 пришлось пошаманить чтобы игра запускалась.

Затем я решил что неплохо было бы реализовать ачивки. Уже нашёл библиотеку YellowAfterLife для GM8.
Заодно решил обновить музыку — на каждую локацию свой трек, собрать из имеющихся треков для никогда не выдущей второй бомбарды и ремейка брейнстрома.

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

Чуть позже я перевёл игру на GMS для нативной интеграции в Steam и более простым управлением ресурсами.

Геймдизайн

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

f8ko6zq

Сперва за счёт бонусов, которые в игре называются исходными кодами. При уничтожении каждая пушка выпускает волну из шестиугольников. Если в такой шестиугольник попадает аптечка или энергия — она превращается в бонус. Типа в неё встраивается исходный код пушки. Можно было бы сделать зависимость бонуса от типа пушки, но я посчитал это лишним + были причины так НЕ делать. Радиус волны шестиугольников зависит от типа пушки (у крутых он больше) и от комбо игрока. Тем самым стимулируя игрока собирать бонусы. Плюс такую же волну генерирует игрок при воскрешении, смерти и закончившимся щите — это даёт игроку возможность управлять процессом получения бонусов. Оставлять всё на волю случая не очень интересно.

dUhxSnN

А бонусов этих не так много — 8 штук, разделённых на две категории — более положительные и более отрицательные. Я не стал делать чисто негативных бонусов и идеально позитивных чтобы у игрока был выбор. У позитивных бонусов есть свои недостатки, а у негативных — свои достоинства. Например, бонус ярости даёт возможность атаковать в бою, но для этого нужно почти вплотную подбираться к пушкам рискуя получить много урона, или же бомба, которая снимает 80% максимального здоровья, но уничтожающая ВСЕ пушки в радиусе. Такой дизайн бонусов не создаёт заведомо плохих комбинаций. Игрок всегда может извлечь для себя выгоду.

DJLKdqt

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

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

1) Синюю пушку — пульки рядом с игроком разрываются на несколько обычных выстрелов (по аналогии с разрывающимися выстрелами босса в синей локации)
2) Розовую пушку — каждая пулька при уничтожении оставляет повреждающий плазменный сгусток
3) Зелёную пушку — при контакте выстрелов этой пушки с другими обычными пульками, последние увеличиваются до больших (сбивают щит)
4) Голубую пушку — взрыв при касании с выстрелом розовой пушки генерирует электрическую парализующую волну. Это делает пушку более опасной в сочетании с розовой
5) Ракетную пушку — она не всегда стреляет самонаводными ракетами, теперь это зависит от расстояния до игрока.

2e2jXfQ

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

joQg2Ii

Рефлекторы отражают лучи лазеров, как это делает прокачаный щит игрока. НО! Если игрок внутри рефлектора этот рефлектор деактивируется.

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

segxcSt

Катушки начинают раскручиваться если игрок попадает в радиус поражения. Достигнув предела вращения катушка разряжается, выпуская волну, которая разгоняет вражеские выстрелы и парализует игрока на пару секунд.

JCmpeSz

Чуть позже я добавил бомбометатели чтобы разнообразить третью локацию, лучи — для четвёртой, электророторы в пятую.

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

I3fw6M9

Чтобы исключить такие ситуации я добавил стены, которые разделяют локации на зоны. Я назвал их абсорберами. Они впитывают вражеские выстрелы и до некоторого момента игрок может через них проходить. Но достаточно «нагретая» стена начинает повреждать игрока.

jSWGtHQ

Сразу с асбосрберами я добавил шипы — это шипастые шарики которые увеличиваются при попадании в них пуль.

Из всех этих ловушек я в итоге собирал новые уровни.

tQbhqz3

У игры есть ещё одна важная проблема, о которой мне говорили ещё в 2009-ом. Аркадным играм свойственны короткие игровые сессии. В исходной бобарде первый уровень был коротким и занимал минут 5 времени. Дальше уровни становились длиннее и последние занимали минут по 20-40. При этом из уровня нельзя было выйти и продолжить игру. В новой бомбарде я ввёл такую возможность. Но за это существенно ограничил жизни игрока.

Бэкапы я решил выдавать фиксированным количеством в начале игры в зависимости от сложности (изи — 5, нормал — 3, хард — 1) + по одному бэкапу за пройденный уровень. При этом бэкап даётся только если игрок набрал некий минимум очков на этом уровне. Таким образом, повышается реиграбельность уровней и поощрение умелых игроков. Если все бэкапы тратишь — начинаешь уровень с начала с полными бэкапами. Обычная система жизней.

UI и UX

Это новая для меня область в которой я работаю уже год как. Но уже спустя полгода мне были очевидны провалы UI и UX дизайна бомбарды:

Провал главного меню — слишком много действий для начала новой игры и продолжения. Я оформил их в пять слотов. Этому финту была и другая причина — более простая работа со steam cloud.

tNSHL6T

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

D4YbbId

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

X2Spofj

Провалы игры - UI размазан по сторонам экрана и неинформативен. Особенно то что ХП и энергия разнесены. Пришитый непонятно как ХП-бар босса. Непонятен прогресс игрока внутри локации. Пушки слишком внезапно появляются. Говёные эффекты выстрелов пушек. Непонятные смерти игрока.

b6HAouX

Всё это я исправил переработав UI целиком. Показал прогресс игрока внизу экрана, там же ХП бар босса. Соединил ХП и энергию игрока. Выделил отдельно количество жизней игрока. Кроме того продублировал статы игрока рядом с персонажем чтобы не отвлекаться на UI во время боя. Да, сделал персонажа — киберчервя, придумав ему небольшую историю. Улучшил эффекты выстрелов пушек.

Провалы FTUE — первый опыт пользователя (First Time User Experience) с которым тоже много провалов. Это всё в исходной бомбарде подаётся через всплывающие сообщения. Дико раздражает когда во время боя вылетает блокирующий попап. А ведь потом ещё нужно в этот бой возвращаться! Сперва я переделал эту систему визуально и планировал сделать такие же блокирующие хинты с картинками и описанием, но во время плейтестов меня они достали, да ещё и тексты к ним вымучивать. В итоге я эту систему похоронил и сделал на первой локации интегрированное обучение базисам игры.

3zonN5y

Добавил в меню пункт «manual» для особых зануд.

iEyrtJt

Винскрины — это промежуточные экраны победы/поражения, всякие там интро, аутро и т.д. Я не сильно хотел ими заморачиваться, сделал простенькое интро, простенькое аутро.

I4QNNt7

Модифицировал экран завершения уровня в концепции «игрок наследует абилки босса»

Боссы

Боссов я всех переделал, улучшил визуальную часть и перепроектировал механику. Каких то боссов менял не очень сильно, а каких-то переделал полностью.

MBliH8F

Большая Пушка — добавил боковые выстрелы и гигаатку — поворот на игрока и большой выстрел (сносит щит)

sjmIMe8

Тридентал — перерисовал, добавил атаку «очередь больших выстрелов», добавил гигаатаку — сателиты

jt4689c

Бомбарда — добавил немного анимации и подпрравил логику крутых выстрелов

y7BsCgL

Лучевой Свет — переделал атаки: сделал двойной лазер, задний лазер, веерный лазер, улучшил визуалку гигалазера.

Nk6o9n2

Второй Гигант — добавил способность регениться при попадании обычных пуль. Стал довольно потный потный босс со своей тактикой.

PKDBYwT

Портабл — переделал логику телепортов, добавил генерацию рефлекторов, добавил разрывные выстрелы, добавил гигатаку — телепорт с выстрелом во все стороны.

kiwt4t8

Оверфлуд — переделал визуальную часть и логику атак.

t51tYlM

Пневматик АТ — полностью переделал. Добавил боссу щит. сделал кучу новых атак с сателитами. Но механика осталась та же — нужно сталкивать на отдаче с другими пушками чтобы деактивировать щит.

8CqczSU

Умный Пульс — полностью переделал. Сделал другую комнату с парализующими механиками, добавил прализующий выстрел, добавил гигаатаку. Босс так же уязвим только к ракетам.

9q6tdiM

Взрывной Торнадо — полностью переделал, включая дизайн уровней. Босс находится под щитом, который сбивает деактивацией двух сателитов. Упростил паттерн босса до движение-атака, т.к. и с сателитами ебёни хватает.

Левелдизайн

Все уровни я переделал с акцентами на конкретные механики. Для последних двух локаций уменьшил размеры комнат. Итого локации получились уникальными.

SolnRIp

Плюс добавил ещё одну 11-ую секретную локацию, со своим уникальным в рамках игры боссом, разумеется. Локация эта доступна только на харде после последнего босса и открывает тру-концовку.

Звук и музыка

Ленив я новую писать, поэтому музыку в игру я перелопатил из своих наработок по различным версиям и ремастерам незарелизеных бомбард. Звуки почти полностью заменил новыми (брал из паков на 99sounds)

Так что же нового в REMASTERED редакции

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

  • Переделан геймдизайн (враги, боссы, новые механики, параметры игровой сессии)
  • Переделан визуальный стиль (фоны, спрайты)
  • Переделан левелдизайн полностью
  • Переделаны звуки и музыка
  • Ачивки завезли