User Tag List

Показано с 1 по 10 из 57

Тема: 2D движки на спектруме.

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

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

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от moroz1999 Посмотреть сообщение
    Так то конструкторы!
    Опиши свое видение этого "инструмента разработчика" как можно более детальнее.

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Опиши свое видение этого "инструмента разработчика" как можно более детальнее.
    Сугубо моё видение того, к чему надо стремиться, на данный момент таково:
    1. Должен использоваться кросс ассемблер (sjasm+) с самосборкой и автозапуском в эмуляторе для отладки.
    2. Процедуры движка поделены на функции и минимально документированы. Комменты - не обязательны, достаточно описания функционала и входных параметров.
    3. Во внутренней архитектуре отдельно выделена функция логики (в которой происходит обработка действий игрока, AI, минимальная игровая физика для и тд). Логика по мере отработки игровой ситуации записывает в небольшой буфер обмена информацию по типу: номер отображаемого спрайта, координаты на экране, тип спрайта (попиксельный, аттрибутный итд). Логика каким-то еще образом (детально еще не продумывал) может репортить необходимость перерисовки тайлового бэкграунда, скорее всего в виде текущей координаты левого верхнего угла экрана относительно карты бэкграунда.
    4. Буфер обмена отдельно отрабатывается т.н. "мэнэджером" который берет информацию о спрайтах из таблицы, подключает нужные банки памяти и запускает с этой инфой запрошенные процедуры отрисовки спрайтов. Здесь же может производиться бэкап бэкграунда под спрайтами, вывод тайлового фона и что угодно. Этот же менеджер выбирает в каком экране надо рисовать, а какой отображать.
    5. На данный момент логика у меня выведена на прерывания, что даёт некоторые преимущества (типа естественной системы FPS), но и несёт с собой множество спорных нюансов. Сей пункт даже сейчас под вопросом.

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

    Добавлено через 4 минуты
    Цитата Сообщение от boo_boo Посмотреть сообщение
    вывод спрайтов, текста и тп оно понятно. но на примере пц-шных движков, очень удобно юзать абстракцию "полотна" (canvas), или "сцены", у которой есть тайловый фон, и по которой движутся объекты (спрайты или наборы спрайтов), причем для последних поддерживается детекция столкновений с другими обьектами, а также маски (куски фона, которые закрывают объекты, типа ствол дерева, за которым проходит персонаж...)
    спасибо за пример, это очень близко к тому, каким подобную концепцию вижу себе я . В вышеприведенном я бы только отделил детекцию столкновений в отдельный функционал, потому что в разных проектах это может требоваться по-разному. То, что представляю себе я - это чисто графический инструментарий, поэтому любая логика/псевдофизика, имхо, должна быть реализована отдельно.
    Последний раз редактировалось moroz1999; 11.03.2008 в 00:28. Причина: Добавлено сообщение

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

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

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

Похожие темы

  1. Оконные интерфейсы на Спектруме
    от CityAceE в разделе Графика
    Ответов: 53
    Последнее: 19.04.2009, 21:25
  2. М.К Эшер на спектруме
    от ^m00h^ в разделе Графика
    Ответов: 1
    Последнее: 02.01.2008, 05:16
  3. Трудно ли программировать спрайтовые движки?
    от Romanich в разделе Программирование
    Ответов: 29
    Последнее: 22.12.2006, 08:20
  4. Ответов: 11
    Последнее: 31.05.2006, 10:19
  5. Стереограммы на Спектруме
    от CityAceE в разделе Графика
    Ответов: 15
    Последнее: 25.04.2005, 16:16

Ваши права

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