Televizyon ekranında mobil oyuna yeni gelebilecek pek çok husus yer alıyor birlikte çalışır. Bu alanlar arasında reklamın büyük boyutu, kontrol şeması ve tüm oyuncuların görüntüleyen kişilerdir.
Ekran
TV ekranına yönelik oyun geliştirirken aklınızda bulundurmanız gereken iki önemli şey, düşük gecikme desteği sağlıyor.
Yatay ekranı destekle
Televizyon her zaman yan duruyor: Döndüremezsiniz ve dikey yön yoktur. Her zaman tasarlayın TV oyunlarınızın yatay modda görüntülenmesi gerekir.
Otomatik düşük gecikme modu
Belirli ekranlar, grafik işleme sonrası süreci gerçekleştirebilir. İşleme sonrası, grafikleri iyileştirir ancak gecikmeyi artırabilir. HDMI 2.1'i destekleyen yeni ekranlarda otomatik düşük gecikme modunu (ALLM) seçin. Örneğin, hakkında daha fazla bilgi için HDMI 2.1 spesifikasyonu. Diğer Ekranlar, benzer davranışa sahip bir oyun modunu destekleyebilir.
Android 11 ve sonraki sürümlerde bir pencerede otomatik düşük gecikme modu veya oyun izni istenebilir modun, mümkünse minimum işleme sonrası işlem isteği yapılarak kullanılmasını sağlayın. Bu, özellikle düşük gecikmenin daha önemli olduğu oyun ve video konferans uygulamalarında her zaman en iyisi olabilir.
Minimum işleme sonrası özelliğini etkinleştirmek veya devre dışı bırakmak için
Window.setPreferMinimalPostProcessing()
,
veya pencerenin
preferMinimalPostProcessing
özelliğini true
olarak değiştirin. Tüm ekranlar minimum işleme sonrası sürecini desteklemez; ve projenizin
başarılı olup olmadığını
desteklemesi durumunda,
Display.isMinimalPostProcessingSupported()
yöntemini çağırın.
Giriş cihazları
TV'lerin dokunmatik arayüzleri olmadığından, kontrollerinizi doğru şekilde yapmak daha da önemlidir. Böylece oyuncuların bunları sezgisel ve eğlenceli bulduğundan emin olabilirsiniz. Denetleyicileri kullanma takip etmek gibi dikkat edilmesi gereken başka sorunlar da mevcuttur. ve elektrik prizleri sorunsuz bir şekilde kopuyor. Oyunlar da dahil olmak üzere tüm TV uygulamaları sağlamak için çok önemlidir. Şunu okuyun: TV'yi Yönetme kullanma hakkında daha fazla bilgi için TV kumandalarını Belirli oyunlar için oyun kumandalarını yönetin Oyunlar için TV kumandalarını kullanma hakkında bilgi.
Klavye düzenleri
Android 13 (API düzeyi 33) ve sonraki sürümlerde klavye düzenlerini belirlemek için şunları kullanabilirsiniz:
getKeyCodeForKeyLocation()
Örneğin, oyununuz WASD tuşlarını kullanarak hareketi destekliyor, ancak bu,
AZERTY klavyesi. Bu klavyede A ve W tuşları farklı yerlerde bulunuyor. Tuş kodlarını buradan
belirli konumlarda beklediğiniz anahtarlar için:
Kotlin
val inputManager: InputManager? = requireActivity().getSystemService() inputManager?.inputDeviceIds?.map { inputManager.getInputDevice(it) } ?.firstOrNull { it.keyboardType == InputDevice.KEYBOARD_TYPE_ALPHABETIC } ?.let { inputDevice -> keyUp = inputDevice.getKeyCodeForKeyLocation(KeyEvent.KEYCODE_W) keyLeft = inputDevice.getKeyCodeForKeyLocation(KeyEvent.KEYCODE_A) keyDown = inputDevice.getKeyCodeForKeyLocation(KeyEvent.KEYCODE_S) keyRight = inputDevice.getKeyCodeForKeyLocation(KeyEvent.KEYCODE_D) }
Java
InputManager inputManager = requireActivity().getSystemService(InputManager.class); InputDevice inputDevice = Arrays.stream(inputManager.getInputDeviceIds()) .mapToObj(inputManager::getInputDevice) .filter( device -> device.getKeyboardType() == InputDevice.KEYBOARD_TYPE_ALPHABETIC) .filter(Objects::nonNull) .findFirst() .orElse(null); if (inputDevice != null) { keyUp = inputDevice.getKeyCodeForKeyLocation(KeyEvent.KEYCODE_W); keyLeft = inputDevice.getKeyCodeForKeyLocation(KeyEvent.KEYCODE_A); keyDown = inputDevice.getKeyCodeForKeyLocation(KeyEvent.KEYCODE_S); keyRight = inputDevice.getKeyCodeForKeyLocation(KeyEvent.KEYCODE_D); }
Bu örnekte, AZERTY klavyede keyUp
değeri
KeyEvent.KEYCODE_Z
, keyLeft
KeyEvent.KEYCODE_Q
olarak ayarlandı,
keyDown
ve keyRight
ise KeyEvent.KEYCODE_S
olarak ayarlanır
ve KeyEvent.KEYCODE_D
. Artık bunlar için önemli etkinlik işleyiciler oluşturabilirsiniz
ve beklenen davranışı nasıl uygulayacağınız hakkında daha fazla bilgi edinin.
Manifest
Android manifest dosyasında oyunların içermesi gereken bazı özel şeyler var.
Oyununuzu ana ekranda gösterin
Android TV ana ekranında, oyunlar normal uygulamalardan ayrı bir satırda gösterilir.
Oyununuzun oyun listesinde görünmesi için
Uygulama manifest'inizde "true"
olarak ayarlanmış android:isGame
özelliğini
<application>
etiketiyle ilgili bir değişikliktir. Örnek:
<application ... android:isGame="true" ... >
Oyun kumandaları için destek beyan etme
Oyun kumandaları, TV cihazının kullanıcıları tarafından kullanılamayabilir veya etkin olmayabilir. Bu e-postaları nasıl oyununuzun bir oyun kumandasını desteklediğini kullanıcılara bildirmek için aşağıdaki girişi uygulama manifestiniz:
<uses-feature android:name="android.hardware.gamepad" android:required="false"/>
Not: android:hardware:gamepad
desteğini belirtirken
android:required
özelliğini "true"
ile ilişkilendirin. Bunu yaparsanız kullanıcılar şunları yapamaz:
uygulamanızı TV cihazlarına yükleyin.
Manifest girişleri hakkında daha fazla bilgi için Uygulama manifesti.
Google Play oyun hizmetleri
Oyununuz Google Play Games hizmetlerini entegre ediyorsa, projeyi ilerletmek için ilgili hususlara dikkat edin.
Başarılar
Oyununuzda en az beş (kazanılabilir) başarı bulunmalıdır. Yalnızca oyunu kontrol eden bir kullanıcı desteklenen bir giriş cihazından başarıları kazanabilmeniz gerekir. Daha fazla bilgi için ve bunların nasıl uygulanacağıyla ilgili bilgiler için Android'de Başarılar başlıklı makaleyi inceleyin.
Oturum açma
Oyununuz, başlangıçta kullanıcının oturum açmasını sağlamaya çalışacaktır. Oyuncu oturum açmayı birkaç kez reddederse işlemi tekrarlamanız durumunda, oyununuz size sormayı bırakacaktır. Oturum açma hakkında daha fazla bilgi için: Android.
Kaydediliyor
Depolamak için Google Play Hizmetleri'ndeki Kaydedilmiş Oyunlar'ı kullanın elde edersiniz. Oyununuzun, kullanıcı oyun kayıtlarında yer almak üzere tarafından benzersiz bir şekilde tanımlanabilir: Oynatıcı ister telefon ister TV kullanıyor olsun, oyunun kayıt bilgilerini aynı kullanıcı hesabından alabilmelidir.
Ayrıca, oyununuzun kullanıcı arayüzünde oyuncunun yerel olarak silme ve
depolanan verileri içerebilir. Bu seçeneği oyunun Settings
ekranına yerleştirebilirsiniz. Örneğin,
kaydedilen oyunları Play Hizmetleri'ni kullanarak uygulamayla ilgili ayrıntılı bilgi için Android'de Kaydedilmiş Oyunlar bölümüne bakın.
Çık
Kullanıcının oyundan sorunsuz bir şekilde çıkmasına olanak tanıyan tutarlı ve bariz bir kullanıcı arayüzü öğesi sağlayın. Bu öğesine D-pad gezinme düğmeleriyle erişilebilmelidir. Bu Farklı kumandalar arasında tutarlı veya güvenilir olmadığından çıkış sağlayan ana sayfa düğmesi
Web
Android TV için oyunlarda web'e göz atmayı etkinleştirme. Android TV, web tarayıcısını desteklemiyor.
Not: Giriş işlemleri için WebView
sınıfını kullanarak şu işlemleri gerçekleştirebilirsiniz:
sosyal medya hizmetleridir.
Ağ Ürünleri
Oyunlar, optimum performans sağlamak için genellikle daha yüksek bant genişliğine ihtiyaç duyar ve pek çok kullanıcı bunu tercih eder Ethernet'i kablosuz ağa bağlayabilirsiniz. Uygulamanız hem kablosuz ağı hem de Ethernet'i kontrol etmelidir bağlantılar. Uygulamanız yalnızca TV için kullanılıyorsa 3G/LTE hizmetini kontrol etmeniz gerekmez. mobil uygulama için