Kapılar, hikâyelerini akıcı ve vurucu bir şekilde aktarmak isteyen herhangi bir sanatçı için (sinemacılar, yazarlar vs.) her zaman önemli bir unsurdur. Bir kapıyı önemli bir sahnede, güzel bir açıyla çekerek, metafor olarak kullanarak çok şey anlatabilirsiniz.
Ancak oyun geliştiricileri için kapılar çok daha farklı bir mevzudur. Oyun oynarken kapılar, fazla dikkat ettiğimiz bir unsur değildir; kapıyı açar ve hikâyeyi 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 yanıtı:
[GIPHY:XbG05hdJ0uLr2SA3lc][/GIPHY]
Kapıların uygulama zorluğunu iki bağlamda değerlendirebiliriz: Bunlardan ilki, etkileşime girme zorluğu. Oyun motorlarında bir sahneye koyduğumuz her obje, aslında içinden geçilebilir görsel şeylerdir. Bu objelere fizik kazandırabilmek için biz ‘collider’ (çarpıştırıcı) ekliyoruz.
Bir collider, objenin fiziksel varlığını temsil eder ancak görüntüden tamamen bağımsızdırlar. Yani bir objenin görüntüsü küçük ancak ona fizik veren collider büyük olabilir ya da tam tersi. Yani oyunlarda gördüğünüz objelerin görüntüsüyle gerçekte kapladığı alan farklıdır.
Bazı oyun motorlarında kapıya fazla yaklaştığınız zaman karakterin kafası, kapının içinden arka tarafa geçer. Bunun önüne geçmek için kapının collider’ı, kapının görüntüsünden bir tık daha büyük yapılır. Böylece karakterin kafası collider’a çarpıp kapının içine geçemez.
Bu denkleme bir de kapı kolu eklediğimiz zaman işler iyice karışıyor, karakterin kapıyla etkileşimini biz geliştiriciler için bir hayli zorlaştırıyor çünkü karakter, kapı koluna doğru uzanamıyor. Bunun yerine daha hayali bir yere kolunu uzatmış oluyor. Bu sebeple özellikle FPS oyunlarında kapı kolu kullanmaktan kaçınırız.
[GIPHY:f6suHvNUrrIjrz3onw][/GIPHY]
Kapıların ikinci bir zorluğu ise NPC’ler (oynanamayan karakterler) mevzusu. Bütün odaları ayrı 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 diğer tarafa geçmesi, NPC’ler kanadında çok zor bir şey. Bir NPC’nin kapısız bir şekilde bir odadan bir odaya geçmesi çok kolay ancak denkleme bir de kapıyı açma eklenince orada başka bir yapay zekâ modeli ve yorumlama devreye giriyor.”
Bu yüzden kapılar;
Ya kendi kendine otomatik olarak açılacak şekilde 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,
[GIPHY:fMwpnl0QK1Efre7ubo][/GIPHY]
Ya zaten kapı açıktır, içinden geçer gidersiniz,
[GIPHY:o4WVAhcsWEHM7XyAWv][/GIPHY]
Ya karakteriniz kapıya yaklaştığı zaman bir etkileşim butonu çıkar, etkileşime geçtiğinizde nerede olduğunuzdan bağımsız karakteriniz önceden hazırlanmış bir kapı açma animasyonuna girer ve ona göre pozisyon alarak kapıyı açar (The Last of Us: Part 2 ve Red Dead: Redemption 2’de kullanılan yöntem),
[GIPHY:oZFhyskJTHJMJn3XRy][/GIPHY]
Ya da karakteriniz kapı ile kapı kolunu kullanmadan iterek etkileşime geçer ve kapılar iki yöne doğru da hareket etme kabiliyetine sahiptir. (GTA 4, Red Dead: Redemption ve GTA 5’deki yöntem.)
[GIPHY:WabBQhlknQeR4oet1Q][/GIPHY]
Velhasıl, oyunlarda kapı kodlamanın oyun geliştiriciler için ne kadar zor bir şey olduğunu ve bu zorluğun üstesinden gelmek için ne gibi yöntemler geliştirdiklerini artık biliyorsunuz. Kim bilir belki ileride yukarıdaki yöntemlere gerek kalmadan kapıları açabilmemize olanak sağlayacak bir oyun motoru geliştirilir.