5 Ekim 2011 Çarşamba

XNA 4.0 ile 3D Oyun Programlamaya Giriş

Bu bölümde boş bir XNA 4.0 projesi oluşturmanın adımları ile başlayacağım. İlk önce gereksinimlerden bahsedelim:

Sistem Gereksinimleri
  • Windows Vista SP2 ve üstü
  • En azından Shader Model 1.1  ve DirectX 9.0c destekleyen bir grafik kartı

Gerekli Ortam ve Kütüphaneler
  • Visual Studio 2010 Express Edition (C#)
  • .NET Framework 4.0
  • XNA Framework 4.0
  • Bu sistem, ortam ve kütüphane şartları sağlandıktan sonra artık projemizi oluşturabiliriz.

Gerekli Programlama Bilgisi
  • C# .NET (4.0 ve sonrası)

VISUAL STUDIO 2010 EXPRESS EDITION (C#)

Visual Studio XNA projeleri geliştirmek için gerekli tümleşik geliştirme ortamıdır (TGO, ing. IDE). Microsoft firması tarafından tavsiye edilen sürüm bedava olan Express Edition'dır. Bu yayın serisinde C# ile geliştirme yaptığım için Visual Studio Express Edition C# indirilmelidir.

 .NET Framework 4.0 ve XNA Framework 4.0

Şu anda kullanılan ve destek verilen en son XNA framework sürümü 4.0'dır.  Aslında 3.0 sürümü olmasına karşın bu sürümde çok önemli optimizasyonlar yapılmıştır. XNA Framework 4.0 en az .NET Framework 4.0 ile çalışır. .NET Framework 4.0 zaten Visual Studio 2010 Express Edition ile birlikte ekli olarak gelir.

Yeni Bir Proje Oluşturmak
1) İlk olarak başlangıç sayfasında File>New>Project seçilir. (Bu işlem Ctrl+Shift+N kombinasyonu ile de kısaca yapılabilir).


2) Burada Visual C# kategorisinden Windows Game (4.0) seçilip projeye adı koyulur. Ben örnek olarak TutorialProject ismini tercih ettim.


3) Projemiz artık oluşmuştur. Aşağıdaki gibi bir görüntü ile karşılaşırız.



Farkedileceği üzere XNA projesi normal C# projelerinden farklı olarak iki alt projeden oluşmaktadır (burada proje solution, alt proje ise project'e denk gelmektedir). İlk projemiz oyunun esas olarak kontrol edileceği proje iken ikinci proje tamamen içerik yönetimi ile ilgilidir. 

Microsoft.Xna.Framework.Content.Pipeline ile başlayan referanslar (.dll dosyaları) gerekli içeriği XNA'in anlayacağı biçimde yorumlar. Böylece desteklenen (ki destek sonradan eklenebilir ve genişletilebilir) içerikleri (burada asset) oyunumuzda kullanabiliriz. Desteklenen içeriklerin bir kaçı şöyledir: Ses, 2B doku, Video, 3B model (X ve FBX biçiminde), özel efektler. Oyunumuzun simgesi game.ico dosyası ile temsil edilir. Bu simge dosyası değiştirilebilir. Benzer şekilde GameThumbnail.png de oyunun küçük resmi olarak gösterilecek resimdir. Bu resim Windows Phone'da da aynı şekilde kullanılır. Oyunumuzun başlangıç noktası Program.cs dosyasında yazılıdır. Bunu esas uygulamanın bulunduğu Game1.cs dosyasındaki Game1 oyun sınıfımızdan nesne üretip Run metodunu çağırarak yapar. Biz Run metoduna doğrudan dokunmayız. XNA kütüphanesinin (yada framework'ünün) bizden beklediği Initialize, LoadContent, UnloadContent, Update ve Draw metotlarının içlerini doldurarak oyunun başlangıcından bitişine kadarki süreci kontrol etmemizdir.

Initialize metodu oyun tam yüklenirken grafiksel olmayan içeriğin yüklenmesi için çağrılır. LoadContent metodu en yoğun metotlardan biridir çünkü bütün desteklenen içerikler bu metotta yüklenir. UnloadContent Initialize metodu ile yüklenmiş desteklenen içerikler haricindeki içerikleri boşaltmak için kullanılır. 

Update ve Draw metotları oyunun bütün akışını kontrol eden ve her döngüde çağrılan metotlardır. Bu iki durum her saat döngüsünde çağrıldığından dolayı tek bir metotta da yönetilebilirdi fakat hem metotların görev dağılımının sağlıklı yapılması hem de  bir oyun bileşenin (Update ve Draw metotları sadece oyunda değil daha bir çok oyunla ilgili bileşen sınıflarında kullanılırlar) etkin olma ve görünür olma durumlarının bir birinden ayrılması için (bir bileşen etkin ise Update, görünür ise Draw metodu çağrılır) bu şekilde olmaları daha uygundur.

 

Hiç yorum yok:

Yorum Gönder