Как я сделала свою первую игру на TIC-80

Всем привет! Хотела бы поделится опытом создание своей первой игры.

Как я сделала свою первую игру на TIC-80

А что такое TIC-80?

Полистав DTF я не нашла никаких материалов об этой штуке, поэтому вкратце объясню, что это.

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

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

Экран имеет разрешение 240x136 пикселей. Всего доступно 16 цветов, цвета в палитре очень приятные, но если вам захочется их можно изменить. Поддерживает 4 геймпада, клавиатуру и мышь. Есть ограничение на количество спрайтов, всего в игре доступно 512 тайлов 8 на 8 пикселей, при чем вас никто не ограничевает в таких скромных размерах тайлов и максимальный тайл может быть размером 64 на 64 пикселя, но тогда и количество тайлов будет уменьшаться. Также вы можете нарисовать свою карту из тайлов, размер карты 1920 на 1088 пикселей. Консоль имеет 4 звуковых канала. Под код отведено 64 килобайта, а доступная память на консоли 96 килобайта. Так же для консоли существует PRO версия в которой доступно 8 пулов памяти, в бесплатной только один.

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

Есть редактор кода, правда функционала в нем не так много. То что вы написали порой может не влезть, а прокрутить с помощью shift+колесико мыши нельзя. Есть навигация по функциям, только вот они расставлены в алфавитном порядке из-за чего постоянно приходится скакать из одного куска кода в другой. Можно изменить размер и тень шрифта, но после некоторого времени я поняла, что большой шрифт с тенью дает самую лучшую читаемость. Ну и стандартные команды для любого редактора, копировать, вырезать, вставить, отменить или вернуть действие. Эти функции доступны и в других редакторах, так что я их больше не буду затрагивать.

Дает ли TIC-80 возможность использовать сторонние редакторы кода? Да дает, но это не совсем удобно, лично для меня. Я не люблю прыгать от одного окошка в другое и иногда просто путаюсь.

Если есть редактор кода, то на каком языке программирования пишут? TIC-80 позволяет писать код на Lua, Moonscript, Javascript, Wren, Fennel и Squirrel. Из всего это многообразия я знаю только про Lua и Javascript. Погуглив узнала, что Moonscript является диалектом языка Lua, который призван сделать код на Lua более компактным.

Вот столько текста вы будите видеть, не очень удобно
Вот столько текста вы будите видеть, не очень удобно

Графику для игры можно импортировать или создавать непосредственно в консоли, для чего есть отдельный редактор. В целом редактор удобен и интуитивно понятен, есть продвинутый режим редактора, где можно ограничить цветовую палитру или поменять цвета.

Это не из моей игры, а из игры <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Ftic80.com%2Fplay%3Fcart%3D636&postId=654504" rel="nofollow noreferrer noopener" target="_blank">Balmung</a>, да, TIC-80 позволяет редактировать чужие игры
Это не из моей игры, а из игры Balmung, да, TIC-80 позволяет редактировать чужие игры

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

Это скрин редактора карты тайлов из игры <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Ftic80.com%2Fplay%3Fcart%3D636&postId=654504" rel="nofollow noreferrer noopener" target="_blank">Balmung </a>
Это скрин редактора карты тайлов из игры Balmung 

Теперь мы перешли к самому главному в любой игре, к редактору звуков и музыки. И, если честно, первый взгляд на это меня испугал. Всего мы можем создать 64 уникальных звуков или семплов. Я в данный момент не буду описывать, что дает настройка каждого экрана, лишь скажу, что это очень залипательный процесс и на этом экране можно очень долго возится, получая тот звук, который вы захотите.

Вот так устрашающе выглядит редактор звуков
Вот так устрашающе выглядит редактор звуков

Ну и куда же без музыки. Для написания своих композиций вы можете использовать трекер, который имеет 2 режима, в одном он похож на что-то более понятно для простого человека, а в другом он похож на трекер. Здесь я тоже не буду описывать подробно, так как я полный ноль в написании музыки, но поковырявшись несколько часов, даже у такого валенка как я, удалось сделать какую-то мелодию. В защиту могу сказать, что трекер в TIC-80 не перегружен и разобраться в нем не сложно.

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

Так же я не затронула еще одну вещь, командная строка. И это просто командная строка. В которую к слову можно всегда попасть, если нажать на ESC, как из игры, так и из любого редактора.

Просто командная строка
Просто командная строка

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

Мои первый опыт

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

До этого я уже имела опыт в разработке игр и где я только их не писала. Это были и потуги на С++, и python с pygame, и серьезные движки такие как Unity или Godot, к слову с Godot я работала последние пол года. И за все то время, что я баловалась я так и не смогла сделать что-то готовое.

Поэтому когда мой взор упал на это чудо я сразу сказала себе, для начала нужно сделать самую простую игру, а уже после ее развивать и улучшать. Ну и что же может быть проще змейки? Правильно, ничего. Поэтому за несколько вечеров я разобралась с Lua. Кстати, я влюбилась в этот язык с первого взгляда, как по мне он очень просто выглядит и при этом легко читается, даже легче чем python. К слову, если вы до этого программировали, то разобраться с языком можно за 15 минут, он действительно не такой сложный, единственный минус, как по мне, это отсутствие нормального ООП, попрошу заметить нормального, то есть ООП есть, но выглядит это как костыль.

Далее я открыла вики TIC-80 и приступила за работу. Не буду скрывать, мне пришлось подсмотреть некоторые гайды, так как платформа для меня была нова. За вечер я написала саму игру, а уже после прикручивала к ней меню, доску рекордов и прочее.

Что же дальше?

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

Приношу извинения за пунктуационные ошибки, я прогуливала русский и поэтому пишу очень безграмотно, но я стараюсь!

Буду рада если напишите в комментариях стоит ли мне продолжать писать статьи, а так же, что следует исправить и где я оказалась не права.

Так же я надеюсь, что заинтересовала вас своей статьей на освоение TIC-80, было бы интересно пообсуждать ход разработки или сложности с которыми сталкиваются другие разработчики.

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

Ну и немного ссылок.

113113
40 комментариев

Напомнило мне программирование под  Zx-spectrum, c его ограничениями и прочим. Однако в них (ограничениях) были созданны тонны качественных и огромных игровых миров. Тот же Equenox, G'n'G, Robin hood, Dizzy... ех, были времена🤘

9
Ответить

это всё такое себе по сравнению с новодельными играми на спектрум 

2
Ответить

Что за Dizzy? Название помню, а игру — нет.

Ответить

Интересовалась раньше спекой, даже думала попробовать на эмуляторах, но так и не добралась. А тут все прямо из коробки, удобно.

Ответить

Комментарий недоступен

4
Ответить

Спасибо, что указали на баг, добавляла в попыхах, сейчас исправлю!

1
Ответить

Девушка соло-разработчик? Вот так чудеса бывают) Да современные времена плодят разные кадры и это интересно)

1
Ответить