Kapılar, öykülerini akıcı ve vurucu bir biçimde aktarmak isteyen rastgele bir sanatçı için (sinemacılar, müellifler vs.) her vakit kıymetli bir ögedir. Bir kapıyı kıymetli bir sahnede, hoş bir açıyla çekerek, metafor olarak kullanarak çok şey anlatabilirsiniz.
Ancak oyun geliştiricileri için kapılar çok daha farklı bir konudur. Oyun oynarken kapılar, fazla dikkat ettiğimiz bir öge değildir; kapıyı açar ve kıssayı deneyimlemeye devam ederiz. Oyun geliştiricileri için ise kapılar tam bir ömür törpüsü. Bunun sebebini öğrenmek için yazılımcı ve oyun geliştiricisi olan bir uzmanımıza danıştık.
Nedir bu oyun geliştiricilerinin kapılardan çektiği? Oyun geliştiricisinin karşılığı:
Kapıların uygulama zorluğunu iki bağlamda kıymetlendirebiliriz: Bunlardan birincisi, etkileşime girme zorluğu. Oyun motorlarında bir sahneye koyduğumuz her nesne, aslında içinden geçilebilir görsel şeylerdir. Bu nesnelere fizik kazandırabilmek için biz ‘collider’ (çarpıştırıcı) ekliyoruz.
Bir collider, nesnenin fizikî varlığını temsil eder ancak imgeden büsbütün bağımsızdırlar. Yani bir nesnenin imajı küçük ancak ona fizik veren collider büyük olabilir ya da tam aksisi. Yani oyunlarda gördüğünüz nesnelerin görüntüsüyle gerçekte kapladığı alan farklıdır.
Bazı oyun motorlarında kapıya fazla yaklaştığınız vakit karakterin başı, kapının içinden art tarafa geçer. Bunun önüne geçmek için kapının collider’ı, kapının manzarasından bir tık daha büyük yapılır. Böylelikle karakterin başı collider’a çarpıp kapının içine geçemez.
Bu denkleme bir de kapı kolu eklediğimiz vakit işler düzgünce karışıyor, karakterin kapıyla etkileşimini biz geliştiriciler için bir oldukça zorlaştırıyor zira karakter, kapı koluna yanlışsız uzanamıyor. Bunun yerine daha hayali bir yere kolunu uzatmış oluyor. Bu sebeple bilhassa FPS oyunlarında kapı kolu kullanmaktan kaçınırız.
Kapıların ikinci bir zorluğu ise NPC’ler (oynanamayan karakterler) konusu. Bütün odaları başka bir alan olarak düşünebiliriz ve oynanabilir karakterler kadar NPC’leri de kodlamak durumundayız. NPC’lerin yürüdükleri path’leri (yolları), NavMesh dediğimiz sistemle belirleriz ve bunlar otomatik olarak kurgulanır.
Bir odadan öbür odaya kapıdan geçerek geçmesi gereken NPC’nin NavMesh’i, yolunun üzerindeki kapıyı algılayıp, yorumlayıp, kapıyı açıp öbür tarafa geçmesi, NPC’ler kanadında çok sıkıntı bir şey. Bir NPC’nin kapısız bir formda bir odadan bir odaya geçmesi çok kolay ancak denkleme bir de kapıyı açma eklenince orada öbür bir yapay zekâ modeli ve yorumlama devreye giriyor.”
Bu yüzden kapılar;
Ya kendi kendine otomatik olarak açılacak halde tasarlanır, yani siz hiç etkileşime girmezsiniz ve kapının önündeki trigger (tetikleyici) sizi fark edince kapının açılmasını sağlar,
Ya aslında kapı açıktır, içinden geçer gidersiniz,
Ya karakteriniz kapıya yaklaştığı vakit bir etkileşim butonu çıkar, etkileşime geçtiğinizde nerede olduğunuzdan bağımsız karakteriniz evvelden hazırlanmış bir kapı açma animasyonuna girer ve ona nazaran konum alarak kapıyı açar (The Last of Us: Part 2 ve Red Dead: Redemption 2’de kullanılan yöntem),
Ya da karakteriniz kapı ile kapı kolunu kullanmadan iterek etkileşime geçer ve kapılar iki tarafa yanlışsız da hareket etme kabiliyetine sahiptir. (GTA 4, Red Dead: Redemption ve GTA 5’deki yol.)
Velhasıl, oyunlarda kapı kodlamanın oyun geliştiriciler için ne kadar güç bir şey olduğunu ve bu zorluğun üstesinden gelmek için ne üzere teknikler geliştirdiklerini artık biliyorsunuz. Kim bilir belki ileride üstteki formüllere gerek kalmadan kapıları açabilmemize imkan sağlayacak bir oyun motoru geliştirilir.
KAYNAK : Webtekno