Вход

Просмотр полной версии : Zak McDrucken Saves The Chickens



DenisGrachev
14.09.2025, 18:28
Небольшая игрушка под 48кб спек которая родилась в результате экспериментов по быстрым тайлам )

Zak McDrucken Saves The Chickens!


https://youtu.be/KbnCJ5zEL60?si=eMXbkk2PPGbJMDhs

Скачать по ссылке или во вложении:
https://retrosouls.itch.io/zkmcdstc-zx-spectrum

82796

krt17
14.09.2025, 19:42
Отлично! Не оторваться!
По быстрому выводу сравнил со своим кодом 17 года, можно использовать DE под самые распространенные данные, экономия по 4 такта все таки. В очередной раз показал всем неумехам (ну мне точно) что у большинства эксперименты, а у Дениса игры!

DenisGrachev
15.09.2025, 05:33
Отлично! Не оторваться!
По быстрому выводу сравнил со своим кодом 17 года, можно использовать DE под самые распространенные данные, экономия по 4 такта все таки. В очередной раз показал всем неумехам (ну мне точно) что у большинства эксперименты, а у Дениса игры!

Про DE это отлично, я почему-то эту мысль отбросил, подумал что тогда размеры "кодотайликов" будет разные из-за того что ld (hl),e один байт, а ld(hl),т два, но сейчас оглядываясь назад это вроде не так критично. Т.е. есть места конечно где я просто пишу TILE_LASER*Размер тайлокода, но оно как бы не страшно, основное всё равно через LUT табличку ) Вообще когда всё написал вспомнил что обсуждали нечто подобное с автором Automated Cave Explorer, залез в дебагер и там один в один почти код ) Только бипер по время рендера посложнее, у меня пока всё очень примитивно.

krt17
15.09.2025, 11:01
https://i.imgur.com/KhEBlYq.png
и вот такие моменты я генерил как инк=папер, я правда не расчитывал на биперную музыку в рендере. все это конечно простые и понятные моменты. но иногда глаз мылится. а тайл экран весь распакован или с 2 экрана с плавающим указателем?

DenisGrachev
15.09.2025, 12:09
https://i.imgur.com/KhEBlYq.png
и вот такие моменты я генерил как инк=папер, я правда не расчитывал на биперную музыку в рендере. все это конечно простые и понятные моменты. но иногда глаз мылится. а тайл экран весь распакован или с 2 экрана с плавающим указателем?

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

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

krt17
15.09.2025, 18:08
В целом конечно бы всё статьёй какой-нибудь оформить, может кому в будущем пригодится, но кому это надо )
статья это прикольно, но это беллетристика, так то в паре предложений все описал уже, все понятно.

svofski
16.09.2025, 17:12
может кому в будущем пригодится, но кому это надо
Ну читатель то на все найдется, даже на такое =)

Bedazzle
16.09.2025, 19:53
В целом конечно бы всё статьёй какой-нибудь оформить, может кому в будущем пригодится, но кому это надо )

Т.е. как это "не надо"?! Очень даже интересно!

CityAceE
16.09.2025, 20:00
В целом конечно бы всё статьёй какой-нибудь оформить
Супер! Очень полезна будет такая статья! Во всяком случае для меня точно.

Dexus
17.09.2025, 06:47
Это все спрайты тайлов хранятся в 3х кратных размерах, потому что эмбедятся в код? Наверно расточительно выходит?

ALS
17.09.2025, 10:03
Название напомнило порнуху из 90-х.
Зак МакДрюкен спасает цыпочек :)

Oleg N. Cher
17.09.2025, 14:57
Отличная игра получилась, Денис! Не рядовая. Респект также Олегу Никитину.
Приятно выглядит, приятно играется. Коротковата, ну да ладно...
Есть ли вероятность появления Zak McDrucken Saves The Chickens на других платформах (NES, MSX)?

DenisGrachev
17.09.2025, 16:07
Это все спрайты тайлов хранятся в 3х кратных размерах, потому что эмбедятся в код? Наверно расточительно выходит?

Да на самом деле вполне ок, даже для 48к. Для 256 тайлов 7.5кб, если заюзать пару de под самые частые байтики то на моих тайлах получилось 6.3кб и самый частые байты 255 и 0 %) Но как я уже говорил изначально эксперимент был для мультиколорной игры, а там надо чтобы всё по тактам было предсказуемо т.к. часто в верхнем бордюре всё происходит.



Есть ли вероятность появления Zak McDrucken Saves The Chickens на других платформах (NES, MSX)?

Вполне возможно, посмотрим )

DenisGrachev
19.09.2025, 09:03
Чуть написал:

https://hype.retroscene.org/blog/dev/1116.html

ivagor
19.09.2025, 11:14
Не совсем соглашусь про вектор. Для двухцветных тайлов 8x8 вывод стеком (https://zx-pk.ru/threads/30001-spetsialist-grafika.html?p=1218481&viewfull=1#post1218481) 184 такта, вариант с ret (https://zx-pk.ru/threads/30001-spetsialist-grafika.html?p=1218501&viewfull=1#post1218501) 180 тактов. Но конечно тут есть и другие различия, в стековом варианте 64 тайла, в нестековом ограничивает только объем памяти. И карта тайлов в первом случае по байту, во втором - по 2.
А с увеличением размера тайлов стек начинает выигрывать, тут не спорю, сам использовал lxi/mvi + push в болдер++.

DenisGrachev
19.09.2025, 15:56
Не совсем соглашусь про вектор. Для двухцветных тайлов 8x8 вывод стеком (https://zx-pk.ru/threads/30001-spetsialist-grafika.html?p=1218481&viewfull=1#post1218481) 184 такта, вариант с ret (https://zx-pk.ru/threads/30001-spetsialist-grafika.html?p=1218501&viewfull=1#post1218501) 180 тактов. Но конечно тут есть и другие различия, в стековом варианте 64 тайла, в нестековом ограничивает только объем памяти. И карта тайлов в первом случае по байту, во втором - по 2.
А с увеличением размера тайлов стек начинает выигрывать, тут не спорю, сам использовал lxi/mvi + push в болдер++.

Да ну какой оффтоп, всё пересекается ) Ну я не то чтобы глубоко копал, оценивал на глаз по бордюру. Вообще хочется что-то такое поскролить потайлово на Вектор но у него как будто всё как назло против. На всё по прикидкам получается в 4 кадра и 4 цвета, примерно. Думал может через строчку рисовать, раз у нас 256 в высоту может норм будет, правда толком не знаю как оно на тв будет выглядеть, сплющивается ли изображение по вертикали или нет. У меня вектор через gbs. Да и всё равно через строчку это только если в демы. Короче пока в процессе, но что-нибудь придумается!

ivagor
19.09.2025, 16:15
Если речь про 4 цвета тогда понятно, там стековый уже впереди даже на 8x8.
У вектора в режиме 256x256 PAR примерно 5:4, т.е. точка на 25% больше в ширину, чем в высоту. Из эмуляторов в Emu80 по умолчанию так.