Dijital Oyun Tasarımı (İngilizce) | |||||
Lisans | TYYÇ: 6. Düzey | QF-EHEA: 1. Düzey | EQF-LLL: 6. Düzey |
Ders Kodu: | DGD203 | ||||
Ders İsmi: | Oyun Programlamaya Giriş (C#) | ||||
Ders Yarıyılı: | Güz | ||||
Ders Kredileri: |
|
||||
Öğretim Dili: | İngilizce | ||||
Ders Koşulu: | |||||
Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
Dersin Türü: | Zorunlu | ||||
Dersin Seviyesi: |
|
||||
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 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 |
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. |
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. |
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. |
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 |
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 |
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 |
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 |