Dersin amacı öğrenciye tasarım, geliştirme, test ve hata ayıklama aşamaları üzerinden başlangıç düzeyinde oyun programlayabilme becerisi kazandırmak ve oyun tasarımının ilkeleri, oyun programlama terminolojisi, modern oyun motorlarının temelini oluşturan teknolojiler, takım projelerinin yönetimi gibi konularda bir anlayış geliştirmektir. Oyun programlamada Yapay Zeka, Fizik, Öğrenme, Matematik, İnsan Bilgisayar Etkileşimi ve Bilgisayar Grafikleri gibi çeşitli alanlar da kullanıldığından, dersin bir başka ve önemli amacının da öğrenciye bilgisayar bilimlerinde çok disiplinli bir bakış açısı kazandırmak olduğu söylenebilir.
Eğitimin amacı: Bu eğitim mobil ve masaüstü oyunlar ile gerçek zamanlı simülasyon uygulaması olan Unity 3D motorunun uygulamalı kullanım eğitimi olarak tasarlanmıştır. Eğitim, oyun geliştiriminde kullanılan tekniklerin anlatımı ve oyun özellikleri kodlama temellerini kapsamaktadır. Eğitimin tamamı uygulamalı olup, müfredat süresince dört farklı oyun tasarımı ve çeşitli Virtual ve Augmented Reality similasyon uygulamalı olarak gerçekleştirilecektir.
Unity’yi keşfetmek
- Çalışma ortamını tanımak
- Proje oluşturmak ve düzenlemek
- Sahne görünümünü yönetmek
- Nesneler oluşturmak
- Nesne transform yönetimi
Arazi (Terrain) düzenleyici ile çalışmak
- Arazi geometrisini tanımlamak
- Topoğrafya oluşturmak
- Arazi dokusu oluşturmak
- Ağaçlar ve ormanlar oluşturmak
- Çimenler ve çalılar oluşturmak
- Arazi ayarlarını düzenlemek
Çevre oluşturmak
- Gökyüzü, güneş ve sis eklemek
- Birincil görüş açısı (FPC) kullanmak
- Proje ayarlarını yayınlamak
Unity ile kodlamaya başlamak
- Unity kod yapısını keşfetmek
- Değişkenler ve fonksiyonlar kullanmak
- Sözdizimi, noktalama ve konsolu kullanmak
- Döndürme ve zaman fonksiyonlarını anlamak
- Basit fonksiyonlar kodlamak
- Dönüşümlerle çalışmak
- Koşullar kullanmak
Oyun içinde kodlamak
- Mesafe değişkenleri ve yerel değişkenlerle çalışmak
- Gökyüzü, güneş ve sis eklemek
- Birincil görüş açısı (FPC) kullanmak
- Proje ayarlarını yayınlamak
- Raycast nesnesini kullanmak
- Zamanlayıcılar oluşturmak
- OnCollision değişkenini ve etiketlerini anlamak
- Mesajlar göndermek
- Mesajlara tepki oluşturmak
Oyun nesneleri ve bileşenleri ile çalışmak
- Oyun nesneleri oluşturmak
- Bileşenleri anlamak
- Çarpışmaları ve tetikleyicileri kullanmak
- Fizik bileşenleri ile çalışmak
- Rüzgar eklemek
- Ses kaynağı kullanmak
- Çevre gürültüsü oluşturmak
- Ses efektleri eklemek
Yeniden kullanılabilir nesneler ile çalışmak
- Yeniden kullanılabilir nesne (Prefab) oluşturmak ve kullanmak
Parçacık sistemleri ve efektlerle çalışmak
- Parçacık sistemleri oluşturmak
- Parçacık sistemleri ile efekt oluşturmak
- Su efektleri kullanmak
Dışardan alınan varlıklarla çalışmak
- Dışardan nesneler almak
- Materyallerle çalışmak
- Dışarıdan animasyon almak
Işıkla çalışmak
- Doğrusal ışık kullanmak
- Nokta ışık kullanmak
- Spot ışık kullanmak
Oyun arayüzleri oluşturmak
- Unity GUI ile çalışmak
- Oyun içi menüler kodlamak
Yapay zeka tasarlamak
- Yapay Zeka mantığını anlamak
- Tehdit algılama duyarlılığı oluşturmak
- Engel duyarlılığı oluşturmak
Mobil cihazlar için oyun geliştirmek
- TouchPhase ve ivmelendiricilerle çalışmak
Simple Augmented Reality (Arttırılmış Gerçekçilik Uygulamaları) tasarlamak
- AR uyumlu nesneler oluşturmak
- Marker oluşturmak
- AR framework entegrasyonu
- Tablet üzerinden yayınlama
Simple Virtual Reality (Sanal Gerçekçilik Uygulamaları) tasarlamak
- Oculus Rift (Sanal Gözlük) kurulumu
- Unity3d-Oculus Rift entegrasyonu
- Nesne oluşturma ve etkileşim sağlama
- Oculus Rift Gözlüğünü kullanarak oluşturulan ortamlarda sanal gezinti.
Projeyi yayınlamak )
- Kodları derlemek
- Web ve mobil platformlar için yayınlamak
- Mobil mağazalar üzerinden dağıtmak
Uygulama
- FPS
- shoot’em up
- platform oyunu
- araba yarışı
Ön Koşullar
Yok
Eş Koşullar
Yok
Özel Koşullar
Yok
Öğretim Üyeleri
Öğr.Gör.Ahmet Gökhan Uluçay
Asistanlar
Yok
Ders Gün,Saat ve Yeri
Salı 13:00-17:00 - CATS Meetings
Görüşme Saatleri ve Yeri
CATS Meetings
Öğretim Yöntem ve Teknikleri
** Örgün olarak planlanmış ancak pandemi sürecinde yaşanan gelişmeler sonrası YÖK tavsiye kararları çerçevesinde dersin Dijital Uzaktan Eğitim yöntemiyle sürdürülmesine karar verilmiştir. Dersin teorik kısımı Güz Yarıyılında %100 Asenkron ve Senkron olarak zenginleştirilmiş dijital yöntem ile CATs V3.0 arayüzüyle verilecek sektörel E-Webinarlar ile desteklenecektir. Dersin Uygumalı kısımlarından verilebilenlerin ise yine Dijital Uzaktan Eğitim yöntemiyle verilecek, verilemeyen uygulamaların pandemi sürecinde yaşanan gelişmelere göre Güz Yarıyılı içerisinde Yarıyılın son döneminde CATs V3.0 sistemi üzerinden isteğe bağlı randevu yöntemi ile dönüşümlü seyretilmiş hibrit yöntem ile verilecektir.
Temel Kaynaklar
--Game Coding Complete, Fourth Edition by Mike McShaffry and David Graham (Mar 5, 2012)
Diğer Kaynaklar
-The Game Maker's Apprentice: Game Development for Beginners by Jacob Habgood, Mark Overmars and Phil Wilson (Jul 9, 2006)
Haftalık Ders Programı
Hafta
Dersin İçeriği
Öğretim Yöntem ve Teknikleri
1. Hafta
Oyun programlama üzerine temel kavramlar
sözlü anlatım, laboratuvar
2. Hafta
Oyun programlama üzerine temel kavramları
sözlü anlatım, laboratuvar
3. Hafta
Oyun geliştirmede kullanılan algoritmalar, süreçler ve teknolojiler
sözlü anlatım, laboratuvar
4. Hafta
Oyun geliştirmede kullanılan algoritmalar, süreçler ve teknolojiler
sözlü anlatım, laboratuvar
5. Hafta
Oyun geliştirmede kullanılan algoritmalar, süreçler ve teknolojiler
sözlü anlatım, laboratuvar
6. Hafta
Basit animasyonlar oluşturmak ve oyun motoru kullanarak oyun geliştirmek
sözlü anlatım, laboratuvar
7. Hafta
Basit animasyonlar oluşturmak ve oyun motoru kullanarak oyun geliştirmek
sözlü anlatım, laboratuvar
8. Hafta
Basit animasyonlar oluşturmak ve oyun motoru kullanarak oyun geliştirmek
sözlü anlatım, laboratuvar
9. Hafta
Basit animasyonlar oluşturmak ve oyun motoru kullanarak oyun geliştirmek
sözlü anlatım, laboratuvar
10. Hafta
Basit animasyonlar oluşturmak ve oyun motoru kullanarak oyun geliştirmek
sözlü anlatım, laboratuvar
11. Hafta
Temel matematik ve fizik bilgilerinin programlamada kullanmak
sözlü anlatım, laboratuvar
12. Hafta
Temel matematik ve fizik bilgilerinin programlamada kullanmak
sözlü anlatım, laboratuvar
13. Hafta
Bilgisayar bilimlerinde çok disiplinli bakış
sözlü anlatım, laboratuvar
14. Hafta
Bilgisayar oyunu tasarlamada etik
sözlü anlatım, laboratuvar
15. Hafta
Final
Final
16. Hafta
Final
Final
17. Hafta
Final
Final
Değerlendirme Ölçütleri
Ölçüt Tipleri
Adet
Yüzdesi(%)
Ara sınav(lar)
1
30
Kısa sınav(lar)
1
30
Final
1
40
ÖÇ-1
Oyun programlama üzerine temel kavramları açıklayabilme
ÖÇ-2
Oyun geliştirmede kullanılan algoritmalara, süreçlere ve teknolojilere dair bilgi donanımı
ÖÇ-3
Basit animasyonlar oluşturabilme ve oyun motoru kullanarak oyun geliştirebilme becerisi
ÖÇ-4
Temel matematik ve fizik bilgilerini programlamada kullanabilme becerisi
ÖÇ-5
Bilgisayar grafikleri, yapay zeka üzerine başlangıç düzeyde kavrayış
Bilgisayar bilimlerinde çok disiplinli bakış açısı
Bilgisayar oyunu tasarlamada etik konusunda farkındalık
Program Çıktıları
PÇ-1
Bilgisayar Programcılığı alanındaki çalışmalar için gerekli verilerin tanımlanması, toplanması ve değerlendirilmesini etkin bir şekilde yapabilmek, yaptığı uygulamalarda öğrendiği teorik bilgileri kullanabilmek.
PÇ-2
Temel bilgisayar kullanımı bilgisi ile donatılı olmak.
PÇ-3
Mesleğinin gerektirdiği hertürlü yazılımları bilmek ve donanımları kullanabilmek
PÇ-4
Takım çalışmalarına önem vermek ve gruba katkı sağlayabilmek, takım arkadaşları ile uyumlu çalışabilmek.
PÇ-5
Alanında yaptığı çalışmaları proje grubuna ve kurumuna etkin bir şekilde ifade edebilmek.
PÇ-6
Sorumluluğu altında çalışanların performanslarını objektif değerlendirmek ve sorumlu olduğu yönetime objektif bilgi akışı sağlayabilmek.
PÇ-7
Programında aldığı eğitim düzeyini ve problemlerin çözümündeki yeteneklerini gösterebilmek
PÇ-8
Genel/mesleki orta öğretimde kazanılan bilgiler, beceriler ve yetkinlikler üzerine kurulan ve yüksek öğretim ders malzemeleri ile desteklenen bilgisayar programcılığı alanındaki bilgilere sahip olmak ve o alandaki kavramları belirlenen bir düzeyde anladığını gösterebilmek
PÇ-9
Bilgisayar programcılığının gerektirdiği analitik düşünme yeteneğini kazanmak, çalıştığı konularda buna uygun bakış açısı ile program yazmak ve çalıştırmak.
PÇ-10
Bilgisayar Programcılığı alanındaki etik değerlere uymak ve sosyal sorumluluk bilincini taşımak.
PÇ-11
Alanında çalışmaları yürütebilecek ve dünyadaki gelişmeleri en iyi seviyede takip edebilecek düzeyde yabancı dil bilgisine sahip olabilmek
PÇ-12
Alanında iletişime önem vermek ve bu iletişimde türkçeyi en doğru şekilde kullanabilmek.
PÇ-13
Alanında çalışanların ve kendisinin güvenlik, sağlık ve çevre bilincine sahip olmalarını sağlamak.
PÇ-14
Bilgisayar Programcılığı programını bitirdikten sonra da alanı ile ilgili yazılım, donanım konusundaki teknolojik yenilikleri takip edebilmek ve kendini geliştirebilmek
PÇ-15
Alanı ile ilgili çalıştığı işletmede sorumluluk alabilmek, çalışanları ve iş akışını organize etmek, kalite ve standartlara göre hizmet vermek.