Yazar: Halil Coşgun

Game Developer

Singleton Design Pattern

Singleton’ı şu iki maddede özetleyebiliriz. Bir sınıfın bir örneği olacağını garanti eder. Bu sınıfı global bir erişim noktası yapar. Bir design pattern’ı kullanmadan önce onun zayıf yanlarını iyi bilmek gerek. Profesyonel hayatta, her yanından Singleton fışkıran kodlara gülündüğüne bir çok kez şahit oldum. Bu kahkahaların sebebini araştırırken okuduğum ve içlerinden notlar aldığım bir kaç yazı var. Singleton’ı uygulamadan önce bu notları sizlerle paylaşmak isterim. Use Your Singletons Wisely (Singletonlarınızı Bilgece Kullanın) Yazı, neyin gerçekten Singleton olması gerektiğini sorguluyor. Bu sorgulamayı yapmadan önce, Singleton’ın sınıflar arası bağımlığı artırdığını belirtiyor. Yani Singleton’ın göründüğü kadar masum olmadığı konusunda yazar ile aynı fikirdeyiz. Yazının

Okumaya devam et

Command Design Pattern

Bu yazıma başlamadan önce, eğer okumadıysanız acilen okumanız gereken bir kaynak önermek istiyorum; “Robert Nystrom – Game Programming Patterns“. Bu kitapta, oyun dünyasındaki genel problemleri çözmek için kullanılan design pattern’lardan oldukça detaylı olarak bahsediliyor. Senaryo 20×20 birimlik bir tabanın üzerinde, her seferinde bir birim olmak üzere aşağı, yukarı, sağa ve sola hareket edebilen bir küp düşünün. Bu kübün her hareketi, geri alınabilir olsun. Yani küp “yukarı, yukarı, sol, sol” hareketini tamamladıktan sonra, her “geri al” komutu verildiğinde, “sağ, sağ, aşağı, aşağı” komutlarını tekrarlayarak, başlangıç noktasına dönsün. Adım 1 – Command Design Pattern’a Giriş Command Design Pattern’da, isteklerimizi komut nesneleri olarak

Okumaya devam et

Observer Design Pattern

Observer Design Pattern (Gözlemci Tasarım Deseni), iki ana bileşenden oluşur; Subject ve Observer… Subject, üzerinde değişimlerin gözlendiği, gözlenmek istendiği bileşendir. Observer ise bir subject’teki değişimleri gözlemlemek için kullanılan bileşendir. Observer Design Pattern’da, bir subject’teki değişimden, onu gözleyenler haberdar edilir. Observer Pattern’ı bir başarımlar sistemi kurmak için kullanabiliriz. Buna yönelik bir senaryo belirleyip, bu senaryoyu Observer Design Pattern kullanarak çözelim. Senaryo Oyunumuzda bir skor verisi olduğunu düşünelim. Bu skor verisindeki değişiklikleri gözleyen 3 adet de başarımımız olsun. Başarımlarımız kendi hedef skorlarına geldiklerinde açılsınlar ve başarılmış olsunlar. Adım 1 ScoreDataSubject isimli bir nesne oluşturalım. Bu nesne, dinleyeceğimiz nesne. Bütün observer’larımız, bu nesneye

Okumaya devam et

Decorator Design Pattern

Decorator design pattern, nesnemizin yapısını bozmadan, nesnemize yeni bir fonksiyonellik katmamızı sağlıyor. Bu pattern’da, decorator nesnesi, fonksiyonellik katacağı nesneyi referans olarak tutuyor ve onun hangi fonksiyonunu decorate edecekse önce o fonksiyonu, ardından da kendi fonksiyonunu çağırıyor. Böylece referans olarak tuttuğu nesneye yeni bir fonksiyon katmış oluyor. Biraz karışık bir tanım oldu, farkındayım. Gelin bir örnekle açıklayalım.

Okumaya devam et

Factory Design Pattern

Manager Class : Merhaba, ben bir A nesnesi yaratmak istiyorum. Geliştirici : O zaman Factory nesnesine başvurman gerek. Factory design pattern’ı yukarıdaki kısa konuşma özetliyor aslında. Nesne yaratmak için Factory nesneleri oluştururuz ve nesne yaratmak istediğimizde, Factory nesnelerine başvururuz. Gelin Unity’de basit bir örneği gerçekleyelim.

Okumaya devam et

Minimum Viable Game

Oyununuzu Soft Launch’a Almadan Önce Kendinize Sormanız Gereken 10 Soru Soft Launch’lar, oyunların geleceğinin tahin edildiği önemli kilometre taşlarıdır. Oyununuzu soft launch’a alır ve koltuğunuza yaslanıp metrikleri incelersiniz. Eğer oyun metrikler baz alındığında kriterlerinizi geçmişse, oyunu yaşatırsınız. Yok, metrikler oyun hakkında hiç de iyi şeyler söylemiyorsa, oyununuzu öldürürsünüz.

Okumaya devam et

Nedir Bu Yazılım Tasarımı?

Hepimiz olabildiğince esnek, olabildiğince yeniden kullanılabilir ve olabildiğince iyi tasarlanmış kodlar yazmak istiyoruz. Zaten, iyi kodun tanımı da bu değil mi? Peki nedir bu yazılım tasarımı? Bu sorunun cevabını ararken, beni iyi yönde etkileyen, ufkumu açan bir makale buldum;”Jack W. Reeves : What is Software Design“.

Okumaya devam et