====== Техническая подготовка ====== ====== Заготовка ====== Самый простой способ - взять заготовку для игры. Проще всего открыть исходный код какой-нибудь существующей игры, например, [[https://gitlab.com/Oreolek/salet/|демо Salet.]] - [[https://nodejs.org/en/download/|Установите node.js]], если его у вас его нет. [[https://www.youtube.com/watch?v=EtbZQ6qWuJ4|(См. видеоинструкцию)]] - Сделайте копию проекта через ''git clone'' куда-нибудь или скачайте **[[https://gitlab.com/Oreolek/salet/repository/archive.zip?ref=master|архив]]** с кодом. - Выполните ''npm install'' и подождите, пока не установится каждая зависимость. Не должно занять много времени. Теперь у вас есть копия репозитория, готовая к запуску. Здесь вы и будете работать над своей игрой. На что стоит обратить внимание в начале работы: - Откройте ''game/begin.coffee'' и измените свойство ''salet.game_id'' на что-то другое. UUID будет хорошим выбором. Это должна быть уникальная строка, чтобы сохранения этой игры не мешали сохранениям других (если вы работает над несколькими проектами сразу), см. главу [[ru:guide:saving|«Сохранения»]] - Сам Salet и игры на нём пишутся на [[https://coffeescript2ru.github.io/|CoffeeScript]]. Вам необязательно разбираться в CoffeeScript - просто поиграйте с исходным кодом и посмотрите, какой код на что влияет. В этом руководстве есть конкретные куски кода для копирования и вставки. - Команда ''gulp'' запускает сборщик проекта. Обычно ''gulp'' означает ''./node_modules/gulp/bin/gulp.js'', просто оно может быть установлено глобально. - Команда ''gulp serve'' показывает живой просмотр вашей игры. Вы можете отредактировать файлы, и ваш браузер загрузит новую версию как только вы сохраните изменения. Пока держится окно консоли (там где написано ''serving files from build'', страница в браузере автообновляется. На этом сама подготовка закончена. Собирать игру из исходников нужно командой: gulp dist которая создаст папку ''dist'' с готовой игрой. Команда ''gulp zip'' автоматически упакует её в архив. И начинайте писать! Вы можете использовать такие сервисы, как [[http://codepen.io/|codepen.io]] или [[https://jsfiddle.net/|jsfiddle.net]] для того, чтобы создавать, редактировать и делиться ИЛ-играми. Просто сделайте новый документ и включите в нём JS-библиотеки Marked, jQuery и ядро Salet. Последняя версия Salet доступна на [[ru:guide:using-cdn|CDN пакетов NPM.]] ==== Кратко о CoffeeScript ==== Эта вики использует интерпретатор CoffeeScript, чтобы упростить синтаксис JavaScript. Чтобы лучше понять, как устроен код, вы можете прочитать эти статьи: * [[https://coffeescript2ru.github.io|Сообщество CoffeeScript на русском]] * [[https://habrahabr.ru/post/179031|Знакомство с CoffeeScript]] Короткий текст обозначается кавычками: ''"текст"'', но также есть и длинный многострочный текст, который обозначается тройными кавычками: ''""" текст """''. Текст может содержать логику и переменные, если они вставлены через ''#{}'': ''"привет #{name}"''. Для хитрой логики лучше использовать функции, которые описываются через ''() -> '' А ещё отступ кода определяет логику игры. Вы **не обязаны** писать на CoffeeScript. Можно писать на Javascript, TypeScript или других языках, которые транслируются в Javascript. Но он проще чистого Javascript и поэтому все примеры в этой вики даются на нём. ==== Кратко о Markdown ==== Весь текст в Salet пишется в синтаксисе Markdown. Например, ссылки выглядят как ''[текст ссылки](цель ссылки)'', а заголовки - как ''# Заголовок'' * [[http://rukeba.com/by-the-way/markdown-sintaksis-po-russki/|Краткое описание 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 также требует подключённых библиотек [[https://code.jquery.com/|jQuery]] и [[https://github.com/chjj/marked|marked]] - с CDN или локально.