Ahmet Sezgin DURAN - [ahmet.sezgin.duran@lab2023.com](mailto: ahmet.sezgin.duran@lab2023.com)
- Twitter: @marjinal1st
- Github: marjinal1st
İsmail AKBUDAK - ismail.akbudak@lab2023.com
- Twitter: @isoakbudak
- Github: ismailakbudak
Python programlama dili ile iki boyutlu oyun programlamaya giriş yapmak.
- Öncelikle oyun oynamayı seven
- Özgür yazılıma meraklı olan veya bu felsefeye yönelmek isteyen
- GNU/Linux ortamında oyun geliştirmeye meraklı olan
- Python programlama dili ile uğraşan
herkes :)
- 2D oyun programlama temellerininin öğrenilmesi
- 2D oyun motoru tasarımına giriş
30 kişi
- Python programlama dili (2.7 serisi)
- PySFML çoklu ortam kütüphanesi
- PyCharm topluluk sürümü
- Kenney Donation Pack oyun içerikleri (Creative Commons Zero lisanslı, tüm öğrencilere kursta dağıtılacaktır.)
- Buna ek olarak, her kursiyerin kendi dizüstü bilgisayarını getirmesi gerekmektedir.
Not: Zorunlu olmamakla beraber, eğer XInput ve/veya Direct Input destekli bir gamepad'iniz (oyun kolu) varsa, getirin. Bu sayede girdi cihazlarını kontrol ederken, gamepad'inizi de denemiş olursunuz. Ek olarak bunun bahanesi ile ders aralarında Street Fighter da oynarız :)
- Temel Python bilgisine sahip olmak
- Nesne yönelimli programlama kavramlarına aşina olmak
- Tercihen GNU/Linux kullanıyor olmak
- Python 2.7 kurulması. (Windows işletim sistemi kullanacak olanlar, kurduktan sonra PATH ayarlarını mutlaka yapmalı.)
- PySFML kütüphanesinin kurulması.
- PyCharm bütünleşik geliştirme ortamının kurulması. Topluluk sürümü (Community Edition) kullanılacaktır.
- Verilecek olan örnek kodların çalıştırılarak, geliştirme ortamının tamamıyla hazır olduğundan emin olunması.
- (Çok kısa bir giriş olacak şekilde) Özgür yazılım nedir?
- Oyunlarda özgür yazılım yaklaşımı
- Neden Python ve PySFML?
- Oyun programlama mantığı ve döngüsel işleyişi
- Kare/Saniye (FPS) kavramı
- Olay yönetimi
- Girdi cihazlarından anlık (live) girdi alınması
- Temel şekillerin çizimi, hareketi ve yönetimi
- Resimlerin çizimi, hareketi ve yönetimi
- Ses efekti ve müzik kullanma
- Font kullanma ve yazı yazdırma
- Kamera yönetimi
- Pencere yönetimi
- FPS'den bağımsız hareket
- Temel çarpışmalar ve yönetimleri
- Harici fizik motoru kullanımı
- Oyun programlama desenleri (kısaca anlatılacaktır.)
- (Zaman kaldığı takdirde) Örnek oyunlar/uygulamalar geliştirilmesi
- Kursun genel amacı, 2D oyun programlamaya giriş yapmaktır. 4 günün sonunda oyun programlamayla ilgili her şeyi öğrenmiş olacağınız bir kurs olmayacak bu.
- Mümkünse bilgisayarınıza herhangi bir GNU/Linux dağıtımı (tercihen Ubuntu 14.04) kurup hazırlanın. Zira bu kütüphanenin (Python SFML), Windows ve OSX sürümlerinin kurulması sıkıntılı olabiliyor.
- PyCharm bütünleşik geliştirme ortamının (IDE) kullanılması zorunlu değildir. Bildiğiniz herhangi bir IDE veya metin editörünü kullanabilirsiniz, fakat olası bir editör sorununda bildiğimiz bir şeye müdahale etmek işleri kolaylaştıracaktır.
Kontenjanın üstünde başvuru olması halinde, mini sınav-anket de olacak şekilde, ön elemeler yapılacaktır. Yani kontenjan aşılmaz ise başvuran herkes, aşılır ise ön elemelerde seçilenler kursa alınacaktır.
Kurs ortamı için gerekli donanımlar/yapılar: projeksiyon cihazı, azami 30 kişiye yetecek sayıda priz çoklayıcıları ve internet bağlantısı.