Blog
Game Development .NET Oyun Geliştirme MonoGame C# AI tarafından hazırlandı

MonoGame ile Kendi Oyununuzu Yazın: XNA'in Mirası Yaşıyor!

Alper Kocan 08 March 2026 16 görüntülenme

Selamlar, Ben Alper! Bugün Oyun Geliştirmenin Mutfağına İniyoruz

Hepimiz oyun oynamayı seviyoruz, peki ya o oyunların nasıl yapıldığını hiç merak ettiniz mi? Genelde aklımıza hemen Unity veya Unreal Engine gibi devasa oyun motorları (Game Engines) gelir. Ancak bugün size, işin biraz daha mutfağına inen, size sonsuz özgürlük tanıyan ve C# dilinin gücünü sonuna kadar kullanan harika bir araçtan bahsedeceğim: MonoGame.

MonoGame, aslında efsanevi Microsoft XNA framework'ünün açık kaynaklı ve geliştirilmiş bir devamı niteliğindedir. Eğer 2000'lerin sonunda oyun geliştirmeye merak saldıysanız, XNA ismini mutlaka duymuşsunuzdur. Microsoft bu projeyi rafa kaldırdığında, topluluk "biz bu işi devam ettiririz" dedi ve ortaya bugün Stardew Valley, Celeste ve Terraria gibi devasa başarı yakalamış oyunların temelini oluşturan MonoGame çıktı.

Oyun Motoru mu, Yoksa Yazılım Çerçevesi (Framework) mü?

Yeni başlayanların en çok kafasını karıştıran konu budur. Unity gibi bir motor kullandığınızda, size bir editör (arayüz) sunulur. Sürükle-bırak yaparsınız, sahneleri görsel olarak düzenlersiniz. MonoGame bir oyun motoru değil, bir yazılım çerçevesidir (Framework). Yani size boş bir tuval ve boyalar verir, ancak resmi nasıl çizeceğinize dair hazır bir şablon sunmaz. Her şeyi kodla halledersiniz.

Peki neden bunu isteyesiniz? İşte birkaç temel neden:

  • Tam Kontrol: Projenizde gereksiz hiçbir dosya veya kütüphane bulunmaz. Sadece sizin yazdığınız ve ihtiyaç duyduğunuz kodlar çalışır.
  • Performans: Hafif yapısı sayesinde sistem kaynaklarını çok verimli kullanır. Özellikle düşük donanımlı cihazlarda harikalar yaratır.
  • Öğrenme Süreci: Bir oyunun kalbinin nasıl attığını, matematiksel arka planını ve döngülerini (Game Loop) gerçekten öğrenmek istiyorsanız, MonoGame en iyi öğretmendir.
  • Platform Bağımsızlık (Cross-platform): Bir kere yazıp Windows, macOS, Linux, iOS, Android, PlayStation, Xbox ve Nintendo Switch gibi birçok platformda çalıştırabilirsiniz.

MonoGame'in Kalbi: Oyun Döngüsü (Game Loop)

MonoGame ile bir proje oluşturduğunuzda karşınıza tertemiz bir yapı çıkar. Bu yapının en önemli iki parçası Update ve Draw metodlarıdır. Bu iki arkadaş, oyununuzun kalbidir ve saniyede genellikle 60 kez (60 FPS) çalışırlar.

Update (Güncelleme) kısmında oyunun mantığını yürütürsünüz. "Karakter şu an nerede?", "Düşman oyuncuya çarptı mı?", "Klavye tuşuna basıldı mı?" gibi soruların cevapları burada verilir. Matematiksel hesaplamalar ve fizik kuralları bu döngü içinde döner.

Draw (Çizim) kısmında ise sadece görselleştirme (Rendering) işlemleri yapılır. Update kısmında hesapladığınız koordinatları alıp, ekrana ilgili görselleri (Sprites) basarsınız. MonoGame, bu iki süreci birbirinden ayırarak kodunuzun daha temiz ve yönetilebilir olmasını sağlar.

İçerik Yönetimi (Content Pipeline)

Oyunlarda sadece kod olmaz; resimler, sesler, fontlar ve 3D modeller de vardır. MonoGame, bu dosyaları oyunun anlayabileceği optimize edilmiş dosyalara dönüştürmek için Content Pipeline adında bir araç kullanır. Bu araç sayesinde, örneğin yüksek çözünürlüklü bir PNG dosyasını oyunun çok daha hızlı okuyabileceği bir format olan .xnb dosyasına çevirirsiniz. Bu, özellikle mobil platformlarda yükleme sürelerini (Loading Times) ciddi oranda düşüren bir yöntemdir.

Kimler MonoGame Kullanmalı?

Dürüst olalım, eğer amacınız sadece 3 gün içinde basit bir mobil oyun çıkarıp reklam koymaksa, Unity sizin için daha hızlı bir çözüm olabilir. Ancak amacınız bir yazılımcı olarak kendinizi geliştirmek, C# diline hakimiyetinizi artırmak ve oyununuzun her bir pikseline hükmetmekse, MonoGame biçilmiş kaftandır.

Özellikle 2D oyun geliştirmek isteyenler için MonoGame'in sunduğu SpriteBatch sınıfı, ekrana binlerce nesneyi inanılmaz bir hızla çizmenize olanak tanır. Eğer retro tarzda bir platform oyunu veya derin hikayeli bir RPG yapma hayaliniz varsa, MonoGame size bu yolda en sadık dost olacaktır.

Son Sözler

MonoGame öğrenmek, bir enstrüman çalmayı öğrenmek gibidir. Başta biraz zorlanabilirsiniz, "Neden her şeyi kodla yazıyorum?" diyebilirsiniz. Ancak bir süre sonra o kodların arasındaki ritmi yakaladığınızda, kendi dünyanızı sıfırdan inşa etmenin verdiği hazzı başka hiçbir yerde bulamazsınız. Unutmayın, bugün milyonlar satan Stardew Valley'in yaratıcısı ConcernedApe, oyununu tek başına bu temeller üzerine inşa etti.

Eğer .NET dünyasına aşinaysanız, Visual Studio'yu açın, MonoGame şablonlarını indirin ve o ilk "Hello World" yazısını ekranda hareket ettirmeye başlayın. Sorularınız olursa ben buralardayım. Kodunuz hatasız, FPS'iniz yüksek olsun!

Yorumlar (0)
Yorum Yap