Showing posts with label Unity. Show all posts
Showing posts with label Unity. Show all posts

Friday, May 23, 2014

TTNET IEEE Build Up 2014 Etkinliği

Uzun bir süredir iş dolayısı ile katılmak istediğim etkinliklere katılamıyordum. Bunlardan birisi İzmir Ekonomi Üniversitesi tarafından düzenlenen GGJ Ege 2014 idi. Bu etkinliğe katılamasam da sunumların yapıldığı son gün alana gittim ve oyun sunumlarını izledim. Daha önceki GGJ'lerde ekip arkadaşım Alper Yeşil'in dereceye girdiğine de şahit oldum. Hatta şakayla karışık sanırım sorun bizdeymiş bile dedim.

Aradan yaklaşık 2-3 ay geçtikten sonra Alper'den telefon aldım. GGJ kıvamında İzmir Yüksek Teknoloji Enstitüsü tarafından düzenlenen TTNET'in sponsorluğunda gerçekleştirilecek olan BuildUp Etkinliğinden bahsedip katılıp katılamayacağımı iki tasarımcı arkadaşının boşta olduğunu söyledi. Kısaca etkinlikten bahsetmek gerekirse, 48 saat içerisinde verilen temaya uygun bir oyun maratonu diyebiliriz. Yani GGJ'den isim dışında pek farkı yok. Alper'in bu teklifi üzerine üniversitede pek çok projede birlikte olduğumuz bazı arkadaşlara durumu anlattım. Tabii ki efsane isim Efe Sezer'den olumlu yanıt dönünce oluru verdik bizde. Ayrıca o gün etkinliğe katılım için son gündü, hemen hızlıca ekip arkadaşları Maya Bora ve Ayışığı Gülsel ile tanışılıp grup adı belirendi. Tek bir çatı altında toplandık mottosu ile grubun ismini "Roof" koyduk ve acele bir şekilde kayıt işlemlerini yaptık. Yaklaşık 3-4 gün sonra bize olumsuz bir yanıt geldi, zira gruptan hiç kimsenin CV'sini veya portfolyosunu göndermemiştik. Akabinde etkinliğin yetkililerinden Onur Temizkan ile iletişime geçip bu etkinliğe ne kadar çok katılmak istediğimizi anlattım. Gerekli belgeleride yolladık. Etkinlik ekibi tarafından yapılan yeni bir görüşme ile katılımımız onaylandı. Biraz sorunlu bir süreç oldu ama değdi doğrusu.

Saturday, June 15, 2013

Oyunlarda Yapay Zeka - Artificial Intelligence for Battle City [Proje]

Bu yıl üniversitedeki son dönemim, hatta bu yazıyı yazarken diplomayı alıp mezun olamama yaklaşık 1 ay gibi kısa bir süre kaldı. Mezun oluyorum diye seviniyorum, ama buruk bir sevinç. Bir çok kişinin aksine üniversitede geçirdiğim yılları özleyeceğim. Normalde geçmiş yıllardan aldığım fazladan dersler ile kredimi ziyadesiyle doldurmuştum. Aslında bu hazırlıkların hepsi son yılımın çok rahat geçmesi için yapılan yatırımlardı. Ancak geçmiş yılların yoğunluğunun verdiği alışkanlık ya da açılan seçmeli derslerin cazibesinden olsa gerek son yılım pek rahat geçmedi. Bilakis, diğer yıllara nazaran daha yoğun olduğu zamanlar bile oldu. Çünkü 1 adet bitirme projesinin yanında 2 adet projeli ders aldım. Bu projeli derslerden birisi "SE 354" kodlu, "Oyunlarda Yapay Zeka" dersiydi. Ders ilk defa verilmekle birlikte, öğretim görevlisi, üniversiteye ilk başladığım sıralar okulumuzda asistanlık yapan ve SDL ile tanışmama vesile olan Kaya Oğuz hocamızdı. Pojemiz Unity oyun motoru üzerinde C# programlama dili ve Standart Unity kütüphanelerini kullanarak "Battle City" benzeri bir oyun yapmaktı. Aslında belli bir arayüz hocamız tarafından bize sağlandı. Bizim yapmamız gereken ise bu arayüz üzerinde bulunan tanklara yapay zeka yazmak idi. Arayüzden kastım, harita, harita üzerinde bulunan çeşitli eşyalar(silah, sağlık) ve 4 tane tank bulunmaktaydı. Daha detaylı bilgi projenin anasayfasında mevcuttur. Aslında oyunun tamamını hocamız yazmış, sadece tanklar için gerekli yapay zekanın yazılmasını bizden istemişti. Proje aşaması çok eğlenceliydi. Ancak bazı noktalarda insanın kafası karışabiliyordu. Sonsuz olasılıkları düşününce iş içinden çıkılmaz bir hal alıyordu.

Saturday, June 9, 2012

Knuckles Adventures - [Proje]

Herkese merhaba! Hazır yazın bol vaktim varken, bahsetmek istediğim diğer bir projede üniversite 3. sınıfta "SE 350" kodlu, "Oyun Programlama" dersinde Unity oyun motoru üzerinde C# programlama dili ve Standart Unity kütüphanelerini kullanarak bir arkadaşımla beraber yazdığım 2 boyutlu platform oyunu. Kısa ve klasik hikayemizdeki oyunun ana kahramanını hemen hemen hepiniz biliyorsunuz. Karakterimiz Knuckles. İşin bu kısmının tamamen farklı bir hikayesi var. Uygun bir vaktimde bu konuyuda sizinle paylaşmak istiyorum. Zira anlatacağım bazı şeyler disiplinler(branşlar) arası uyuşmazlığın projeyi götüreceği yer açısından önemi ile ilgili. Aslında oyunumuzun hikayesi çok farklıydı fakat kimi sebeplerden dolayı oyunun konusu ve akışı çok değişti bu yüzden oyunu çalıştırdığınızda oyunun ismini görmeyince şaşırmayın. Knuckles Adventures ismi ise şu an benim tarafımdan koyulmuş ismidir. Daha güzel isim önerilerine açık olduğumu belirterek oyunla ilgili ufak bilgiler vermeye devam ediyorum. Oyunumuzdaki temel amaç; ana karakterin türlü engeller içeren bölümleri geçerek kız arkadaşına ulaşması. Oyunda 5 farklı bölüm var. Her bölümde oyuncu engelleri aşarak hedefe ulaşmaya çalışıyor. Oyun içinde kullanıcı için arka planda bilgiledirici resimler de bulunmaktadır. Karakterimizi yön tuşları ile hareket ettiriyoruz. "Space" tuşu ile zıplayan karakter, herhangi bir kutunun yanına gelip "CTRL" tuşuna basınca kutuyu çekip, itebiliyor. Tekrar "CTRL" tuşuna basınca kutuyu bırakıyor. Oyunumuzda bir üst katlara geçmek için varolan asansörü çalıştırmak için ise, asansörün düğmesine "X" tuşu ile basmamız yeterli. Bu arada oyunumuzun mekanı olarak basit bir şantiye belirlemiştik. Ancak yaşanan bir takım sorunlar nedeniyle garip bir mekan ortaya çıktı. Bu oyun, diğer yaptığım oyunlara nazaran çok daha profesyonel ve görsellik açısından çok daha iyi. Oyun motoru kullanmak, yapacağımız işlerin gerçekten hafiflemesi anlamına geliyor. Bu noktada kodlamadan ziyade fikir ve tasarım ön plana çıkıyor. Oyun içinde kullandığımız sprite yukarıda da bahsettiğim gibi Knuckles karakteri, bunun dışında bazı ses dosyaları ve scriptler, bu oyunu(olurda) geliştirip ticari bir boyut kazandırmak isteyecek kişiler için sıkıntı yaratabilir. Bunun farkında olup paylaşacağım kaynak kodlarını ona göre yorumlarsalar herkes için daha iyi olur. Çok fazla uzatmadan oyunu resimler eşliğinde tanıtmak istiyorum.

Sunday, February 19, 2012

Unity'de Oyun Programlama - [Ders - 1]

Herkese merhaba, yaklaşık bir ay önce Unity ile ilgilenmeye başladım. Bilmeyenler için Unity hakkında ufak bir açıklama yapayım. Unity, 3D oyun motorudur. Daha detaylı bilgi için resmi sayfasına bakabilirsiniz. Bu yıl üniversitede bu oyun motorunu öğrenip, kullanacağımız bir ders açıldı. "SE 350" kodlu bu dersin adı "Oyun Programlama". Derse çok yoğun ilgi oldu. Yaptığım gözlemlere göre, teoriden ziyade, uygulama yapılabilecek dersler öğrenciler tarafında daha fazla ilgi topluyor, diyebilirim. Daha fazla uzatmadan, asıl konuya değinmek istiyorum. Dersten sonra hepimize ufak bir proje verildi. Proje kısaca şöyleydi; Unity'de kontrol edebileceğimiz bir karakter oluşturup, bu karakter ile etrafımızda var olan bir takım objeleri toplamak. Unity hakkında hiçbir fikri olmayanlar için zor bir proje olarak gözükebilir. Fakat tek satır kod dahi yazmadan, istediklerimizi kolayca yapabiliriz. Şimdi hep birlikte bu projeyi yapmaya başlayalım. Öncelikle Unity'i açıp, menüden File > New Project seçeneğini seçip, yeni bir proje oluşturuyoruz.