Developersland

Teknoloji ve Yazılım Blogu

  • Yazıtipi boyutunu arttır
  • Varsayılan yazıtipi boyutu
  • Yazıtipi boyutunu azaltır

Javada Oyun Programlaması. Part 1 (Threadler-3)

Event Modelithetruth

Eğer uygulamamızda thread kullamıyorsak bu uygulamamızın thread’siz çalıştığı anlamına gelmez, bütün grafiksel uygulamalarımız en az 2 thread kullanmakta: Main thread ve AWT event dispatch threadleri. Bunlardan ilki main() dahilindeki kodları çalıştırır, diğeriyse kullanıcının tıklama, sürükleme vs. gibi AWT eventlerini karşılayacak kodları çalıştıracaktır. Bu yüzden grafiksel uygulamalarda daha başarılı olmamız için thread mantığından haberimiz olmalı.




Ne zaman Thread Kullanabiliriz?

Oyunumuzun aynı anda birkaç uzun işlem yapması gerekiyorsa (network bağlantısı, kullanıcının sistemdeki önceki settings bilgileri vs. gibi) bu oyunumuzun yavaş çalışmasına neden olacaktır, onun yerine bu tür sistemi yavaşlatan işlemleri başka bir thread’le çalıştıra biliriz, böylece kullanıcı arkada olup bitenlerden hiç haberi bile olmayacaktır ve oyunumuz daha hızlı çalışmış olacaktır. 

Ne zaman Thread Kullanmamalıyız?

Oyunlarda bayağı bir hareketin aynı anda yapıldığı bir sahneyi (düşmanların harekette olması, rüzgar, odanın kapısının açılıp kapanması vs.) gördüğümüzde aklımıza ilk olarak thread gelir. Ama tabii ki herşeyi de thread’le yapmak hiç uygun bir şey değildir ve çoğu zaman da başımıza iş açmış olur.

Thread’leri uygulamarımızda kullanırken mantık hatasına yol vermememiz gerekiyor, çünkü threadlerin yol açtıkları hatalar debug sırasında kolay kolay bulunabilecek hatalardan değildir. Örneğin, savaş sahnesindeki kaçan bir askeri birden fazla yerde çizme işlemi gibi threadlerin yol açtığı hatalarla üzleşebiliriz.

Thread kullanmanın diğer en önemli vurgulanması gereken faktörü sayısının aşırı fazla olduğu zaman yol açtıkları sistem yavaşlatmalarıdır. Şöyle ki, normadan fazla thread kullanırken thread’ler arası geçişler de zaman almış olacaktır. 

Thread’in karşımıza çıkarabileceği diğer bir sorun da yalnış yerde kullandığımız  synchronized ‘in çalışma süresinde yarattığı beklenmedik gecikmelerdir.


***


İleriki derslerimizde oyun içerisinde thread sayısının nasıl belli bir değeri geçmeyecek şekilde ayarlanması hakkında konuşacağız ve aynı zamanda 2D grafik ve animasyonlarda   thread kullanmadan yapılan daha verimli eşzamanlı görüntüleme tekniklerinden bahsedeceğim.


Eğitimin Devamı...

 

Yorum ekle


Güvenlik kodu
Yenile