DİJİTAL OYUN TASARIMI
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Tanıtım Bilgileri

Ders Kodu Ders Adı Yarıyıl Teorik Pratik Kredi AKTS
GAD1003 Programlama Temelleri Güz 2 2 3 5
Bu dersin açılması ilgili bölüm tarafından yarıyıl başında belirlenir

Temel Bilgiler

Öğretim Dili: En
Dersin Türü: Must Course
Dersin Seviyesi: LİSANS
Dersin Veriliş Şekli: Hibrit
Dersin Koordinatörü: Öğ.Gör. BERK YÜKSEL
Dersin Amacı: Programlamanın Temelleri dersi, platform ve dilden bağımsız olarak tüm modern programlar için gerekli olan yapı taşlarıyla programlama mantığını öğretmeyi amaçlar. C# programlama dili, hem kullanım kolaylığı hem de performans açısından dengeli bir yaklaşım içinde olmasının yanı sıra video oyunları alanındaki artan popülaritesi, teoriyi pekiştirmek için bir uygulama aracı olarak birlikte öğretilecektir.

Öğrenme Çıktıları

Bu dersi başarıyla tamamlayabilen öğrenciler;
• Bir bilgisayar programının yaşam döngüsü.
• Bilgisayarlar verileri nasıl depolar, temsil eder ve işler.
• Sayısal verilerle yasal ifadeler nasıl yazılır ve aritmetik işlemler yapılır.
• Karmaşık programlar tasarlamak için koşullu mantık ve koşullu ifadeleri kullanma.
• Döngüler kullanarak tekrarlayan görev yürütme.
• Koleksiyonlardaki verilerin tutulması ve alınması.
• Organize kodlu daha büyük programlar yazmak için sınırlı amaçlı yöntemler kullanmak.
• Hata ayıklama.
• Nesne Yönelimli Programlamanın İlkeleri.

Dersin İçeriği

• Programlama dillerine giriş; etkileşimli yazılım geliştirmede kullanımları ve oyun tasarımı kariyerinde rolleri.
• Basit ve karmaşık veri tipleri ve temel matematik işlemleri.
• Mantıksal ve koşullu operatörler ve özyineleme yoluyla karar verme.
• Nesneleri oluşturma ve kullanma, nesne yönelimli programlamaya giriş.
• Dizi ve Koleksiyon türleri ile çalışma, sıralama algoritmaları, anahtar-değer depolaması
• Nesne yönelimli paradigmaya giriş: Kalıtım, Polimorfizm, Arayüzler
• Diğer ortak programlama paradigmalarıyla nesne yönelimli paradigmanın karşılaştırılması.
• Yazılım mimarisi tasarımı için modelleme araçlarını kullanma.
• Temel ve sağlamlaştırlmış programlamanın prensipleri.
• Yazılım projeleri için doküman oluşturma
• Konsol uygulamalarından oyun motorlarına geçiş

Haftalık Ayrıntılı Ders İçeriği

Hafta Konu Ön Hazırlık
1) Introduction, Course Schedule, Review, Expectations
2) Hello World, Data Types
3) Arithmetic expressions, I/O
4) Conditional statements
5) Loops 1
6) Loops 2
7) Collections. Midterm Exam Prep.
8) Methods and Scopes
9) Final Project Design Presentations
10) Structs
11) Exception Handling
12) Classes 1
13) Classes 2
14) Unity Primer

Kaynaklar

Ders Notları: The C# Player's Guide 2nd Edition
Diğer Kaynaklar: Anggoro, Wisnu. (2017). Functional C#.

Değerlendirme Sistemi

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Devam 1 % 10
Laboratuar 4 % 20
Uygulama % 0
Arazi Çalışması % 0
Derse Özgü Staj % 0
Küçük Sınavlar % 0
Ödev 1 % 15
Sunum % 0
Projeler % 0
Seminer % 0
Ara Sınavlar 1 % 20
Ara Juri % 0
Final 1 % 35
Rapor Teslimi % 0
Juri % 0
Bütünleme % 0
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 65
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 35
Toplam % 100

AKTS / İş Yükü Tablosu

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 14 3 42
Laboratuvar 0 0 0
Uygulama 10 3 30
Derse Özgü Staj 0 0 0
Arazi Çalışması 0 0 0
Sınıf Dışı Ders Çalışması 8 8 64
Sunum / Seminer 0 0 0
Proje 0 0 0
Ödevler 0 0 0
Küçük Sınavlar 0 0 0
Ara Juri 0 0 0
Ara Sınavlar 2 3 6
Rapor Teslimi 0 0 0
Juri 0 0 0
Final 1 3 3
Toplam İş Yükü 145

Program ve Öğrenme Kazanımları İlişkisi

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) İletişim alanında oyunun kavramsal olarak önemini anlayıp, oyuncuyu merkeze alan tasarım odaklı uygulama yapabilme yeteneği kazandırmak. 5
2) Çeşitli perspektiflerden bilgi ve fikirleri analiz ederek, sentezlemek ve değerlendirebilmek. 2
3) Oyun türlerini, etkileşim ve anlatım biçimlerini oluşturan temel öğeleri analiz edebilme ve başarılı bir oyun oluşturmak için nasıl kullanıldığını anlamak. 1
4) Oyun tasarımı teorilerini ve metodolojilerini anlamak ve oyun geliştirirken kullanmak; hedef kitleye göre eğlenceli, çekici, içine alan ve öğretici oyunlar yapmak. 1
5) Oyun geliştirmede kullanılan teknolojileri ve bilişim temellerini anlamak; oyun motorlarının kullanımına hakim olmak. 5
6) Oyunlarda 2B ve 3B karakterler ile animasyonlarının yaratılması sürecine hakim olmak. 2
7) Oyuncu deneyimini anlama, ölçme teorileri ile metodolojilerini kavramak ve oyun üretimi sürecinde bu bilgilerden faydalanmak. 1
8) Oyunların tasarım yoluyla nasıl bir fikri, bir mesajı ve bir duyguyu ilettiğini kavramak oyun üretimi sürecinde bu bilgilerden faydalanmak. 1
9) Oyun tasarımı ve geliştirme sürecini, gerekli dokümantasyonu yaparak yönetebilmek; bu dokümantasyon ile oyun üretim bandını takip edebilmek. 2
10) Oyun geliştirme takımlarının yapısını ve çalışma biçimlerini; takım üyelerinin sorumluluklarını ve işbirliği yöntemlerini kavramak ve pratikte uygulayabilmek. 1
11) Geliştirme dışında bir oyunun yayın sürecini endüstri standartlarında kavrayabilmek ve pratiğe dökebilmek. 1
12) Bir video oyununu oyunculara, yatırımcılara ve yayıncılara tanıtabilmek; ortaya çıkan oyun fikrinin veya oyunun özelliklerini ve potansiyel ticari kazanımlarını etkin bir şekilde iletebilmek adına pazarlama konusuna hakim olmak. 1