про минуле… останній раз, коли я писав демо для demoparty-це був 1999 рік. Так, 22 роки тому в м ростов-на-дону проходила demoparty paradox-99 . Тоді я зробив відразу 2 демо: spear на номінацію 512 byte і storm на номінацію 256 byte. Демо storm писалася удвох з максимом журовичем: максим робив ефект хвилюється моря, а я додавав звук. Це була перша в світі демо розміром 256 byte зі звуком для платформи pc. Зараз вже навчилися робити демо розміром 64 byte зі звуком, але тоді засунути в 256 byte і графіку і звук – це було щось немислиме. Загалом, згадуючи про старий демосценерський досвід, я вирішив зробити нове демо для demoparty cc2021, щоб підтримати вітчизняну демосцену.
Так як я користуюся ос linux, то демо вирішено було робити за допомогою крос-патформенних інструментів. А це означало, що для графіки слід використовувати opengl. Робити графіку на процесорі в часи, коли існують 3d-прискорювачі і шейдери, мені не дуже хотілося, тому я вирішив одним махом вирішити дві проблеми: вибрати кроссплатформенний фреймверк для шейдерів і знайти готову обв’язку по створенню контексту малювання 3d через opengl. Цим рішенням стала кроссплатформенная утиліта bonzomatic з відкритим вихідним кодом.
Утиліта bonzomatic призначена для проведення live coding compo (shader showdown), і не зовсім підходила для програвання демо: наприклад, в ній при запуску відразу відображається редактор тексту з кодом шейдера. Тому я форкнув бонзоматік і додав в нього підтримку трьох опцій: відключення показу коду шейдера при запуску, відключення курсора мишки, щоб він не заважав перегляду, настройка виходу по кнопці esc, як того вимагають правила compo. Далі була справа техніки: нарізка текстур, написання glsl шейдера для сцени, прикручування програвання музики в тлі.
В результаті з’явилося демо retrogram, яке зайняло i місце в one scene demo compo:
Дивитися live відео на youtube
Разом зі мною перше місце розділив товариш norduk, який відомий в інтернетах по стримах з проходженням ігор на ретроплатформах zx spectrum і радіо-86рк. Його гіпножаба зворушила серця всіх спектрумістів, присутніх на demoparty:). Однакова кількість очок-два перших місця, і таке буває.
У момент показу демо виникло відразу дві проблеми: картка nvidia не захотіла розуміти шейдери, прекрасно працюють на картках radeon і intel під win і lin (було заздалегідь протестовано чотири конфігурації), і плата захоплення не захотіла видавати зображення на проектор. Загалом, перше враження не вдалося, але організатори швидко підметилися і показали демо через hdmi з мого ноутбука з давньою видюшкой intel hd graphics 4000, яка для демосцени не підходить від слова “зовсім”, але яка якимось дивом видавала стерпний fps.
Готову збірку retrogram можна завантажити з офіційної сторінки retrogram на цьому сайті. Вихідні дані доступні на github https://github.com/xintrea/retrogram. Ця збірка містить підсумкову версію retrogram, що працює на gpu radeon, intel, nvidia в операційних системах windows 7/10 і linux debian 10.