GAD1003 Basics of ProgrammingBahçeşehir ÜniversitesiAkademik Programlar DİJİTAL OYUN TASARIMIÖğrenciler için Genel BilgiDiploma EkiErasmus BeyanıUlusal YeterliliklerBologna Komisyonu
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

Temel Bilgiler

Öğretim Dili: İngilizce
Dersin Türü: Must Course
Dersin Seviyesi: LİSANS
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Doç. Dr. GÜVEN ÇATAK
Dersi Veren(ler): MEHMET ONUR KALKAN
Öğ.Gör. BERK YÜKSEL
Dersin Amacı: Bu ders, C# dilini kullanarak programlamanın temellerini tanıtır. Oyun geliştirmede kullanılan bir programlama dilini öğrenmek, oyun geliştirme sürecini daha iyi anlamanıza olanak sağlayacaktır. Bu, programcılarla birlikte çalışan tasarımcılar ve sanatçılar için olduğu kadar, solo geliştiriciler ve yeni başlayan programcılar için de faydalıdır.

Öğrenme Kazanımları

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

Dersin İçeriği

Bu ders, programlama dilleri ve etkileşimli yazılım geliştirmedeki kullanımları ve oyun tasarım kariyerindeki rolleri, basit ve karmaşık veri türleri ve temel matematiksel işlemler, mantıksal ve koşullu operatörler ve özyineleme yoluyla karar verme, nesne oluşturma ve kullanma, nesne yönelimli programlamaya giriş, Array ve Collection türleri ile çalışma, sıralama algoritmaları, anahtar-değer depolama, nesne yönelimli paradigmaya giriş: Kalıtım, Çok biçimlilik, Arayüzler, nesne yönelimli paradigmanın diğer yaygın programlama paradigmaları ile karşılaştırılması, yazılım mimarisi tasarımı için modelleme araçlarının kullanılması, SOLID programlama ilkeleri gibi konuları içerecektir.

Ders yüz yüze yapılacaktır. Yüz yüze derslerde dersten sorumlu olan öğrencilerin ders saatleri içerisinde dersi sınıfta takip etmeleri beklenmektedir. Ders anlatımı, tartışma ve gerekli okumaların yanı sıra vaka çalışmaları, gözlemler ve projeler de derse katkı sağlayacaktır.

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

Hafta Konu Ön Hazırlık
1) Ders özeti
2) Programlamaya Giriş, Hello World
3) Değişkenler
4) If-Else İfadeleri
5) Diziler
6) Döngüler
7) Vize Sınav Haftası
8) Unity'e Giriş
9) C# ile Unity
10) Animasyonlar
11) Oyun Fizikleri
12) Kullanıcı Arayüz Geliştirme
13) Final Proje Ön Yorumları
14) Final Proje Ön Yorumları

Kaynaklar

Ders Notları / Kitaplar: - Unity in Action (3rd Edition) – Joe Hocking
Diğer Kaynaklar: - The C# Player's Guide (5th Edition) – RB Whitaker

Değerlendirme Sistemi

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Laboratuar 7 % 30
Ara Sınavlar 1 % 30
Final 1 % 40
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 60
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 40
Toplam % 100

AKTS / İş Yükü Tablosu

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 14 3 42
Uygulama 10 3 30
Sınıf Dışı Ders Çalışması 8 8 64
Ara Sınavlar 1 3 3
Final 1 3 3
Toplam İş Yükü 142

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. 5
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. 2
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. 4
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. 4
7) Oyuncu deneyimini anlama, ölçme teorileri ile metodolojilerini kavramak ve oyun üretimi sürecinde bu bilgilerden faydalanmak. 2
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. 2
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. 4
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. 3
11) Geliştirme dışında bir oyunun yayın sürecini endüstri standartlarında kavrayabilmek ve pratiğe dökebilmek. 4
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. 2