Создание игры для SEGA Mega Drive / Genesis - Hello World на языке Си и все про плоскости графики

Как создать свой проект с нуля для разработки игры на языке Си под SEGA Genesis и SEGA Mega Drive; Из каких файлов состоит проект при использовании API SGDK; Ресурсы для проекта т.е. файлы с графикой или музыкой; Рассмотрим проект Hello World из SGDK; Как выводить текст нужного вам цвета на экран; Политы, цвета и некоторые ограничения накладываемые железом приставки; Задний, передний план или как их еще называют плоскость B и A и окно, связанное с плоскостью A являющееся не прокручиваемой областью переднего плана; Прокрутка заднего плана полностью или разных его частей и с разной скоростью; Загрузка большой карты уровня на передний план и его скролинг; Обработка нажатых кнопок на контроллере SEGA; Как и в чем рисовать графику уровня игры. 00:00:00 Начало 00:01:00 SGDK Wiki 00:01:40 SGDK ResComp - описание ресурсных файлов для SGDK 00:02:10 Хорошая статья на Хабре 00:02:48 GENESIS SOFTWARE MANUAL 00:03:04 Under-Prog.ru - статьи про SGDK на Русском 00:03:43 На youtube - Sega Genesis & Mega Drive Game Dev 00:04:02 Техническая документация на Русском 00:05:10 Настройка вашего проекта для разработки игры с нуля в Eclipse 00:08:43 Генерация начального кода проекта средствами SGDK 00:09:03 Из каких файлов состоит типовой проект SGDK 00:11:25 1 commit в git 00:12:35 Теория про графику SEGA Mega Drive 00:14:40 Плоскость B - рисуем SEGA на заднем фоне из PNG файла 00:15:11 SGDK rescomp.txt - документация для java утилиты rescomp.jar 00:15:59 Папка res и файлы ресурсов .res 00:16:52 IMAGE в .res файлах для загрузки картинок на плоскости A B W 00:19:00 .h файлы сгенерированные на основе .res файлов утилитой rescomp.jar 00:19:10 VDP_drawImage() - рисует картинку на указанной плоскости A B W 00:20:01 enum VDPPlane - содержит константы доступных плоскостей A B W 00:20:45 Подключение в main.c библиотеки сгенерированной на основе .res файла 00:22:00 VDP_drawText() - про цвет выводимого текста на экран 00:22:16 PAL_setColor() - сменить цвет в палитре программно 00:24:33 2 commit в git 00:24:54 VDP_drawImageEx() - тоже рисует картинку но больше настроек 00:27:32 Типы данных SGDK 00:28:23 Про железо SEGA Mega Drive 00:30:08 PAL_setPalette() - задаем палитру 00:30:15 PAL0 PAL1 PAL2 PAL3 - константы палитр в SGDK 00:30:33 enum TransferMethod - содержит константы, каким методом передаем данные 00:31:51 bgb.png - грузим на задний фон картинку больше разрешения экрана 00:32:50 VDP_ScrollingMode() - режим прокрутки плоскостей A B 00:34:00 VDP_setHorizontalScroll() - прокрутка плоскости A B по горизонтали 00:34:31 Прокрутка заднего фона полностью по горизонтали 00:35:09 3 commit в git 00:37:18 Прокрутка заднего фона частями, с разной скоростью разные строки тайлов 00:38:20 VDP_setPlaneSize() - размер прокручиваемой области в тайлах 00:39:47 memset() - задать всем элементам массива нужное значение 00:40:39 VDP_setHorizontalScrollTile() - прокрутка каждой строки тайлов заднего фона с разной скоростью 00:45:42 4 commit в git 00:46:05 S1_GHZ1_FG.png - Большая картинка 10240x1280 пикселов для переднего плана A 00:47:36 TILESET в .res файлах для загрузки уникальных тайлов из картинки 00:49:07 MAP в .res файлах для загрузки карты уровня из картинки S1_GHZ1_FG.png на основе указанного tileset 00:50:38 PALETTE в .res файлах для загрузки всей палитры 64 цвета из файла 00:51:39 PAL_setColors() - загрузить все 64 цвета в палитру из файла 00:52:27 Почему сломался цвет у заднего фона 00:53:12 MAP_create() - создать карту уровня на основе картинки 00:55:36 VDP_loadTileSet() - загрузка уникальных тайлов карты уровня в tileset из файла 00:57:27 MAP_scrollTo() - прокрутка карты уровня на заданную позицию в точках 01:00:49 5 commit в git 01:01:25 Aseprite - программа для создания пиксельной графики игр 01:02:20 Aseprite - рисуем картинку 320x240 для загрузки из кода игры 01:08:28 bgw.png - нарисованный с 0, прописываем в .res файле как IMAGE 01:09:59 Используем VDP_drawImageEx() для загрузки на плоскость W картинки 01:11:07 Документация о под плоскости ОКНА плоскости A 01:12:19 VDP_setWindowVPos() - указываем вертикальную базовую точку ОКНА в тайлах и направление 01:15:24 VDP_setWindowHPos() - указываем горизонтальную базовую точку ОКНА в тайл*2 и направление 01:18:24 6 commit в git 01:19:32 Рефакторинг кода - возвращаю картинку с надписью SEGA 01:20:00 Рефакторинг кода - использование событий нажатия кнопок на контроллере 01:20:41 JOY_readJoypad() - что нажато игроком на контроллере 01:21:04 BUTTON_A - использование маски для определен нажата ли кнопка A 01:21:53 BUTTON_B - использование маски для определен нажата ли кнопка B 01:23:45 BUTTON_C - использование маски для определен нажата ли кнопка C 01:24:51 BUTTON_START - использование маски для определен нажата ли кнопка Start 01:32:02 7 commit в git 01:32:10 Багфиксинг - исправление ошибок в коде и опечаток в документации 01:34:18 Тестирование - проверка работы demo версии 01:32:02 8 commit в git

Смотрите также