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 с небольшой добавкой синтаксического сахара. Вот пример демо-программы:
Дисплей имеет квадратную форму 128x128 пикселей, палитра состоит из 12 цветов. Звук 4-канальный. Максимальный размер картриджа – 32 кБ.
Картриджи PICO-8 можно сохранять в специальной вариации формата .png
и отправлять напрямую другим пользователям, делиться через веб-проигрыватель или экспортировать в автономные приложения на HTML5. Любой картридж можно снова открыть в PICO-8, что позволит вам заглянуть внутрь, изменить или изучить код, графику и звук.
У PICO-8 дружное сообщество пользователей, которые сотрудничают, обмениваются знаниями и создают инструменты, сниппеты и учебные пособия. Имеется форум, твиттер и другие штуки.
Есть версии для Windows, Linux, Mac OS и Raspberry Pi (подробнее на странице загрузки).
Чтобы начать программировать, нужно прочитать мануал. В нём всё расписано достаточно подробно. А ниже мы привели шпаргалку, по которой можно получить первое представление о работе с PICO-8 или использовать впоследствии.
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
– показать диалоговое окно для добавления файла в TICdel <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, на наш взгляд, пока служит скорее способом поддержки для разработчика. Но есть и дополнительные функции:
- Можно сохранять / загружать картриджи в текстовом формате и создавать свою игру в любом редакторе. А, значит, можно использовать и систему контроля версий.
- Можно экспортировать игру и опубликовать её в магазине приложений.
- Больше доступной памяти для картриджей (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 по вашей идее или по мотивам какой-нибудь из наших алгоритмических головоломок. Попутно опишем процесс создания. Если вам интересна эта тематика, пишите идеи в комментариях.
Источники
- https://github.com/paladin-t/fantasy/blob/master/README.md
- https://tic.computer/
- https://www.lexaloffle.com/pico-8.php
- https://news.ycombinator.com/item?id=16967664
- https://www.lexaloffle.com/pico-8.php?page=faq
- https://www.llexaloffle.com/bbs/?pid=41086
- https://www.reddit.com/r/pico8/comments/5yge7y/tic80_a_fantasy_console_inspired_by_pico8/