Следующая новость
Предыдущая новость

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

27.03.2018 15:35
PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

Содержание статьи

  • Лимиты
  • Небольшое путешествие по Pico-8
  • Виртуальные картриджи
  • PocketCHIP
  • Практика
  • Tweet Jam
  • История Pico-8
  • Итог

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

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

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

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

INFO

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

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

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

Лимиты

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

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

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

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

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

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

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

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

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

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

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

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

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

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

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

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

Вот такая вот темная магия стеганографии!

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

instal_demos cd /demos ls 

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

INFO

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

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

load jelpi.p8 run 

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

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

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

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

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

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

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

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

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

PocketCHIP

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

PICO-8. Играем и кодим на легендарной приставке, которой никогда не было

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

Практика

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

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

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

Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.

Подпишись на «Хакер» по выгодной цене!

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

1 год

4990 р.

Экономия 1400 рублей!

1 месяц

720 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости