Clay.io - это хаб HTML5 игр, который является как магазином приложений, так и API. Этот гайд поможет вам добавить в своё приложение некоторые возможности, например достижения и таблицу лидеров.
Для этого урока я буду использовать демо-игру "Space Blaster".
Регистрация
Первым шагом к использованию Clay.io API - регистрация на Clay.io и создания ключа приложения, для работы с ним.
Вы можете зарегистрироваться на Clay.io здесь: http://clay.io/join
Когда закончите регистрацию, перейдите на страницу для разработчика и нажмите "Upgrade Account to Developer".
Вас попросят указать Имя разработчика (Например: "Vigil Games"), Уникальный никнейм/короткую ссылку (вашу страницу можно будет найти по короткй ссылке clay.io/developer/Никнейм), URL (если у вас есть вебсайт) и Биографию (небольшой рассказ о себе или о своей студии).
Следующим шагом вы должны добавить свою игру (вам пока не нужно загружать файлы, но нам нужна запись о вашей игре). Это можно сделать здесь.
Поддомен - место на Clay.io, где будет находиться ваша игра(если вы выберете "mygame", вы сможете найти её на http://mygame.clay.io)
Цена - оставьте 0.00, если не хотите взимать деньги за доступ к вашему приложению, иначе введите сумму, которую вы считаете приемлемой
Zip File - пока пропустите этот шаг - это для загрузки уже законченных игр, мы же пока будем реализовывать API, нам это пока не нужно.
Теперь мы готовы начать!
Установка плагина
Вы можете скачать Clay.io Construct 2 плагин здесь (в дальнейшем вы также сможете найти здесь необходимую документацию)
После загрузки откройте zip архив и скопируйте папку "clay" в папку установки Construct 2, в раздел плагинов (обычно это находится здесь: C:\Program Files\Construct 2\exporters\html5\plugins)
Далее, откройте свой проект, и добавьте в него новый объект. Clay.io будет расположен в секции "Web".
Вставьте API key в панели properties (то, что вы ввели ранее в графе поддомен, это также доступно из настроек вашей игры).
Включенный debug mode означает, что любые полученные вами достиженея не будут отображаться на Clay.io, а лучшие рекорды не попадут в таблицу лидеров. Не забудьте выключить этот режим перед публикацией, если он до этого был включен.
Таблица лидеров
Первым шагом для добавления таблицы результатов в вашу игру будет посещение страницы для разработчика, нажмите на "Leaderboards", потом на "Add a Leaderboard".
Вы увидите нечто подобное:
Поле Name - это то, что будет показываться в заголовке таблицы рекордов, например:
Поле Type имеет два варианта на выбор: "Default" и "Incrementing". Default это типичная система очков, где один пользователь, к примеру, может иметь 7 лучших результатов, и все они будут записаны. При выборе incrementing, каждый новый рекорд пользователя будет перезаписывать старый. Например, количество побед.
Когда вы нажмёте кнопку "Add Leaderboard", вы увидите сообщение: "Your leaderboard was successfully added with ID: 26" (Не обязательно 26 - нам пригодится ID на следующих этапах).
Далее, в Construct 2 на вкладке "Events", добавьте к какому-нибудь событию дейстие, что вы хотите отправить новый рекорд в таблицу (в Space Blaster это происходит, когда здоровье персонажа равно 0, и игра окончена). Выберите: "Clayio -> Post Leaderboard Score).
Player Name может оставаться пустым. Если поле не заполнено, Clay.io спросит имя пользователя (или если он вошёл в Clay.io, будут использованы данные его аккаунта). Если вы укажете имя, Clay.io использует его для ассоциации со значением переменной.
Player Score будет выражением/переменной. В Space Blaster, это "score".
Leaderboard ID - то, что мы получили на предыдущем шаге - для этой игры это было 26.
Всё это мы сделали, чтобы отправить данные в таблицу, но сейчас мы хотим получить её саму. For some games it makes sense to show the leaderboard after every score is posted, for others, you might want to bind it to a key press. For this tutorial, we're going to have it show each time a score is posted.
Создайте новое действие "Clayio -> Leaderboard Score Posted". Далее, добавьте к нему действие: "Clayio -> Show Leaderboard"
Leaderboard ID - опять же, то, что нам было показано после создания таблицы на Clay.io (26 для этой игры, у вас может быть другое)
Time Frame позволяет указать временной период. Вы можете получать рекорды за последние 30 дней, 7 дней или 24 часа (а также за всё время).
High Score - может быть индивидуальный или совокупный. Если выбрать "совокупный", а пользователь отправил 3 рекорда: 15, 25 and 11, то вернётся их сумма: 51, а не 3 числа по отдельности.
Scores From позволяет сузить круг людей, для кого отображать лучшие очки. Вы можете выбрать из нескольких вариантов: 1) Для всех игроков, 2) Только для находящихся в сети, или 3) Для друзей (они должны быть залогинены на Clay.io, чтобы определить, что они - друзья).
Готово! Ваша таблица рекордов настроена и готова к использованию.
Достижения
Для этого примера, мы собираемся давать достижение за первое убийство в Space Blaster.
Для начала, нужно создать достижение на панели разработчиков Clay.io. Нажмите "Achievements" для вашей игры, после "Add an Achievement".
Для справки, достижение будет выглядеть следующим образом::
Title будет отображаться в заголовке достижения
Description будет находиться в "теле" достижения
Clay.io bronze points - подобно Xbox Live GamerScore показывают важность достижения Clay.io. Вы можете дать до 100 очков за каждую игру
Icon - опционально, можно загрузить 50x50 иконку, которая будет располагаться слева от описания.
Когда вы нажмёте "Add Achievement", вы получите сообщение с новым ID достижения. Он пригодится нам позже (в нашем случае, это 125).
В Construct 2 найдите условие, за которое вы хотите наградить достижением. Для нашего урока, это первое убийство.
Выберите действие "Clayio -> "Award Achievement".
Achievement ID - то, что мы получили при создании достижения на Clay.io (125)
Вот и всё! Когда враг умирает, пользователь получает достижение.
Снимки экрана
Construct 2 позволяет делать скриншоты, но когда вы его сделаете, вы не сможете отправить его на Facebook, или получить ссылку на него. Плагин Clay.io может загружать снимки на свой сервер и давать ссылку на них.
Для достижения этого, сначала добавьте действие "System -> Snapshot canvas" к какому-то условию (сейчас я использовал нажатие клавиши "S")
Далее, создайте событие: "System -> On Canvas Snapshot", и действие: "Clayio -> Post Screenshot to Clay.io".
Действие запросит у вас "Screenshot Data URL" - используя окно "expressions", и выберете "System -> CanvasSnapshot"
Как только вы создадите это действие, вы уже всё сделали - снимки экрана будут отправяться на Clay.io аккаунт пользователя (если он залогинился, иначе его попросят ввести логин и пароль). Детали по отправке на Facebook здесь не рассматриваются.
Постинг на Facebook и Twitter
Процессы для публикации в Facebook, Twitter и Clay.io практически идентичны, чтобы не повторяться, я рассмотрю постинг на Facebook.
Создайте событие, при котором будет это происходить (Я выбрал нажатие клавиши "F").
Далее, выберите действие "Clayio -> Post to Facebook Wall".
Message - текст, который мы отправим на Facebook
Link - необязательная ссылка, которая будет приклеплена к сообщению
Picture ссылка на изображение, прикрепляемое к посту, опционально.
Отправка скриншотов на Facebook
Соединим последние два пункта: давайте отправим снимок экрана на Facebook.
Сначала, следуйте инструкциям из секции "Снимки экрана". После, создайте событие "Clayio -> Screenshot Posted". Добавьте к нему действие: "Clayio -> Post to Facebook Wall".
Сейчас мы проделаем всё, что было во втором пункте, только в поле Picture вставим: "Clayio -> ScreenshotSrc".
Всё, готово!
Для примера игры, использующей API Clai.io, посмотрите Word Wars.
This tutorial doesn't cover everything the plugin does, so be sure to read over the official documentation.