Самый простой способ - взять заготовку для игры. Проще всего открыть исходный код какой-нибудь существующей игры, например, демо Salet.
git clone
куда-нибудь или скачайте архив с кодом.npm install
и подождите, пока не установится каждая зависимость. Не должно занять много времени.Теперь у вас есть копия репозитория, готовая к запуску. Здесь вы и будете работать над своей игрой.
На что стоит обратить внимание в начале работы:
game/begin.coffee
и измените свойство salet.game_id
на что-то другое. UUID будет хорошим выбором. Это должна быть уникальная строка, чтобы сохранения этой игры не мешали сохранениям других (если вы работает над несколькими проектами сразу), см. главу «Сохранения»gulp
запускает сборщик проекта. Обычно gulp
означает ./node_modules/gulp/bin/gulp.js
, просто оно может быть установлено глобально.gulp serve
показывает живой просмотр вашей игры. Вы можете отредактировать файлы, и ваш браузер загрузит новую версию как только вы сохраните изменения. Пока держится окно консоли (там где написано serving files from build
, страница в браузере автообновляется.На этом сама подготовка закончена. Собирать игру из исходников нужно командой:
gulp dist
которая создаст папку dist
с готовой игрой. Команда gulp zip
автоматически упакует её в архив.
И начинайте писать!
Вы можете использовать такие сервисы, как codepen.io или jsfiddle.net для того, чтобы создавать, редактировать и делиться ИЛ-играми.
Просто сделайте новый документ и включите в нём JS-библиотеки Marked, jQuery и ядро Salet. Последняя версия Salet доступна на CDN пакетов NPM.
Эта вики использует интерпретатор CoffeeScript, чтобы упростить синтаксис JavaScript.
Чтобы лучше понять, как устроен код, вы можете прочитать эти статьи:
Короткий текст обозначается кавычками: "текст"
, но также есть и длинный многострочный текст, который обозначается тройными кавычками: """ текст """
.
Текст может содержать логику и переменные, если они вставлены через #{}
: "привет #{name}"
. Для хитрой логики лучше использовать функции, которые описываются через () →
А ещё отступ кода определяет логику игры.
Вы не обязаны писать на CoffeeScript. Можно писать на Javascript, TypeScript или других языках, которые транслируются в Javascript. Но он проще чистого Javascript и поэтому все примеры в этой вики даются на нём.
Весь текст в Salet пишется в синтаксисе Markdown. Например, ссылки выглядят как [текст ссылки](цель ссылки)
, а заголовки - как # Заголовок
В Markdown пробелы имеют большое значение. Если в начале строки он видит много отступов, то думает, что это — программный код.
Но в CoffeeScript пробелы тоже имеют большое значение. Язык использует пробелы для того, чтобы понять, когда заканчиваются блоки описания объектов и ветвлений.
CoffeeScript позволяет писать текст без отступов, но некоторым людям так очень трудно понять, к какому коду относится текст, потому что отступы всё время "прыгают".
Salet автоматически обрезает отступы в тексте до минимального количества отступов в этом тексте, поэтому вы можете писать так:
room "prelude", dsc: """ # Капуцин [Читать](./_writer_read) """, writers: read: """ Меня называют капyцином. Я за это, комy следyет, yши обоpвy, а пока что не дает мне покоя слава Жан Жака Рyссо. Почемy он все знал? И как детей пеленать и как девиц замyж выдавать! Я бы тоже хотел так все знать. **(Д. Хармс)** """
В примере выше первый блок текста записан с пробелами так, чтобы визуально быть "внутри" блока кода, а второй блок текста — так, чтобы быть на том же уровне.
Если вы начинаете игру с нуля, то вы уже знаете, что такое веб-разработка и пакеты NPM. В этом случае вы просто выполняете в консоли:
npm install --save salet
Вы можете также использовать CoffeeScript, SASS, Gulp, или написать всё как вам нравится. Salet также требует подключённых библиотек jQuery и marked - с CDN или локально.