Unity optimizasyonu çözememek

Saldon

Hectopat
Katılım
22 Aralık 2018
Mesajlar
137
Çözümler
1
Arkadaşlar, öncelikle merhaba.

Kendimi bildim bileli Unity ile projeler yapar, karıştırır ve bir şeyler öğrenmeye çalışırdım. (7 yıl)

Fakat yıllardır çözemediğim bir sorunum var: Çok güzel projeler yapıyorum, güzel ilerliyor. Düzenlemeler ve UI'da falan çok iyi; fakat iş optimizasyona gelince tıkanıyorum.

Ne bir kitap bulabildim ne de bir kaynak. Şimdi diyeceksiniz ki, "YouTube var." :) arkadaşlar, anlatılanların hepsini yaptım, fakat hiç faydasını göremedim. Zaten anlatılanlar Unity içerisinde var ve kullanıyorum. Kod tarafında da hiç sıkıntı yok, çok şükür C#'ı iyi öğrendim. O yüzden sizlere danışmak istedim; neler yapabilirim, bir kaynak bulabilir miyiz? Şimdiden çok teşekkürler.

İşte projeden birkaç resim.

Birlikte çalışmak isteyen bir arkadaş olursa iletişime geçebiliriz. Optimizasyon'da çok zorluk çekiyorum.
 

Dosya Ekleri

  • 1.png
    1.png
    3,6 MB · Görüntüleme: 69
  • 2.png
    2.png
    3 MB · Görüntüleme: 60
  • 3.png
    3.png
    2,7 MB · Görüntüleme: 52
  • 4.png
    4.png
    3,7 MB · Görüntüleme: 49
  • 5.png
    5.png
    3,1 MB · Görüntüleme: 51
Optimizasyonun bir kitabi kurali yok maalesef. Bir hedef belirleyip Profiler, Memory Profiler, Frame Debugger gibi araçları kullanarak sorunların nereden kaynaklandığını bulman gerekiyor. Yani sadece senin yapabileceğin bir şey.
 
Siz muhtemelen daha o raddeye gelmemişsiniz ama bu yüzden büyük firmalar büyük işler için C++ ile çalışan oyun motorları kullanıyor. Unity'nin C++ oyun motorlarının aşabildiği bir limiti var.

Performans analizi yaptınız mı? En çok neye kaynak harcanıyor?
Cevabın için çok teşekkür ederim. Evet maalesef işte en anlamadığım kısım burası. Buyurun bir kaç ekran görüntüsü belki işe yarar. Müsait olduğunuz zaman olursa uzaktan bağlantıda kurabiliriz.

Optimizasyonun bir kitabi kurali yok maalesef. Bir hedef belirleyip Profiler, Memory Profiler, Frame Debugger gibi araçları kullanarak sorunların nereden kaynaklandığını bulman gerekiyor. Yani sadece senin yapabileceğin bir şey.
İşte maalesef en azından bir kitap olsa okur bakardım. Şu an elimden bir şey gelmiyor.
 

Dosya Ekleri

  • 1.png
    1.png
    216,7 KB · Görüntüleme: 36
  • 2.png
    2.png
    263,8 KB · Görüntüleme: 31
  • 3.png
    3.png
    158,6 KB · Görüntüleme: 27
  • 4.png
    4.png
    195,6 KB · Görüntüleme: 41
Cevabın için çok teşekkür ederim. Evet maalesef işte en anlamadığım kısım burası. Buyurun bir kaç ekran görüntüsü belki işe yarar. Müsait olduğunuz zaman olursa uzaktan bağlantıda kurabiliriz.


İşte maalesef en azından bir kitap olsa okur bakardım. Şu an elimden bir şey gelmiyor.
Bu şekilde hiç anlaşılmaz ama çok az bilgi var, ama anladığım kadarıyla, 60 fps kilidi var gibi duruyor.
 
Unity bilgim yok ve renk körüyüm. Benim için pek bir şey ifade etmiyor. Ama açık mavi gibi olan scripts sanırım. Bu da kodunuzun hiç de azımsanmayacak bir vakit aldığı anlamına geliyor. Hangisi emin değilim ama garbage collector var. C# kötü işte. Garbage collector azımsanmayacak miktarda kaynak tüketen bir şey. Sadece C# için geçerli değil bu.

Unity'de ne, ne kadar yapılabilir bilmiyorum ama bu veya şu tarz videolar YouTube'da hiç de az miktarda değil. Çoğu her durumda uygulanabilecek şeyler değil ama işe yarayan şeyler.

Maliyetli iş. Olabildiğince low level olması daha iyi oluyor. Ne yaparsanız yapın C# hep sorun olacak.
 
Çok geçmiş olsun. O zaman şöyle yapayım: Bu projeyi HDRP'de iptal etmem gerekiyor galiba artık. Ve bu, derlemesi en zor olan tür. C# da problem olacaksa, bana yeni bir oyun motoru ya da yeni bir kodlama programı da olur. En optimizasyonlu şekilde yeni bir projeye başlayayım. Öneriniz var mıdır?
Unity bilgim yok ve renk körüyüm. Benim için pek bir şey ifade etmiyor. Ama açık mavi gibi olan scripts sanırım. Bu da kodunuzun hiç de azımsanmayacak bir vakit aldığı anlamına geliyor. Hangisi emin değilim ama garbage collector var. C# kötü işte. Garbage collector azımsanmayacak miktarda kaynak tüketen bir şey. Sadece C# için geçerli değil bu.

Unity'de ne, ne kadar yapılabilir bilmiyorum ama bu veya şu tarz videolar YouTube'da hiç de az miktarda değil. Çoğu her durumda uygulanabilecek şeyler değil ama işe yarayan şeyler.

Maliyetli iş. Olabildiğince low level olması daha iyi oluyor. Ne yaparsanız yapın C# hep sorun olacak.
 
C++ kullanılan ulaşımı kolay en geniş çaplısı Unreal Engine. Bir şekilde kullanabiliyorsanız Frostbite, RAGE falan da olur.

Bu demek değil ki C++ kullandığınız an uçacaksınız. Hala aynı şeyler geçerli. Bu Vice City'nin birebir aynısı olmasa da (ek özellikleri ve bitmemiş kısımları hariç) oldukça yakın bir hali. İçinde çok fazla standart kütüphane zımbırtısı bulamazsınız. Birçoğu elle hazırlanmış. Bunun sebebi o zamanki C++ standardının elverişsiz olması. Ama düşünüldüğünde şu anki standart genele hitap ediyor. Elle yazılmış basit hallerini kullanmak daha hızlı sonuç elde edilmesini sağlayabilir.

Mesela muhtemelen Frostbite ile yapılan işlerde EASTL kullanılıyor. Gerçi o da bayağı bir geniş. String ve vector kütüphanelerine biraz göz atmıştım o kadar.

Kolay şekilde halledilebilecek bir şey değil. Ben o bilgiden yoksunum. Forumda olan olduğundan şüpheliyim. Varsa bile vaktini harcayıp anlatacak biri olduğunu sanmıyorum. İngilizce kullanacağınız Google amca size daha fazla kaynak sunacaktır.
 
C++ kullanılan ulaşımı kolay en geniş çaplısı Unreal Engine. Bir şekilde kullanabiliyorsanız Frostbite, RAGE falan da olur.

Bu demek değil ki C++ kullandığınız an uçacaksınız. Hala aynı şeyler geçerli. Bu Vice City'nin birebir aynısı olmasa da (ek özellikleri ve bitmemiş kısımları hariç) oldukça yakın bir hali. İçinde çok fazla standart kütüphane zımbırtısı bulamazsınız. Birçoğu elle hazırlanmış. Bunun sebebi o zamanki C++ standardının elverişsiz olması. Ama düşünüldüğünde şu anki standart genele hitap ediyor. Elle yazılmış basit hallerini kullanmak daha hızlı sonuç elde edilmesini sağlayabilir.

Mesela muhtemelen Frostbite ile yapılan işlerde EASTL kullanılıyor. Gerçi o da bayağı bir geniş. String ve vector kütüphanelerine biraz göz atmıştım o kadar.

Kolay şekilde halledilebilecek bir şey değil. Ben o bilgiden yoksunum. Forumda olan olduğundan şüpheliyim. Varsa bile vaktini harcayıp anlatacak biri olduğunu sanmıyorum. İngilizce kullanacağınız Google amca size daha fazla kaynak sunacaktır.
RAGE ve Frostbite in house motorlar. In house motorlar, unity ve unreala hiç benzemiyor, yarım yamalak sürekli hata veren motorlar oluyorlar genelde.
 

Yeni konular

Geri
Yukarı