Перейти к содержимому

Game sdk service что это

  • автор:

Game sdk service что это

The Aura Ready Game SDK is a service that allows users to control LEDs of Asus Aura enabled devices, such as keyboards, mice, mother boards, and more, by sending HTTP requests to the service.

The Aura Ready Game SDK will be installed on target system as a local service. Applicaions can send HTTP requests via a set of RESTful APIs. Then, the service will periodically update the LEDs status according to the requests sent from applications.

Besides handling the RESTful APIs manually, plugins of Unity and Unreal Engine are also available. These plugins provide some more advanced functions that can be easily adopted.

The figure below roughly describes the architecture of Aura Ready Game SDK:

  • Generated on Fri Oct 15 2021 15:44:38 for ASUS Aura Ready Game SDK Developer’s Guide by 1.9.2

Глава 3. Зачем нужен Game SDK?

На рынке PC-совместимых персональных компьютеров существует несколько операционных систем, но мало кто станет оспаривать тот факт, что Microsoft Windows занимает на нем доминирующее положение. Все лучшие приложения существуют в версиях для Windows; кроме того, эта система устанавливается практически на всех новых компьютерах. Учитывая колоссальную популярность Windows, становится непонятно, почему же для этого лидера в области операционных систем создано так мало игр.

Если вам доводилось программировать для Windows 3.1, то вы наверняка знаете, почему до недавнего времени все лучшие игры работали исключительно под старой доброй (и весьма ограниченной) DOS. Все дело в том, что Windows чрезвычайно медленно справляется с тем, что игры должны делать быстрее всего. По иронии судьбы оказалось, что Windows, представляющая собой графический пользовательский интерфейс с множеством симпатичных значков и кнопок, крайне медленно работает с графикой. А любая операционная система, которая не способна на молниеносную работу с графикой, не справляется и с играми — по крайней мере с теми из них, в которых происходит интенсивная пересылка данных между памятью и экраном. Несмотря на то, что Windows 95 работает значительно быстрее Windows 3.1, многие сложные игры все равно не успевают с достаточной скоростью выводить изображение на экран.

Тогда почему же DOS так хорошо проявляет себя в работе с графикой? Это происходит потому, что DOS позволяет программисту работать на низком уровне, создавать свои собственные графические процедуры и получать доступ к графике непосредственнов видеопамяти. С другой стороны, Windows, в попытке обеспечить аппаратно-независимое окружение, требует, чтобы вся работа с графикой велась через GDI (интерфейс графических устройств — Graphics Device Interface), который представляет собой библиотеку удобных, но большей частью медленных графических функций для выполнения таких задач, как рисование линий или перенос растров на экран. Из-за GDI было невозможно создавать для Windows игры, в которых использовалась сложная графика. Однако ситуация изменилась с выходом Game SDK (и WinG).

На три буквы. Вся правда о том, что такое SDK?

На три буквы. Вся правда о том, что такое SDK? - изображение обложка

Представить Unreal Tournament без фанатских дополнений практически невозможно.
Программисты — тщеславные люди. Они любят, когда результат их труда нравится всем. А еще они любят, когда другие люди продолжают их работу, добавляют к шедевру программистской мысли частичку себя. Тогда произведение становится вдвойне прекрасным. А чтобы простым смертным было легче приобщиться к великому, программисты придумывают для них удобные инструменты. Так на свет появляются SDK. Три в одном Страшная аббревиатура расшифровывается как Software Development Kit , то есть “набор для разработки программ”. Можно подумать, что к SDK в таком случае относится любой программный инструмент, например тот же Delphi или MSVC++. Однако название обманчиво. На самом деле SDK — это комплект, который расширяет функциональность какой-то программы или игры и позволяет другому программисту или даже игроку создавать свои собственные программы. SDK был бы не SDK, если бы в него не входили три важнейших компонента. Первый компонент — собственно программа или библиотека , которая позволяет разрабатывать новые программы или игры на базе чего-то, уже существующего. Второй — документация , которая в SDK, как правило, проста и лаконична. Она обычно делится на две части: Tutorial — пошаговый курс в стиле “Построим город за 10 минут” и раздел Reference — справочник по всему, что можно сделать с помощью данного SDK.

На три буквы. Вся правда о том, что такое SDK? - фото 2

Не будь SDK, не было бы к UT такого разнообразия скинов.
Третий компонент обычно самый “вкусный” — примеры того, что можно сделать с помощью SDK. Во-первых, благодаря им можно вообще не вникать в SDK, но ознакомиться с тем, что же может пакет. Во-вторых, есть люди, которым даже относительно небольшой Tutorial читать лень. Так и не надо! Бери один из примеров, изменяй его и — вуаля! Новая программа или игра готова. От нашего дома вашемуВсе SDK условно можно разделить на две большие группы. Первые создаются разработчиками для тех, кто хочет сделать самостоятельную программу или игры. Пример такого SDK — DirectX , который установлен практически на любом компьютере. Но у простых смертных стоят только рабочие библиотеки — так называемый Redistributable. Для программерствующего же люда Microsoft подготовила полноценный пакет DirectX SDK весом 100 Мб. В нем есть все, что

На три буквы. Вся правда о том, что такое SDK? - фото 3

SDK облегчает создание высокополигональных моделей для 3D-игр.
необходимо разработчику для создания компьютерной игры: собственно библиотеки, заголовочные файлы для MSVC++, примеры и многостраничная документация. Причем SDK распространяется совершенно бесплатно. Но как быть тем несчастным, которые программируют не на MSVC++, а в других средах, например в Delphi? Microsoft тут не помощник, но почти для любого из языков программирование есть адаптер, с помощью которого можно использовать возможности DirectX. Второй вид SDK — самодостаточные инструменты. К ним, к примеру, относится Torque Game Engine SDK от компании Garage Games — полноценный игровой движок, поддерживающий самые передовые технологии. В отличие от DirectX, который все же полуфабрикат, с помощью Torque можно создавать хорошие игры без глубокого знания технологий программирования под 3D. В Torque используется С-подобный скриптовый язык программирования. Для своих возможностей лицензия на разработку с помощью Torque стоит удивительно недорого — всего $100. Сколь бы ни был распространен DirectX, но самые известные SDK среди разработчиков — это движки Unreal Warfare и Lightech. В их составе есть и инструменты для разработки, и документация, и примеры готовых игр. Только условия лицензирования гораздо более жесткие. Кстати, не стоит думать, что в одной игре или программе может быть использован только один пакет разработчиков. Для создания некоторых игр применяется до десятка SDK.

На три буквы. Вся правда о том, что такое SDK? - фото 4

После появления DirectX SDK конвейер по производству Windows стал работать гораздо быстрее.
__ Мнение общества Чаще всего SDK, только что сошедший с конвейера, содержит массу багов. Чтобы упростить разработку программ и игр, а заодно подчистить глюки движка, разработчики создают специализированное Community — Сообщество разработчиков SDK. В разных компаниях сообщество организовано по-разному, но чаще всего это форум, где разработчики могут обсудить тонкости использования SDK, посоветоваться и задать вопросы в службе технической поддержки. Иногда делается лист рассылки с новостями о развитии SDK и раздел документации, который постоянно обновляется. Приплюсуйте к этому статьи самих разработчиков, общение с другими пользователями — разработчиками SDK и самое важное — круглосуточную техническую поддержку по телефону, электронным средствам связи и даже с выездом в офис клиента. В России традиционно недооценивается эта составляющая и ценность службы технической поддержки вообще. Зато на Западе техподдержка ценится не меньше подробной документации. И стоимость этого компонента составляет значительную часть стоимости всего SDK.
*** * *** Если к какой-то игре вышел SDK — это отличный повод совершенно бесплатно (лишь иногда — за небольшие деньги) создать свою собственную игру. Не надо программировать собственный движок, создавать множество дополнительных утилит, связывать все это вместе. Все уже сделано за нас. Нам нужно только изучить основы работы в SDK и… творить.

Google Play Game Services в Libgdx

image

Многие разработчики игр хотят использовать сервис Google Play Game Services в своих играх. Я не был исключением, но знаний и навыков как быстро добавить поддержку GPGS в свою libgdx игру не было. В данной статье опишу процесс подключения таблицы рекордов и достижений. Исходные данные: Eclipse, настроенная консоль разработчика для работы с игровыми сервисами, android-проект, корневой проект.

Настройка

Не буду рассказывать, как настроить консоль разработчика для работы с GPGS, скажу лишь, что оттуда нам понадобятся ресурсы вида:

games-ids.xml

   310266082735 HgkIr62KmoQJEAIQBg HgkIr62KmoQJEAIQBw HgkIr62KmoQJEAIQCA HgkIr62KmoQJEAIQCg HgkIr62KmoQJEAIQCQ HgkIr62KmoQJEAIQDw HgkIr62KmoQJEAIQEA HgkIr62KmoQJEAIQEQ HgkIr62KmoQJEAIQEg HgkIr62KmoQJEAIQEw HgkIr62KmoQJEAIQFA HgkIr62KmoQJEAIQFQ HgkIr62KmoQJEAIQFg HgkIr62KmoQJEAIQFw HgkIr62KmoQJEAIQGA HgkIr62KmoQJEAIQGQ HgkIr62KmoQJEAIQGg HgkIr62KmoQJEAIQGw HgkIr62KmoQJEAIQHA HgkIr62KmoQJEAIQHQ HgkIr62KmoQJEAIQHg HgkIr62KmoQJEAIQHw HgkIr62KmoQJEAIQIA HgkIr62KmoQJEAIQIQ HgkIr62KmoQJEAIQAQ HgkIr62KmoQJEAIQCw HgkIr62KmoQJEAIQDA  

, где app_id – идентификатор вашего приложения, строки вида leaderboard_xxx и achievement_xxx указывают на конкретную таблицу рекордов и достижение соответственно. Следует создать ресурсный xml-файл с именем games-ids.xml в android-проекте своей игры и поместить туда ресурсы выше.

image

Для работы GPGS нужен проект-библиотека google-play-services_lib. Его путь:
\extras\google\google_play_services\libproject\google-play-services_lib
По умолчанию игровые сервисы не устанавливаются вместе с Android SDK, поэтому по этому пути ничего не будет. Чтобы это исправить нужно в Android SDK Manager установить два пакета: Google Repository и Google Play services.

image

Проект-библиотеку google-play-services_lib нужно импортировать в Eclipse. После чего установить в свойствах импортированного проекта галочку «Is library».

image

Теперь нужно связать между собой ваш android-проект и библиотеку google-play-services_lib. Для этого добавляем библиотеку в раздел Required projects on the build path. (Properties -> Java Build Path -> Projects).

image

На данном этапе можно было бы закончить настройку, но официальная документация Google настоятельно рекомендует использовать класс-помощник GameHelper. Этот класс сильно облегчает жизнь при работе с игровыми сервисами. Его установка аналогична установке google-play-services_lib (импортировать проект как библиотеку, связать проект-библиотеку с android-проектом). Скачать BaseGameUtils.

В AndroidManifest.xml добавляем два разрешения и мета-данные:

Мета-данные добавляются внутри тега application:

Код

В главной Activity реализуем два интерфейса GameHelperListener, ActionResolver:

public class MainActivity extends AndroidApplication implements GameHelperListener, ActionResolver 

Интерфейс GameHelperListener выглядит следующим образом:

public interface GameHelperListener < /** * Вызывается при неудачной попытке входа. В этом методе можно показать * пользователю кнопку «Sign-in» для ручного входа */ void onSignInFailed(); /** Вызывается при удачной попытке входа */ void onSignInSucceeded(); >

Интерфейс ActionResolver создаем сами. Он нужен для вызова платформо-зависимого кода. Эта техника описана в официальной wiki libgdx. Пример интерфейса:

public interface ActionResolver < /** Узнать статус входа пользователя */ public boolean getSignedInGPGS(); /** Вход */ public void loginGPGS(); /** Отправить результат в таблицу рекордов */ public void submitScoreGPGS(int score); /** * Разблокировать достижение * * @param achievementId * ID достижения. Берется из файла games-ids.xml */ public void unlockAchievementGPGS(String achievementId); /** Показать Activity с таблицей рекордов */ public void getLeaderboardGPGS(); /** Показать Activity с достижениями */ public void getAchievementsGPGS(); >

Пример кода главной Activity:

public class MainActivity extends AndroidApplication implements GameHelperListener, ActionResolver < // помощник для работы с игровыми сервисами private GameHelper gameHelper; // класс нашей игры private TestGame game; @Override public void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); // CLIENT_ALL указывет на использование API всех клиентов gameHelper = new GameHelper(this, GameHelper.CLIENT_ALL); // выключить автоматический вход при запуске игры gameHelper.setConnectOnStart(false); gameHelper.enableDebugLog(true); // запретить отключение экрана без использования дополнительных // разрешений (меньше разрешений – больше доверие к приложению) getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // Входной параметр this является ActionResolver. Позволяет вызывать из // игрового цикла платформо-зависимые методы GPGS game = new TestGame(this); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); initialize(game, config); gameHelper.setup(this); >// методы gameHelper’а: onStart(), onStop() вызываются для корректной работы // GPGS в жизненном цикле android-приложения @Override protected void onStart() < super.onStart(); gameHelper.onStart(this); >@Override protected void onStop() < super.onStop(); gameHelper.onStop(); >@Override protected void onDestroy() < super.onDestroy(); >@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) < super.onActivityResult(requestCode, resultCode, data); // здесь gameHelper принимает решение о подключении, переподключении или // отключении от игровых сервисов, в зависимости от кода результата // Activity gameHelper.onActivityResult(requestCode, resultCode, data); >@Override public boolean getSignedInGPGS() < // статус подключения return gameHelper.isSignedIn(); >@Override public void loginGPGS() < try < runOnUiThread(new Runnable() < @Override public void run() < // инициировать вход пользователя. Может быть вызван диалог // входа. Выполняется в UI-потоке gameHelper.beginUserInitiatedSignIn(); >>); > catch (Exception e) < e.printStackTrace(); >> @Override public void submitScoreGPGS(int score) < // отправить игровые очки в конкретную таблицу рекордов с ID // “HgkIr62KmoQJEAIQAQ” Games.Leaderboards.submitScore(gameHelper.getApiClient(), "HgkIr62KmoQJEAIQAQ", score); >@Override public void unlockAchievementGPGS(String achievementId) < // открыть достижение с ID achievementId Games.Achievements.unlock(gameHelper.getApiClient(), achievementId); >@Override public void getLeaderboardGPGS() < // вызвать Activity для всех зарегистрированных таблиц рекордов. Так же // можно вызывать Activity под конкретную таблицу startActivityForResult( Games.Leaderboards.getAllLeaderboardsIntent(gameHelper .getApiClient()), 100); >@Override public void getAchievementsGPGS() < // вызвать Activity с достижениями startActivityForResult( Games.Achievements.getAchievementsIntent(gameHelper .getApiClient()), 101); >@Override public void onSignInSucceeded() < >@Override public void onSignInFailed() < >> 

Допустим, у нас в игре предусмотрено достижение – набрать 1 млн. игровых очков, то код реализующий это будет выглядеть так:

public static void checkTotalPoints(int points) < ActionResolver res = getActionResolver(); if (!res.getSignedInGPGS()) < return; >if (points >= 1000000) < res.unlockAchievementGPGS("HgkIr62KmoQJEAIQGA"); >> 

То же самое и с таблицей рекордов, только еще легче: нужно просто вызвать метод submitScoreGPGS(int score) интерфейса ActionResolver.

P. S. Для тестирования игровых сервисов нужно экспортировать apk-файл с тем же сертификатом, что и в консоли разработчика. Так же нужно добавить аккаунты тестировщиков в консоли. Изменения в игровых сервисах вступают в силу через некоторое время.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *