Androıd için dikkat edilmesi gereken 3 şey

Öncelikle uzun bir süredir bloga yazı ekleyemediğimiz için özür dileriz. LanistaWars ve son geliştirdiğimiz mobil oyun olan Galactic için oldukça yoğun bir çalışma içerisindeydik. Tabii ki bu yoğun dönem aynen devam ediyor fakat özellikle Galactic' in geliştirilmesi sürecinde Android platformu ile ilgili edindiğimiz tecrübeleri sizlerle paylaşmak istedim.(Önümüzdeki günlerde Galactic ve LanistaWars ile ilgili başka blog gönderileri de yapacağım;))

Öncelikle proje üzerinde yaklaşık 8 aydır çalışmaktaydık. Boyut olarak gerçekten büyük bir proje. Bir de farklı platformları ve donanım özelliklerini eklerseniz iş tam bir kabusa dönüşmeye başlıyor. İşte yazımın konusu da Android platformuna oyun geliştirirken başınızı en çok ağrıtacak 3 şey:

  1. Farklı Ekran Boyutları: Bir oyun geliştiriyorsunuz ve mümkün olduğunca çok indirilmesini istiyorsunuz. IPhone için çok sıkıntılı bir durum yok çünkü cihazın ekran boyutu standart. Fakat Android işletim sistemi daha açık bir kullanım kitlesine sahip. HTC, Sony, Samsung, vs. vs. Bir de her markanın kendi içindeki modellerde farklı ekran boyutları var. Bu problem için birkaç farklı çözüm var aslında. İlki kameranın kamera oranının(aspect ratio) sabitlemek. Unity3D içerisinde bunu Camera sınıfı üzerinden yapabilirsiniz. Fakat unutmayın bu durumda görselleriniz farklı ekranlarda esneyebilir. İkincisi ise görsellerinizi farklı oranları göz önünde bulundurarak hazırlamak. Bu noktada da en önemli görsel arka plan unutmayın!
  2. Cihazların farklı grafik kartları: Unity3D içerisinde texture compression ayarları bulunmakta. Android için burada birçok çeşit var; DXT, PVRTC, ATC, RGB gibi. Bu ayarların hepsinin çalıştığı donanımlar farklı. ETC bütün cihazlarda çalışıyor fakat alpha kanalını yok sayıyor. Bunun için alpha mask kullanabilirsiniz. Bir cihaz görselin sıkıştırma ayarını tanımıyorsa, RGBA olarak çalıştırdığı için hafızadan çok yer harcıyor bu da hiç beklemediğiniz sorunlara yol açabilir.(Görsellerin siyah gözükmesi gibi). Bu konuda gerekli dökümantasyona buradan ulaşabilirsiniz. Eğer ETC kullanmak istemiyorsanız, her bir sıkıştırma ayarı için farklı bir apk dosyası alıp, Android Market üzerinde bunu filtreleyebilirsiniz.
  3. Farklı işlemci frekansları: Bu da gene cihazın donanım farklılığından ortaya çıkıyor. Bununla ilgili problemi özellikle shader kullanırken işlemci tabanlı hesaplamalarda yaşadık. Galaxy S1' de düzgün çalışan bir efekt GalaxyS3' de çalışmıyordu. Yaptığımız incelemeler sonucu gördük ki işlemci hızı her zaman avantaj olmayabiliyormuş:) Bu nedenle kodlama yaparken işlemci frekansını sabitleyecek şekilde çözümleri göz önünde bulundurmayı unutmayın!

Androidle ilgili uyarılarım şimdilik bu kadar:)

Bloğumuzu takip etmeye devam edin!

Emre

No Comments Yet.

Leave a comment