Периодически информировать о продвижениях в разработке пока что не получается, но это не значит, что писать не о чем. Январь (читай, период после прошлого стрима) для TNU4 был довольно насыщенным.
Игрок реагирует с вражескими объектами, они - на его атаки. Сейчас нужно доделать окончание этой реакции - детали уничтожения врага.
Непосредственный опыт и точное знание того, на что нужно обратить внимание позволяют вести несколько сфер разработки одновременно. Так, немного преждевременно, появился Роберт (у него, к слову, обновлённый спрайтлист).
Технически он гораздо больше связан с Ункенде, нежели это было в GM7 раньше (мною так запрограммирован), поскольку тогда наличие играбельного Роберта было долгое время под вопросом.
Теперь - это ещё один Хаябуса, но со своими спрайтами, характеристиками и уникальными атаками (точнее, так будет в конечном итоге). Пока что это просто ещё один ниндзя, но некоторые спрайты ему уже установлены.
Третий стрим работы на новом GM планировалось посвятить упомянутым элементам геймплея.
Но разработка опять пошла не по плану:
- взрывы вражеских объектов
- спрайты получения урона и проигрыша Роберта
Это всё, что было сделано в первой половине эфира: всё ещё тяжело работать на стриме.
Чтобы не мучиться, вторая часть трансляции была посвящена прохождению игр.

Итог затянувшегося на прошлом стриме разбирательства со взрывами рядовых врагов.
Оказывается, взрывы разные во всех трёх частях (раньше думал, что в TNU2 и TNU3 они идентичны).
В третьей части используется 4 кадра, в то время как в предыдущих играх - 5. Из-за этого продолжительность начального кадра ("шарик") в третьей части - 4 шага, а не 2, как у остальных кадров взрыва во всех трёх играх.
Но разница взрывов в TNU2 и TNU3 ещё в прорисовке: во второй игре дальность взрыва наибольшая.
Цвета взрывов первых двух игр одинаковые. В TNU3 тёмно-красный заменён на розовый.
В 16-битном варианте цвета другие и лишь в некоторых кадрах добавлен 1 дополнительный. В первых двух играх трилогии у "шарика" есть коричневая обводка, которая лично мне не нравится.
Пришёл к выводу использовать только дендивские спрайты.


GIF - для демонстрации отличий спрайтов с разных платформ.
Обновил взрыв для TNU4 (добавил все 3 вариации).
Исправляю и другие упущения, допущенные на минувшем стриме - на стриме всё ещё сложно сконцентрироваться. Даже для пошагового сохранения скриншотов, которое пытался сделать в Mesen, оказалось, допустил глупую оплошность (букву в названии папки не дописал), из-за чего специальный скрипт не сработал и пришлось сохранять скриншоты вручную.
Хотя, справедливости ради, даже зная заранее вышеперечисленные нюансы, весь этот процесс изъятия и программирования взрыва всё равно потребовал бы больше времени, чем ожидалось.
Кто-то скажет, что это слишком незначительная деталь. Возможно. Но и мелочи тоже важны, чтобы получился приемлемый результат. Хотя, конечно, уметь сокращать дистанцию на пути к цели - навык нужный.
Методы, enum-ы, демонстрация текущих результатов: уже появились айтемы.
Программирование особой анимации песочных часов после того, как их сбить атакой.
А также реализация их функционала: замораживание рядовых врагов.
Казалось, что задача быстро решилась.
Однако устранение шероховатостей в итоге привело к переписыванию этого механизма (частично даже поломалась реакция вражеских объектов на атаки игроков).
Долго, не просто, но всё-таки получилось добиться цели: песочные часы корректно останавливают рядовых врагов. Нужно сделать ещё пару доработок. Но об этом вспомнилось уже после стрима.
В конце эфира был показан пример ввода очередного айтема: нож Роберта. Вместе с этим удалось запрограммировать функционал по отделению оружий Ункенде от оружий Роберта: в случае, если игрок подберёт "не свои" айтемы, начисляемые бонусы будут отличаться от ожидаемых.

Двойник из Ninja Gaiden 2 - единственный айтем, который не планировалось добавлять из оригинальной трилогии в TNU4, всё-таки появился в фанатском продолжении. Но у него свои особенности и отличия.

Работа над айтемами практически закончена. Даже над рандомными. К слову, теперь в игре будут не красный и синий, а зелёный и синий айтемы из Gameboy. Реализованы и так называемые закрытые айтемы - те, которые меняются на менее ценный бонус при перезапуске комнаты или до выхода в главное меню (т.е., до перепрохождения).
Можно плавно переключаться на другие сферы разработки.
Почти со всеми запланированными на пятый стрим по разработке TNU4 задачами удалось успешно разобраться:
- замена спрайтов взрыва GB Item-а
- доработка функции контролируемого респавна бонусов из этого айтема
- программирование пламени - первой вражеской пули, которая может появится вместо бонусов из GB Item-а в том числе
- активация и деактивация рядовых врагов

Только до оружий - "защиты" и "защиты в воздухе": айтемов, делающих игрока неуязвимым не добрались: сил уже не хватило.
Ближе к концу эфира спустя долгое время неожиданно подключился Жыкенден. Он тоже поспособствовал ходу разработки...
Оружия, делающие ниндзя неуязвимым уже готовы: трёхсекундная защита и сальто с мечом (двойника тоже можно добавить к этому списку).
На стриме удалось реализовать самую простую дополнительную атаку Ункенде - маленький сюрикен, а также движимые по диагонали вверх огненные кольца.
Делалась большая оглядка на первоисточник: начиная от скорости до анимации.
Были выявлены неочевидные моменты, которые ранее в GM7 не учитывались.
Одно из подобных открытий - площадь огненного кольца при полёте вверх и при неуязвимости неидентичны.
С программной стороны наиболее сложной была задача реализовать возможность задать скорость движения не в целочисленном значении (т.е., с дробью); сделать так, чтобы объект не занимал "не полную" координату, что могло привести к проблемам при проверке коллизий и при отрисовке объекта.
Хотя подобная функция в игре уже есть. Но понадобилась немного изменённая форма.
Эфир отличился и рядом моментов:
- В качестве фоновой музыки использовался плейлист от Максима, который он предлагал на одном из первых стримов по разработке. Наконец-то что-то новое в этом плане.
- Кто-то наслал множество ботов, отчего количество зрителей перевалило за 120. Естественно, ситуацию нельзя считать положительной для канала.

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

В TNU4, вероятно, такая ситуация будет встречаться чаще, поскольку разрешение экрана больше дендивского. Но это нормально. Просто не столь очевидная деталь.
Ещё одно наблюдение, пока вводил это оружие в игру: в отличие от огненного кольца, летящего по диагонали вниз, анимация этого снаряда длится дольше и когда на экране отображаются два снаряда, их кадры могут отличаться (у одного - первый, у другого - второй), хотя по стандарту они одинаковые.
Предполагалось, что 7-ой эфир по разработке TNU4 будет посвящён вводу предпоследнего оружия Ункенде.
Но возникшая непредвиденная проблема сброса слоя у самонаводящихся пуль (другое, почти готовое оружие игрока) нарушила эти планы.
Казалось даже, что это действительно глюк GameMaker.
Но, как и всегда, пусть и на него пришлось потратить много сил и времени, решение было найдено. Оказывается, изменение глубины объекта сбрасывает его слой. Разобраться с этим моментом было решено потом, после эфира. Но хотя бы обнаружилась причина.
При коллизии с некоторыми объектами самонаводящиеся пули должны не просто уничтожаться, а создавать опасные для игрока взрывы - их программированием и планировалось заняться, прежде чем пришлось столкнуться с вышеупомянутой проблемой.
Закончить этот механизм на стриме не получилось (уже сил не хватало). Хотя концепцию того, как именно писать код, чтобы не приходилось в будущем дублировать объекты для каждой новой пули, удалось придумать и немного реализовать.

Вторая половина трансляции была посвящена недавно вышедшему хаку "Сердце Галуги" на первую Контру на Денди.
Пройти его так и не получилось - добрались до 6 уровня.
3 июня было ровно 19 лет со дня, когда я впервые прошёл Ninja Ryukenden 3 (Ukende III) на приставке.
Ункенде не сразу, но стал для меня одним из главных ориентиров в творчестве. Что в итоге привело и к разработке TNU4 в том числе.
Не первый год мы видимся с вами на тематических стримах, которые я провожу по поводу этого значимого для меня события.
Первая половина эфира была посвящена разработке, поскольку в прошлый раз из-за проблем со сбросом слоя у оружий всё пошло не по плану.
Были доработаны самонаводящиеся пули и опасные для игрока взрывы от них.
А также частично удалось запрограммировать предпоследнее оружие Ункенде - ниндзя-бомбу: были изъяты спрайты и реализована корректная анимация.
Затем, как и полагается, была запущена заключительная часть трилогии.
В этот раз - это был хак американской версии от Guardian-а (разработчика Ninja Gaiden IV: Darkness Reborn), приведённый почти в полное соответствие с японской (но на английском языке, соответственно).
Однако, главная особенность прохождения заключалась не в самом хаке, а в отключении фонов в эмуляторе.
Челлендж оказался непростой (вероятно, на успех повлияла и усталость от разработки в начале стрима).
Удалось добраться только до уровня 4-2B.
Вероятно, попытка пройти игру с такими условиями (но немного скорректированными) будет предпринята когда-нибудь ещё.

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

Аудио можно послушать и в разделе "Музыка" на публичной странице в VK.
И скачать из Хранилища.
В конце стрима демонстрировался шуточный ролик от Maurice Ravel по мотивам Ninja Gaiden в связке с TNU4, который планировалось опубликовать ещё в феврале.
Он про разборки Аштара с Жакио и Клэнси, пока Ункенде где-то проветривается.
Видео собрано из футажей упомянутых игр (с авторским текстом, разумеется).

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

+ раз появились "каналы" в ВК, то и в Телеграм не мешает возобновить его работу.
Раньше канал на этой платформе был, но не знал особо как его использовать. Теперь же идеи есть; назначение и особенность конкретной платформы более очевидна. Также, в краткой форме, о происходящем в проекте будет сообщаться и там. Но в отличие от ВК, в Телеграм всего один канал - и для TNU4, и для всего остального касательно 2nd Channel.
И он начат с нуля (открыт новый). Старый останется для архива или вообще будет удалён.
Ссылка на него:
https://t.me/tg_2ndchannel

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

Наконец-то, после ввода айтемов и оружий Ункенде, можно вернуться к работе над Робертом.
До стрима у персонажа появились свои спрайты для многих движений, а также был сделан базовый механизм атак.
В отличие от Ункенде, атаки Роберта бывают двух-трёх типов в зависимости от положения (стойка, сидя, в прыжке и при захвате трубы).
На стриме удалось запрограммировать особые случаи, связанные с использованием атак: корректную анимацию, преждевременную остановку и переходы.
До добавления новых спрайтов дело не дошло: программирование атак вымотало.

Программирование анимации выстрела у Роберта в фанатской игре Team Ninja Unkende 4 (Ninja Gaiden 4) на GameMaker Studio.
Ожидаемо, поставленные и возникшие по ходу эфира задачи (в том числе, недочёты, обнаруженные с момента демонстрации уже готового) оказались довольно сложными. Но по большому счёту, с ними удалось разобраться.

Вновь эфир был посвящён не совсем тому, чему предполагалось: доработку выстрела из пистолета в других положениях Роберта сместила корректировка спрайтов обоих персонажей (т.е., в том числе и Ункенде). Конкретнее, положение рук персонажей при атаках на стене.
Некоторые кадры получились сносно. Другие — не очень; придётся обращаться за помощью к художникам.
Параллельно с рисованием приходилось и программировать. В том числе, исправлять обнаруженные недочёты.

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

Подбор подходящих значений для маски атак Роберта занял практически всё время эфира.
В техническом плане, данная программная часть оказалась не такой простой, как у Ункенде. Пришлось немного поломать голову.
По ходу дела было поправлено и несколько мелких недочётов в механике.
Пусть эту работу и не удалось закончить, но основные вопросы, связанные с ней, решены.

Маски атак Роберта опять перетянули внимание на себя, и работа над ними заняла весь стрим. Но хотя бы теперь она закончена.
Почти...
После стрима вспомнил про несделанные маски атаки ножом....
Похоже, лучше будет всё-таки реализовать специальный дебаг-механизм для замеров, который в будущем ускорит подобный процесс ввода масок.
