User Tag List

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 37

Тема: Саботер 2 и его карта

  1. #21
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,913
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    32 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Рассказываю, пока по памяти, без подробностей, которые надо доставать из кода. Если надо будет, гляну позже. Краткий ответ на вопрос: скрипты.
    Все игровое пространство разбито на комнаты (экраны), каждый имеет свой однобайтовый номер (тип, идетификатор). Итого, имеем матрицу номеров комнат.
    Тип комнаты задает ее отрисовку (почти всю, что-то иногда дорисовывается логикой). Некоторые комнаты повтоярются, особенно в подземелье.
    Есть 256 спрайтов фона и 256 спрайтов переднего плана, они состоят из тайлов.
    Комнаты бывают 2 типов: надземные и поздемные.
    Надземная комната - это скрипт из команд в духе "положи спрайт фона N в X,Y", "нарисуй горизонтальную линию из тайлов N переднего плана из X,Y длины L", "заполни тайлом фона N прямоугольник от X,Y размером W,H".
    Типов комнат подземелья мало того, что не густо, так там еще, насколько я помню, "двойная" спрайтовая система: комнаты разбиваются на 6 блоков (3x2 блока), комната кодируется 6 байтами - номерами блоков, а сами блоки задаются теми же скриптами. Иногда в комнатах скриптами дорисовываются какие-нить лампы, например.
    Всякие интерактивные и меняющиеся объекты задаются логикой, разбросанной в игре примерно везде - пихаются в тайломапы напрямую и отрисовываюстся в следующем цикле отрисовки. В моей версии чуть более собранно в кучу для оптимизации.
    Если интересны подробности - задавайте вопросы, но ответить могу сильно не сразу.
    Последний раз редактировалось Alex Rider; 27.12.2022 в 13:06.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  2. Эти 7 пользователя(ей) поблагодарили Alex Rider за это полезное сообщение:

    Barmaley_m (01.01.2023), Bedazzle (27.12.2022), mastermind (29.12.2022), nzeemin (27.12.2022), Rus (27.12.2022), vlad-kras (27.12.2022), Xela (27.12.2022)

  3. #22
    Member
    Регистрация
    06.11.2020
    Адрес
    г. Санкт-Петербург
    Сообщений
    144
    Спасибо Благодарностей отдано 
    72
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ultra Посмотреть сообщение
    Cтранно, а мне показалось, что люди кроме Элиты и Эксолона других лабиринтов и карт как будто и не видели. Да и уже давно разжевано как в той же Элите все сделано.
    Не только саботер, но в каких еще играх под 48К еще хотя бы 3 сотни экранов без дозагрузок? Рассматриваю именно карты в виде комнат, а не просто "гигантский мир", причем комнаты которые отображаются сбоку и строятся из разных спрайтов. Поэтому элита тут сразу мимо. Xecutor или Eagles Nest мимо, потому что вроде карта состоит из явных спрайтов, но это скроллер, а не комнаты. Просто размер при скроле не очень просто рассчитать, а с комнатами считать легко. И Хоббит тоже мимо - у него эраны не из спрайтов, а из картинок, а вот Диззик с комнатами из спрайтов. Формально под комнаты заточена Lords of Midnight и комнат в ней очень много, но как и в Хоббите тоже картинки, а не спрайты.

    Почему саботер 2 и эксолон ? Ну просто что пришло в голову, многие их знают. Эксолон тоже не ахти какие насыщенные комнаты - несколько видов грунта, десяток-другой видов объектов, взаимодействующих с игроком и десяток видов врагов. Но вместилось только 100 комнат. Для первого саботера около сотни комнат, а для второго казалось что почти тысяча с картой 32х32 комнаты, но потом пригляделся и комнат оказалось меньше. Вот и неясно почему такой большой разрыв по числу комнат для 2го саботера стал возможен.

    Если есть желание померяться размерами карт, то можно в отдельной теме. А в этой теме хочется прояснить как хранятся и строятся комнаты в играх с поэкранным отображением. Не только для саботера, но почему бы не на его примере? Ведь если для каждой комнаты описание хранить в виде элементарных блоков по 8х8 точек, то прикидывая в среднем заполненность экрана на 2/3, тогда без сжатия это занимает 512 байт или 2 комнаты на килобайт.

  4. #23
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,490
    Спасибо Благодарностей отдано 
    226
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    116 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vlad-kras Посмотреть сообщение
    Ведь если для каждой комнаты описание хранить в виде элементарных блоков по 8х8 точек, то прикидывая в среднем заполненность экрана на 2/3, тогда без сжатия это занимает 512 байт или 2 комнаты на килобайт.
    Уже выше упомянули, что не на каждые 8х8 точек описание идёт, а объектами, которые могут собираться в ещё более крупные объекты.

    Без привязки к какой-либо игре: скажем, есть табличка-описатель спрайтов 16х16 точек, где зашита сама картинка.
    И есть табличка объектов, где описаны параметры объекта (враг, элемент дизайна, предмет), где из блоков 16х16 составляется картинка. Например, стол рисуется из 3х2 таких блоков, а стул из 1х2.
    Тогда чтобы поместить объект на карту, нужно указать координаты (номер комнаты, Х, У) и номер объекта. Для стола и двух стульев хватит 12 байт (3 байта на координаты и 1 на объект). Но если объединить стол и два стула в более крупный объект, который будет использоваться несколько раз, то внутри карты будет потрачено всего 4 байта.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  5. #24
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,804
    Спасибо Благодарностей отдано 
    253
    Спасибо Благодарностей получено 
    114
    Поблагодарили
    88 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Когда-то был разговор про Саботёра 2 и ракету - я даже делал снапку где подправил экран с ракетой так, чтоб к ней можно было пройти.
    Действительно, там это всё строится типа скриптов и надпись NINA на ракете например пришлось выкладывать по букве, а вот пробить проход к ней - всего-лишь "пустой" прямоугольник шлёпнуть в стену (нужный размер указав). Где-то на форуме вроде выкладывал файл...

  6. #25
    Member
    Регистрация
    06.11.2020
    Адрес
    г. Санкт-Петербург
    Сообщений
    144
    Спасибо Благодарностей отдано 
    72
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    есть табличка-описатель спрайтов 16х16 точек, где зашита сама картинка.
    И есть табличка объектов, где описаны параметры объекта (враг, элемент дизайна, предмет), где из блоков 16х16 составляется картинка.
    Здесь термины спрайт 16х16 и блок 16х16 - одно и то же или между ними есть разница?


    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Уже выше упомянули, что не на каждые 8х8 точек описание идёт, а объектами, которые могут собираться в ещё более крупные объекты.
    Да, Гудбой уже объяснил.

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Тогда чтобы поместить объект на карту, нужно указать координаты (номер комнаты, Х, У) и номер объекта. Для стола и двух стульев хватит 12 байт (3 байта на координаты и 1 на объект).
    Вроде система Гудбоя подразумевает, что есть комната с известным номером и в ней заполняются объекты. Тогда как раз для каждого объекта в комнате тратится 2 байта для координат и 1 для номера объекта. Т.е. номер комнаты лишний?


    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Но если объединить стол и два стула в более крупный объект...
    А получится ли объединить, если стул будет как выше, размером 1х2, а вот стол 3х3 - т.е. стол выше стула и при их составлении вместе получится вырезанный уголок, ведь объект перестанет быть прямоугольным?

  7. #26
    Master Аватар для Xela
    Регистрация
    03.12.2021
    Адрес
    г. Санкт-Петербург
    Сообщений
    587
    Спасибо Благодарностей отдано 
    429
    Спасибо Благодарностей получено 
    168
    Поблагодарили
    120 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vlad-kras Посмотреть сообщение
    Lords of Midnight и комнат в ней очень много, но как и в Хоббите тоже картинки, а не спрайты.
    эти "картинки" состоят из спрайтов:

    https://maps.speccy.cz/map.php?id=Lo...0&part=0&ath=0

    хранить такое количество готовых экранов в 48к невозможно никаким сжатием

  8. #27
    Member Аватар для yashcher
    Регистрация
    14.11.2011
    Адрес
    Волковыск, Беларусь
    Сообщений
    49
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post

    Дело было вечером, делать было нечего...
    https://disk.yandex.ru/d/gEbTnSopXnLggw

  9. Эти 6 пользователя(ей) поблагодарили yashcher за это полезное сообщение:

    Bedazzle (28.12.2022), jerri (28.12.2022), mastermind (29.12.2022), nzeemin (28.12.2022), Rus (29.12.2022), SoftLight (27.12.2022)

  10. #28
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,913
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    32 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yashcher Посмотреть сообщение
    Дело было вечером, делать было нечего...
    Интересная работа. А цель какая?
    PS С бесконечной перфолентой все чуть сложнее, я чуть поломал себе мозг пытаясь понять почему оно так работает. Там еще важно, что в ящике 5 предметов, и что взятие перфоленты обрабатывается отдельно от оружия.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  11. #29
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,490
    Спасибо Благодарностей отдано 
    226
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    116 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vlad-kras Посмотреть сообщение
    Вроде система Гудбоя подразумевает, что есть комната с известным номером и в ней заполняются объекты. Тогда как раз для каждого объекта в комнате тратится 2 байта для координат и 1 для номера объекта. Т.е. номер комнаты лишний?
    В каждой игре по-своему может быть. Например так, что координаты не две, а всего одна в диапазоне 1-192. А может быть так, что и комнат как таковых нет, и всё координатами.

    Цитата Сообщение от vlad-kras Посмотреть сообщение
    А получится ли объединить, если стул будет как выше, размером 1х2, а вот стол 3х3
    Да хоть десять мелких объектов с разным размером можно объединить в крупный объект. Движок определяет, что нужно отрисовать составной объект в координатах Х,У. И отрисовывает составные части, каждую по отдельности.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  12. #30
    Master Аватар для ultra
    Регистрация
    04.11.2007
    Адрес
    Москва
    Сообщений
    529
    Спасибо Благодарностей отдано 
    77
    Спасибо Благодарностей получено 
    224
    Поблагодарили
    150 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Подборочка карт 928 мб кстати.

    Цитата Сообщение от vlad-kras Посмотреть сообщение
    Рассматриваю именно карты в виде комнат
    Есть же Rough Justice, Switchblade, Rainbow Islands, Viiaje, Rick Dangerous, Espada Sagrada, не говоря уж про новые Ioana итп. Прочиталось как "Саботёр такая уникальная, как они этого добились, немного похожа только (линейная, почему-то) Эксолон?" Учитывая, что темные участки "подземелий" по сути пустые и одинаковые и вовсе выбор малопонятен.

    Цитата Сообщение от vlad-kras Посмотреть сообщение
    А в этой теме хочется прояснить как хранятся и строятся комнаты
    От многих знаний многия печали.. )

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 8
    Последнее: 07.12.2019, 11:53
  2. ЮТ-88 карта портов I/O
    от palsw в разделе ЮТ-88
    Ответов: 15
    Последнее: 07.03.2015, 18:06
  3. Танкодром (карта)
    от copperfeet в разделе Игры
    Ответов: 0
    Последнее: 09.01.2009, 11:47

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •