User Tag List

Показано с 251 по 260 из 638

Тема: Dizzy VIII - Wonderful Dizzy (2020) - релиз состоялся!

Древовидный режим

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

    Регистрация
    17.01.2005
    Адрес
    Tallinn
    Сообщений
    2,517
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    86
    Поблагодарили
    39 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    Сколько в игре графики, музыки, текстов.
    Могу рассказать немного о графике.
    Вся карта делится на комнаты, комнат ровно 80, включая секретную. Специально сходил пересчитал сейчас - точную цифру до этого сам не имел, потому что в процессе сборки было непонятно, влезут ли второстепенные комнаты (как в лесу, например, крайние верхние) в память.

    Каждая комната по графике строится из заднего слоя, переднего слоя и слоя воды. Есть и другие слои, про них Евгений лучше расскажет.
    Слой воды - непосредственно водные участки, их может быть несколько и на разной высоте.

    Передний слой - для декораций вроде перил, травы, колонн. Строится из спрайтов, имеет фиксированные размер спрайта 2*1 или 2*2. Спрайт может использовать ручную маску (быстрее, но маска ест место) или автомаску (места в два раза меньше, но на медленных машинах на экран много не поставишь, особенно если еще птички какие-нибудь летают).

    Задний слой составляется из спрайтов произвольного размера. Каждый спрайт можно отразить по вертикали и горизонтали, а также перекрасить целиком в фиксированные ink/paper. Вот этот функционал позволил реально обогатить графику во многих местах, правда, ценой большего расхода памяти. Спрайты фона можно накладывать по OR.

    Вся графика для слоёв лежит в одной монохромной области 16кб, 2048 пикселей по ширине и 64 пикселя по высоте. Мы её называли дамп, мегатекстура, мегаспрайт, спрайтмап.
    Спрайты и переднего и заднего слоя не имеют отдельной таблицы в памяти с определением их размеров. Вместо этого, каждая комната - это и есть список спрайтов из спрайтмапа. Это опять же позволяет очень богато использовать разные комбинации и нарезать спрайты под любую комнату любого размера из любого участка спрайтмапа. То есть, комната строится не из классических спрайтов, а скорее описывает набор проекций и их координат.
    Отсюда ограничения:
    1. Мы не можем на лету распаковывать графику, потому что в теории любая комната может дернуть кусок графики из любого места в спрайтмапе. И, что характерно, это довольно широко использовано.
    2. Мы не можем ни байта фоновой графики добавить поверх этих 16 килобайт. В них должно влезть вообще всё. В принципе, мы регулярно примерно прикидывали, сколько можно еще потратить на каждый участок игры, и всё хорошо влезло, но больше тематических локаций уже не вбить было бы потери разнообразия графики у имеющихся.
    3. Чем мельче проекции-спрайты - тем больше будет весить комната. Чем крупнее куски, соответственно, тем их меньше. Из-за этого в спрайтмапе было выгодно размещать часто используемые куски рядом, но это часто очень неудобно, потому что забить надо все-все дыры.
    4. В спрайтмапе также лежит шрифт игры, и из шрифта все неиспользованные символы уже выкинуты. Отсюда сложность с русификацией, потому что в русском алфавите букв больше, а места для них уже нет. Какое-то решение для этого придумаем - откажемся от редкого знака препинания, объединим похожие визуально буквы и цифры, например.
    5. В спрайтмапе лежат все предметы, их 51 штука, рисовал почти все Oleg Origin. Я не знаю, сколько у него времени на них пошло, но, если бы рисовал я, у меня в среднем вышло бы по полтора часа на предмет (из практики CKD), то есть получилось бы почти две рабочих недели ТОЛЬКО на предметы. Хотя, казалось бы, ну что там рисовать, но арифметика неумолима

    Аттрибуты хранятся отдельно от спрайтмапа, но тоже имеют аналогичную структуру и мапятся вместе с проекцией на экран.

    Анимации хранятся в памяти отдельно от спрайтмапа.
    Комнаты тоже упакованы, из-за этого есть какие-то ограничения по наложению спрайтов.

    Цитата Сообщение от newart Посмотреть сообщение
    Ну или еще один пример, Super Mario от Gogin. В 2001-м он уперся и в скорость и в память. А спустя 17 лет переписал все с нуля,
    реализовав в игре то что в 2001 казалось не возможным.
    Здесь тоже очень многое улучшено по сравнению с CKD Remake. Количество текстов огромное, я не помню, сколько их было в непакованном виде, то ли 40 килобайт, то ли больше. Были, например, варианты упаковать их еще чуть-чуть мощнее, но тогда реально начинал тормозить вывод диалогов в игре, это уже становилось заметным на глаз, и выигрыш того не стоил.
    Последний раз редактировалось moroz1999; 26.12.2020 в 22:50.
    zxart.ee - архив программ, графики и музыки ZX Spectrum.

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

    newart(26.12.2020), Verm-V(26.12.2020)

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

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

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

Похожие темы

  1. Ответов: 548
    Последнее: 13.03.2025, 18:49
  2. Ответов: 415
    Последнее: 18.12.2020, 20:58
  3. Ответов: 121
    Последнее: 23.09.2017, 21:42
  4. Ответов: 215
    Последнее: 27.04.2016, 20:11

Ваши права

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