Etrafımızdaki her şeyin şu ya da bu şekilde bir diyagram aracılığıyla temsil edilebileceğini düşünüyorum. Zaman içinde belirli bir nesnenin durumları arasındaki geçişi temsil eden doğrusal bir diyagram olsa bile (yaşayan bir varlık gibi, doğumdan ölüme kadar bir dizi durumdan geçerek). Gerçek uygulama için düşüncelerimi ve fikirlerimi ortaya koymak için diyagramları kullanıyorum. Ben oldukça doğaçlama yapıyorum.
Bu nedenle, diyagramlarım çoğu zaman çok yüksek bir seviyede ve zihin haritaları gibi hissediyorum .
Bazı örnekler vermek gerekirse, bu aslında etkileşimli nesnenin temel tip olduğu oyunumda bir sınıf mirası haritası (kesilmiş olan).
Bu, bir sivri tuzak için bir FSM ( Sonlu durum makinesi ) diyagramıdır (bastığınız ve sivri uçların yerden göründüğü müthiş tuzaklar ).
Bu, son zamanlarda çizdiğim bir el kitabı diyagramıdır (bu şekilde adlandırılmıştır, çünkü sık sık diyagrama geri dönmesi amaçlanmıştır ). Bir oyunun bileşenlerini ana hatlarıyla belirtir ve ayrıca neyin gerekli olup neyin olmadığını hemen görebileceğiniz için gerekli varlıkları toplamaya yardımcı olur. Bunları küçük projelerde öneririm, çünkü büyük projelerde oldukça büyük olurlar. Yine de daha da genişletilebilirler, bu da işleri düzeltebilir.
Daha düşük bir seviyeye gittiğimde, bunun nedeni genellikle mimarimin en karmaşık yönlerini planlamam gerektiğidir ve genellikle orada UML ile uğraşırım. Yine de kesinlikle temiz ve doğru UML çıktısına konsantre olmadım. UML konvansiyonu hakkında en çok sevdiğim şeyi kabul ettim ve güzel bir zihin haritası UML'sine dönüştürdüm. Bu basit ve benim için işi yapıyor, ancak bununla birlikte, gerçek UML'nin beklendiği bir ortamda, belli nedenlerle gitmem.
Daha düşük bir seviyeye gitmem gerektiğinde başka bir durum, gerçek algoritmaları tanımlamam gerektiğidir. Akış diyagramları dediğim şeyi kullanıyorum . Beyaz kutu testinde kullanılan diyagramlardan esinlenen bir formattır .
Şu anda çizdiğim başak tuzağı için bir örnek şöyle görünecektir:
Bu normalde diyagramlar ve gerçek algoritma uygulamaları arasındaki son katmandır. İhtiyaç ortaya çıkarsa, akış diyagramlarını daha ayrıntılı olarak incelerim (ekstra yürütülen talimatlarla) ve karmaşıklığı çıkarır veya tahmin eder ve doğru test senaryoları oluştururum. Ben de sahte kod yerine diyagramları tercih ederim.
Oyun geliştirme ile ilgili değil, çok ekranlı bir uygulamadaki ekranları, kullanıcının her ekranda tetikleyebileceği işlevselliği ve ekranlar arasındaki ilişkiyi tanımlamak için güzel bir formatım var. Normalde gerçek gelişime başlamadan önce bunları inşa ediyorum ve geliştirme süreci boyunca bir harita gibi davranıyorlar. Bir müşteri içinse, ekran diyagramı daha da yararlıdır! Başından başlayarak tüm projeyi gözden geçirmeme ve ihtiyaç duyacağı tüm işlevleri dikkate almama yardımcı oluyor. Bu nedenle, doğru bir maliyet ve zaman tahmini sağlamak çok değerlidir.
Evet, kesinlikle her şeyi ve her şeyi çiziyorum. Eğer bir fikrim varsa, kesinlikle bir şema çizebilirim ve çizeceğim. Bir şekilde beni desteklemek için en azından çok geniş bir diyagramı olmayan bir projeye başlarsam, sakat hissediyorum.