User Tag List

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

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,921
    Спасибо Благодарностей отдано 
    363
    Спасибо Благодарностей получено 
    327
    Поблагодарили
    250 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Топик кажется про то, как это сделано.
    Как пример, Scuba Dive - https://zx-pk.ru/threads/34512-revers-scuba-dive.html

    Лабиринт игры определяется в виде "свёртки": таблица AC5D ("мини-карта") содержит 32x32 = 256 индексов блоков, блоки по адресу A4DD состоят из 8x8 тайлов, тайлы по адресу 9134 это 8x8 ч/б пикселов. Итого, весь лабиринт это 256x256 тайлов = 2048x2048 пикселов. На экране мы всегда видим только 24x24 тайлов из этой карты (3x3 блока).
    Карта, строится процедурно, изменением байтов в таблице AC5D. Глубина карты зависит от уровня игры (1..4).

    Тут получается, что 32x32 = 256 байт описывают огромную карту в ~100 экранов.
    32*32=1024 не?
    С уважением,
    Jerri / Red Triangle.

    Этот пользователь поблагодарил jerri за это полезное сообщение:

    nzeemin(27.12.2022)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,058
    Спасибо Благодарностей отдано 
    1,159
    Спасибо Благодарностей получено 
    1,480
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Hydro Fool
    https://nzeemin.github.io/skoolkit-g...asm.html#27862
    200+ комнат
    Используются описатели комнат переменной длины.
    Один байт на длину описателя.
    Один байт на тип комнаты (16 типов) и цвет.
    Тип комнаты - это тоже описатель переменной длины.
    Основная часть описателя - предметы и их расположение в комнате.

    - - - Updated - - -

    Commando - вертикальный скроллер, прокрутка вниз
    https://nzeemin.github.io/skoolkit-g...asm.html#37430
    Уровень это последовательность объектов, которые появляются по мере движения вперёд.
    Задаётся только положение объектов рельефа, но не врагов, враги спавнятся сами. Например, если стоит камень определённого вида, то за ним появится враг.

    - - - Updated - - -

    Bruce Lee под Atari 8-bit и Commodore 64
    https://forums.atariage.com/topic/28...omment=4236353
    Тайлы размером 4x8 (растянуты до 8x16 на экране), набор тайлов уровня закодирован через RLE для компактности.

    Этот пользователь поблагодарил nzeemin за это полезное сообщение:

    vlad-kras(26.12.2022)

  4. #3

    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,831
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    247
    Поблагодарили
    106 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Насколько я помню на форуме уже дизассмили этого самого Саботёра - можно спросить того, кто это делал как оно там сделано.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  5. #4

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,058
    Спасибо Благодарностей отдано 
    1,159
    Спасибо Благодарностей получено 
    1,480
    Поблагодарили
    528 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Насколько я помню на форуме уже дизассмили этого самого Саботёра - можно спросить того, кто это делал как оно там сделано.
    Alex Rider может расскажет, вот тут его тема была - https://zx-pk.ru/threads/24604-saboteur-2-remake.html

  6. #5

    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,831
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    247
    Поблагодарили
    106 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    @Alex Rider, рассказывайте про формат карты в Саботере 2
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  7. #6

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,941
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    48 сообщений
    Mentioned
    5 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.

    Эти 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)

  8. #7

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,823
    Спасибо Благодарностей отдано 
    276
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #8

    Регистрация
    14.11.2011
    Адрес
    Волковыск, Беларусь
    Сообщений
    52
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post

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

    Эти 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. #9

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,941
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    48 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #10

    Регистрация
    14.11.2011
    Адрес
    Волковыск, Беларусь
    Сообщений
    52
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Интересная работа. А цель какая?
    Целей было несколько:
    * понять не осталось ли каких-то скрытых возможностей в версии 128К.[хотя это вряд ли]
    * изучать ассемблер не только по доступным мне книгам, но и на практике на основе знакомой игры с несложной графикой, анимацией и кодом.
    * затем, разобравшись в структуре кода, перегнать всё в SkoolKit т.к. удобно видеть графику и разделенный на логические блоки код.
    * создать множество учебных примеров, постепенно подключая всё новые и новые блоки в EmuzWin(где-то временно убирая/меняя код) по такой схеме, чтобы в конце выйти на всю игру:


    просто текст в Главном меню стандартным шрифтом;
    всё предыдущее + игровой шрифт;
    ... + картинка Ниндзя в Главном меню;
    ... + таблица High Scores;
    ... + выбор управления;
    ... + выбор миссий;
    ... + AY;
    ... + нижняя рамка;
    ... + объекты фона и листать их клавишами;
    ... + построить комнаты с объектами фона и листать их;
    ... + карту игрового пространства и перемещаться переключая их;
    ... + добавить тайлы Ниндзя, его движение по комнатам;
    ... + работа лифтов, консолей, мотоцикла;
    ... + добавить ящики с оружием и возможность использовать предметы;
    ... + добавить врагов Ниндзя;
    ... + включить нанесение урона и подсчёт очков, таймер;
    ... + проверка условия выполнения миссий;
    ... + убрать некоторые ошибки.


    И если бы всё получилось, то можно было бы оформить гайд "Как смогли написать игру Saboteur2 на ассемблере".
    N.B. как смогли, так и написали


    Этот проект старый и долгий, с большими перерывами и окончательно заброшенный ещё где-то в 2018 году. Что-то получилось, что-то нет. А может вы делали комментарии, когда в свою очередь разбирали код. Было бы интересно сравнить и посмотреть свои пробелы и ошибки, т.к. не все части кода до конца смог понять зачем были нужны и как работают.

Страница 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

Ваши права

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