«Интеграция некоторых возможностей социальной игровой сети Scoreloop в приложение на Android»
Раздел: Социальные сети
Таблицы рекордов появились в играх много-много лет назад. Сначала они были очень простыми, вспомним, например, игры для приставок с трехсимвольными именами игроков. Со временем таблицы рекордов усложнялись, результаты стало возможно публиковать в интернете чтобы увидеть себя в глобальном списке. В наши дни, во времена интернета, социальных сетей и мобильных устройств, таблицы рекордов выросли в целые социальные игровые сети. Ниже я расскажу про интеграцию в свое Android-приложение одной из таких социальных игровых сетей под названием Scoreloop. Основные возможностиScoreloop предоставляет SDK для приложений на Android, Bada, iOS and Windows Phone 7, открывая доступ к следующим возможностям:
Таблица результатовШаг 1. Регистрируемся на сайте developer.scoreloop.com (без этого ничего не получится) и скачиваем SDK (ссылка работает только если вы залогинены) Шаг 2. Добавляем наше приложение, получаем для него game id и секретный код. Дальше можно пойти двумя путями — использовать CoreSocial SDK и делать все руками или воспользоваться ScoreloopUI и получить готовый UI для таблицы результатов и т.д. Мы пойдем вторым путем. Шаг 3. Разархивируем SDK в какой-нибудь каталог. Я предполагаю, что вы используете Eclipse для разработки вашего приложения. Открываем проект ScoreloopUI из состава SDK с помощью команды File -> Import -> Existing Projects Into Workspace. Затем подключите проект ScoreloopUI к вашему проекту как библиотеку (нажмите правой кнопкой на проекте вашей игры, выберите 'Properties', выберите 'Android', нажмите кнопку 'Add' в секции 'Library', найдите проект ScoreloopUI и выберите его). Также необходимо подключить библиотеку scoreloop-core.jar к вашему проекту (Project -> Properties -> Libraries -> Add external JAR) Шаг 4. Выставьте для вашего приложения необходимые разрешения. <!-- Permission configuration required by Scoreloop --> Очевидно, что приложению будет необходим доступ к интернету (INTERNET). Для чего нужно READ_PHONE_STATE я точно не знаю, а READ_CONTACTS можно не указывать, если выставите ui.feature.address_book = false в файле scoreloop.properties. Шаг 5. Укажите ScoreloopUI активити, которые будет использовать ваше приложение. <!-- Defining the ScoreloopUI activities --> Шаг 6. Получение файла scoreloop.properties Вернитесь в веб-панель scoreloop.com, настройте свойства игры (вкладка Game Properties), после этого кликните на ссылку “Get scoreloop.properties” на той же странице и сохраните файл scoreloop.properties в папку /assets вашего проекта. Шаг 7. Инициализация и уничтожение фреймворка Scoreloop Для инициализации и уничтожения классов фреймворка используется класс ScoreloopManagerSingleton. Обратите внимание, что операции, описанные ниже, нужно производить в классе приложения, а не активити. Когда создадите класс приложения (если у вас его еще нет), не забудьте указать имя класса приложения в теге «application» вашего манифеста. Инициализация: ScoreloopManagerSingleton.init(this, "секретный код, полученный через веб-интерфейс"); Уничтожение: ScoreloopManagerSingleton.destroy(); Кроме того, SDK настойчиво рекомендует все вызовы реализовывать внутри основного UI потока. Если в вашем приложении используются потоки, рекомендуется использовать объекты Android Handler (http://developer.android.com/reference/android/os/Handler.html) и вызывать ScoreloopUI API из основного потока. Шаг 8. Отправка результата игры на сервер Ваша активити должна реализовать интерфейс OnScoreSubmitObserver. Он состоит из метода onScoreSubmit, который будет вызван после отправки очков на сервер (очевидно, что эта операция занимает время и блокировать UI поток на такое время нельзя). Регистрируем активити как наблюдателя за результатами отправки: ScoreloopManagerSingleton.get().setOnScoreSubmitObserver(this); Отправляем очки на сервер: Double scoreResult = 1450.0; В методе onGamePlayEnded второй параметр — это режим игры (например, легкий, сложный и т.д). Поскольку мы не сконфигурировали режимы через веб-интерфейс, передаем null. Шаг 9. Отображение таблицы результатов С этим совсем все просто: startActivity(new Intent(this, LeaderboardsScreenActivity.class)); Вот как это выглядит: БрендингScoreloop за использование своего сервиса требует, чтобы иконка вашего приложения имела поверх основного изображения небольшой логотип Scoreloop, как, например, здесь: Делается это якобы для того, чтобы пользователи могли сразу увидеть, что это приложение интегрировано со Scoreloop и начали качать его со страшной силой, но мы то знаем… ПослесловиеЕсли какие-то вопросы остались непонятны, постараюсь ответить в комментариях. Кроме того, в состав SDK включена подробная и очень понятная документация. Результаты интеграции, описанные в этой статье, вы можете увидеть в игре Qbrix (ссылка на Маркет, ссылка на .apk): P.S. Пользуясь случаем, хочу сказать спасибо авторам статей об интеграции AdMob и ACRA в Android приложение. Эти руководства сэкономили мне несколько часов разработки. Дата публикации: 2012-01-14 |