Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Как кодируются изометрические уровни с перепадом высот и наклонными поверхностями?

  1. #1
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    835
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    98
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Как кодируются изометрические уровни с перепадом высот и наклонными поверхностями?

    Есть игры, в которых есть сложная изометрия с разным наклоном поверхностей. Это игры:Quazatron, Fairlight 2 и др.



    С Fairlight 2 вообще тёмная история, так как там произвольный угол наклона у поверхностей и с этими поверхностями происходит проверка коллизий.



    Мне интересно, какая структура данных уровней у таких игр?
    ¡Un momento, señor fiscal!


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

  3. #2
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию


    это вообще можно описать картой высот и картой наклонов
    фактически 2д плоскость

  4. #3
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    835
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    98
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    это вообще можно описать картой высот и картой наклонов
    фактически 2д плоскость
    Как это будет выглядеть в асм-файле?

    Я придумал так - у меня уровень кодируется двумя картами. Карты - физическая и графическая.
    Для физической карты элемент массивы размером в байт. Его струкутура:
    0-3 биты - четыре младших бита - блок или наклонная поверхность на высоте от 0 до 16;
    4 бит - 0 - блок, 1- наклонная поверхность;
    5 и 6 биты - тип блока (проходимый/непроходимый,несет урон) или ориентация наклонной поверхности;
    7 бит - 0 - блок или наклонная поверхность это индивидуальный элемент, 1 - это сплошная колонна блоков с верхним блоком или наклонной поверхностью.( В принципе с этим битом можно не делать графическую карту, но усложнится алгоритм вывода)

    Ну и сама физическая карта в ассемблере для примера 5 на 5:
    ;физическая карта 5 на 5 элементов
    .db 0, 0, 0, 0, 0
    .db 0, 1, 1, 1, 1
    .db 0, 1, 2, 2, 1
    .db 0, 1, 1, 1, 1
    .db 0, 0, 0, 0, 0
    ; rulez forever!!!
    По физической карте проверяются коллизии.

    Графическая карта кодируется отдельно как обычная тайловая карта не связанная с физической. Элемент массивы графической карты - байт с номером тайла.
    Последний раз редактировалось Smalovsky; 15.06.2023 в 17:23.
    ¡Un momento, señor fiscal!


  5. #4
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    для наклона можно иметь и 2 карты
    наклон по x
    и наклон по y
    когда надо считать много столкновений

    ну или вмещать в 1 байт
    16 наклонов по x
    16 наклонов по y

    или 256 фиксированных рандомных наклона которых для игры хватит
    вплоть до с разной "шераховатостью"


    чтоб не считать "стены" на основе высоты
    в некоторых случаях
    можно так же хранить и доступные направления движения
    Последний раз редактировалось NEO SPECTRUMAN; 15.06.2023 в 20:22.

  6. #5
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    835
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    98
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    для наклона можно иметь и 2 карты
    наклон по x
    и наклон по y
    когда надо считать много столкновений

    ну или 16 наклонов по x
    16 наклонов по y
    Зачем две карты?
    Для байта четыре младших бита - наклон по x, четыре старших бита -наклон по y. По икс наклон идёт направо и в глубину, для игрека вниз и в глубину. Как интерпретируются разности наклонов - может же получиться что наклон переходит в другой наклон не гладко? Нужен ещё байт высоты добавлять, чтобы указывать с какой высоты идёт наклон.
    Последний раз редактировалось Smalovsky; 15.06.2023 в 17:46.
    ¡Un momento, señor fiscal!


  7. #6
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Зачем две карты?
    если ты захочешь сверху скинууть 600 шариков
    твои попытки сэкономить 30 байт temp буфера
    явно не ускорят процесс...
    тыж на спецтруме

    - - - Добавлено - - -

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    может же получиться что наклон переходит в другой наклон не гладко?
    утя карту рисует человек
    и если "пила" не нужна по игровому ппроцессу
    то ее и не надо рисовать и выдумывать себе проблемы

    впридачу на изичах можнно выщитать
    ибо утя высота ТОЛЬКО для центра столбика

    - - - Добавлено - - -

    да и для каждого типа столбика (в варианте где 256 типов готовых)
    может быть своя карта смещений высот
    можешь хоть впукло/сфероидные столбики делоть
    и шарики будут туда скатыватсо
    если те надо перемещение с точностью больше чем размер столбика
    Последний раз редактировалось NEO SPECTRUMAN; 15.06.2023 в 20:35.

  8. #7
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,486
    Спасибо Благодарностей отдано 
    221
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    С Fairlight 2 вообще тёмная история, так как там произвольный угол наклона у поверхностей и с этими поверхностями происходит проверка коллизий.
    Тут на форуме есть дизасм, я с польского на английский комменты переводил.

    https://zx-pk.ru/threads/26129-grax-...=1#post1071190
    Последний раз редактировалось Bedazzle; 15.06.2023 в 23:02.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  9. #8
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    436
    Спасибо Благодарностей отдано 
    110
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    124 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    С Fairlight 2 вообще тёмная история
    ЕМНИП там специальный редактор Grax использовался, и он вовсе не был прямо изометрическим (первый fairlight тоже, не обязательно приводить второй, выглядел в изометрии конечно, но всякие вещи там сдвигались попиксельно и имели вес какой-то, навроде бочку толкать было сложнее чем "конфету"). Как строился уровень в Fairlight наверное надо спросить его автора шведа Bo Jangeborg, там у него еще была темная история как его кинул издатель игры и почему недоделан Fairlight 2 и он такой косячный и не особо хорошо играбельный.

    Возможно лучше не брать игру эту Fairlight за пример уровней 3d в изометрии.
    (а вообще это офигенная игра, первая ее часть, и ее музыка на спикере ZX компа через Wham - The music box - очень замечательная)
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  10. #9
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,552
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    272
    Спасибо Благодарностей получено 
    229
    Поблагодарили
    181 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    даже для сложной многоуровневой трёхмерности выпуклые многогранники, например
    их немного надо будет на одну комнату, просто потому что комнаты небольшие
    а для блоков регулярной формы проще массивом

    отрисовка - вообще отдельный вопрос, внутренней модели точно соответствовать не обязана
    Прихожу без разрешения, сею смерть и разрушение...

  11. #10
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,775
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    1,179
    Поблагодарили
    775 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    отрисовка - вообще отдельный вопрос
    в фарлайтах всё рисуется из примитивов, потом производится заливка

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 51
    Последнее: 07.05.2019, 17:58
  2. Уровни сложности в Target Renegade
    от krt17 в разделе Игры
    Ответов: 2
    Последнее: 27.10.2012, 22:43
  3. Ответов: 218
    Последнее: 12.04.2011, 18:55
  4. новые уровни к Viaje al Centro de la Tierra
    от goodboy в разделе Игры
    Ответов: 3
    Последнее: 28.12.2007, 15:26
  5. Уровни сложности в Last Battle
    от mishutka в разделе Игры
    Ответов: 3
    Последнее: 02.06.2007, 22:22

Ваши права

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