Önlisans
Meslek Yüksek Okulu
Bilgisayar Programcılığı
Anlık RSS Bilgilendirmesi İçin Tıklayınız.Düzenli bilgilendirme E-Postaları almak için listemize kaydolabilirsiniz.


Oyun Geliştirme I

Ders KoduYarıyıl Ders Adı T/U/L Türü Öğrenim Dili AKTS
TBP0030 Oyun Geliştirme I 2/2/0 SA Türkçe 4
Dersin Amacı
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


ÖÇ-1Oyun programlama üzerine temel kavramları açıklayabilme
ÖÇ-2Oyun geliştirmede kullanılan algoritmalara, süreçlere ve teknolojilere dair bilgi donanımı
ÖÇ-3Basit animasyonlar oluşturabilme ve oyun motoru kullanarak oyun geliştirebilme becerisi
ÖÇ-4Temel matematik ve fizik bilgilerini programlamada kullanabilme becerisi
ÖÇ-5Bilgisayar 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Ç-1Bilgisayar 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Ç-2Temel bilgisayar kullanımı bilgisi ile donatılı olmak.
PÇ-3Mesleğinin gerektirdiği hertürlü yazılımları bilmek ve donanımları kullanabilmek
PÇ-4Takım çalışmalarına önem vermek ve gruba katkı sağlayabilmek, takım arkadaşları ile uyumlu çalışabilmek.
PÇ-5Alanında yaptığı çalışmaları proje grubuna ve kurumuna etkin bir şekilde ifade edebilmek.
PÇ-6Sorumluluğu altında çalışanların performanslarını objektif değerlendirmek ve sorumlu olduğu yönetime objektif bilgi akışı sağlayabilmek.
PÇ-7Programında aldığı eğitim düzeyini ve problemlerin çözümündeki yeteneklerini gösterebilmek
PÇ-8Genel/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Ç-9Bilgisayar 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Ç-10Bilgisayar Programcılığı alanındaki etik değerlere uymak ve sosyal sorumluluk bilincini taşımak.
PÇ-11Alanında çalışmaları yürütebilecek ve dünyadaki gelişmeleri en iyi seviyede takip edebilecek düzeyde yabancı dil bilgisine sahip olabilmek
PÇ-12Alanında iletişime önem vermek ve bu iletişimde türkçeyi en doğru şekilde kullanabilmek.
PÇ-13Alanında çalışanların ve kendisinin güvenlik, sağlık ve çevre bilincine sahip olmalarını sağlamak.
PÇ-14Bilgisayar 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Ç-15Alanı ile ilgili çalıştığı işletmede sorumluluk alabilmek, çalışanları ve iş akışını organize etmek, kalite ve standartlara göre hizmet vermek.
Alan Yeterlilikleri Matrisi
Program Çıktıları - Öğrenim Çıktıları Matrisi
--
 PÇ 1PÇ 2PÇ 3PÇ 4PÇ 5PÇ 6PÇ 7PÇ 8PÇ 9PÇ 10PÇ 11PÇ 12PÇ 13PÇ 14PÇ 15
ÖÇ 1               
ÖÇ 2               
ÖÇ 3               
ÖÇ 4               
ÖÇ 5