MSGSÜ / Lisans

DOT203 - Oyun Programlama I

Bu ders 2026-2027 akademik yılı güz dönemi içerisinde Mimar Sinan Güzel Sanatlar Üniversitesi bünyesinde Dijital Oyun Tasarımı Bölümü bünyesinde yürütülmekte zorunlu derstir. Sadece derse kayıtlı öğrenciler ders içeriğine erişebilir.

  • Dijital - Dijital Teknoloji Kavramı
  • Oyun Programlamada Temel Kavramlar - I
  • Kodlama vs Programlama
  • Oyun Programlamada Temel Kavramlar - II
  • Nesne Tabanlı Programlama Neden Önemli?
  • Hızlı ve Pratik Git Kılavuzu
  • Derleyici (Compiler) - Yorumlayıcı (Interpreter)
  • .NET ve SDK
  • Game Patterns
  • Command Pattern
  • ÖDEV: Nesne tabanlı yaklaşım ilkelerine göre koda çevirme
  • Abstract Class vs Interface
  • Observer Pattern
  • Event-Driven Architecture (EDA)
  • ÖDEV: Command Pattern'de Replay İşlevini Geliştirme

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Bu hafta için girilmiş konu maddesi bulunmuyor.

Kapsam

Ders kapsamında öncelikle C# programlama dilinin oyun geliştirme açısından gerekli temel özellikleri ve nesne yönelimli programlama yaklaşımı ele alınır. Değişkenler, kontrol yapıları, metotlar, sınıflar, nesneler, kapsülleme, kalıtım, çok biçimlilik, arayüzler ve bileşim gibi kavramlar oyun geliştirme problemleri üzerinden uygulanır.

Bunun ardından oyun programlamanın temel mimari kavramları incelenir. Oyun döngüsü (Game Loop), oyun durumu (Game State), zaman ve güncelleme yaklaşımı (Update Method), girdi yönetimi, oyun nesneleri ve davranışların yönetimi gibi konular C# ve Unity uygulamaları üzerinden ele alınır.

Dersin temel bölümünde, oyun yazılımında tekrar eden tasarım problemlerine yönelik tasarım kalıpları ve mimari yaklaşımlar incelenir.

Öğrenciler her bir yaklaşımı yalnızca kuramsal olarak incelemek yerine, öncelikle problemli bir kod yapısını analiz eder; ortaya çıkan bağımlılık, karmaşıklık, performans veya sürdürülebilirlik problemini belirler; ardından uygun çözüm yaklaşımını C# ile uygular ve çözümün ortaya çıkardığı sonuçları değerlendirir.

Ders kapsamında ayrıca yazılım bileşenleri arasındaki bağımlılıkların azaltılması, sistemlerin ayrıştırılması, davranışların yönetilmesi, nesne yaşam döngülerinin kontrol edilmesi ve performansın iyileştirilmesi gibi konular ele alınır. Öğrencilerin oyun kodunu yalnızca "çalışan kod" olarak değil, değiştirilebilir, genişletilebilir, okunabilir ve gerektiğinde optimize edilebilir bir yazılım sistemi olarak değerlendirmeleri sağlanır.

Dersin uygulama bölümünde C# ve Unity kullanılarak küçük ölçekli oyun sistemleri geliştirilir ve mevcut kodların yeniden yapılandırılması (refactoring) gerçekleştirilir. Öğrencilerden farklı tasarım alternatiflerini karşılaştırmaları, kullandıkları yaklaşımın hangi problemi çözdüğünü açıklamaları ve performans ile yazılım karmaşıklığı arasındaki dengeyi değerlendirmeleri beklenir.

Ölçme / Değerlendirme

Haftalık ders materyallerini ve quiz'lere katılım göstermek zorunludur. Süreç takibi esas alınacaktır. Vize ve Final Projelerinin tamamlanması gerekmektedir.

Dersin not sistemi aşağıdaki tablo gibidir.

Final Projesi - 40%

Süreç takibi (ders takibi) - zorunlu - 25%

Vize (Ara Sınav) Projesi - 35 %