Виртуальные консоли
Лев ТолстойГлава 1 Сравнение "PICO8" и "TIC Computer"
Здравствую анон, сегодня я расскажу тебе как можно лампово провести очередной холодный зимний вечер. Никаких движков или велосипедов, эдакий дзен гейм-девелопмент старой школы в маленьком черном окошке. Я говорю о разработке для виртуальных игровых ретро консолей.
Этих стульев у меня есть два: первый - PICO8 - крутой и заграничный стоит целых 15 баксов и является практически законченным продуктом с большим комьюнити, какое-то время даже выпускался журнал с примерами и статьями (https://sectordub.itch.io/pico-8-fanzine-1), второй - наш, со вкусом картошки и лесных грибов и не менее крутой TIC Computer. Обе консоли нельзя запустить наверное разве что на утюге, но о железных их воплощениях мы поговорим в одной следующих глав.
Для начала приведу небольшое сравнение характеристик пациентов:
Характеристики
PICO8
Дисплей: 128x128 16 colours
Управление: 1 геймпад, 2 кнопки
Звук: 4 channel
Код: Lua
Спрайты: 128 8x8
Размер карты: 128x32
Цена: 15$
Скачать без смс: https://yadi.sk/d/M_gLsCQP3DJjYw
TIC Computer
Дисплей: 240x136 16 colours
Управление: 2 геймпада по 6 кнопок
Звук: 4 channel
Код: Lua, MoonScript
Спрайты: 256 8x8
Размер карты: 240x136
Цена: 0$
Скачать без смс: https://nesbox.itch.io/tic
Обе игровых консоли имеют два основных режима работы: командная строка и редактор картриджа, эти режимы переключаются клавишей ESC. Редактор картриджа включает в себя встроенный редактор кода, графический редактор, редактор тайл-карты, редактор звуковых эффектов и музыкальный редактор(в TIC эта функция пока в разработке).
Команды и API PICO http://www.lexaloffle.com/pico-8.php?page=manual
Команды и API TIC https://github.com/nesbox/tic.computer/wiki
В целом, обе консоли работают по одному принципу и код от PICO после не большой адаптации подходит для TIC. Возьмем кусок кода из первого номера журнала PICO-8 Zine, где в качестве примера приводится игра понг: http://pastebin.com/0Zkiy222 (Данный код закрашивает весь экран сплошным цветом и отрисовывает платформу, управляемую стрелочками, внизу экрана)
Как мы видим в PICO два основных цикла: _update (прям как в этих ваших юнитях, вызывается 30 раз в секунду) и _draw (для графония).
Рассмотрим код выполняющий те же задачи для TIC:
Здесь один основной цикл _TIC, выполняющий функции update и функция отрисовки экрана вызывается уже из него, в остальном все очень похоже, за исключением команд, разрешения экрана и разных мелочей, например, TIC не позволяет кодеру такие вольности как PICO-8: ругается на box_x=-box_x, вместо этого приходится использовать box_x=box_x*-1.
Ссылка на 1 главу: http://telegra.ph/Virtualnye-konsoli-02-07