Найти тему
XotGames

Создаем Space Swords (3/3) - GameJam: Доделываем, что не успели.

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

Не успел

Начать я хотел с перечисления доделок.

Кстати, написание статьи - хороший способ распланировать действия, как оказалось.

1. Дорисовать спрайты

Я, конечно, не иллюстратор, но на отвали спрайты оставлять не хочется.

2. Анимации

У нас слишком топорные переходы, надо добавить для красоты, хоть что-то

3. Интерфейс

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

  1. Как мог заметить, шрифт я поменял, поскольку старый выглядел не ахти: H и X не отличить, O и D тоже очень похожи, да и различные символы, откровенно говоря, некрасивые.
  2. Летающие тарелки как обозначение жизней - тоже как-то не смотрятся, слишком громоздкие и цвета как-то не подходят.
  3. Исправить баг адаптивности, который обнаружил зайдя с телефона.
  4. Как-то совсем убого выглядит выбор уровня.

4. Управление мышью/тачем или стрелками

Сейчас играть можно только с клавиатуры, добавим еще тач и мышь. Чтобы можно было с телефона играть.

Реализация

Интерфейс

Начал я с исправления интерфейса, как-то идеи по исправлениям появились первыми в этой части.

1. Первым делом, я заменил везде шрифты. Я долго выбирал 7 и 14-сегментые шрифты, но так ничего и не нашел вменяемого. В какой-то момент меня осенило, что надо выбрать шрифт из старых игр на денди. Благо есть такой шрифт в открытом доступе. Когда его применил, сразу игра стала такой ламповой и теплой для меня, что понял, это то, что я хочу.

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

Новое меню выбора уровней
Новое меню выбора уровней

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

Отображение жизней
Отображение жизней

4. Я заметил, что часть меню обрезается, если пропорции экрана больше чем 16/9. Поэтому сделал подгон не по ширине, а по высоте.

Спрайты

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

Новый портал
Новый портал
Обозначение портала
Обозначение портала

Дополнительно мне пришлось дорисовать сердечки для обозначения жизней.

Анимация

Есть у меня идея того, как делать переходы, но нужно сильно переделывать все. Поэтому пока это отложу до следующего этапа, когда будет готов рефакторинг кода. На данный момент сделаю топорное с затемнением. Просто, быстро, но хоть как-то оформлено.

Управление

Здесь все просто.

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

2. Создаем класс. Он должен следить за тачем и нажатием на ЛКМ. Если он засекает нажатие, то отображает джойстик в месте касания. Если засекает отпускание - прячет его. При передвижении рассчитывается расстояние от центра платформы в пикселях.

3. Добавим параметр чувствительности. Чувствительность 1 соответствует точной передачи движения пальца/курсора по экрану. Чувствительность 0,5 - означает, что перемещение пальца/курсора на 2 пикселя, игра воспримет как перемещение на 1 пиксель.

4. Рассчитываем силу перемещения и ограничиваем ее значениями -1 и 1 по обеим осям, где 1 - это расстояние от центра платформы до края деленное на чувствительность.

5. Передаем эти значения кораблю в метод перемещения. В то же время отображаем сдвиг рычажка.

Итог

Новый вид уровня
Новый вид уровня

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

_______________________________

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

Если укажешь на ошибку, не обижусь, а исправлю ее)

_______________________________

Все страницы данной рубрики:

1 - GameJam: идея и визуал

2 - GameJam: алгоритм и меню

3 - GameJam: что не успели

4 - Рефакторинг - пишется

_______________________________

Все ссылки можно посмотреть здесь

Мой канал на itch