Техническая подготовка
Заготовка
Самый простой способ - взять заготовку для игры. Проще всего открыть исходный код какой-нибудь существующей игры, например, демо Salet.
- Установите node.js, если его у вас его нет. (См. видеоинструкцию)
- Сделайте копию проекта через
git clone
куда-нибудь или скачайте архив с кодом. - Выполните
npm install
и подождите, пока не установится каждая зависимость. Не должно занять много времени.
Теперь у вас есть копия репозитория, готовая к запуску. Здесь вы и будете работать над своей игрой.
На что стоит обратить внимание в начале работы:
- Откройте
game/begin.coffee
и измените свойствоsalet.game_id
на что-то другое. UUID будет хорошим выбором. Это должна быть уникальная строка, чтобы сохранения этой игры не мешали сохранениям других (если вы работает над несколькими проектами сразу), см. главу «Сохранения» - Сам Salet и игры на нём пишутся на CoffeeScript. Вам необязательно разбираться в CoffeeScript - просто поиграйте с исходным кодом и посмотрите, какой код на что влияет. В этом руководстве есть конкретные куски кода для копирования и вставки.
- Команда
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
Эта вики использует интерпретатор CoffeeScript, чтобы упростить синтаксис JavaScript.
Чтобы лучше понять, как устроен код, вы можете прочитать эти статьи:
Короткий текст обозначается кавычками: "текст"
, но также есть и длинный многострочный текст, который обозначается тройными кавычками: """ текст """
.
Текст может содержать логику и переменные, если они вставлены через #{}
: "привет #{name}"
. Для хитрой логики лучше использовать функции, которые описываются через () →
А ещё отступ кода определяет логику игры.
Вы не обязаны писать на CoffeeScript. Можно писать на Javascript, TypeScript или других языках, которые транслируются в Javascript. Но он проще чистого Javascript и поэтому все примеры в этой вики даются на нём.
Кратко о Markdown
Весь текст в Salet пишется в синтаксисе Markdown. Например, ссылки выглядят как [текст ссылки](цель ссылки)
, а заголовки - как # Заголовок
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 или локально.