Unity optimizasyonu çözememek

Saldon

Kilopat
Katılım
22 Aralık 2018
Mesajlar
146
Çözümler
3
Yer
Hatay
Daha fazla  
Sistem Özellikleri
Ekran çözünürlüğü: 2560x1440 @ 164Hz
Pencere boyutu: 2560x1307 @ 164Hz
VR: Not Active
Graphics API: Direct3D 11.0 (Level 11.1)
GPU: NVIDIA GeForce RTX 4060
VRAM: 7957MB
Max Texture Size: 16384px
Shader Level: 50
CPU: AMD Ryzen 9 5900X 12-Core Processor (24 thread)
RAM: 32,869 MB (32 GB)
İşletim Sistemi: Windows 11 (10.0.26100) 64bit (Desktop)
Cinsiyet
Erkek
Meslek
Oyun Yapımcısı
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: 90
  • 2.png
    2.png
    3 MB · Görüntüleme: 85
  • 3.png
    3.png
    2,7 MB · Görüntüleme: 77
  • 4.png
    4.png
    3,7 MB · Görüntüleme: 77
  • 5.png
    5.png
    3,1 MB · Görüntüleme: 87
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?
 
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: 58
  • 2.png
    2.png
    263,8 KB · Görüntüleme: 57
  • 3.png
    3.png
    158,6 KB · Görüntüleme: 54
  • 4.png
    4.png
    195,6 KB · Görüntüleme: 68
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.
 
Bu şekilde hiç anlaşılmaz ama çok az bilgi var, ama anladığım kadarıyla, 60 fps kilidi var gibi duruyor.
Sizi en açık ne yardımcı olursa buraya ekleyebilirim. Dosya olarak bakabiliyorsanız export alabilirim.
 
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.
 

Technopat Haberler

Yeni konular

Geri
Yukarı