Genel Bilgi
| Birim | FEN-EDEBİYAT FAKÜLTESİ |
| BİLGİSAYAR BİLİMLERİ PR. | |
| Kod | BBZ404 |
| Ad | Oyun Programlama |
| Dönem | 2026-2027 Eğitim-Öğretim Yılı |
| Yarıyıl | 8. Yarıyıl |
| Süre (T+U) | 2-2 (T-U) (17 Hafta) |
| AKTS | 5 AKTS |
| Yerel Kredi | 3 Yerel Kredi |
| Eğitim Dil | Türkçe |
| Seviye | Belirsiz |
| Tür | Normal |
| Etiket | S Seçmeli |
| Öğretim Şekli | Yüz Yüze Öğretim |
| Bilgi Paketi Koordinatörü | Dr. Öğr. Üyesi Cevher ÖZDEN |
| Dersin Öğretim Elemanı |
Güncel dönem ders programı henüz yapılmamıştır.
|
Dersin Amacı / Hedefi
Bu dersin amacı, öğrencilerin Unity oyun motoru ve C# programlama dili kullanarak 2D ve 3D oyun geliştirme süreçlerini kavramsal ve uygulamalı düzeyde öğrenmelerini; oyun döngüsü, sahne yönetimi, nesne-bileşen mimarisi, fizik, kullanıcı etkileşimi, animasyon, arayüz, temel oyun yapay zekâsı ve proje geliştirme süreçlerini bütünleşik bir oyun prototipi içinde uygulayabilmelerini sağlamaktır.
Dersin İçeriği
Oyun programlamaya giriş; oyun döngüsü, oyun nesnesi, bileşen tabanlı mimari ve Unity editörünün temel kullanımı; C# ile Unity scripting yapısı; 2D oyun geliştirme, sprite kullanımı, 2D fizik, çarpışma, tetikleyici olaylar, animasyon ve arayüz tasarımı; 3D oyun geliştirme, kamera, ışıklandırma, materyal, 3D fizik, karakter/nesne kontrolü ve etkileşim; prefab yapısı, sahne yönetimi, seviye tasarımı, skor ve oyun durumu yönetimi; temel oyun yapay zekâsı, ses ve görsel efektler; hata ayıklama, performans iyileştirme, oyun paketleme ve dönem projesi geliştirme.
Dersin Ön Koşulu
Ön koşul yoktur. Nesneye yönelik programlama, temel algoritma geliştirme ve C# programlama dili hakkında ön bilgi önerilir.
Kaynaklar
Ders notları, Unity resmi dokümantasyonu, Unity Learn materyalleri, Microsoft C# dokümantasyonu ve öğretim elemanı tarafından sağlanan örnek proje notları. Unity dokümantasyonu, Unity ile 2D ve 3D oyunlar, uygulamalar ve deneyimler geliştirmeye yönelik temel teknik başvuru kaynağıdır; Unity Learn ise oyun geliştirme ve gerçek zamanlı 3D becerileri için ücretsiz eğitim yolları ve öğreticiler sunar.
Notlar
Nystrom, R. Game Programming Patterns; Microsoft C# Guide; Unity Manual; Unity Learn beginner projects; Unity 2D Game Development Documentation; Unity Physics, Animation, UI ve Audio dokümantasyonları. C# için Microsoft dokümantasyonu, C# ve .NET platformuna başlamak için öğreticiler, kod örnekleri ve dil başvuru içerikleri sunar.
Dersin Öğrenme Çıktıları
| Sıra | Dersin Öğrenme Çıktıları |
|---|---|
| ÖÇ01 | Oyun programlamanın temel kavramlarını, oyun döngüsünü ve oyun motorlarının yazılım geliştirme sürecindeki rolünü açıklar. |
| ÖÇ02 | Unity editörü, sahne yapısı, GameObject ve bileşen tabanlı mimariyi kullanarak oyun nesneleri oluşturur. |
| ÖÇ03 | C# ve Unity scripting yapısını kullanarak oyun nesnelerinin davranışlarını geliştirir. |
| ÖÇ04 | Sprite, kamera, 2D fizik, çarpışma ve tetikleyici olayları kullanarak 2D oyun mekanikleri geliştirir. |
| ÖÇ05 | 2D oyunlarda animasyon, kullanıcı arayüzü, skor sistemi ve oyun durumu yönetimi bileşenlerini uygular. |
| ÖÇ06 | Kamera, ışıklandırma, materyal, 3D fizik ve nesne kontrolü kullanarak 3D oyun sahneleri geliştirir. |
| ÖÇ07 | Prefab, sahne yönetimi, seviye tasarımı ve etkileşimli oyun nesnelerini bütünleşik oyun yapısı içinde kullanır. |
| ÖÇ08 | Basit oyun yapay zekâsı, ses, görsel efekt, hata ayıklama ve performans iyileştirme yaklaşımlarını uygular. |
| ÖÇ09 | Belirlenen gereksinimlere uygun çalışan bir 2D veya 3D oyun prototipi geliştirir ve sunar. |
Program Öğrenme Çıktıları ile İlişkisi
| Sıra | Tür | Program Öğrenme Çıktıları | Duzey |
|---|---|---|---|
| PÖÇ01 | Bilgi - Kuramsal, Olgusal | Bilgisayar Bilimleri temel kavramları, algoritmalar ve veri yapıları hakkında geniş bir bilgi yelpazesi kazandırır. | 3 |
| PÖÇ02 | Bilgi - Kuramsal, Olgusal | Yazılım geliştirme, programlama dilleri ve veritabanı yönetimi gibi temel bilgisayar konularını öğrenir. | 3 |
| PÖÇ03 | Bilgi - Kuramsal, Olgusal | Veri bilimi, yapay zeka ve makine öğrenimi gibi ileri düzey bilgisayar alanlarını anlar. | 3 |
| PÖÇ04 | Bilgi - Kuramsal, Olgusal | Bilgisayar ağları, siber güvenlik ve veritabanı tasarımı gibi konularda bilgi edinir. | 2 |
| PÖÇ05 | Beceriler - Bilişsel, Uygulamalı | Algoritmaları tasarlama, uygulama ve analiz etme becerilerini geliştirir. | 3 |
| PÖÇ06 | Beceriler - Bilişsel, Uygulamalı | Farklı programlama dillerini etkili bir şekilde kullanabilme yeteneği kazanır | 3 |
| PÖÇ07 | Beceriler - Bilişsel, Uygulamalı | Veri analizi, veritabanı yönetimi ve büyük veri işleme becerilerini öğrenir. | 2 |
| PÖÇ08 | Beceriler - Bilişsel, Uygulamalı | Yazılım geliştirme projelerinde çalışarak pratik deneyim kazanır. | 3 |
| PÖÇ09 | Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği | Ekip içinde işbirliği yapma ve iletişim becerilerini güçlendirir. | |
| PÖÇ10 | Yetkinlikler - Alana Özgü Yetkinlik | Teknolojik yeniliklere açık bir zihniyet kazandırır. | |
| PÖÇ11 | Yetkinlikler - Öğrenme Yetkinliği | Sürekli öğrenme ve kendini geliştirme yetkinliğini teşvik eder. | |
| PÖÇ12 | Yetkinlikler - İletişim ve Sosyal Yetkinlik | Karmaşık sorunları çözme yeteneği geliştirir. | 3 |
Haftalık Akış
| Hafta | Konu | Ön Hazırlık | Yöntemler |
|---|---|---|---|
| 1 | Oyun programlamaya giriş; oyun döngüsü, oyun motorları, Unity editörü, sahne, GameObject ve Component mantığı | Unity kurulumu ve arayüz incelemesi | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma |
| 2 | C# ile Unity scripting: MonoBehaviour, Start, Update, değişkenler, metotlar, prefab mantığı ve temel kod organizasyonu | Temel C# sözdizimi tekrarı | Öğretim Yöntemleri: Gösterip Yaptırma, Anlatım |
| 3 | 2D oyun geliştirmeye giriş: sprite kullanımı, kamera ayarları, input işlemleri ve karakter hareketi | Sprite ve 2D sahne örneklerini inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma |
| 4 | 2D fizik: Rigidbody2D, Collider2D, çarpışma, trigger olayları, zıplama ve platform mekaniği | Unity 2D fizik bileşenlerini inceleme | Öğretim Yöntemleri: Alıştırma ve Uygulama, Gösterip Yaptırma, Anlatım |
| 5 | 2D seviye tasarımı: Tilemap kullanımı, sahne düzeni, engel, düşman ve toplanabilir nesne yerleşimi | Tilemap ve seviye tasarımı örneklerini inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 6 | 2D animasyon: Animator, karakter durumları, basit düşman davranışı ve oyun hissinin geliştirilmesi | Animator penceresi ve animasyon örneklerini inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 7 | 2D oyun arayüzü: skor, can, süre, menü, oyun durumu, kazanma ve kaybetme koşulları | Unity UI bileşenlerini inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 8 | Ara Sınavlar | Konu tekrarı | Ölçme Yöntemleri: Yazılı Sınav |
| 9 | 3D oyun geliştirmeye giriş: koordinat sistemi, kamera, ışık, materyal, 3D sahne yapısı ve temel nesne kullanımı | 3D sahne, kamera ve ışık örneklerini inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 10 | 3D hareket ve kamera kontrolü: karakter/nesne hareketi, first-person veya third-person kontrol yaklaşımları | 3D hareket ve kamera kontrolü örneklerini inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 11 | 3D fizik ve etkileşim: Rigidbody, Collider, raycasting, tetikleyici olaylar ve etkileşimli nesneler | Rigidbody, Collider ve raycasting kavramlarını inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 12 | 3D seviye tasarımı: prefab kullanımı, sahne organizasyonu, toplanabilir nesneler, engeller ve oyun hedefleri | Prefab ve sahne organizasyonu örneklerini inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 13 | Temel oyun yapay zekâsı: devriye, takip, kaçınma, hedef seçme, basit karar kuralları ve NavMesh’e giriş | Basit düşman davranışı ve NavMesh örneklerini inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 14 | Ses, görsel efekt, hata ayıklama, performans iyileştirme, güvenli kodlama ve oyun kalitesinin artırılması | Ses, efekt ve profiler araçlarını inceleme | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 15 | Oyun paketleme, build alma, dönem projesi sunumları, kod savunması ve genel değerlendirme | Proje dosyalarını ve sunumu hazırlama | Öğretim Yöntemleri: Gösterip Yaptırma, Anlatım, Proje Temelli Öğrenme |
| 16 | Yarıyıl Sonu Sınavları | Final projesi sunumları | Ölçme Yöntemleri: Proje / Tasarım |
| 17 | Yarıyıl Sonu Sınavları | Genel tekrar | Ölçme Yöntemleri: Yazılı Sınav |
Öğrenci İş Yükü - AKTS
| Çalışmalar | Sayısı | Süresi (Saat) | İş Yükü (Saat) |
|---|---|---|---|
| Ders ile İlgili Çalışmalar | |||
| Ders (Sınav haftaları dahil değildir) | 14 | 4 | 56 |
| Sınıf Dışı Ders Çalışma (Ön çalışma, pekiştirme) | 14 | 4 | 56 |
| Değerlendirmeler ile İlgili Çalışmalar | |||
| Ödev, Proje, Diğer | 5 | 2 | 10 |
| Ara Sınavlar (Yazılı, Sözlü, vs.) | 1 | 3 | 3 |
| Yarıyıl/Yıl Sonu/Final Sınavı | 1 | 5 | 5 |
| Toplam İş Yükü (Saat) | 130 | ||
| Toplam İş Yükü / 25 (s) | 5,20 | ||
| AKTS | 5 AKTS | ||