Android Game SDK: nədir və tətbiqinizdə necə istifadə edəcəyiniz

Android Game SDK, daha yaxşı oyun inkişafını asanlaşdırmaq üçün hazırlanmış Google kitabxanalarının yeni bir seriyasıdır. Və ya ən azı, çox uzaq olmayan gələcəkdə vəd olunmuş budur. Hələlik, Android SDK oyunu əslində sadəcə bir kitabxanadır: Android-in çərçivə dərəcəsi kitabxanası, yəqin ki, "dəyişdirmə" adı ilə də tanınır.

Elan 2019-cu ilin dekabr ayının əvvəlində gəldi və çoxdan gözlənilən bir giriş hesab edilə bilər. İnşallah gələcək iterations, inkişaf etdiricilərə Birlik və Unreal kimi üçüncü tərəf mühərriklərinə güvənmədən puzzle oyunları, platformalar və ya hətta 3D başlıqları daha sürətli dizayn etməyə və başlatmağa imkan verən oyun inkişafı prosesini asanlaşdırmağa kömək edəcəkdir.

Android Gaming SDK-ya yeni maddələr əlavə edildikdə bu yazı tez-tez yenilənir, lütfən bu səhifəni və ikiqat yoxlayın. Hələlik, Çərçivə Stimulyasiya Kitabxanasına nəzər salacağıq.


Raster pacing kitabxanası necə işləyir

Bu kitabxana oyunların minimum giriş gecikməsi ilə sabit bir çərçivə sürətini qorumaq üçün nəzərdə tutulmuşdur. Bu oyun göstərmə loopunu sinxronizasiya etməklə edilir sistema operativo və hardware ekranı alt sistemləri. Ekran alt sistemi, bəzən bir aparat yenilənmə yolu ilə bir çərçivədən digərinə köçürüldükdə baş verə biləcək qırılmanı azaltmaq məqsədi daşıyır. Bu, əvvəlki çərçivəni buferləşdirmək, gec çatdırmağı aşkar etmək və çərçivə çox gec aşkarlanarsa əvvəlki çərçivələrin görüntüsünü təkrarlamaqla edilir.

Frame Pacing Library Android SDK oyununda çox sürətli

Google'un

Ancaq bu, uyğun olmayan çərçivə ekranı vaxtı ilə nəticələnən vaxt uyğunsuzluğuna səbəb ola bilər. Məsələn, bir çərçivə daha sürətli işlənirsə, bu ekrandakı çərçivədən əvvəl vaxtı qısalda bilər. Bir çərçivə göstərmək üçün çox uzun sürərsə, çərçivə əlavə çərçivələr üçün təqdim oluna bilər.

Frame Pacing Kitabxanası oyunları ekran alt sistemi ilə sinxronizasiya etmək üçün Android Choreographer API istifadə edərək bu problemi həll edir. Bu, çərçivələrin vaxtında göstərilməsini təmin edən OpenGL və Vulkan API'lərində təqdimat zaman damgası uzantısından istifadə etməklə həyata keçirilir. Tampon doldurulmaması üçün sinxron qılıncoynatmadan da istifadə edir. Birdən çox yeniləmə dərəcələri də dəstəklənir, inkişaf etdiricilərə 90Hz və 120Hz displeyləri və özelleştirme seçimləri daxil olmaqla müxtəlif növ cihazları hədəf almağa imkan verir. Çərçivənin təqdimetmə vaxtı cihazın aparat sayına görə avtomatik olaraq tənzimlənir.


Android SDK oyun oyun stimullaşdırma kitabxanası necə istifadə olunur

Əgər oyununuz OpenGL-də Vulkanı istifadə edirsə, bu kitabxanadan istifadə edə biləcəksiniz. Bunu etmək üçün əvvəlcə Android Games SDK-nı burada yükləməlisiniz.

Bunun necə işlədiyini görmək üçün burada OpenGL-ni sınamaq üçün bir nümunə Bouncy Ball-ı yükləyə bilərsiniz. Vulkan üçün təlimatları burada tapa bilərsiniz. Layihəni açın, sonra müvəffəq olduğundan əmin olmaq üçün proqramı işə salın.

Sonra layihəni kitabxanaya bağlayın. Statik kitabxanalar üçün bunu əlavə etməklə edin gamesdk / daxil yolları daxil olmaqla tərtibçiyə və dəyişdirmə / dəyişdirməGL.h OpenGL ES ilə inteqrasiya üçün. Əksər hallarda başlıq sənədində bütün lazımi funksiyalar olacaq.

Sonda linker kitabxana yoluna aşağıdakı yolu əlavə edin:

gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release

Əlbəttə ki, müvafiq prosessor / NDK versiyası və s. İlə qalın mətn mübadiləsi aparacaqdır.

İstifadə edərək Android Frame Pacing bir nümunəsini işə salırıq:

void SwappyGL_init(JNIEnv *env, jobject jactivity);

Və nümunə sözləri məhv edin:

void SwappyGL_destroy();

İndi aşağıdakı funksiyalar mübadilə intervalınızı və yeniləmə müddətinizi konfiqurasiya etməyə imkan verir:

void SwappyGL_setSwapIntervalNS(uint64_t swap_ns);    void SwappyGL_setFenceTimeoutNS(uint64_t fence_timeout_ns);    void SwappyGL_setUseAffinity(bool tf);

Başlanğıcdan dərhal sonra zəng edin MübadiləGL_init (), Mühərrik işə salındıqda mümkün qədər yaxın olmalıdır. Çərçivə müddətinə keçin MübadiləGL_setSwapIntervalNS () istifadə etmək SWAPPY_SWAP_60FPS, SWAPPY_SWAP_30FPSvə ya SWAPPY_SWAP_20FPS sabit (lazım olduqda).

İndi BOOL istifadə edərək çərçivə dəyişikliyini edin MübadiləGL_swap (EGLD görünən ekran, EGLSurface səthi). Bu sona çatır eglSwapBuffers () Açıq GL ES tərəfindən istifadə olunan metod, buna görə bütün nümunələri yeni versiya ilə əvəz etməlisiniz.

İstənilən vaxt istifadə edərək raster pacing aktivləşdirildiyini yoxlaya bilərsiniz bool SwappyGL_isEnabled ().

Çərçivə stimullaşdırma kitabxanasından istifadə haqqında daha ətraflı təlimatlar üçün Android geliştirici təlimatının rəsmi səhifəsinə baxın.

Birlikdə Android Games SDK istifadə

Çərçivə stimullaşdırılması kitabxanası da Birlik 2019 versiyasına daxil edilmişdir.2 və bunun üstündə. Yalnız Android parametrlərindəki Optimized Çərçivə Göndərmə qutusunu yoxlayın və bu, avtomatik olaraq oyununuz üçün daha hamar bir çərçivə sürətinə səbəb olacaqdır.

Bir daha, Birlik oyun inkişaf etdiriciləri üçün həyatı çox asanlaşdırır!


Gələcəyə baxır

Şəxsən mən Google-un azarkeşlərə sevgi oyunu verməsinin vaxtı gəldiyini düşünürəm, buna görə bunu çox müsbət hal kimi görürəm. Stimulyasiya Kitabxanasının çərçivəsi, ehtimal ki, ipək kimi ipək kimi sürət qrafiklərini çatdırmaq istəyən daha ağır oyunlar üçün xoş bir əlavədir. Bu kiçik bir başlanğıcdır, buna görə çox faydalı kitabxanalar yaratmalı və dərhal Android oyun SDK-nı təqdim etməliyəm.

Daha çox Android İnkişaf Yazısı

C # Öyrənmə Proqramlaşdırması

Birlikdə oyun olmayan bir tətbiq necə etmək olar

1 keçən həftə

Android üçün C # giriş

Bilməlisiniz Android inkişaf etdiriciləri üçün bütün son xəbərlər və xüsusiyyətlər

3 keçən həftə

Android P Beta

Android tətbiqinizdə jestlərdən və jest-based naviqasiyadan necə istifadə etmək olar

4 keçən ay

Məlumat təhlükəsizliyini necə gizlətməyi öyrənin

İstifadəçilərinizin məxfiliyini qoruyun: inkişaf etdiricilər üçün Android tətbiqi təhlükəsizliyi

4 keçən ay

oyun inkişafı

3D qrafika və digər Birlik xüsusiyyətlərini doğma Android tətbiqinizə necə əlavə etmək olar

5 keçən ay

Android ev ekranları üçün vidjet

Android tətbiqetməniz üçün kaydırılabilir widget yaradın

5 keçən ay

Android Q Beta 5 Bir görünüş

Qaranlıq Mövzular, Termal API və Bubbles: Android 10 Tətbiqinizə hazır olun

5 keçən ay

Android Q Beta 5 Bir görünüş

Həbs edilmiş Android inkişaf etdiricilərinin xəbərləri və xüsusiyyətləri (İyul 2019)

6 keçən ay

Android Q Beta 4 Slip istiqaməti bildirişi

Android Developer Xəbərləri və Tutulan Xüsusiyyətlər – İyun 2019

7 keçən ay

Android Game SDK: nədir və tətbiqinizdə necə istifadə edəcəyiniz 1

ilə başlamaq Facebook Android SDK üçün

7 keçən ay