Ringo Render 64x48

UPD(20.12.2022): Исходники оптимизированного рендера доступны на GitHub

Всем привет!

Сегодня я немного расскажу про то как устроен рендер в нашей совсем недавно вышедшей игре Ringo.
Если вдруг пропустили то посмотреть/поиграть можно здесь

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


Читать дальше →

Приём работ на Yandex Retro Games Battle 2020 продлён до 23 ноября



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

Готовые игры необходимо прислать до 23.11.2020, 12:00, заполнив заявку на сайте конкурса.

Связаться с оргкомитетом можно, написав письмо на museum@yandex-team.ru

Желаем удачи!

Программирование для Famicom/NES/Денди в Nesicide+ca65: маппер MMC3 - HBlank+скроллинг (10) КОНЕЦ

Это будет последний урок в этой серии описывающий на практике последнюю технику которую нужно знать, чтобы написать крутую игру на Famicom/NES/Денди…
Ну хорошо, если призадуматься, то нюансов в программировании на денди есть еще порядком. Как организовать «бесконечный» скроллинг прокручивая две экранных области друг за другом и обновляя вновь появляющиеся с краёв тайлы в VRAM по ходу движения… Как организовать тайлы в метатайлы 2x2, а то и 4x4 для более краткого описания карт и удобного обновления видеопамяти (ведь атрибуты палитр назначаются сразу блоку тайлов 2x2 в экранной области, а один байт атрибутов покрывает 4x4 тайла)… Как воспроизводить оцифрованные DCPM звуки с помощью FamiTone2…
Впрочем, имхо, материалов и примеров изложенных в этих статьях хватит чтобы сообразить как это всё делается самостоятельно. Да и должно же быть какое то пространство и для собственного творчества. Здесь же я поставлю точку в этом цикле и, возможно, займусь какой-нибудь уже полноценной игрой исходники которой выложу, но это будет другая история.

Читать дальше →

Программирование для Famicom/NES/Денди в Nesicide+ca65: маппер MMC3 - перехват HBlank (9)

Итак, кроме собственно управления дополнительными банками памяти маппер MMC3 обладает еще одной важной функцией — генерацией прерываний IRQ по счётчику сканлайнов. В уроке про zero sprite hit мы перехватывали момент когда можно например в середине кадра сменить параметры прокрутки заднего фона этим средством встроенным в консоль. Но этот способ во первых можно использовать только один раз за кадр, а во вторых требует от процессора тратить все вычислительные ресурсы на обнаружение наступления события, что кроме самого этого факта еще и затрудняет планирование времени сколько код должен выполняться.
Счётчик сканлайнов в MMC3 лишён всех этих недостатков.

Читать дальше →

Музей Яндекса завершает серию вебинаров о творчестве на ретрокомпьютерах

На прошлой неделе мы закончили разговор о маппинге и визуальных эффектах на его основе. Узнали, что такое субпиксельная оптимизация, рассмотрели способы сокращения расхода памяти, научились создавать таблицы маппинга без использования математических формул, ответили на вопросы зрителей. Запись вебинара можно посмотреть здесь.

Сегодняшний вебинар — последний. Мы узнаем как синхронизировать визуальные эффекты под музыку, напишем диспетчер, управляющий очерёдностью и временем вывода эффектов, и с его помощью попробуем собрать небольшое демо на основе музыки, графики и кода, созданных в течение всех предыдущих вебинаров. Ведущие — Олег Сенин (bfox ) и Александр Солодков (TmK ) — программисты, художники, музыканты на различных ретроплатформах.

Ждём всех 4 июня в 19:00 по московскому времени. Участие бесплатное, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара можно будет посмотреть на youtube.

Практика

А чтобы материал не остался теорией, мы приглашаем проверить свои силы, приняв участие в конкурсной программе фестиваля «Демодуляция 2020», который состоится осенью. Мы понимаем, что для создания чего-то впечатляющего нужно время, поэтому приём работ уже открыт. Более подробно о правилах конкурсов можно прочитать на нашем сайте.

Музей Яндекса продолжает серию вебинаров о творчестве на ретрокомпьютерах (выпуск 7)

На прошлой неделе мы продолжили разговор о маппинге и визуальных эффектах на его основе. Разобрали один из самых сложных программных трюков, позволяющий увеличить цветовые возможности компьютера ZX Spectrum — мультиколор. Запись вебинара можно посмотреть здесь.

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

Ждём всех 28 мая в 19:00 по московскому времени. Участие бесплатное, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара можно будет посмотреть на youtube.

Практика

А чтобы материал не остался теорией, мы приглашаем проверить свои силы, приняв участие в конкурсной программе фестиваля «Демодуляция 2020», который состоится осенью. Мы понимаем, что для создания чего-то впечатляющего нужно время, поэтому приём работ уже открыт. Более подробно о правилах конкурсов можно прочитать на нашем сайте.

Музей Яндекса продолжает серию вебинаров о творчестве на ретрокомпьютерах (выпуск 6)

На прошлой неделе мы говорили про маппинг и визуальные эффекты на его основе. Разобрали алгоритм полёта по тоннелю и реализовали его в программном коде. Запись вебинара можно посмотреть здесь.

В следующем, шестом вебинаре мы продолжим эту тему: разберём несколько программных трюков, позволяющих увеличить цветовые возможности и плавность эффекта, сократить расход памяти и создавать таблицы маппинга без использования математических формул. Узнаем, какие ещё эффекты можно создавать на основе описанного метода. Вебинар проведут Олег Сенин (bfox ) и Александр Солодков (TmK ) — программисты, художники, музыканты на различных ретроплатформах.

Ждём всех 21 мая в 19:00 по московскому времени. Участие бесплатное, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара можно будет посмотреть на youtube.

Практика

А чтобы материал не остался теорией, мы приглашаем проверить свои силы, приняв участие в конкурсной программе фестиваля «Демодуляция 2020», который состоится осенью. Мы понимаем, что для создания чего-то впечатляющего нужно время, поэтому приём работ уже открыт. Более подробно о правилах конкурсов можно прочитать на нашем сайте.

Музей Яндекса продолжает серию вебинаров о творчестве на ретрокомпьютерах (выпуск 5)

На прошлой неделе мы говорили о программировании визуальных эффектов: узнали как устроен алгоритм горящего пламени, реализовали его в программном коде и на примере этого кода познакомились с основами оптимизации. Запись вебинара можно посмотреть здесь.

Следующий, пятый по счёту вебинар будет посвящен маппингу и визуальным эффектам на его основе. Вебинар проведут Олег Сенин (bfox ) и Александр Солодков (TmK ) — программисты, художники, музыканты на различных ретроплатформах.

Ждём всех 14 мая в 19:00 по московскому времени. Участие бесплатное, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара также можно будет посмотреть на youtube.

Практика

А чтобы материал не остался теорией, мы приглашаем проверить свои силы, приняв участие в конкурсной программе фестиваля «Демодуляция 2020», который состоится осенью. Мы понимаем, что для создания чего-то впечатляющего нужно время, поэтому приём работ уже открыт. Более подробно о правилах конкурсов можно прочитать на нашем сайте.

Музей Яндекса продолжает серию вебинаров о творчестве на ретрокомпьютерах (выпуск 4)

На прошлой неделе мы познакомили наших гостей с архитектурой, основными средствами разработки и системой команд компьютера ZX-Spectrum. Запись вебинара можно посмотреть здесь.

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

Ждём всех 7 мая в 19:00 по московскому времени. Участие бесплатное, но количество мест ограничено, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара также можно будет посмотреть на youtube.

Практика

А чтобы материал не остался теорией, мы приглашаем проверить свои силы, приняв участие в конкурсной программе фестиваля «Демодуляция 2020», который состоится осенью. Мы понимаем, что для создания чего-то впечатляющего нужно время, поэтому приём работ уже открыт. Более подробно о правилах конкурсов можно прочитать на нашем сайте.

Музей Яндекса продолжает серию вебинаров о творчестве на ретрокомпьютерах (выпуск 3)

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

Следующий, уже третий вебинар будет посвящен программированию: мы познакомимся с архитектурой, основными средствами разработки и изучим систему команд компьютера ZX-Spectrum. Вебинар проведёт Олег Сенин (bfox ) — программист, художник, музыкант на различных ретроплатформах.

Ждём всех 30 апреля в 19:00 по московскому времени. Участие бесплатное, но количество мест ограничено, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара также можно будет посмотреть на youtube.

Практика

А чтобы материал не остался теорией, мы приглашаем проверить свои силы, приняв участие в конкурсной программе фестиваля «Демодуляция 2020», который состоится осенью. Мы понимаем, что для создания чего-то впечатляющего нужно время, поэтому приём работ уже открыт. Более подробно о правилах конкурсов можно прочитать на нашем сайте.