Медные бары
Бэкдроп темнеет, и по нему ползут широкие горизонтальные полосы-градиенты, как copper bars на Amiga — по одной клетке за бит, без сглаживания. Логотип деки стоит поверх. Демосцена, а не скринсейвер Windows.
Вторая волна восьмибитной моторики. Первый борд одел базовые состояния — LIVE, WORKING, BELL, DONE; этот идёт за органами, у которых красоты ещё не было: простой, устаревание, запас контекста, долгие задачи, пульс вывода, фокус, вести, палитра, итоги дня и сеть. Ритм тот же: 8 битов в секунду, кадрами, без плывущей альфы. Клик по карточке — выбор; строка выбора собирается внизу.
Дека стоит без дела дольше N минут — все паны спят, окно спереди, никто не печатает. Аркада в такой момент включала attract mode. Дека может тоже: тихая заставка, которая гаснет от первого нажатия.
Бэкдроп темнеет, и по нему ползут широкие горизонтальные полосы-градиенты, как copper bars на Amiga — по одной клетке за бит, без сглаживания. Логотип деки стоит поверх. Демосцена, а не скринсейвер Windows.
Три слоя звёзд-пикселей летят с тремя скоростями — дальние по клетке в секунду, ближние по клетке за бит. Параллакс без единого полупрозрачного пикселя. Дека превращается в вид из кабины, пока её не разбудят.
Экран простоя — титульный экран автомата: HI-SCORE со счётом прожитых сессий, мигающее PRESS ANY KEY на честных двух кадрах и строка копирайта. Самый дешёвый вариант — три строки текста, один блинк.
Пан, за которым давно не приходили — эхо старое, мир далеко. Сейчас это просто слово STALE. CRT рассказал бы это температурой люминофора: экран, с которого ушли, стынет.
Контент стале-пана остывает по четырём ступеням: белый → серый → тусклый янтарь → уголь. Не анимация даже — лестница яркости, по которой пан спускается раз в час. Взгляд на деку сразу говорит, где жизнь, а где вчера.
У стале-пана появляется «прижог»: тусклая копия последней строки, сдвинутая на пиксель, как выгоревший в люминофоре след. Раз в несколько секунд призрак вздрагивает на кадр. Экран, который слишком долго показывал одно и то же.
Стале-пан стоит неподвижно, но раз в несколько секунд по нему пробегает узкая полоска телевизионного шума — сигнал теряется. Пробежала — снова тишина. Конечный тик вместо стоячего пульса: движения почти нет, а состояние читается кожей.
У агента в пане есть невидимый ресурс — окно контекста. Сколько осталось до компакта, сейчас не видно вовсе. Игры решили эту задачу сорок лет назад: ресурс героя всегда на экране и всегда красивый.
Восемь пиксельных сердец в строке пана — запас контекста четвертинками, как жизнь в Зельде. Полные горят, потраченные — контур. Последнее сердце мигает на двух кадрах: агенту скоро компакт. Ноль анимации, пока запас не критичен.
Полоска из шестнадцати клеток — шкала маны из JRPG. Клетки гаснут по одной, без плавных переливов; последние четыре — шахматным дизером, полупустые. Точнее сердец, тише цифр: заполненность видна с другого конца комнаты.
Круглый пиксельный прибор со стрелкой, как датчик топлива в гоночной аркаде. Стрелка не плывёт — щёлкает по пяти положениям от F к E. В красном секторе прибор мигает янтарём. Один взгляд — и ясно, дотянет ли агент до финиша.
Агент ушёл в задачу на десять минут. WORKING горит, но сколько прошло и сколько осталось — не видно. Долгую работу можно показать как противника, которого агент побеждает.
Над паном — полоска здоровья задачи, как у босса в файтинге. Каждый завершённый этап откусывает сегмент: кадр белой вспышки — и клетка осыпалась. Задача с нулём HP падает в DONE. Прогресс, за которым хочется следить.
Тонкая трасса вдоль низа пана, по ней двухкадровый спрайт-бегун шагает от старта к пиксельному флагу — позиция квантована в клетки, продвинулась задача — шагнул бегун. Excitebike в двенадцать пикселей высотой.
Вместо спиннера у долгой задачи — пиксельные песочные часы: песчинки перетекают по одной за бит, куча внизу растёт. Высыпались — часы переворачиваются одним трёхкадровым тиком и считают дальше. Ожидание со своей физикой.
Пан печатает — но интенсивность потока не видна из соседнего воркспейса. Лаба восьмидесятых ответила бы приборчиком: маленьким, честным и красивым.
Четыре столбика по три клетки возле имени пана — эквалайзер магнитолы. Высота шагает от потока строк за бит: тишина — плоско, компиляция льётся — пляшут. Слышно глазами, какой из десяти панов сейчас говорит.
Однопиксельная трасса ползёт сквозь окошко в строке пана, амплитуда квантована в четыре уровня от потока вывода. Тихий пан — ровная линия, поток — зелёная пила. Осциллограф из лаборатории, вросший в деку.
Счётчик напечатанных строк — механический одометр: барабаны-цифры, каждая прокатывается вверх одним кадром сдвига. Никакого стоячего движения — крутится ровно тогда, когда пан пишет. Пробег пана за сессию.
Какой пан сейчас слушает клавиатуру? Сегодня — аура. Игровые меню сорок лет решали ровно эту задачу: курсор выбора должен быть виден боковым зрением и не надоедать прямому.
У сфокусированной строки стоит пиксельная перчатка-указатель, как в меню Dragon Quest. Дышит двумя кадрами — палец подаётся на пиксель вперёд и назад. Фокус ушёл — рука мгновенно у новой строки, без полёта.
Четыре пиксельных уголка защёлкиваются вокруг сфокусированного пана одним кадром — как рамка захвата цели. Стоят неподвижно, пока фокус не уйдёт; тогда один кадр — и уголки уже на новом месте. Ни единого стоячего пульса.
Простой пиксельный шеврон у активной строки шагает на одну клетку вправо и обратно — двухкадровый цикл раз в секунду, как курсор в меню NES. Самый тихий вариант: один глиф, два положения.
Дека иногда говорит сама: «мир упал», «обновление готово», «агент ждёт ответа». Сейчас это строка в углу. Весть может приходить как реплика персонажа — конечным тиком, с характером.
Весть приходит речевым пузырём с пиксельным хвостиком: три кадра роста — точка, рамка, полный пузырь, — потом текст печатается телетайпом по два знака за бит. Дочитal — пузырь схлопывается одним кадром.
Весть разворачивается сверху вниз как пергамент из RPG: две пиксельные рейки, между ними за четыре кадра раскатывается полотно с текстом. Провисел сколько нужно — скатался обратно. Церемонно, для важных вестей.
Весть падает сверху на двух пиксельных цепях и докачивается — три квантованных положения маятника, потом покой. Снимается — цепи дёргаются на кадр, и вывеску утягивает вверх. Таверна, а не тост-центр.
Открытая командная палитра останавливает деку — это буквально пауза. Игры делали из паузы ритуал: мир замирает особым образом, и это замирание само по себе красиво.
Дека за палитрой темнеет не альфой, а шахматной решёткой: кадр — каждый второй пиксель погас, кадр — три из четырёх. Поверх одним кадром падает рамка палитры. Так глушили фон Doom и SimCity — и это до сих пор красиво.
Затемнение приходит шестью горизонтальными шторками, сверху вниз, по одной за бит — как переход сцены в 16-битной JRPG. Палитра закрылась — жалюзи открываются в обратном порядке. Конечный тик в обе стороны, полсекунды на всё.
Чёрный смыкается к центру ступенчатым кругом — ирис-переход немого кино и Mario 64, квантованный в четыре радиуса. В оставшемся окне — палитра. Закрыл — ирис распахивается обратно. Самый киношный вариант.
Сколько сегодня прожито: паны, строки, DONE, звонки. Эти числа есть в логах и не видны никому. Аркада превращала статистику в экран, ради которого играли ещё партию.
Экран итогов — таблица рекордов: агенты дня, счёт из строк и DONE тикает вверх порциями, имя лидера мигает как «1UP». Открывается по хоткею или в конце дня. Статистика, на которую хочется смотреть.
Конец сессии — экран подсчёта уровня, как после мира в Марио: строки статистики считаются по очереди сверху вниз, числа тикают, в конце на экран одним кадром падает печать CLEAR. Закрытие деки со вкусом победы.
Внизу деки — тонкая бегущая строка, как биржевой тикер или марка демосцены: статистика дня ползёт по знаку за бит, по кругу. Живёт только на титульном экране простоя или по хоткею — в рабочее время молчит.
SSH-миры живут на ниточке пинга. Когда ниточка дрожит — паны фризятся «без причины». Сеть заслуживает свой прибор на статус-баре: маленький, точный, восьмибитный.
Возле имени мира — ЭКГ-трасса: каждый успешный пинг рисует блип, высота — латентность. Связь пропала — линия выпрямляется во flatline и бейдж стынет в серый. Реанимация мира видна как возвращение пульса.
Круглый пиксельный радар: луч шагает по шестнадцати позициям, миры — точки на своих дистанциях (дистанция = латентность). Луч прошёл по точке — она вспыхнула и стынет три ступени. Обзор всех миров в приборе 16×16.
Три квадратные лампы — зелёная, янтарная, красная — плюс число миллисекунд, которое печатается телетайпом при каждом замере. Лампы не мигают: горит ровно одна, переключение — один кадр. Самый тихий и самый честный прибор.