DGD203 Introduction to Game Programming (C#)İstinye ÜniversitesiAkademik Programlar Dijital Oyun Tasarımı (İngilizce)Öğrenciler için Genel BilgiDiploma EkiErasmus BeyanıUlusal Yeterlilikler
Dijital Oyun Tasarımı (İngilizce)

Önizleme

Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: DGD203
Ders İsmi: Oyun Programlamaya Giriş (C#)
Ders Yarıyılı: Güz
Ders Kredileri:
AKTS
6
Öğretim Dili: İngilizce
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Zorunlu
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr. Öğr. Üy. İSMAİL ERGEN
Dersi Veren(ler): Assoc. Prof. Dr. Ali Çivril
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: At the end of the course, students are expected to
1. Know the fundamental constructs of the C# programming language.
2. Understand object-oriented programming and its importance for game design.
3. Have learned the basic elements of game programming.
4. Be able to use the Monogame framework.
5. Be well-equipped to write a simple game.
Dersin İçeriği: : This course introduces the fundamental structures of the C# programming
language by underlining the object-oriented programming paradigm together with programming of
simple games using the Monogame framework. The coverage of aspects of C# and game
programming are concurrent. Some topics to be covered are control structures, classes, inheritance,
polymorphism, exception handling in C#, simple data structures, game loop, game timing, sprites,
sound, player input, game states, sprite sheets, tile sets, animation, game physics and collision
detection

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Oyun geliştirme süreçlerinde karşılaşılan teknik yaklaşımlar ve prensipler hakkında bilgi sahibi olma.
2) Takım arkadaşları ile çalışan projelerde kullanılan ve kullanılması gerekilen ek araçlar hakkında bilgi sahibi olun.

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Gelişmiş OOP Kavramları: Abstraction, interface kavramları ve gelişmiş class özelliklerine derinlemesine dalış. Dersi gözden geçirin ve hazırlanın.
2) İleri Seviye Inheritance ve Interface Kullanımı: Karmaşık miras yapıları, arayüz implementasyonu. Dersi gözden geçirin ve hazırlanın.
2) İleri Seviye Inheritance ve Interface Kullanımı: Karmaşık miras yapıları, arayüz implementasyonu. Dersi gözden geçirin ve hazırlanın.
3) Generics ve İleri Seciye Koleksiyonlar: Generics Type'larının ve ileri seviye koleksiyon sınıflarının anlaşılması. Dersi gözden geçirin ve hazırlanın.
4) Temel Asenkron Programlama ve İş Parçacığı Kullanımı: Asenkron programlamanın temelleri ve temel iş parçacığı konseptleri. Ödev: Asenkron programlama tekniklerini kullanan bir program yazın.
5) İleri Seviye LINQ ve Lambda İfadeleri: Daha karmaşık LINQ sorguları ve lambda ifadeleri. Dersi gözden geçirin ve hazırlanın.
6) Reflection ve Attribute: C# içinde reflection temelleri ve attributes kullanımı. Dersi gözden geçirin ve hazırlanın.
7) Gelişmiş Dosya İşlemleri ve Serialization: Karmaşık dosya işlemleri ve serialization tekniklerine giriş. Ödev: Bir önceki ödevde yazdığınız programı serialization tekniklerini kullanacak şekilde güncelleyin.
8) Hata Yönetimi ve Hatasızlık: Etkili hata yönetimi mekanizmaları ve hatasız C# uygulamaları tasarlama. Ödev: Final projenize karar verin ve taslağını gönderin.
9) Tasarım Kalıpları ve İyi Kullanım Örnekleri: Yaygın tasarım kalıplarına ve iyi kodlama pratiklerine giriş. Dersi gözden geçirin ve final projesi üzerinde çalışın.
10) Gelişmiş Hata Ayıklama ve Performans İpuçları: Gelişmiş hata ayıklama teknikleri ve performans optimizasyonu. Dersi gözden geçirin ve final projesi üzerinde çalışın.
11) Proje Çalışması – Planlama ve İlk Geliştirme: Kapsamlı bir projenin planlanması ve başlangıcı. Dersi gözden geçirin ve final projesi üzerinde çalışın.
12) Proje Çalışması – Geliştirmeye Devam: Projenin daha da geliştirilmesi, orta düzey konseptlerin uygulanması. Dersi gözden geçirin ve final projesi üzerinde çalışın.
13) Proje Çalışması – Sonlandırma ve Test Etme: Projenin tamamlanması ve kapsamlı test edilmesi. Dersi gözden geçirin ve final projesi üzerinde çalışın.
13) Proje Çalışması – Sonlandırma ve Test Etme: Projenin tamamlanması ve kapsamlı test edilmesi. Dersi gözden geçirin ve final projesi üzerinde çalışın.
14) Proje Tamamlama ve Gözden Geçirme: Final proje sunumları ve dönemin gözden geçirilmesi. Final projesini tamamlayın ve gönderin.
15) Proje Tamamlama ve Gözden Geçirme: Final proje sunumları ve dönemin gözden geçirilmesi. Final projesini tamamlayın ve gönderin.

Kaynaklar

Ders Notları / Kitaplar: (Required) Learning C# by Programming Games, 2
nd Edition, Wouter van Toll, Arjan Egges, Jeroen
D. Fokker, Springer.
(Required) Visual C# 2012 How to Program, 5
th Edition, Paul Deitel-Harvey Deitel, Pearson.
(Recommended) Game Programming Algorithms and Techniques, Sanjay Madhav, AddisonWesley.
Diğer Kaynaklar: (Required) Learning C# by Programming Games, 2
nd Edition, Wouter van Toll, Arjan Egges, Jeroen
D. Fokker, Springer.
(Required) Visual C# 2012 How to Program, 5
th Edition, Paul Deitel-Harvey Deitel, Pearson.
(Recommended) Game Programming Algorithms and Techniques, Sanjay Madhav, AddisonWesley.

Ders - Program Öğrenme Kazanım İlişkisi

Course Learning Outcomes

1

2

Program Kazanımları
1) Yaratıcı yazı yazabilmek, özgün ve ilgi çekici kurmaca senaryolar, mekanlar ve evrenler düşleyebilmek ve üretebilmek. 2 boyutlu ve 3 boyutlu görsel tasarım yapabilmek ve etkileyici işitsel kurgu yapabilmek. Tüm bu sanatsal faaliyetleri, birtakım amaçlar doğrultusunda ve tasarım odaklı planlayabilmek. Oyun tasarım sürecinin kendisini tasarlayabilmek. 3 1
2) Matematiksel veri üzerinden düşünebilmek ve yaratıcı içerik üretebilmek. Parametrik tasarım yapabilmek. Yaratıcı yazın, grafik, illüstratif, mekânsal ve karakter tasarım gibi sanat ve tasarım faaliyetlerini sayısallaştırabilmek. Kantitatif ve nesnel yaklaşım ile kalitatif ve öznel fikir üretebilmek. 2 2
3) Farklı uzmanlık alanlarını ve bu alanlardan doğan içerikleri bir arada düşünerek proje yapabilmek. Farklı fikirlerin ve becerilerin birlikteliğiyle barışık biçimde takım çalışması yapabilmek. Kapsamlı ve bütünsel video oyun konseptleri üretebilmek. Yapılan çalışmaları portfolyo ve sunum formatında hazırlayabilmek, sergileyebilmek, anlatabilmek ve savunabilmek. 2
4) Video oyun tarihi ve kuramı üzerine eleştirel düşünce okur-yazarlığı kazanmak. Oyunların felsefi, antropolojik, politik ve toplumsal açılımları üzerine düşünebilmek ve akademik metin üretebilmek. Video oyun bilgi alanının güncel sorunsallarından haberdar olmak. Eleştiri kabul etme profesyonelliğini gösterebilmek. 3
5) Video oyun kültürü ve video oyun kültürünün beslendiği diğer kültürel etkinlik alanlarının tarihsel birikimlerinden ve güncel üretimlerinden haberdar olmak. Hem estetik hem teknik üretim ve düşünce biçimlerini kültürel etkinlik olarak ele alabilmek, yorumlayabilmek ve konumlandırabilmek. 1 1
6) Video oyunlarının toplumsal ve ekonomik gerçekliklerinin geçmişiyle ilgili bilgi sahibi, güncel koşullarından haberdar ve gelecekteki potansiyelleriyle ilgili öngörülü olmak. Profesyonel iş ilişkileri kurabilmek, yazışma yapabilmek ve prodüksiyon planlaması kurgulayabilmek. Genele hâkim olurken, belli bir veya birkaç uzmanlık alanında özelleşebilmek. 2 3
7) Üretimin her aşamasında video oyun bilgi alanı içinde ve dışında araştırma yapabilmek, veri süzebilmek ve sentez yapabilmek. Disiplinler arası araştırma yapabilmek. Farklı kaynaklardan doğan içerikleri birbirlerine kararak özgün fikirler üretmek. Öğrenmeyi öğrenmek. 1 2
8) Profesyonel dijital içerik üretim araçlarını ve teknolojilerini anlamak, öğrenmek ve kullanmak. Farklı üretim gereksinimlerine hizmet edecek iş akışları tasarlayabilmek. İş akışına dahil olan teknolojileri, alışılagelmiş ve bilinen kapsamları dışında kullanabilmek ve yeri geldiğinde yeni kapsamlara hizmet edecek teknolojiler araştırmak, keşfetmek ve işlevlendirebilmek. 3 3

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Yaratıcı yazı yazabilmek, özgün ve ilgi çekici kurmaca senaryolar, mekanlar ve evrenler düşleyebilmek ve üretebilmek. 2 boyutlu ve 3 boyutlu görsel tasarım yapabilmek ve etkileyici işitsel kurgu yapabilmek. Tüm bu sanatsal faaliyetleri, birtakım amaçlar doğrultusunda ve tasarım odaklı planlayabilmek. Oyun tasarım sürecinin kendisini tasarlayabilmek. 2
2) Matematiksel veri üzerinden düşünebilmek ve yaratıcı içerik üretebilmek. Parametrik tasarım yapabilmek. Yaratıcı yazın, grafik, illüstratif, mekânsal ve karakter tasarım gibi sanat ve tasarım faaliyetlerini sayısallaştırabilmek. Kantitatif ve nesnel yaklaşım ile kalitatif ve öznel fikir üretebilmek. 3
3) Farklı uzmanlık alanlarını ve bu alanlardan doğan içerikleri bir arada düşünerek proje yapabilmek. Farklı fikirlerin ve becerilerin birlikteliğiyle barışık biçimde takım çalışması yapabilmek. Kapsamlı ve bütünsel video oyun konseptleri üretebilmek. Yapılan çalışmaları portfolyo ve sunum formatında hazırlayabilmek, sergileyebilmek, anlatabilmek ve savunabilmek. 2
4) Video oyun tarihi ve kuramı üzerine eleştirel düşünce okur-yazarlığı kazanmak. Oyunların felsefi, antropolojik, politik ve toplumsal açılımları üzerine düşünebilmek ve akademik metin üretebilmek. Video oyun bilgi alanının güncel sorunsallarından haberdar olmak. Eleştiri kabul etme profesyonelliğini gösterebilmek. 3
5) Video oyun kültürü ve video oyun kültürünün beslendiği diğer kültürel etkinlik alanlarının tarihsel birikimlerinden ve güncel üretimlerinden haberdar olmak. Hem estetik hem teknik üretim ve düşünce biçimlerini kültürel etkinlik olarak ele alabilmek, yorumlayabilmek ve konumlandırabilmek. 1
6) Video oyunlarının toplumsal ve ekonomik gerçekliklerinin geçmişiyle ilgili bilgi sahibi, güncel koşullarından haberdar ve gelecekteki potansiyelleriyle ilgili öngörülü olmak. Profesyonel iş ilişkileri kurabilmek, yazışma yapabilmek ve prodüksiyon planlaması kurgulayabilmek. Genele hâkim olurken, belli bir veya birkaç uzmanlık alanında özelleşebilmek.
7) Üretimin her aşamasında video oyun bilgi alanı içinde ve dışında araştırma yapabilmek, veri süzebilmek ve sentez yapabilmek. Disiplinler arası araştırma yapabilmek. Farklı kaynaklardan doğan içerikleri birbirlerine kararak özgün fikirler üretmek. Öğrenmeyi öğrenmek. 2
8) Profesyonel dijital içerik üretim araçlarını ve teknolojilerini anlamak, öğrenmek ve kullanmak. Farklı üretim gereksinimlerine hizmet edecek iş akışları tasarlayabilmek. İş akışına dahil olan teknolojileri, alışılagelmiş ve bilinen kapsamları dışında kullanabilmek ve yeri geldiğinde yeni kapsamlara hizmet edecek teknolojiler araştırmak, keşfetmek ve işlevlendirebilmek. 2

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Devam 1 % 10
Projeler 3 % 40
Final 1 % 50
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 50
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 50
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Aktiviteye Hazırlık Aktivitede Harçanan Süre Aktivite Gereksinimi İçin Süre İş Yükü
Ders Saati 14 2 28
Laboratuvar 14 2 28
Proje 3 12 36
Final 1 15 15
Toplam İş Yükü 107