Şimdi Ara

Optimizasyon Nasıl yapabilirim fikri olan?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
76
Cevap
5
Favori
3.527
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1234
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Evet beyler. Yaptığım oyun mobil bir oyun.40 000 poligon ve 120 draw calls sayısı var. Draw calls sayısı düşürmek çok zor bir işlem. Onun dışında optimizasyon hakkında bilgisi olanlar beni bilgilendirirse sevinirim ...

    s4'te iph5 ve ip5s'te problem yok. Nexus4'te de problem yok sayılır. Ama altı için iyi şeyler söyleyemeyeceğim



  • http://www.madbytegames.com/gelistirici-gunlukleri-export-ve-optimizasyon/

    burada aradığın şeyi bir nebze de olsa bulabilirsin ayrıca diğer geliştirici günlüklerini izleyip bilmediğin şeylerde öğrenebilirsin iyi forumlar
  • Cok fazla, 5k-10k poly, 40-70 arsi draw call ortalama oyunlarin ideali. Bu rakamlarla tabiki shaderlara bagli olarakta, oyunlar Samsung Galaxy S2, iphone 3GS gibi cihazlarda 45-60 fps veriyor.

    Dusuk poly icin, ya birine modellettiricen yada kendin modellicen. Mesala kosu oyununda bir bina var, binan arkasini ve altini siliceksin tum faceleri, sonucta binanin arkasida altida asla gorulmiyecek, olabildigine gorulmeyen faceleri siliceksin, gorunenleride dusuk poly ciziceksin, texture ile detay verip aradaki acigi kapaticaksin.

    Dusuk draw call icin, kullanabildigin kadar az material kullanicaksin, yani objeler kullanabildigi kadar ortak material kullanicak, ayrica texture atlas cok cok onemli tek tek texture yerine tek bir texture atlas kullanarak UV mapping ile objelere atiyacaksin. Dynamic shadow veya blob shadow kesinlikle kullanmiyacaksin. Sadece gerekli objelerin shadowa ihtiyaci varsa at bir panel altina, siyah bir texture ver shadow olarak.

    Daha bir suru yol tabi ama en onemlileri bunlar.




  • quote:

    Orijinalden alıntı: Moribito

    Cok fazla, 5k-10k poly, 40-70 arsi draw call ortalama oyunlarin ideali. Bu rakamlarla tabiki shaderlara bagli olarakta, oyunlar Samsung Galaxy S2, iphone 3GS gibi cihazlarda 45-60 fps veriyor.

    Dusuk poly icin, ya birine modellettiricen yada kendin modellicen. Mesala kosu oyununda bir bina var, binan arkasini ve altini siliceksin tum faceleri, sonucta binanin arkasida altida asla gorulmiyecek, olabildigine gorulmeyen faceleri siliceksin, gorunenleride dusuk poly ciziceksin, texture ile detay verip aradaki acigi kapaticaksin.

    Dusuk draw call icin, kullanabildigin kadar az material kullanicaksin, yani objeler kullanabildigi kadar ortak material kullanicak, ayrica texture atlas cok cok onemli tek tek texture yerine tek bir texture atlas kullanarak UV mapping ile objelere atiyacaksin. Dynamic shadow veya blob shadow kesinlikle kullanmiyacaksin. Sadece gerekli objelerin shadowa ihtiyaci varsa at bir panel altina, siyah bir texture ver shadow olarak.

    Daha bir suru yol tabi ama en onemlileri bunlar.

    Hocam poly azaltma işleminin doruklarındayım emin olun. Daha azaltamam. O kadar iyi bir optimizasyon yaptım ki poly sayısı olarak inanamazsınız. Sanırım sorun draw call sayısı fazla biraz.

    Aslında 3DS MAX'te odelleri yaparken poly sayısı 250 gözüküyor ortalama her bina için. Unity'e atınca 1000 oluyor bu sayı nedense. Unity'nin vertices hesaplaması biraz daha farklı da ondan değil mi? 1 poly ancak 1 kenar için kullanılabilir. Eğer bir poly'e 5 tane kenar bağlı ise 5 vertices sayılır. Ben böyle biliyorum.

    Birde sürekli çok büyük objeler instantiate ediyorum. Her biri 3-4 mb boyutunda düşünün. Bu instantiate'i durdurursam performans olarak nasıl bir gelişme oluşabilir?

    Çok fazla diyorsunuz da gelmiş geçmiş en iyi grafikli android oyununu geliştiriyorum sonuçta. İnanmıyorsanız ekran görütüntülerim de var



    < Bu mesaj bu kişi tarafından değiştirildi any77 -- 18 Aralık 2013; 17:45:10 >




  • Bende sonsuz platformer yapiyorum instantiate / destroy yapiyorsan 10-20 dakika icinde o oyun patlar, memory heap dolup tasar, git gide fps duser. Pooling sistemini biliyormusun bilmiyorum. kisaca tum objeleri bastan yaratip tekrar tekrar kullanman gerekir. Pooling olmadan sonsuz platform oyunlari mobilde coker. Unity3D'de devamli olarak instantiate / destroy kullanilmaz.

    Birde grafiklerininin comrpessi nedir ? 1024 compress falan cok fazla tek bir texture icin. Ayrica Texture Atlas kullanmazsan draw call cok yuksek olur. Ayrica Shadow hakkinda soylediklerimi dikkate al, draw calli arttirir.

    Son olarak bu dunyanin en iyi grafigi olayi nedir, arkadas ? Oyununu boyle kisitlarsan kullanici kaybedersin. Grafikten ote onemli olan oyunun akiciligi ve verdigi zevktir. Grafiklerini yeniden optimize et. Material olarak mobile/diffuse kullan. Eger bumped diffuse kullaniyorsan vazgec, fps duser, draw call cok yukselir.

    Bir ilave daha, 1 draw call skybox cube gameobject kullan, sakin hazir gelen skybox'u render'a atma, draw call artar.

    vsvs...




  • quote:

    Orijinalden alıntı: Moribito

    Bende sonsuz platformer yapiyorum instantiate / destroy yapiyorsan 10-20 dakika icinde o oyun patlar, memory heap dolup tasar, git gide fps duser. Pooling sistemini biliyormusun bilmiyorum. kisaca tum objeleri bastan yaratip tekrar tekrar kullanman gerekir. Pooling olmadan sonsuz platform oyunlari mobilde coker. Unity3D'de devamli olarak instantiate / destroy kullanilmaz.

    Birde grafiklerininin comrpessi nedir ? 1024 compress falan cok fazla tek bir texture icin. Ayrica Texture Atlas kullanmazsan draw call cok yuksek olur. Ayrica Shadow hakkinda soylediklerimi dikkate al, draw calli arttirir.

    Son olarak bu dunyanin en iyi grafigi olayi nedir, arkadas ? Oyununu boyle kisitlarsan kullanici kaybedersin. Grafikten ote onemli olan oyunun akiciligi ve verdigi zevktir. Grafiklerini yeniden optimize et. Material olarak mobile/diffuse kullan. Eger bumped diffuse kullaniyorsan vazgec, fps duser, draw call cok yukselir.

    Bir ilave daha, 1 draw call skybox cube gameobject kullan, sakin hazir gelen skybox'u render'a atma, draw call artar.

    vsvs...

    Yahu hocam moral bozucu gibisin yav . Bu anlattıklarının hepsini biliyorum. 1 yıldır unity kullanıyorum . Bumped türevi shader kullanmadım hiç.

    Hocam bu pooling sistemini biliyorum ancak yapamamıştım. Instantiate daha kolay geldiği için direk onu kullanmıştım. Benim için s3 ve yukarısı kaldırsın yeter. Gerisi umrumda değil. Yapımcı olarak hitap kitlem yüksek seviye olacak. Bu bir tercih meselesi yani büyütülecek bir şey yok . Elimde olan bir şey de yok. Grafikleri yaptım ve şimdi de optimize için uğraşıyorum. Detaylardan ödün veremem. Zaten öyle aşırı detay yok. Objelerin detayını da mümkün olduğunca kıstım. Texture kalitesi yüksek diyebilirim. Texture kalitesini düşüreyim biraz. Uvmap mı ne onu yapabilirsem yapayım. Zaten shadow kullandığım da yok. Lightmap kullanıyorum. Zaten muhtemelen kasma sebebi instantiate. Nexus 4'te yaptığım testlerde draw call sayısı 500 ve poligon sayısı 150 000 iken, real-time gölgeler açıkken test yaptım. 20-25 fps aldım. draw call 100, 40 000 poly ve gölgeler kapalı testimde 30 fps filan oldu. Öyle çok fark yok yani. Problem başka bir şeyde sanırım. İnstantiate ara ara takılmalar yaptığı için problem oluşuyor sanırım.

    Object pooling kullanacağım ve bildiğim kadarı ile tüm objeleri ekranda görünmeyen bir yerde tutacağız ve zamanı geldiğinde yerlerini değiştireceğiz. Bu yer değiştirme kodunu objenin position'unu vector3 cinsinden belirlemek istiyorum da bu kavramı bilmiyorum. Obje oradan önüme ışınlanacak. Position'u değişecek işte. Hocam bilginiz varsa öğrenmek isterim...




  • Hocam object pooling'i de yaptım sanırım. Sistemi çözdüm. Şimdi geriye kalan kodu yazmak. 5 satırlık 1 objelik kodu yazdım oldu. Şimdi sıra 50 tane objeyi koda geçirmekte
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • Mobilede performans dusuklugune bir cok neden olabilir, kendi deneyimlerimi yazayim:

    1. Pooling sisteminin olmayisi, veya kalitesiz kodlama
    2. Update, FixedUptate, LateUpdate 'in yanlis kullanimi
    3. Quality settings ayarlarinin iyi ayarlanmamis olmasi
    4. FixedTimeSteping cok dusuk olmasi vede fixed update'e cok yuklenmesi
    5. OnTriggerEnter , OnTriggerEnter'in cok fazla kullanilmasi, yada yanlis kullanilmasi
    6. RigidBody'in coklugu, fizik ogelerine fazla yuklenemesi
    7. Ozellikle Mesh collider kullanilmasi mobilde kacinilmak zorunludur.
    8. NGUI gibi 1 draw call sistemlerinin GUI olarak kullanilmayisi, unityinin kendi GUI sistemi cok kotu
    9. Objelerdeki gereksiz poly sayilari, ozellikle unutulmus double vertexli modeller

    Oooo say say bitmez, aklima gelenler bunlar.



    < Bu mesaj bu kişi tarafından değiştirildi Moribito -- 19 Aralık 2013; 12:28:35 >




  • quote:

    Orijinalden alıntı: Moribito

    Mobilede performans dusuklugune bir cok neden olabilir, kendi deneyimlerimi yazayim:

    1. Pooling sisteminin olmayisi, veya kalitesiz kodlama
    2. Update, FixedUptate, LateUpdate 'in yanlis kullanimi
    3. Quality settings ayarlarinin iyi ayarlanmamis olmasi
    4. FixedTimeSteping cok dusuk olmasi vede fixed update'e cok yuklenmesi
    5. OnTriggerEnter , OnTriggerEnter'in cok fazla kullanilmasi, yada yanlis kullanilmasi
    6. RigidBody'in coklugu, fizik ogelerine fazla yuklenemesi
    7. Ozellikle Mesh collider kullanilmasi mobilde kacinilmak zorunludur.
    8. NGUI gibi 1 draw call sistemlerinin GUI olarak kullanilmayisi, unityinin kendi GUI sistemi cok kotu
    9. Objelerdeki gereksiz poly sayilari, ozellikle unutulmus double vertexli modeller

    Oooo say say bitmez, aklima gelenler bunlar.


    Hocam ngui kullanıyorum zaten . On triggerenter 3 5 saniyede bir oluyor. Çok fazla yok yani. Neyse ya hocam instantiate'i kaldırdım. Yapacak çok bi şey de kalmadı.

    Hocam bi şey soracağım. Draw calls sayısını düşürmek çok mu önemlidir? Şuan 100-120 arası. Bunu 50'ye düşürürsem bir faydası olur mu?
    Birde draw calls sayısı ile ilgili CombineChildren.cs tam olarak ne işe yarıyor çözemedim?



    < Bu mesaj bu kişi tarafından değiştirildi any77 -- 19 Aralık 2013; 17:45:39 >
    < Bu ileti mobil sürüm kullanılarak atıldı >




  • Cidden onemli!

    Mesela su 1 aydir takildigim oyun, son optimizasyonlardan sonra

    Test suresi: 30 dakika
    Test cihazi: Samsung Galaxy S2,
    Poly: 5-6k
    DrawCall: 45-55
    FPS: +60

    Bunlara ragmen, arada sirada cok cok kucuk takilmalar olabiliyor. Yeni hedefim, kaliteden odun vermeden 4-5k polye cekip, 40-50 draw calla dusmek.

     Optimizasyon Nasıl yapabilirim fikri olan?



    < Bu mesaj bu kişi tarafından değiştirildi Moribito -- 19 Aralık 2013; 18:13:16 >




  • quote:

    Orijinalden alıntı: Moribito

    Cidden onemli!

    Mesela su 1 aydir takildigim oyun, son optimizasyonlardan sonra

    Test suresi: 30 dakika
    Test cihazi: Samsung Galaxy S2,
    Poly: 5-6k
    DrawCall: 45-55
    FPS: +60

    Bunlara ragmen, arada sirada cok cok kucuk takilmalar olabiliyor. Yeni hedefim, kaliteden odun vermeden 4-5k polye cekip, 40-50 draw calla dusmek.

     Optimizasyon Nasıl yapabilirim fikri olan?

    Oyun güzelmiş. O zaman ben draw call sayısını 80 e çekmeye çalışayım...

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • quote:

    Orijinalden alıntı: Golden Brain

    Oyun güzelmiş. O zaman ben draw call sayısını 80 e çekmeye çalışayım...

    Benim oyun oldukca basit, o yuzden optimizesi bayagi kolay oluyor. Sen diyorsun ki, grafik kalitesi cok yuksek, detayli ve cidden guzel oyun uzerinde ugrasiyorum.

    O yuzden draw call'u 70-90 arasi degerlerde tutabilirsen iyi olur. Ama 100'u gecme kesinlikle. Cunku soyle bir durum var, basta 30-40 fps baslayan oyun 20-30 dakikadan sonra fps 20lere dusebiliyor. Nedeni ise mobil cihazlardaki memory dusuklugu, heap sorunlari, asiri isinmalar, sogutma sistemi eksiklikleri, arkada calisan ve kapatilamayan aptal servisler vsvs.... Bu yuzden fps her zaman 50 uzeri olmak zorunda, cunku zamanla fps dusuyor mobilde sen ne yaparsan yap.
  • quote:

    Orijinalden alıntı: Moribito

    quote:

    Orijinalden alıntı: Golden Brain

    Oyun güzelmiş. O zaman ben draw call sayısını 80 e çekmeye çalışayım...

    Benim oyun oldukca basit, o yuzden optimizesi bayagi kolay oluyor. Sen diyorsun ki, grafik kalitesi cok yuksek, detayli ve cidden guzel oyun uzerinde ugrasiyorum.

    O yuzden draw call'u 70-90 arasi degerlerde tutabilirsen iyi olur. Ama 100'u gecme kesinlikle. Cunku soyle bir durum var, basta 30-40 fps baslayan oyun 20-30 dakikadan sonra fps 20lere dusebiliyor. Nedeni ise mobil cihazlardaki memory dusuklugu, heap sorunlari, asiri isinmalar, sogutma sistemi eksiklikleri, arkada calisan ve kapatilamayan aptal servisler vsvs.... Bu yuzden fps her zaman 50 uzeri olmak zorunda, cunku zamanla fps dusuyor mobilde sen ne yaparsan yap.


    En azından iyi bi optimize yapabilirsem 5 milyon indirme alacağımı düşünüyorum Allah'ın izniyle

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • Valla alabilirsin, gecen aptal bir kamyon oyunu gordum, cok sapsal bisey, grafikleri gorsen aglarsin, ama indirme sayisi + 1 Milyon.

    5 milyon indirmeyede iyi para var haaa
    Construction City -https://play.google.com/store/apps/details?id=com.heavyfall.constructioncity&hl=en , sahibi acikladi sadece admob banner'dan ayda $80,000 yaptigini. Millet halen oyun satmaya calissin.




  • quote:

    Orijinalden alıntı: Moribito

    Valla alabilirsin, gecen aptal bir kamyon oyunu gordum, cok sapsal bisey, grafikleri gorsen aglarsin, ama indirme sayisi + 1 Milyon.

    5 milyon indirmeyede iyi para var haaa
    Construction City -https://play.google.com/store/apps/details?id=com.heavyfall.constructioncity&hl=en , sahibi acikladi sadece admob banner'dan ayda $80,000 yaptigini. Millet halen oyun satmaya calissin.

    Hocam indirme sayısından çok oynanma sıklığı önemli değil mi? 5 milyon indirilse bile hiç oynanmamışsa en fazla 50 000 dolar filan kazanır adam. Olsun o da iyi para . Ben oyunumun fazla tutulacağını sanmıyorum. Sebebi ise sadece s3 yukarısı cihazlarda oynanabileceği. Gerçi oyunu çıkarmama daha 3-4 ay var. O zamana s5 filan da gelecek. Zamanında s2 zamanının en iyi telefonuydu. En iyi oyunlar onda oynanıyordu. Şimdi düşük seviye olarak değerlendiriliyor. Yani 4 ay deyip geçme çok şey değişiyor teknolojide. s2 zamanı da 2 sene önceydi fazla değil. s3 zamanı 1 sene önceydi. 4 ay sonraya s5 ve iphone 6 gelecek. İphone 5 ve 5s'te problem yok zaten ...




  • Hocam şimdi texture çözünürlüklerine bakıyordum da bırakın 1024'ü 2048'miş . Çok yüksek yani. Biraz düşüreyim. Texture önemsiz diye fazla kontrol etmemiştim . Şu optmizasyon işi olmasaydı oyunu çoktaan bitirmiştim buna ne diyorsunuz?

    Yavv 2 saattir uğraşıyorum. Ama sonucunu da aldım. Draw call azaltma işlemini çözdüm. Gereksiz yere farklı farklı texture kullanmayacağım. Kullanmam gereken yerdede texture'leri birleştirip atlas yapacağım. NGUI'daki gibi. Bunu nasıl yaparım bilmiyorum fakat 2 saatlik uğraşlar sonucu draw call'ı 128'den 121'e düşürdüm bu bana yeter .



    < Bu mesaj bu kişi tarafından değiştirildi any77 -- 19 Aralık 2013; 23:40:07 >




  • quote:

    Orijinalden alıntı: Moribito

    Valla alabilirsin, gecen aptal bir kamyon oyunu gordum, cok sapsal bisey, grafikleri gorsen aglarsin, ama indirme sayisi + 1 Milyon.

    5 milyon indirmeyede iyi para var haaa
    Construction City -https://play.google.com/store/apps/details?id=com.heavyfall.constructioncity&hl=en , sahibi acikladi sadece admob banner'dan ayda $80,000 yaptigini. Millet halen oyun satmaya calissin.

    Heyt maşallah aylık 80K mı

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • quote:

    Orijinalden alıntı: Vasvasi


    quote:

    Orijinalden alıntı: Moribito

    Valla alabilirsin, gecen aptal bir kamyon oyunu gordum, cok sapsal bisey, grafikleri gorsen aglarsin, ama indirme sayisi + 1 Milyon.

    5 milyon indirmeyede iyi para var haaa
    Construction City -https://play.google.com/store/apps/details?id=com.heavyfall.constructioncity&hl=en , sahibi acikladi sadece admob banner'dan ayda $80,000 yaptigini. Millet halen oyun satmaya calissin.

    Heyt maşallah aylık 80K mı

    Yalnız o oyun çok popüler bir oyun. O yüzden biraz da...




  • quote:

    Orijinalden alıntı: Golden Brain

    quote:

    Orijinalden alıntı: Vasvasi


    quote:

    Orijinalden alıntı: Moribito

    Valla alabilirsin, gecen aptal bir kamyon oyunu gordum, cok sapsal bisey, grafikleri gorsen aglarsin, ama indirme sayisi + 1 Milyon.

    5 milyon indirmeyede iyi para var haaa
    Construction City -https://play.google.com/store/apps/details?id=com.heavyfall.constructioncity&hl=en , sahibi acikladi sadece admob banner'dan ayda $80,000 yaptigini. Millet halen oyun satmaya calissin.

    Heyt maşallah aylık 80K mı

    Yalnız o oyun çok popüler bir oyun. O yüzden biraz da...

    Yani

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • Valla bende yeni oyun üzerinde çalışıyorum. Low poly modeller kullanıyorum ancak polygon sayısı 30 k yı buluyor bazı yerlerde. Polygon sayısını düşürmeye çalışıyorum s3 de 60 fps yi zar zor yakalıyorum şimdilik.Ve oyunun görsel kalitesi yüksek olucak zaten . Ancak oyun oynanabilir olduğunda ekranda 15 20 ye yakın creep bulunabilecek. Bakalım. Performan konusu mobilde cidden büyük engel. Pc üzerinde çok rahat

    Geçen gün teaser çalışması yapmıştım.





  • 
Sayfa: 1234
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.