Breakout

Bölümler boyunca OpenGL’in iç yapısı hakkında oldukça fazla şey öğrendik ve bunu kullanarak nasıl etkileyici grafikler oluşturabileceğimizi gördük. Ancak pek çok teknik demo yapmış olsak da, OpenGL ile pratik bir uygulama geliştirmiş değiliz. Bu bölüm, OpenGL kullanarak nispeten basit bir 2D oyun geliştirmeye yönelik daha büyük bir serinin girişidir. Sonraki bölümlerde, OpenGL’i daha büyük ve karmaşık bir yapıda nasıl kullanabileceğimizi göreceğiz. Bu seri, yeni OpenGL kavramları tanıtmak yerine, öğrendiğimiz kavramların daha büyük bir bütün içinde nasıl uygulanabileceğini göstermeyi amaçlar.

İşi karmaşıklaştırmamak adına, 2D oyunumuzu zaten var olan bir arcade oyununa dayandıracağız. Karşınızda Breakout: 1976 yılında Atari 2600 konsolunda yayımlanmış klasik bir 2D oyun. Breakout oyununda oyuncu, yatay olarak hareket eden küçük bir platformu (paddle) kontrol eder ve küçük bir topu tuğlalara çarptırarak tüm tuğlaları yok etmeye çalışır. Top alt kenara ulaşmadan tuğlaların hepsi yok edilirse, oyuncu oyunu tamamlamış olur.

Aşağıda, Breakout’un Atari 2600 üzerindeki orijinal görünümünü görebilirsiniz:

Oyun aşağıdaki mekaniklere sahiptir:

  • Oyuncu, yalnızca ekran sınırları içinde yatay olarak hareket edebilen küçük bir paddle'ı kontrol eder.

  • Top ekranda hareket eder ve her çarpışmada, çarptığı yere bağlı olarak yönünü değiştirir; bu durum ekran sınırları, tuğlalar ve paddle için geçerlidir.

  • Eğer top ekranın alt kenarına ulaşırsa, oyuncu ya oyunu kaybeder ya da bir canını yitirir.

  • Top herhangi bir tuğlaya temas ettiğinde, o tuğla yok edilir.

  • Oyuncu, ekrandaki tüm tuğlalar yok edildiğinde oyunu kazanır.

  • Topun yönü, paddle’ın merkezinden ne kadar uzakta sektiğine göre değiştirilebilir.

Zaman zaman top, tuğla duvarının üst kısmına ulaşan küçük bir boşluk bulabilir; bu durumda top, seviyenin üst kenarı ile tuğla tabakasının üst kenarı arasında ileri geri sekmeye devam eder. Top, sonunda yeniden bir boşluk bulana kadar bu şekilde hareket eder. İşte oyun da adını buradan almıştır: çünkü topun “break out” (kırıp çıkması) gerekir.

Bu klasik arcade oyununu, tamamen OpenGL ile geliştireceğimiz bir 2D oyunun temeli olarak alacağız. Bu Breakout versiyonu, grafiklerini GPU üzerinde çizecek; bu da bize, klasik Breakout oyununu bazı güzel ek özelliklerle geliştirme imkânı sunacak.

OpenGL Breakout

Klasik mekaniklerin dışında, bizim Breakout versiyonumuz şu özelliklere sahip olacak:

  • Harika grafikler!

  • Parçacık efektleri (particles)

  • Yazı (text) render’lama

  • Güçlendiriciler (power-ups)

  • Görüntü işleme efektleri (postprocessing effects)

  • Birden fazla (özelleştirilebilir) seviye

Sizi heyecanlandırmak adına, bu bölümleri tamamladığınızda oyunun nasıl görüneceğini aşağıda görebilirsiniz:

Bu bölümler, önceki bölümlerde öğrendiğimiz pek çok kavramı bir araya getirerek bunların nasıl bir bütün olarak birlikte çalışabildiğini gösterecek. Bu nedenle, bu seriye başlamadan önce en azından “Başlarken” (Getting started) bölümlerini tamamlamış olmanız oldukça önemlidir.

Ayrıca, bazı bölümler diğer bölümlerdeki kavramlara ihtiyaç duyacaktır (örneğin, İleri Seviye OpenGL bölümündeki Framebuffer konusu gibi). Bu tür durumlarda, gerekli bölümler ilgili yerlerde belirtilecektir. Eğer artık “ellerinizi kirletmeye” hazırsanız, bir sonraki bölüme geçebilirsiniz.

Last updated

Was this helpful?