Выделяю из предыдущей темы про руководство http://gbx.ru/?showtopic=121775 в новую отдельную тему, потому что наверное настало время. К проекту присоединился еще один человек с желанием перекрасить/перерисовать тайлсет.
Т.к. в предыдущей теме было уже написано довольно много, то оставляю ссылку на неё: http://gbx.ru/?showtopic=121775&st=40# Там на самом деле довольно много полезной информации.
Во вторых выделяю самую важную информацию:
Contra Force Advance - это открытый и бесплатный проект-урок по программированию на Game Boy Advance подытоживающий мою серию уроков http://hype.retroscene.org/blog/872.html. Contra Force Advace ставит своей целью перенос игры Contra Force с NES с целью создания новых уровней и улучшения графики (а возможно и геймплея) на Game Boy Advance.
Файл с последним сохраненным состоянием как уроков так и CFA (лежит в папке cf-adv) включая все исходные материалы и скомпилированные образы для GBA находится всегда тут: https://yadi.sk/d/djA-upj1-oc1hA
В файле !!!readme!!! находится краткая информация для тех кто хочет изменить ресурсы проекта и перекомпилировать его получив модифицированный образ.
Если возникают вопросы как сделать то или иное - всегда отвечу, можно задавать сюда.
За предоставление замечательного трека благодарю DarkMan007: http://darkman007.untergrund.net/covers.php
На форуме gamedev.ru недавно к проекту присоединился пользователь с ником Warentino, некоторые мои ответы на его вопросы тоже могут быть полезны, поэтому привожу ссылку: https://gamedev.ru/flame/forum/?id=227447&page=5#m71
Добавлено спустя 3 минуты:
Итак, на форуме gamedev.ru к проекту присоединился пользователь с ником Warentino с желанием перекрасить/перерисовать тайлсет (пока) персонажей. Первые его пробы пера выглядят на данный момент вот так:
для сравнения так выглядит CFA с оригинальным тайлсетом:
Выглядит офигенно
С учётом моей безумной любви к GBA, буду ждать обновлений и новостей по теме!
ребята, вы молодцы. если завершите полноценный порт в играбельном виде, обязуюсь занести на пивко)
Круто! Так держать!
Спасибо за отзывы.
Чтобы удобнее было работать с модификацией тайлсетов сделал возможность переключать тайлсеты спрайтов в игре на лету - сейчас альтернативный тайлсет спрайтов должен иметь в ресурсах имя mss-01X.bmp, а в игре они переключаются кнопкой SELECT:
(архив с проектом тоже обновлён)
Доделываю гранатчиков, небольшая грантаная вакханалия:
Игра действительно крутая. Плагиат не поддерживаю, а в данном случае вообще кощунство. ИМХО
Черт. Так захотелось Контры!
Ребят вы молодцы! Нереально круто смотрится, аж прям носталжи по детству накатила
Поработал над проектом.
Переписал существенно систему сборки - теперь все ресурсы, включая исходники, разложены по подпапкам, временные файлы при сборке валятся в out/, так что сборка стала приятнее и опрятнее.
Ввёл концепцию переходных экранов и смерти - теперь игра просит вначале PRESS START... и можно умереть. Анимация смерти пока упрощенная, но уже есть.
Более интересно - ввёл актора "Spawner", который в стиле старой доброй Contra Force порождает на своём месте актора с введенными в TileEd свойствами.
То есть в TileEd мы делаем актора с типом "spawner" (всё маленькими), вбиваем ему все свойства как обычному актору, кроме того, что тип атора вбиваем в свойство spawnType - например как сейчас это "grenader".
Такой спавнер будет порождать актора с введенными в TileEd свойствами на своём месте всякий раз когда попадает на экран.
В оригинальной Contra Force такое поведение "респавна" конечно было вызвано банальной нехватой ОЗУ на консоли - информация о персонажах постоянно считывалась из ПЗУ катриджа, так что они всегда выпрыгивали из-за границ экрана как новенькие.
Здесь же все акторы хранятся в глобальном динамичном списке и чтобы добиться аналогичного аутентичного поведения потребовалось вот вводить актора "породитель (spawner)".
Так что в CFA возможны как спавнящиеся акторы в духе оригинала, так и глобальные акторы умирающие на карте один и раз навсегда.
Архивы как всегда обновлены, так что можно наглядно посмотреть в ресурсах как это делается.
Демонстрация (все акторы глобальны кроме самого правого, который порождается спавнером):
Внедрил коллизии, касания и платформы. Обваливающиеся, ездящие и комбинации.
В редакторе TileEd платформы должны иметь тип "platform", в свойстве liveCount можно указать число тиков (1/60 секунды) через которое платформа обвалится если на неё встанет игрок. Если не указано или равно нулю, то платформа не обваливается.
Если задано ненулевое свойство stepCount, то платформа будет ездить такое число тиков вперед, а потом назад в бесконечном цикле со скоростями по вертикали и горизонтали указанными в свойствах vx и vy соответственно. Скорости указываются в 1/256 частях пикселя за тик. То есть если в vy=0, vx=16 а в stepCount=1024, то платформа будет ехать со скоростью 60*16/256=3,75 пикселей в секунду 16*1024/256=64 пикселя вправо, а потом столько же влево и так в цикле. Положительные значения скоростей начинают перемещение вправо или вниз, а отрицательные - влево или вверх, смотря какая ось.
С перерисовкой тайлов идея провалилась?
Итак, Warentino с gamedev.ru доделал альтернативный тайлсет и как по мне так он весьма хорош:
(на ютубе лучше смотреть развернув окно)
Как обычно файлы проекта на яндекс-диске обновлены, так что можно полюбоваться вживую. Тайлсеты сейчас переключаются кнопкой SELECT.
Официально заявляю о прекращении работы над проектом.
Он так и остаётся полным open-source как материал для моего курса по введению по программированию на консоли Game Boy Advance - лицензия как бы BSD, так что любой может брать и сохраняя авторство и файлы лицензии курочить как душе угодно.
Можно обращаться ко мне за пояснениями даже - буду рад помочь кому-то. Если со временем контакты тут потеряются, то можно писать по этому поводу на моюl aa_dav соб-ка mail.ru
Сам, однако, перестаю проект развивать, потому что оглянулся на проделанное и понял, что имеет смысл копнуть в сторону коммерциализации. Но это будет уже другая история.
Хотелось бы, чтобы кто-нибудь "перехватил" проект, все-таки, первоначальные версии существуют и код оставили.
Понаблюдаю за темкой немного.
Пока ковыряюсь с переносом движка на Windows просто мимоходом запилил конвертор карт из картинок с сайта http://www.vgmaps.com/Atlas/NES/ в TileEd Map Editor (который использую).
Просто ради эксперимента, имхо, получилось забавно (сюрприз на 0:40):
Если кто-то разочарован тем, что не будет прямого порта на GBA, то может всё-таки обрадую - я собираюсь запилить самостоятельную игру "по мотивам" на стиме. Если получится, то небесплатно, конечно, но все мы знаем что есть "иные релизы" с коими я ничего не могу сделать. Так что возможно нет поводов для огорчений.
В рамках небольшого эксперимента решил закачать утилитой в движок третий уровень оригинальной игры и добавить в него параллакс: