Teknoloji ve Dijital Dünya, Tüm Yazılar

Oyun nedir? Nasıl yazılır?

Oyunlar her geçen gün hayatımızda daha çok yer ediniyor, Candy Crush gibi milyonların oynadığı mobil oyunlardan en son çıkan “Assassin’s Creed” gibi ekran kartlarının sınırlarını zorlayan yüksek bütçeli bilgisayar oyunlarına. Peki bu oyunlar nasıl yapılıyor?

İşte tam olarak bu noktada “Oyun Motorları” devreye giriyor.

Oyun motoru nedir?

Oyun motoru bir oyunu çalıştıran altyapıyı sağlayan yazılımların genel ismidir. Oyunun temelini oluşturur ve ekranda gördüğümüz her şey, fizik olayları, uçan kaçan yaratıklar; hepsi oyun motorunun marifetidir.

Her karakter, cisim, Işık.. özetle ekranda gözüken her şey bu oyun motoruna yerleştirdiğimiz resimler ve 3 boyutlu modeller, peki bunlar nasıl hareket eden, koşan, uçan, çarpışan bir hale geliyor? işte burada kodlama işin içerisine giriyor. Oyun motorlarının en büyük avantajı burada ortaya çıkıyor. Her yerleştirdiğimiz cisim kendisine ait bir alana sahip ve bu alana kendi kodumuzu yerleştirebiliyoruz.

Oyun programcılığı normal programcılıktan biraz daha farklıdır; en çok yaptığımız şey “Eğer şu tuşa basılırsa şunu yap.” gibi bir cümle kurmaktır. Tabii ki böyle yazınca Süper Mario bir anda zıplamaya ve koşmaya başlamıyor, o cümleyi bilgisayarın neyden bahsettiğimizi anlayacağı bir şekilde kurmamız gerekiyor; onun dilinden konuşmamız yani.

Diller

Bilgisayarların bizim söylediklerimizi anlamak için kullandıkları farklı diller vardır, daha doğrusu bizim onlara derdimizi anlatmak için yarattığımız diller. Oyun motorlarında yaygın olarak C# (nota olan değil) veya C++ kullanılır. Kullandığınız motora göre daha farklı dillerle de karşılaşabilirsiniz.

Bu dillerin ortak özelliği bilgisayara ne yapmasını istediğimizi söyleyebileceğimiz bir düzenleri olmasıdır ve IDE (Integrated Development Environment) dediğimiz özelleşmiş metin programları (programcılar için Word) bu dillerde yazmamızı kolaylaştırırlar.

Biraz ilkokul öğretmeni edasıyla bir yerde yazım hatası ya da gramer hatası yaptığımızda bizi uyaran “Bak evladım burası yanlış oldu, şöyle demek istemiş olmayasın” dercesine yardımcı olan programlardır. Biz programcılar çok severiz kendilerini.

Uyum sorunları

Oyun motorumuzu seçtik, indirdik, kurduk, çalıştırdık, dilimizi öğrendik, ne yapmak istediğimizi biliyoruz. Peki ya şimdi? Nasıl bir oyun yazmak istediğiniz size kalmış tabii ki ama muhtemelen önemli olacak şeylerden birisi iletişim olacaktır. Oyunların çoğu oyuncunun kontrol ettiği bir cismin çevresi ve başka cisimlerle kurduğu iletişim ve ilişkilerle anlamlı olur. Bunu sağlarken de oyun motorumuz ve programlama dilimiz tekrar yardımımıza koşuyor.

Oyun motorları da bizim başka şeylerle iletişim kurmak istediğimizin farkındalar keza dilimiz de öyle ama bazen uyum sorunları yaşayabiliyoruz. Bilgisayarlar bizden daha düzenli ve kesin kurallarla algılarlar hayatı. Onlardan bir şey istediğimiz zaman da onların kurallarına göre oynamamız gerekiyor.
Sorunlar?

Zaman zaman da gerçekten hiçbir mantıklı sebebi olmadan oyunumuz, tasarladığımız, kafamızda kurduğumuz şekilde çalışmıyor, bazen hiç bir şey yapmamaya karar veriyor, bazen bir futbol oyununda karakterimiz öyle bir şut çekiyor ki top ses bariyerini kırıp geçiyor, bırakın ağları stadyumu deliyor; bazen de karakterimiz cebindeki çakmağını düşürüp kaybediyor. Bu problemleri (aslında bir daha düşününce stadyumu delmek bir problemden ziyade çok eğlenceli bir özellikmiş gibi geliyor kulağa) çözmek için de IDE’miz ve oyun motorumuz el ele verip birlikte çalışmaya başlıyorlar, yazılmış her kod parçasının içinde manzarayı seyredebileceğimiz bir yolculuğa çıkartıyorlar. Bu duruma “Debugging” (Böcek yok edimi?) bunu sağlayan arayüze de “Debugger” (Böceklerden arındırıcı?) diyoruz. Bu yolculuk genellikle problemin(böcek?) nerede olduğunu bize gösterir ve çözmemize izin verir.

Peki ya Şimdi

Bir oyun yazdınız tebrikler! Bir sürü konudan oldukça yüzeysel bir şekilde bahsetmiş olsak da oyun yazılımının temel prensipleri bunlardır.

Bir oyunu oynamak kadar keyifli olabilecek bir şeydir oyun yazmak, bir sürü parçalı bir yapbozu bir araya getirmek gibi ama her doğru yere koyduğunuz parça koyduğunuz anda ekrandan üstünüze gelen zıplayan bir Mariodan tutun patlayan bir şeker parçasına kadar her şeye gözünüzün önünde dönüşür. Sizi bilemeyeceğim ama her zıplayan Mario beni çok mutlu eder.

Etiketler: Oyun

Bunlar da ilginizi çekebilir