Если ты когда-нибудь пытался сделать игру, то знаешь, как это непросто и как много требуется времени и сил. Но так было не всегда. Pico-8 и другие фэнтезийные ретроконсоли — это попытка вернуть старые времена, когда игры делали на коленке и получали от этого максимум удовольствия. Давай посмотрим на Pico-8 поближе, разберемся, что и как делает сообщество, и полюбуемся на красивые демки, которые умещаются в твит.

Я занимался разработкой игр последние шесть лет, но прошлой зимой открыл для себя кое-что удивительное — мир фэнтезийных ретроконсолей. Если ты не знаешь, что это такое, то представь эмулятор старой приставки или домашнего компьютера. Ну, например, Super Nintendo или ZX Spectrum. Теперь представь, что этой машины никогда не существовало и всё, что у нас есть, — это эмулятор. Добавь к нему встроенный редактор кода, спрайтов, карт, звуковых эффектов и музыкальный трекер. Готово! Это и есть рецепт фэнтезийной консоли.


Одна из первых (или даже первая) фэнтезийных приставок — это Voxatron. Но настоящую популярность обрела не она, а ее младший брат — Pico-8. Этот проект начинался как редактор кода для Voxatron, но оказался настолько удачным, что не просто обрел самостоятельность и затмил предшественника, а перерос в целый феномен. За Pico-8 последовали и другие фэнтезийные консоли. В их списке, кстати, есть и мой (пробный и ныне замороженный) проект — neko8.

INFO

Pico-8 стоит 15 долларов, но многие фэнтезийные консоли распространяются бесплатно. Например, LIKO-12 и TIC-80. Они еще довольно сырые, но если не хочется покупать Pico-8, то на них можно взглянуть.

При этом Pico-8 — это не «вещь в себе». Недавно появился замечательный пример популярной игры, созданной для фэнтезийной консоли и затем покорившей другие платформы. Эта игра называется Celeste. Ее первую версию двое разработчиков написали на Pico-8 всего за четыре дня. Позже полная версия будет выпущена в Steam, портирована на все современные консоли и соберет восторженные отзывы критиков.


 

Лимиты

Что делает Pico-8 такой особенной и чем, если говорить о разработке игр, она отличается от того же Unity? Как ни странно, лимитами. Консоль ставит очень жесткие рамки для разработки. По некоторым характеристикам Pico-8 можно сравнить с домашним компьютером восьмидесятых:

  • дисплей 128 на 128 пикселей, поддерживает 16 цветов;
  • 32 Кбайт памяти;
  • четыре звуковых канала.

С другой стороны, отсутствие ограничений по производительности и поддержка Lua в качестве встроенного языка программирования делают Pico-8 монстром по сравнению с настоящими старыми машинами.

Но есть и другие лимиты. Один из самых сильных — максимальное количество токенов, которое составляет 8192. Токен — это термин, пришедший к нам от разработчиков языков программирования. Его буквальное значение — символ, обозначающий что-то. В каждом языке имеется свой набор токенов, но Pico-8 считает только числа, слова, круглые, квадратные и фигурные скобки (они считаются попарно, то есть строка () имеет в себе два токена), а также знаки препинания.

Почему же на нас накладывают такой жесткий лимит? Он тесно связан с другим ограничением: картридж не может содержать более 65 тысяч знаков. И если восемь тысяч токенов еще укладываются в этот лимит, то вот девять уже могут и не поместиться.

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


Возьмем для примера игру Dank tomB, созданную @krajzeg. Автор умудрился запихнуть в картридж не только динамическое освещение, но и кучу других механик, таких как невидимые блоки, двигающиеся платформы, выключатели, которые можно активировать на расстоянии…

Я думаю, стоит уточнить, что Pico-8 не дает тебе никакого стартового кода. Ты не можешь подключить никакие библиотеки и все делаешь сам.

 

Небольшое путешествие по Pico-8

Pico-8 очень проста в обращении — нужно выучить всего пару команд. Вряд ли тебя смутит необходимость использовать командную строку, а уж встроенные редакторы освоить и того проще. Но все же на всякий случай пройдемся по основным моментам.

Итак, предположим, что ты купил Pico-8 на официальном сайте, скачал и запустил. Тебя встречает мигающий курсор терминала. Можешь набрать help, чтобы увидеть полный список команд.

 

Виртуальные картриджи

Каждый проект хранится на картридже — специальном файле. Консоль поддерживает два формата картриджей — текстовый (.p8) и PNG (.p8.png). Во втором случае при просмотре файла ты увидишь изображение картриджа и скриншот сохраненной игры, а ее код будет спрятан внутри.


То есть если ты возьмешь вот эту картинку (из версии статьи на сайте) и сохранишь к себе, то потом ты можешь загрузить ее в Pico-8 и запустить игру.

Вот такое вот волшебство стеганографии!

Давай установим несколько демок:

instal_demos
cd /demos
ls

INFO

Любую папку можно открыть в файловом менеджере за пределами Pico-8, если написать folder.

В папке с картриджами появится подкаталог demos/, в котором лежат несколько примеров картриджей. Давай загрузим картридж jelpi.p8.

load jelpi.p8
run

Кстати, чтобы быстро запустить загруженный картридж, достаточно нажать Ctrl-R.


Pico-8 поддерживает до шести кнопок управления, назначение которым задает картридж. Обычно это стрелочки, X и Z/C. Чтобы прекратить выполнение программы на картридже, нужно нажать Escape.

Теперь начинается самое интересное! Давай заглянем «под капот» этого платформера. Из режима терминала жмем Escape и попадаем в режим редактирования загруженного картриджа (чтобы переключиться обратно, снова жми Escape).


Мы можем изменить здесь всё. Например, в начале есть пара переменных:

-- config: num_players 1 or 2
num_players = 1
corrupt_mode = false
max_actors = 128

Давай изменим значение corrupt_mode на true и запустим картридж опять! Ладно, может, не стоило менять эту переменную…

Этим наши возможности не ограничиваются. Помимо редактора кода, можно использовать и все остальные — переключай вкладку и увидишь спрайты игры, карты, музыку и звуки. Можешь менять всё, что пожелаешь!

 

PocketCHIP

Несмотря на то что у Pico-8 нет и не предполагалось физической формы, ее воплощением можно считать карманную приставку PocketCHIP. Этот одноплатный компьютер с экраном, контактной клавиатурой и батарейкой поставляется сразу с Pico-8, что позволяет кодить или играть в игры, лежа на даче в гамаке.


Увы, у создателей PocketCHIP, похоже, какие-то неурядицы: сначала они перестали принимать новые заказы, а теперь страница магазина и вовсе недоступна. Так что заиметь такую штуку сейчас можно разве что на вторичном рынке. Будем надеяться, что ситуация исправится!

 

Практика

Хорошо, на чужие картриджи мы посмотрели, теперь давай придумаем что-нибудь свое! Я часто делаю небольшие графические эксперименты, так что поделюсь примером разработки одного из них.

Вот что у меня получилось в итоге.

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


1 комментарий

  1. le

    07.04.2018 at 17:36

    Прикоооооол…

    «платформа может сама стать объектом дизайна и определять особенности игр» — чертовски верно сказано.

Оставить мнение

Check Also

WWW: Zulip — опенсорсная замена для Slack и других групповых чатов

Разработчики Slack четыре года назад практически заново открыли миру чаты. В какой-то моме…