matyushkin 29 февраля 2020
0
1512

PICO-8 и TIC-80. Экскурсия в мир виртуальных консолей для создания ретро-игр

Описали и сравнили две виртуальных игровых консоли: PICO-8 и TIC-80. Предложите в комментариях, какую игру или программу мы могли бы для вас воплотить на одной из этих платформ.

Виртуальная консоль похожа на обычную игровую приставку, но без проблем, свойственных реальному «железу». Это виртуальные машины с намеренно ограниченными техническими характеристиками и пиксельным гейм-артом. Имеется всё необходимое: инструменты разработки, культура проектирования, платформы распространения и дружелюбные сообщества.

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

Сравнительный список консолей приведён на GitHub-странице Fantasy Consoles/Computers. Наиболее популярной коммерческой платформой является PICO-8 от компании Lexaloffie ($15), а среди тех, у которых есть бесплатная лицензия – TIC-80. Мы сначала опишем, а потом кратко сравним две этих виртуальных консоли.

PICO-8

Бесплатно загрузить картриджи и поиграть в веб-версии PICO-8 можно в соответствующем репозитории. Управление происходит через 6 клавиш: стрелки вверх, вниз, влево, вправо, буквы Z и X.

И PICO-8, и TIC-80 включают в себя не только игровую платформу, но также инструменты для редактирования кода, музыки и звуков, спрайтов и карт. Всё это встроено в консоль. Легко перекинуть код во внешний редактор – на PICO-8 картриджи хранятся в файлах с расширением .p8. Это обычные текстовые файлы: можно параллельно программировать и перезапускать код программного картриджа с помощью CTRL-R.

Для программирования в PICO-8 используется язык Lua с небольшой добавкой синтаксического сахара. Вот пример демо-программы:

            t = 0
music(0) -- play music from pattern 0

function _draw()
  cls()
  for i=1,11 do               -- for each letter
    for j=0,7 do              -- for each rainbow trail part
      t1 = t + i*4 - j*2      -- adjusted time
      y = 45-j + cos(t1/50)*5 -- vertical position
      pal(7, 14-j)            -- remap colour from white
      spr(16+i, 8+i*8, y)     -- draw letter sprite
    end
  end

  print("this is pico-8", 37, 70, 14)
  print("nice to meet you", 34, 80, 12)
  spr(1, 64-4, 90) -- draw heart sprite
  t += 1
end
        

Дисплей имеет квадратную форму 128x128 пикселей, палитра состоит из 12 цветов. Звук 4-канальный. Максимальный размер картриджа – 32 кБ.

Картриджи PICO-8 можно сохранять в специальной вариации формата .png и отправлять напрямую другим пользователям, делиться через веб-проигрыватель или экспортировать в автономные приложения на HTML5. Любой картридж можно снова открыть в PICO-8, что позволит вам заглянуть внутрь, изменить или изучить код, графику и звук.

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

Есть версии для Windows, Linux, Mac OS и Raspberry Pi (подробнее на странице загрузки).

Чтобы начать программировать, нужно прочитать мануал. В нём всё расписано достаточно подробно. А ниже мы привели шпаргалку, по которой можно получить первое представление о работе с PICO-8 или использовать впоследствии.

 В полном размере шпаргалка – по <a href="https://www.lexaloffle.com/bbs/files/16585/PICO-8_Cheat-Sheet_0-9-2.png" target="_blank" rel="noopener noreferrer nofollow">ссылке</a>
В полном размере шпаргалка – по ссылке

TIC-80

TIC-80 – это другой виртуальный компьютер для создания крошечных ретро-игр. В нём также есть все инструменты для разработки: код, спрайты, карты, звуковые редакторы и командная строка. На выходе вы получаете картридж-файл, который можно сохранить и воспроизвести на сайте или упаковать в плеер, работающий на всех популярных платформах.

Чтобы игра была и правда ретро, ​​весь процесс проходит с техническими ограничениями, но менее жёсткими, чем в PICO-8: дисплей имеет размер 240x136 ячеек, та же палитра 16 цветов, вдвое больше (256) цветных спрайтов 8x8 (для переднего плана, столько же для фона), 4-канальный звук. Код программы не должен превышать 64 Кб и может быть написан на Lua, Moonscript или JavaScript. В остальном платформы очень похожи.

Система доступна на Windows, Linux, Mac OS X, Android, Raspberry Pi, Pocket CHIP, Game Shield (подробнее на странице загрузки).

Позалипать в 8-битные игры можно на странице https://tic.computer/play. Там вый найдёте не только игры, но и программы, написанные для этой виртуальной операционной системы: варианты Paint, электронных таблиц, постройки графиков и т. д. То есть куча реализаций проектов выходного дня, о которых мы писали раньше.

Кроме официальной страницы, у проекта также есть GitHub и twitter, аккаунт Itch.io и даже паблик вк.

Команды консоли TIC-80

TIC-80 позиционирует себя как крошечный компьютер. Поэтому здесь всё начинается с консоли, у которой, к примеру, кроме перечисленных ниже, есть команды cd, mkdir и cls. Хороший вариант для обучения основам взаимодействия с консолью! На самом деле командная строка есть и у PICO-8, но это описано лишь в мануале.

Примеры команд:

  • help – показать доступные команды
  • ram – показать лэйаут оперативной памяти (80 кБ)
  • exit – покинуть приложение
  • new <lang>– создать новый картридж на языке lang (lua, moon, js, wren, fennel)
  • load <cart> – загрузить .tic картридж из локальной файловой системы
  • save <cart> – сохранить .tic картридж в локальной файловой системе
  • run – запустить текущий проект
  • dir – показать список локальных файлов
  • folder – открыть рабочую директорию операционной системы
  • add – показать диалоговое окно для добавления файла в TIC
  • del <file> – удалить файл из системы
  • get <file> – показать диалоговое окно для загрузки файла
  • export <res> – экспортировать на выбор: html, native, sprites, cover, map
  • import <res> – импортировать элементы из gif-файла
  • demo – установить демо картриджи
  • config – загрузить окно настройки системы

Больше информации на вики-странице Github.

Редакторы TIC-80

Разработчики TIC-80 не поленились потратить время на визуализацию того, как устроено программирование платформы. Ниже мы перенесли анимированные скриншоты процесса работы с редакторами кода, спрайтов, звуков и музыки. Поиграться с консолью и редакторами можно онлайн в браузере на странице https://tic.computer/create.

Редактор кода

Редактор спрайтов

SFX редактор

Редактор музыки

Всё описанное выше доступно бесплатно. PRO-версия за $5, на наш взгляд, пока служит скорее способом поддержки для разработчика. Но есть и дополнительные функции:

  1. Можно сохранять / загружать картриджи в текстовом формате и создавать свою игру в любом редакторе. А, значит, можно использовать и систему контроля версий.
  2. Можно экспортировать игру и опубликовать её в магазине приложений.
  3. Больше доступной памяти для картриджей (512 Кб).

Итог: сравнение PICO-8 и TIC-80

Как отмечают в комментариях на Hacker News, описанные виртуальные консоли концептуально очень похожи и обе вдохновлены старым CHIP-8. TIC-80 немного «мощнее» в том смысле, что он имеет панорамный экран и более высокое разрешение как по вертикали, так и по горизонтали (240x136), а также двойное количество спрайтов.

PICO-8 – коммерческий проект, и стоит $15. TIC-80 имеет открытый исходный код, а небольшая цена PRO-версии $5 служит скорее донатом разработчику.

И PICO-8, и TIC-80 отлично подходят для создания прототипов крупных проектов по разработке игр. Большое значение имеют жёсткие ограничения, которые заставляют акцентировать внимание на внутреннем дизайне игре.

Резюме. Если для вас важно, чтобы игру увидело больше людей, то советуем PICO-8. Если интереснее сделать игру или простенькую программку для себя самого, и больше нравится панорамный вид экрана, а не квадрат – выбирайте TIC-80.

***

В продолжение статьи мы можем написать игру на PICO-8 или TIC-80 по вашей идее или по мотивам какой-нибудь из наших алгоритмических головоломок. Попутно опишем процесс создания. Если вам интересна эта тематика, пишите идеи в комментариях.

Источники

РУБРИКИ В СТАТЬЕ

МЕРОПРИЯТИЯ

Комментарии 0

ВАКАНСИИ

Python developer
от 150000 RUB до 200000 RUB
Системный аналитик
Москва, по итогам собеседования
Game Analyst
по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

BUG