FFFREM, ежедневный отчет. День 22

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


Ниже вы сможете прочитать о поэтапном изготовлении меню и расстановке персонажей и противников.

Схема меню

Так как я не являюсь профессиональным дизайнером (или кто там дизайн UI делает?), то рисовать наобум от руки так, чтобы получалось сразу хорошо, у меня не выходит. Я сделал набросок меню, чтобы по нему проще было ориентироваться по координатам и размерам (специальная панелька в фотошопе включена как раз для этого).

Добавлю сюда скриншот с пояснениями к схеме для тех, кто не играл в Final Fantasy на Game Boy Advance (оттуда я и взял эту раскладку).

Программирование

Общий вид экрана боя

Первый блин вышел комом (забыл координаты по X правильно настроить).
Потом были некоторые заминки с файлами, в названии которых была пометка BT (они создаются мейкером специально для тестирования боёв) ввиду попытки облака синхронизировать файлы, которые обычно мейкером сразу после боя удаляются. Ошибка показанная в двух скриншотах:

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

Окно статуса персонажей

Первая отрисовка статуса персонажей выявил некоторое непонимание мной интервала между актёрами в списке (отрисовка происходит в Window_Base, а не в Window_Command).

После незначительных правок и экспериментов пришел к такому виду окна статуса персонажей:

Окно со списком противников

Вот группа противников, которую я выбрал для тестирования. Графика взята из оригинала и увеличена. Да, у меня просто еще не готова графика противников, сделал всё, что мог.

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

Наша группа однородна (есть только один противников в ней), что соответствует подобной группе в оригинальной игре, поэтому мы видим в списке слева только один пункт.

Расстановка персонажей

Для расстановки персонажей я дополнил схему таким вот образом:

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

Расстановка противников

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

Вот так это выглядит в редакторе:
Так это у меня получилось сделать в бою:

Размеры баттлеров противников просто невероятно огромны, сделал их такими только для того, чтобы немного сориентировать положение баттлеров на экране в соответствии с их положением в редакторе. Пришлось сделать им смещение на -64,-128 пикселей, чтобы отобразить их так, как на скриншоте выше.

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

Отображение задника

На десерт я оставил установку параметра background, нарисовав первый из необходимых задников. Вот что у меня получилось:

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

Постскриптум

Согласно подсчитанным мною данным, на данный момент проект занимает чуть менее 4 мегабайт (3,76 МБ, если конкретно) со всеми ресурсами. Оригинальный ROM для NES весил 257 КБ, а вот комплект из двух игр на Game Boy Advance (Final Fantasy I&II: Dawn of Souls) весил ровно 8 МБ. Я планирую уложить проект в 16 МБ с музыкой в формате MIDI. Комплект с музыкой в формате mp3 в высоком качестве будет опубликован после релиза игры отдельным файлом для тех, кому трафик не позволяет скачивать проект размером в 200 МБ и более.

И да, заметка специально для Аннтенны, если она вдруг прочтет: этот проект является, возможно, самым бездушным проектом из всех когда-либо созданных на мейкере, поскольку вся разработка завязана исключительно на цифрах в статистике готовности, а в сам проект я не играл, не играю и до финального тестирования перед релизом играть не собираюсь. Только цифрам доверяет мёртвый эльф. ^_^

Комментарии

  1. Очень лестно видеть своё упоминание в блоге. Надож не ожидала, что тебя задела эта мысль про дисбаланс в сторону системы. Ну, вообще да, если делаешь клон известной игры, то к чему тестирование =-P

    А меню битвы практически стандартное, в принципе симпатично)

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Генератор названий оружия

Создание компонента Delphi

Идеи: Генератор сказки