Финальная анимация
Нарисовал анимацию финального ролика и собрал ее в мультик. Осталось всякие финальные надписи вывести.
Блог разработчика
Нарисовал анимацию финального ролика и собрал ее в мультик. Осталось всякие финальные надписи вывести.
Сегодняшние фиксы:
Понемногу делаю локацию-пасхалку, из имеющихся спрайтов можно создавать всяческие штуки:
Отдал игру на бета-тест, уже есть результаты:
Так же добил прошлые баги:
Три из них («приземление наискосок на замок»,»замок нарисовался ниже»,»при выходе из второго…») были следствием одной ошибки — переполнялся массив отложенного вывода элементов на второй экран. Такие комбо-действия как «открыл замок и тут же взял эликсир, а это вызвало срабатывание флага», вызывали больше изменений, чем планировалось. Увеличил место под массив.
Похоже, пришло время делать демо-режим, пасхалки и финальный мультик.
Сегодня исправил несколько обычных багов:
И занялся подчисткой звуковых багов:
В процессе отладки прошел игру от начала и до 4 уровня, по пути почти не встретив серьезных багов. Но набралось, конечно:
BUG: урон от пули при уходе в телепорт
BUG: капля бьет когда уже ушел
BUG: пули летят сквозь стены?
BUG: замок после открытия нарисовался ниже и потом при убийстве черепа все зависло
BUG: при выходе из второго в двери что-то мелькало и очки мигали
BUG: приземление наискосок на замок, когда одновременно срабатывает снятие замка, взятие эликсира и флага — зависон
При большом количестве действий на экране притормаживает, надо поискать где можно оптимизировать.
Но в целом игра уже работает. Надо отдать кому-нибудь на бета-тест 🙂
Попытался пройти игру и, конечно, список багов снова заколосился:
И хит дня — баг «зависание черт знает почему» при исчезании объекта с экрана. Вроде бы Шерифы давно уже успешно прибиваются глыбами, но тут вдруг такой случай вызвал зависание. Начал смотреть что не так… Оказалось, что при выводе запорчен фиктивный спрайт «пустота» размером 1х1, который я разместил с адреса 300. Ок, пытаюсь выяснить когда же он умудрился запортиться. Как оказалось он портится сразу при загрузке игрой своих файлов данных через EMT 36. Я и забыл, что EMT 36 использует область с адреса 300 не смотря на то, что ей указан другой адрес блока параметров. Как же это вообще работало раньше? А просто раньше файлы грузились без ошибки, а теперь вдруг при чтении через EMT 36 вылезла ошибка при загрузке файла HISUB.DAT, потому что его размер вылез за границу 40000. И EMT 36 гордо прописало байт 4 по адресу 301, в итоге ширина «спрайта» стала равна 2001 вместо 1.
Вот такой внезапный индикатор вылезания файла за границу 16К образовался.
Сегодня был день в стиле «Фигаро тут, Фигаро там», так что на ночь глядя прибил только два бага:
+BUG: при отключенной музыке нет паузы после game over
+BUG: скелет убит под землей?? boom был ниже!
И, внезапно, осталось в списке:
BUG: мешок давит по новым координатам
Так что пора попробовать пройти игру и пополнить список приступать к финальной заставке, начальному демо и внедрению пасхалки!
Музыку!
Сегодняшние фиксы:
Во-первых, я сегодня быстро пофиксил баг, который мне казался весьма геморным — порча фона при выводе друг на друга летящих пуль и костей. Это оказалось как раз просто — просто «Тэд из прошлого» не сделал два отдельных цикла «взять все фоны под все пули и кости», и только потом «вывести все пули и кости», а объединил их в один цикл, где последующая кость брала себе фон с предыдущей пулей.
Во-вторых, внезапно при выходе из телепорта все накрылось медным тазом. Ага, думаю, новый глюк, чтоб его. Пробую снова выйти и снова держу клавишу влево — баг повторяется. Не держу — вроде сначала все ок, черепа завелись и побежали, а потом снова все зависло. Видимо, дело не в клавише. А в чем? А в том, что кнопка влево разворачивает Балбеса влево и спрайт начинает выводиться другой процедурой, которая уже выводит спрайт с поворотом. А если клавишу не жать, то черепа, добежав до правого края, тоже разворачиваются налево и тогда снова начинает работать «левая» процедура. Значит, дело в ней.
Ставлю точку остановки, смотрю что там — а там прямо в исполняемом коде какая-то чушь вместо одной из команд. Откуда-то взялся байт 367. Что за самомодифицирующийся код, который не заказывали? Отслеживаю момент, когда портится ячейка по этому адресу, начиная от телепорта, конечно же. Портится она при распаковке новой сцены. А чего на портится-то? А при применении списка изменений. При распаковке же сцена получается «свежая», с еще не выпитыми эликсирами, несобранными Гномами и невзятыми ключами. Вот список изменений и применяется.
Оказалось, составляется он неоптимально — если открыт секрет и на экране (и в лабиринте) появился бонус, то в список изменений пишется адрес в лабиринте и код этого бонуса, естественно. А когда бонус взят? В список изменений ДОБАВЛЯЕТСЯ замена этого бонуса на ноль. Итоге, ДВЕ записи изменений одного и того же места лабиринта. Вот список и переполнился, стали «применяться» левые данные по левым адресам, в итоге пострадал уже исполняемый код.
Значит, надо или перед записью изменения искать такой адрес в списке и обновлять данные по нему или тупо увеличить место под возможное кол-во изменений лабиринта.
Победил баги сегодня:
Осталось:
BUG: кость + пуля = порча фона — это мне видится самым муторным
BUG: при отключенной музыке нет паузы после game over
BUG: нота сзади верхняя пролетела без урона
BUG: если Балбес получает толчок во время удара, то проваливается
BUG: мешок давит по новым координатам
BUG: скелет убит под землей?? boom был ниже!
Очередной прикол из серии «пусть об этом думает Тэд из будущего» — оказывается, после определения того, что Шериф верхом на глыбе доехал до потолка и должен быть раздавлен…. ничего не делается. Пришлось доделать.
Сегодня исправлено:
+BUG: шерифа давит мешком об потолок, но не давит. Потому что там и нет действия!
+BUG: скелет не запрыгивает? сцена 11-02, начало GOON DOCKS
+BUG: наискосок скелет летит странно
+BUG: увеличить угол нот, увеличить их скорость
+BUG: ноты при вопле выводить ближе
+BUG: скелет после появления в воздухе не сразу проваливается
В итоге Скелет перестал летать «странно», теперь он сразу падает, если возродился в воздухе (то самое убийство нечисти в полете), а также перестал исчезать, когда должен был запрыгнуть на уровень выше (там не было вообще такого кода движения, но кто их считает).
Что осталось исправить:
BUG: Балбес проваливается в 18-03, во втором черем флаг в земле?
BUG: кость + пуля = порча фона
BUG: подарки с жизнями и опытом не работают
BUG: при отключенной музыке нет паузы после game over
BUG: нота сзади верхняя пролетела без урона
BUG: если Балбес получает толчок во время удара, то проваливается
BUG: добавить звук огня в подвальных лабиринтах
BUG: мешок иногда давит по новым координатам
BUG: скелет убит под землей?? boom был ниже!
Свежие комментарии