Oyunlardaki Mermi Sistemleri Nasıl Çalışıyor?

Birçoğumuz FPS oyunları oynamayı seviyoruz. Özellikle bu türdeki oyunlar olan Call of Duty, Half-Life, Counter Strike ve Battlefield FPS türünü sevmemizin en büyük sebeplerinden. Ancak bu oyunlardaki mermi sistemlerinin nasıl çalıştığını hiç merak ettiniz mi?

FPS yani birinci şahıs nişancı oyunları, 1992 yılında çıkan Wolfenstein 3D ile birlikte büyük bir patlama yaşadı ve o günden sonra yoluna giderek daha popülerleşerek devam etti. FPS oyunlarının grafikleri arttı, bütçeleri yükseldi ve e spor alanına dâhil oldular.

Ancak tüm bu oyunların merkezinde yer alan bir mekanizma var: ateş etme sistemleri. Peki, bu sistem nasıl gelişti? Nasıl bazı oyunlar gerçek bir silahla ateş ediyormuş hissiyatı yaratmayı başarırken diğerleri bunu başaramadı?

Hitscan

İlk oyunlarda “raycasting” adı verilen bir sistem kullanılıyordu. 2B görselleri 3B’de işleyen bu sistem, ışınla kesişen ilk nesnenin tespit edilmesini sağlıyordu. Daha sonra geliştiriciler “Bir silahın ağzından çıkan ışınlar, bir mermiyi taklit etse nasıl olurdu?” sorusunu sordu ve Hitscan doğdu.

Fizik motorları, Hitscan silahlarının uygulamasında oyuncular ateş ettiği zaman genelde; silahın doğrulduğu noktayı çözüyor, silahın ağzından çıkan ışını tanımlanan menzile yönlendiriyor ve ışının belirlenen objeyi vurup vurmadığını tespit etmek için raycasting’i kullanıyor.

Eğer motor, ateş hattındaki bir nesneyi tespit ederse mermiyle vurulduğunu söyleyen bir mesajla bildirim gönderiyor. Daha sonra hedef, darbenin dışa vurumu için gerekli olan tüm hesaplamaları yapabiliyor.

Hitscan aslında oldukça basit olsa da farklı birçok şekilde uygulanabiliyor:

  • Işın, vurduğu ilk nesneden sonra hareket etmeye devam ederse o hattaki diğer objelere de hasar verebiliyor. Tıpkı Quake’teki railgun gibi.
  • Maksimum menzil ortadan kaldırılarak mermi bir hedefi vurana kadar yoluna devam edebiliyor.
  • Belirli yüzeyler, mermilerin sekmesi için yansıtıcı olacak şekilde ayarlanabiliyor.

Hitscan’in çok hızlı olması gibi birçok avantajı bulunuyor ve bu sebeple birçok oyun bu sistemi kullanıyor ki Wolfenstein 3D ve Doom bunun en bilinen örneklerinden. Ancak bu sistem, sadece eski oyunlarda kullanılmıyor. Bugün dahi Overwatch’tan birçok karakterin Hitscan silahı bulunuyor. Hatta Call of Duty’deki birçok silah da Hitscan uygulamasıyla çalışıyor.

Tüm bunlardan sonra neden bütün oyunlar bu sistemi kullanmıyor o zaman diye düşünebilirsiniz. Ancak okurken de fark etmiş olabileceğiniz gibi ışınlar, sonsuz bir hareket hızına sahip. Dolayısıyla hedeflerine direkt olarak ulaşabiliyor. Ateş ettiğinizde, merminin yol kat etme süresi bulunmuyor ve dolayısıyla hedefteki bir kişinin, oldukça uzakta olmasına rağmen mermilerden kaçması imkânsız hale geliyor.

Bu mekaniğin tüm oyunlarda kullanılmamasının bir diğer sebebiyse birçok Hitscan uygulamasının direkt ışınları kullanıyor olması. Yani ateş edilen mermiler, yerçekimi ve rüzgâr gibi dış etkenlerden etkilenmiyor. Bu da hedefi gerçekçi bir oynanış olan oyun yapımcılarının tercih etmek isteyeceği bir şey değil.

Mermi balistiği

Mermi balistiği, gerçekliğin asıl hedef olarak alındığı oyunlarda direkt olarak öne çıkıyor. Her mermi, tekil olarak belirli hesaplamalara tabi tutuluyor. Rüzgâr, kırılma, yerçekimi, sıcaklık gibi mermi üzerinde etkisi olan tüm faktörler oyun içerisinde bulunuyor. Bu sistem sayesinde, fizik değiştirilebiliyor ve oyuncular daha farklı silahlar kullanabiliyor.

Bu sistem sayesinde Max Payne, Sniper Elite ve Superhot gibi oyunlardaki “bullet-time” uygulanabilir hale geldi. Merminin kat etttiği mesafe sayesinde hedef almak kritik bir hal aldı. Tabii bu hesaplamalarla birlikte proses de Hitscan’e göre daha zorlu oldu. Sunucuların üstüne daha çok yük bindi.

Bu hesaplama işlemlerini bazı metotlarla hafifletmek ve bellek kullanımını azaltmak mümkün. Bu metotlardan bir tanesinde, oyundan önce nesne havuzu yükleniyor ve ihtiyaç olduğu anda bunlar aktifleştiriliyor. Mermi yüzeye çarptığında mermi animasyonu oynatılıyor ve mermi devre dışı bırakılıyor. Tabii bu hesaplamalar için farklı yöntemler de kullanılabiliyor.

Tüm bunları anlattıktan sonra birçoğunuz bu metodun, nispeten daha yeni bir yöntem olduğunu düşünebilir ancak bu yöntem, Hitscan’den öncesinde de vardı. FPS oyunlarından önce de Asteroids, Space Invaders ve Galaxian gibi nişancı oyunları bulunuyordu ve bu oyunlar, çok daha ilkel olsa da mermi balistiğini kullanıyordu.

Hibrit sistemler

Mermi atış sistemini çok daha gerçekçi yapmak aslında bu sistemlerin karışımıyla mümkün hale geliyor. Birçok oyun motoru, her iki sistemi de kullanabiliyor. Tabii doğal olarak bu da oyunlarda çok fazla silah çeşitliliğinin olmasını sağlıyor.

Geliştiriciler, her iki sistemin de zayıflıklarını kapatmak için bu iki sistemi karıştırabiliyor ve böylece daha gerçekçi bir oyun deneyimi ortaya çıkıyor. Ayrıca bu iki özellik tek bir oyunda da harmanlanabiliyor. Sniper Elite serisi de bu kullanım için harika bir örnek.

Günümüzde kullanılan mermi balistiği ve mekaniği şu an için bunlarla sınırlı durumda ancak bu durumun gelecekte daha farklı şekilleneceğini söyleyebiliriz. Geliştirilecek yeni metotlar, artan CPU gücüyle oyunlardaki mermi kullanımlarını daha da gerçekçi bir hale getirecek. Biz de bu sayede daha gerçekçi savaş alanlarında sanal olarak bulunabileceğinz.