Просмотр полной версии : Старая Башня (2023)
DenisGrachev
18.09.2023, 18:15
В день когда звёзды начнут падать на землю откроется дверь Старой Башни, в заброшенных комнатах которой хранятся несметные богатства.
Будь осторожен путник, только храбрые сердцем и сильные духом смогут выбраться из Башни,
Наградой им будет людская слава и карманы полные золота!
https://youtu.be/2R4zWlI6Qlk
Скачать:
https://www.retrosouls.net/vector/!otVector.zip
Исходник:
https://github.com/DenisGrachev/OldTowerVector06c
Супер!
Олегу Никитину отдельный респект, только я не понял задумку с басом в музыке на сиреневых уровнях.
Думал гляну минутку, но так залип, что пришлось все пройти на одном дыхании. Обалденная игра, огромное спасибо всем авторам! Присоединяюсь к ivagor-у, музыка замечательная. На всякий случай уточню, что у меня не возникло проблем с восприятием баса на сиреневых уровнях =)
Картотека: https://caglrc.cc/scalar/ware/938/
- - - Добавлено - - -
После того, как отошел от первого шока, появилась пара придирок:
* БЛК+СБР (F12) ломают игру
* джойстики не поддерживаются
DenisGrachev
19.09.2023, 04:30
Думал гляну минутку, но так залип, что пришлось все пройти на одном дыхании. Обалденная игра, огромное спасибо всем авторам! Присоединяюсь к ivagor-у, музыка замечательная. На всякий случай уточню, что у меня не возникло проблем с восприятием баса на сиреневых уровнях =)
Картотека: https://caglrc.cc/scalar/ware/938/
- - - Добавлено - - -
После того, как отошел от первого шока, появилась пара придирок:
* БЛК+СБР (F12) ломают игру
* джойстики не поддерживаются
поддержку БЛК+СБР добавил, точнее она была, но я в погоне за местом немножко там перемудрил с интро )
По джойстикам может потом добавлю, с ходу не нашёл как в эмулях их настроить. Реального нет геймпада, а эмуляцию джойстика на кнопки клавиатуры не нашёл. Да и таймслот под ретрушечку закончен )
Если что эмуляция джойстика на кнопках клавиатуры на дополнительном цифровом поле (при включенном NumLock) есть в Virtual Vector.
parallelno
19.09.2023, 09:57
Огромнейшее спасибо за игру! Это великолепное дополнение к списку существующих игр!
Из-за нехватки времени не смог пока поиграть, но прям не терпится увидеть как реализован скролинг уровня. :)
Ещё очень хочется услышать как прошло портирование игры на вектор. Что из интересного было и откуда появился интерес это провернуть?!
CityAceE
19.09.2023, 10:25
Даже не верится, что это на Векторе! Очень круто выглядит и звучит! Жаль, что в своё время потенциал этого компьютера не был до конца раскрыт, и что подобные шедевры появляются спустя десятилетия.
DenisGrachev
19.09.2023, 10:56
Если что эмуляция джойстика на кнопках клавиатуры на дополнительном цифровом поле (при включенном NumLock) есть в Virtual Vector.
Спасибы. Мда, непрозрачно. Добавил, а точнее раскомментировал поддержку Джойстика П, вроде в эмуле работает, обновил архив с отдельным ромом )
Огромнейшее спасибо за игру! Это великолепное дополнение к списку существующих игр!
Из-за нехватки времени не смог пока поиграть, но прям не терпится увидеть как реализован скролинг уровня. :)
Ещё очень хочется услышать как прошло портирование игры на вектор. Что из интересного было и откуда появился интерес это провернуть?!
Спасибо, постарались сделать так чтобы не было стыдно за скилл спектрумистов ))
Портирования как такового не было, всё с нуля писалось. В принципе достаточно стандартный современный подход к ретро разработке. Я примерно всегда использую одни и те же инструменты для всех ретро платформ.
VScode с подсветкой синтаксиса, sjasmPlus с ключом --i8080, несколько самописных конвертеров + Tiled для уровней. Обычно делаю движок, а дальше ужё всё в Tiled происходит, прибиндил команду на хоткей, рисуешь уровень или вносишь изменение, жмёшь одну кнопку и через секунду уже все в эмуляторе запущено
Из необычного пожалуй то что пришлось написать плеер Вортекс-ВИ53, но у нас в чате RetroSouls два музыканта и один из них ещё и программист, так что за 3 дня справились с их подсказками + с доками на вортекс.
Больше всего времени потратил на скрол и все сопутствующие проблемы, такого скрола ещё не приходилось писать, обычно это сразу тайлы из тайловой карты, а тут надо прыгать в карту уровня и рисовать определённую линию тайла, плюс ещё скроллинг не постоянный, а может быть с разной скоростью и в разных направлениях. Плюс к этому всему надо и процедуру спрайтов делать чтобы могла начинать рисовать спрайт с любой линии и любой высотой. Короче весело.
Ну и пожалуй соотношение сторон доставило фана, особенно когда герой на боковые стены встал впервые и вытянулся аж жуть, пришлось рисовать спрайты так чтобы они не были растянутые, ну и тайлы боковых шипов тоже.
Интерес появился давно, вообще с моим знакомством с Вектором связанна забавная история. Купили соседу по подъезду комп и ничего там у них не получалось, позвали меня - спектрумиста, мы там попрыгали, загрузили что-то даже, адскок кажется ) Потом он пришел ко мне в гости и я ему паказал Savage, он посмотрел и через неделю у него был уже спектрум ) Ну а я запонил просто этот синий фон с жёлтыми штуками и столбики, по этим признакам нашёл этот ПК уже в наше время, удивился характеристикам и несоответствию им игр и где-то себе сделал пометку что надо попробовать при случае.
CityAceE
19.09.2023, 11:04
Портирования как такового не было, всё с нуля писалось.
Спасибо за подробности! Очень интересно!
Ну и пожалуй соотношение сторон доставило фана
Вектор по этому показателю не так уж выделяется (если искать аналог из околоспеков - Sam Coupe, если не из околоспеков - оригинальный MSX на 60 Гц ТВ), PAR примерно 5:4. Из советских компов особо можно отметить ПК8000 и Львов ПК-01 c PAR примерно 3:2. Из эмуляторов, кстати, правильный PAR штатно поддерживают только Emu80 и v06x, в Emu можно настроить руками.
metamorpho
19.09.2023, 16:11
Прошёл уровней 15 примерно, впечатление - Бодренькая и Позитивная игрушка !!
Безусловно попадает в разряд лучших игр для Вектора :v2_thumb:
Спасибо за такой замечательный вклад в Вектор-06Ц !!
Из того чтобы я добавил (это из разряда того что по ощущениям мне лично не хватало при прохождении):
- вывод номера уровня или вывод прогресса прохождения между уровнями, чтобы ориентироваться сколько осталось до конечной цели
- кнопку отключения/включения музыки (музыка очень бодрая, и это здорово, но иногда хочется погрузится в более спокойный-релаксирующий процесс прохождения только со звуками)
Пара вопросов:
1. Сколько всего уровней в игре ?
2. В теме про плеер Вортекс-ВИ53 написано что он в синтаксисе z80, а сама игра как я понял написана под KP580ВМ80а (sjasmPlus с ключом --i8080).
Немного непонимаю как они потом стыкуются (если возможно объясни вкратце в общих чертах) ?
И можно ли плеер Вортекс-ВИ53 написать используя синтаксис i8080 ?
Black Cat / Era CG
19.09.2023, 16:31
Немного непонимаю как они потом стыкуются (если возможно объясни вкратце в общих чертах) ?
И можно ли плеер Вортекс-ВИ53 написать используя синтаксис i8080 ?Речь о мнемониках, не о коде. Мнемоники Зилоговские.
DenisGrachev
19.09.2023, 17:10
Прошёл уровней 15 примерно, впечатление - Бодренькая и Позитивная игрушка !!
Безусловно попадает в разряд лучших игр для Вектора :v2_thumb:
Спасибо за такой замечательный вклад в Вектор-06Ц !!
Из того чтобы я добавил (это из разряда того что по ощущениям мне лично не хватало при прохождении):
- вывод номера уровня или вывод прогресса прохождения между уровнями, чтобы ориентироваться сколько осталось до конечной цели
- кнопку отключения/включения музыки (музыка очень бодрая, и это здорово, но иногда хочется погрузится в более спокойный-релаксирующий процесс прохождения только со звуками)
Пара вопросов:
1. Сколько всего уровней в игре ?
2. В теме про плеер Вортекс-ВИ53 написано что он в синтаксисе z80, а сама игра как я понял написана под KP580ВМ80а (sjasmPlus с ключом --i8080).
Немного непонимаю как они потом стыкуются (если возможно объясни вкратце в общих чертах) ?
И можно ли плеер Вортекс-ВИ53 написать используя синтаксис i8080 ?
Вывод уровня и MUTE_MUSIC=1 можно будет сделать самому, исходники скоро выложу ) Велкам!
В игре 20 уровней, z80 поддерживает все команды 8080, поэтому можно писать в синтаксисе z80 для 8080, флаг i8080 просто выводит предупреждение если ты увлёкся и написал команду z80 которую неподдерживает 8080.
Плеер можно перенести на 8080 любым конвертером текстов, но я не знаю как там асмы 8080 относятся к sjasm переменным итп
Плеер можно перенести на 8080 любым конвертером текстов
Это вряд ли. Пробовал несколько конвертеров и не нашел ни одного более-менее универсального. Как правило они являются побочными продуктами от решения задачи по конверсии мнемоник какой-то конкретной программы или группы программ и эту задачу они решают, но шаг вправо или влево - и приехали. Из sjasm в tasm у меня получалось переводить только руками. Хотя есть еще извращенный вариант - дизассемблировать бинарник в IDA в мнемониках нужного проца (8080 или z80) имея перед глазами исходник, но это может оказаться не менее затратно по времени, чем перепиливание исходника под требования какого-либо конвертера.
На самом деле для достаточно изолированного и отлаженного модуля, такого как плеер, нет ничего страшного в том, что он собирается другим ассемблером. Чуть-чуть неудобно, но сборка это всегда немного заморочный процесс.
parallelno
19.09.2023, 21:01
DenisGrachev, спасибо за подробности о разработке!
Про хоткей для сборки проекта спасибо! Я знал что вроде так можно но так пока и не прикрутил. Нужно заняться!
Делаешь ли ты препроцессинг спрайтов в рантайме? Какой формат спрайтов? Опиши пожалуйста если не слишком сложно.
Сталкнулся ли ты с недостаточным перформансом? Если да, то как ты это лечил?
Сколько времени у тебя занял этот проект? Планируешь ли ты ещё делать что-то для Вектора?
DenisGrachev
20.09.2023, 06:18
DenisGrachev, спасибо за подробности о разработке!
Про хоткей для сборки проекта спасибо! Я знал что вроде так можно но так пока и не прикрутил. Нужно заняться!
Делаешь ли ты препроцессинг спрайтов в рантайме? Какой формат спрайтов? Опиши пожалуйста если не слишком сложно.
Сталкнулся ли ты с недостаточным перформансом? Если да, то как ты это лечил?
Сколько времени у тебя занял этот проект? Планируешь ли ты ещё делать что-то для Вектора?
Ну у меня всё достаточно архаично местами, есть пару батников, один пересобирает все ресурсы и билдит игру, второй просто билдит без пересборки. Для небольших игрушек которые я делаю вполне хватает, содержание батников тоже вручную пишется, т.к. ресурсов не много. Ну т.е. не автоматизированно всё. Обычно иду по пути наименьшего сопротивления чисто чтобы максимально быстро получить результат )
Игру я сделал недели за две, несколько дней на плеер и потом ждал музыку и помаленьку дорисовывал тайлсеты для разных миров. Но стоит учитывать что уровни у меня почти все были, я конечно все их передизайнил и нарисовал несколько новых, но всё равно быстрее чем обычно. В среднем если делать всё с нуля то месяц стандартный срок за который я не успею выгореть.
Формат спрайтов у меня какой-то простой, уже плохо помню, помню что менял его в середине ) просто линия спрайта/тайла - линейно 4 байта для каждой плоскости подряд, потом вторая линия 4 байта для 4-х плоскостей итд. Масок нет потому что такой дизайн, как и на спеке. Т.е. игра по сути частный случай, когда геймдизайн вписывается в ограничения, впрочем это обычная практика на ретроплатформах )
С недостатком производительности конечно столкнулся, ведь всё надо рисовать в 4 раза больше ) сейчас оглядываясь назад я бы сделал в 8-ми цветах игру, думаю мне бы вполне хватило. При наличии палитры 8 цветов за глаза. Боролся как обычно, стеком и развёрнутыми циклами. Просадки всё равно есть, на уровнях где долго лететь в одном направлении и скорость скрола максимальна. Я чуть уменьшил эти просадки тем что анимация монеток отключается при максимальной скорости скрола и куче спрайтов, но не особо помогло ) Если бы не было этого долбаного хвоста за героем то было бы всё ок. Можно ещё было поизгалятся, но я посчитал что не очень критично это, в 95% случаев игра во фрейм укладывается.
Планирую ли я ещё что-то делать для Вектора это хороший вопрос. И даже не столько про Вектор сколько вообще про другие железки. Эмуляция это конечно весело, но для меня и для многих других разработчиков мотивация что-то делать под платформу прямо пропорциональна наличию реальной железки и фактору ностальгии. У меня было несколько переписок с фанатами разных железок которые агитировали меня что-нибудь написать под их любимую платформу. И когда я сдавался и говорил "ну ок, присылай мне свою Суру/Апогей/Вектор/Ямаху/Львов, поковыряемся" то ответ конечно очевиден ) При том у многих из них по 5 штук лежит, пылится, чтобы потом дети через 30 лет унесли на помойку. Т.е. никто не заинтересован чтобы что-то новое появлялось, всем достаточно старого. Ну или с упоением припаивать что-то там запуская одно и тоже десятки лет. Т.е. для большинства это законченная история застывшая во времени. Покупка Вектора у меня в бюджете на ретрушечку есть, но определённо не сверху списка. Поэтому если коротко то может быть лет через 5 что-то ещё и сделаем )
А в целом - прекрасный у вас компьютер, гибкий и приятный! Keep them alive!
CityAceE
20.09.2023, 07:37
Спасибо за очередные подробности!
Игру я сделал недели за две
:v2_dizzy_aaaaa:Вот это производительность!!!
Для всех остальных, кто зашёл на огонёк посмотреть на очередной шедевр от Дениса, напомню, что на форуме есть отличная статья про Вектор-06Ц (https://zx-pk.ru/content/136-Vektor-06C-sovetski-bog-tcveta-i-zvuka).
отличная статья про Вектор-06Ц.
По моему субъективному мнению статья плохая.
DenisGrachev
20.09.2023, 09:35
Открыл исходники, можно баловаться. Это мой первый опыт с 8080 и Вектором, так что может быть весело местами )
https://github.com/DenisGrachev/OldTowerVector06c
Спасибо за очередные подробности!
:v2_dizzy_aaaaa:Вот это производительность!!!
Для всех остальных, кто зашёл на огонёк посмотреть на очередной шедевр от Дениса, напомню, что на форуме есть отличная статья про Вектор-06Ц (https://zx-pk.ru/content/136-Vektor-06C-sovetski-bog-tcveta-i-zvuka).
Хотел почитать, но ничего не открывается. Сам раздел Главная пустой.
CityAceE
20.09.2023, 11:05
Хотел почитать, но ничего не открывается. Сам раздел Главная пустой.
У всех так??? У меня всё прекрасно открывается.
У всех так??? У меня всё прекрасно открывается.
А я понял, это из за адблока.
Black Cat / Era CG
20.09.2023, 11:36
Спалился :)
DenisGrachev
20.09.2023, 11:41
Обновили игру в связи с фиксами плеера, теперь музыка звучит как задумывалась )
Можно ещё было поизгалятся, но я посчитал что не очень критично это, в 95% случаев игра во фрейм укладывается.
Точно не критично. Я прошел всю игру и никаких задержек не ощутил. Впечатление потрясающее для игры на Векторе.
CodeMaster
20.09.2023, 12:24
Думал гляну минутку, но так залип, что пришлось все пройти на одном дыхании.
Эти бы игры, да 30 лет назад ;-)
После того, как отошел от первого шока, появилась пара придирок:
У меня не совсем придирки, Вектора у меня тогда не было, а сейчас поражает, что возможны были такие приятные цвета на советском компе. Но, возможно маловаты тайлы, возможно их раскраска, но в отличии от похоже по геймплею Binorum'а (кстати, почему-то он не запускается тут (http://caglrc.cc/scalar/ware/910/)) экран выглядит как-то напряжно для глаз :-/ Может скролл получается каким-то "мелкодёрганным".
кстати, почему-то он не запускается тут)
Заходи по https (https://caglrc.cc/scalar/ware/910/), тогда все запускается.
- - - Добавлено - - -
Обновили игру в связи с фиксами плеера, теперь музыка звучит как задумывалась )
В последней версии архива снова один rom. Ты объединил поддержку клавиатуры и джойсика?
теперь музыка звучит как задумывалась )
Другое дело! Насчет неукладываний во фрейм единственное, что вроде заметил - музыка (очень-очень редко) запинается, а так все нормально.
Не знаю, это прикол или тест на сообразительность, но чтобы собрать надо взять salvador и переименовать в zx0. Или откорретировать !parse.bat. Все же у "нового" zx0 ключ -c, а -classic у salvador.
CodeMaster
20.09.2023, 16:04
Заходи по https, тогда все запускается.
Ага, пасиб и за редирект со старых ссылок.
Может скролл получается каким-то "мелкодёрганным".
Да, "проблема" и в скролле и тайлах. Кроме того, что стены не однотонные, а скролл не построчный, да ещё с задержкой... ну, такое. Это отчасти решается бестрым проходжением, тогда не так заметно. Как только призадумался между шагами - вылезает проблема. Но, игра супер, прошёл только 5 уровней, дальше времени нет пока, но висит в закладке браузера до вечера.
А да, спрайты и для меня мелковаты, но у меня зрение плохое, поэтому не хотел писать про это первым. К счастью в эмуляторах можно сделать окно побольше или на полный экран.
parallelno
20.09.2023, 19:06
Поиграл на эмуляторе. Блин, как здоровско и по уму все сделано!!! Скроллинг с изингами, когда камера почти догнала героя, то скроллинг замедляется. За персом трейил чтобы игроку было комфортно трекать героя. частота звука сбора монеток повышается с каждой монетой подстегивая игрока и показывая его прогресс. Даже при том что нет маски у героя, его размер и сккорость компнсируют это. Фон уровня не сплощной черный что скорее нетипично! :D Да и в целом графоний и палитра супер даже по современным меркам пиксельарта. Класс! Ещё! :))))
DenisGrachev
21.09.2023, 04:41
В последней версии архива снова один rom. Ты объединил поддержку клавиатуры и джойсика?
Да, теперь без разделения. Нет никаких подводных камней?
Другое дело! Насчет неукладываний во фрейм единственное, что вроде заметил - музыка (очень-очень редко) запинается, а так все нормально.
Не знаю, это прикол или тест на сообразительность, но чтобы собрать надо взять salvador и переименовать в zx0. Или откорретировать !parse.bat. Все же у "нового" zx0 ключ -c, а -classic у salvador.
Точно, видимо брал батник со старого проекта где все вбиты уровни были и чтобы не править exe переименовал, поправил.
Сильно ли критично рисование низких (<3-4 строк) тайлов или спрайтов? Насколько понимаю, высокие рисуются намного чаще. На оригинальность не претендую, но если убрать из drawSprites постоянные проверки высоты, то начиная с 4 строк будет выигрыш (сравниваю с исходным вариантом, но уже без лишних or a). Ну или можно не задействовать C, тогда выигрыш будет начиная с 3 строк, но величина выигрыша будет чуть меньше. Не разбирался, какая сейчас дискретность высот, но если она четная, то можно еще чуть ускорить за счет змейки по плоскостям.
Послушал music2 в редакторе и получается что-то вроде спотыканий это фича самой композиции, а не гипотетическое неукладывание во фрейм.
Да, теперь без разделения. Нет никаких подводных камней?
Это хорошо, что без разделения. На камни пока не натыкался.
DenisGrachev
24.09.2023, 17:06
Сильно ли критично рисование низких (<3-4 строк) тайлов или спрайтов? Насколько понимаю, высокие рисуются намного чаще. На оригинальность не претендую, но если убрать из drawSprites постоянные проверки высоты, то начиная с 4 строк будет выигрыш (сравниваю с исходным вариантом, но уже без лишних or a). Ну или можно не задействовать C, тогда выигрыш будет начиная с 3 строк, но величина выигрыша будет чуть меньше. Не разбирался, какая сейчас дискретность высот, но если она четная, то можно еще чуть ускорить за счет змейки по плоскостям.
Послушал music2 в редакторе и получается что-то вроде спотыканий это фича самой композиции, а не гипотетическое неукладывание во фрейм.
Ох, я там уже слабо что помню ) Поиграл в ромчик, вроде никаких глюков не заметил. Обновлю чуть попозже, вместе с новым плеером музыки )
Так все же есть положительный эффект и если да, то примерно какой численно? Укладывалось во фрейм в 95% случаев, а если поменять вывод спрайтов/тайлов то получается 96 или 94? Прикидывал, что для грубой оценки можно попробовать засечь такты по брякам при перемещении ГГ от стенки до стенки (со скроллом фона), но мне надо еще выяснять, куда бряки ставить, а у тебя вероятно есть готовый тест.
DenisGrachev
26.09.2023, 05:27
Так все же есть положительный эффект и если да, то примерно какой численно? Укладывалось во фрейм в 95% случаев, а если поменять вывод спрайтов/тайлов то получается 96 или 94? Прикидывал, что для грубой оценки можно попробовать засечь такты по брякам при перемещении ГГ от стенки до стенки (со скроллом фона), но мне надо еще выяснять, куда бряки ставить, а у тебя вероятно есть готовый тест.
Ты явно переоцениваешь мои возможности в профайлинге, я не знаю как это численно узнать ) самые экстримальные моменты когда долго герой летит в вертикальном направлении, когда скорость скрола максимальна, много монет и выстрел пушкой.
DenisGrachev, а не было мысли сделать игру с двумя вариантами музыки: новая ВИ53 и "старая" для AY со спека? При старте автодетектим или даем выбрать игроку, оставляем в памяти один из плееров с комплектной музыкой и вперед. Или AY портил бы ощущение "винтажности"?
DenisGrachev
29.09.2023, 05:47
DenisGrachev, а не было мысли сделать игру с двумя вариантами музыки: новая ВИ53 и "старая" для AY со спека? При старте автодетектим или даем выбрать игроку, оставляем в памяти один из плееров с комплектной музыкой и вперед. Или AY портил бы ощущение "винтажности"?
Хотелось сделать всё под стоковый Вектор, а две музыки это уже квазидиск и АУ. К тому же чтобы не усиливать ощущения вторичности мы решили сделать оригинальную музыку для версии вектора, не каверы-каверов со спектрума. А то тень "синклера" и так кругом на Векторе, недавно мне рассказали про игру Ветка, я включил а там сразу в лицо музыка из Illusion )))
две музыки это уже квазидиск и АУ
Это если при старте выбран или детектирован AY (и кваз), а если ВИ53, то достаточно голого вектора, как сейчас.
Насчет почти полного отсутствия оригинальной музыки для AY на векторе могу только согласиться, но меня больше расстраивает малое количество оригинальной музыки для ВИ53, возможности не были хорошо раскрыты.
DenisGrachev
29.09.2023, 15:33
Это если при старте выбран или детектирован AY (и кваз), а если ВИ53, то достаточно голого вектора, как сейчас.
Насчет почти полного отсутствия оригинальной музыки для AY на векторе могу только согласиться, но меня больше расстраивает малое количество оригинальной музыки для ВИ53, возможности не были хорошо раскрыты.
Да понятно что это дело техники, но музыкант уже убежал на пару проектов вперёд и я тоже, так что пусть всё будет канонично со счётчиком, мне так даже больше нравится чем с ау )
Я тоже в восторге от музыки именно для ВИ53. Очень рад, что авторы сделали такой выбор.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot