Найти тему
Сделай игру

Гоночки. Промежуточные итоги

Работа дураков любит. Это я про себя конечно.

Сколько времени потрачено на написание совершенно бесполезного кода! Ну, не то, чтобы совсем бесполезного, скорее - невостребованного на данный момент.

Итак, главное противоречие было разрешено.

Гоночки. Изначально у меня в голове был некоторый гибрид из Micro Machines и какого-то очень навороченного определителя столкновений. Дороги должны были быть очень извилистыми, а любое столкновение должно было влиять на игрока снижением скорости (или остановкой). В качестве управления было решено использовать либо курсор мышки, либо движением пальца по экрану (для упрощения совместимости).

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

Вторым подходом было решение, когда вращается и движется карта, а машинка стоит на месте. Хотя это решение было лучше первого, но не было достаточно хорошим. Это было понятно изначально - спасибо Contra 3: The Alien Wars. Не нравится мне такое.

Contra 3: The Alien Wars
Contra 3: The Alien Wars

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

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

  1. Управление, как и планировалось, жестами; разгон до максимума автоматом, тормоз - принудительно.
  2. Поскольку у нас двумерный битмап, то вид, всё же, сверху, однако, машинка двигается только в горизонтальной плоскости.
  3. Также двигается вся карта целиком, т.е. не машинка едет, а карта.
  4. Система столкновений сильно упрощается - просто контакт 2 четырёхугольников: если пересекаются, значит есть контакт и машинку откидывает на границу пересечения (либо накладывается какой-то эффект).

Фух, наконец-то понятно, что делать.

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

Также, хочется немного отвлечься и сказать пару слов про инструментарий. Фактически, игроделы могут пользоваться уже готовыми редакорами игровых миров. Давеча попалась мне брошюрка, с описанием создания игры (от начала и до конца) при помощи Construct 3. Надо сказать, что выглядит вполне впечатляюще. Но это не мой путь. Так что продолжу набивать шишки.