Oyunlar ve Oyunların İşleyişi
İçindekiler
Bir oyun, ilk açıldığında size bir bekleme ekranı verir. Buna “Açılış Ekranı” denir. Eğer bu ekran animasyonlar içeriyorsa, buna “Sinematik” adı verilir. Oyunda menü ekranında bile, yüzlerce satır kod çalışır. Siz bir butona tıkladığınızda, mesela kayıt ekranında bilgilerinizi verdiğinizde, sorgulama düzenekleri çalışmaya başlar. Peki nasıl?
Öncelikle IF komutu çalışır. IF yani Eğer komutu çalıştığında, genellikle ilk sorgulayacağı şey sizin girdinizdir.
Mesela;
If: E-Posta kutusu == Text() then: Bildir: E-Posta kutusunu boş bırakmayın!
Elbette kodlar bu şekilde yazılmıyor. Fakat anlayabilmeniz için bir sorgulama göstermem gerekirse bunu gösterebilirim. Kabaca, burada bir sorgulama gerçekleşti. Sorgulanan şey, E-Posta kutusuydu. O kutuya hiç bir şey yazmadan giriş yapmaya çalışan biri olursa, ona “E-Posta kutusunu boş bırakmayın!” diye bir bildirimi ekrana yansıttı. Bu ve bunun gibi belki de onlarca işlem, milisaniyeler içerisinde oyun tarafından işleniyor.
Oyunlarda Haritaların Yüklenmesi
Siz bir adım attığınızda, minimap dediğimiz, genellikle ekranın sol üst tarafında görünen harita da sizinle beraber hareket eder. Siz her hareket ettiğinizde veya oyunda hızlı koştuğunuzda oyun haritayı cihazınızın ön belleğine yüklemek için yığınları önünüze serer. Bu yığınlara Chunk denir ve tamamen değişkendir. Sizin hareket (x,y,z) şeklinize göre yüklenir ve cihazınızın bellek kapasitesine göre de akıcılık sağlanır. 4GB bellek (RAM) isteyen bir oyunu, 2GB bellek sahibi bir cihazda açmayı denerseniz, sisteminiz çökecektir. Çünkü önbelleği işleyen bir çok uygulama ya kendini zorlar yada oyunu sonlandırır.
Bug Nedir? Neyden Kaynaklanır?
Çok kompleks bir konu aslında bu. Sırf bu alt başlık için bile sayfalarca bahsedilmesi gerekir. Fakat basitçe hata, hata demektir. Kimi hata, oyun içi ekonomi sisteminde yaşanır, kimi hata da oyunda ki bir grafikte yaşanabilir. Tamamen kodlamayla alakalı değildir. Bazı hatalar, gelişigüzel oynanış sırasında, rastgele ortaya çıkar ve işleyişin arasına yerleşebilir. Bazıları ise geliştiricininin, kodları yazarken sıralamayı hatalı yapmasından kaynaklanır. ‘Start’ fonksiyonunda, oyun başlarken oyunu hazırlayan kodlar doğru sırayla makineye tanıtılmalıdır. Eğer ilk olarak işlemesi gereken kodlar, son satıra atılmışsa, uzun vadede yeni hatalar oluşturabilir.
Online oyunlarda, neden sunucu hataları yaşanır?
Bu konu da fazla uzun fakat anlatalım;
Her bir oyun odası, her bir online eşleşme yeni bir kova yaratır. Kovalar, sunucuda ki odalardır ve bu kovaların özgün bir kimliği vardır. Kimlikte büyük harf, küçük harf ve sayılar bulunur. Oyuncular, her hareket ettiğinde, X, Y ve Z düzleminde ki konum kodları, sürekli olarak sunucuda ki kovaya gönderilir ve diğer oyuncuların ekranlarında render alabilmesi (işlenebilmesi) için etiketlerle çekilir. PUBG gibi oyunlarda bu işler daha komplekstir. Çünkü silahla ateş etme, hasar alma, envanter toplama, itemleri belli konumlara bırakma gibi işlemlerin her biri sunucuya gönderilip, 100 oyuncu tarafından çekilmelidir. Bu nedenle sunucuda olan yoğunluktan kaynaklı olarak gecikmeler yaşanabilir.
Artık, biraz daha saygı duyuyoruz değil mi? Geliştiricilere fazla yüklenmeyelim😃