XAMPP, Vuze, Drupal ve Windows
Afyona geldiğimden haberiniz vardır. Elimde Windows kurulu eski bir laptop var. Çalışmalarım şu aralar Web’e kaysada çektiğim sıkıntıları ben bilirim. Metin editörü için NotePad++’ı kullanmaya başladım sorunlarımı onunla çözmüş oldum. Sonra Localhost için XAMPP ile Apache serverı kurdum. Yeni site projelerimizi denemek için güzel oldu. Sistem çok kastı ama yapacak bir şey yok. Ardından elbette izleyeceğim diziler için bir torrent programı aradım. BitTorrent ile garip maceralar yaşadım ve virüsleri oradan yeme ihtimalinden kıllandığım için önce Deluge’u denedim. Kurulum sırasında PyGame ile ilgili bir kaç dosya önümden geçti şaşırdım doğrusu. Deluge GTK2’yu kurdu ama ne hikmetse torrent ekleyemedim. Program çalışıyordu ama torrent eklenmiyordu. Basıyorum ekle düğmesine çalışmıyor…
Deluge’den sonra eski bir dost olan Azureus’u kurayım dedim. Adı değişmiş Vuze olmuş. Zaten ağır bir programı daha da ağırlaştırmışlar. 30MB java runtime indirdi ama sorunsuz çalıştı. Sayesinde Stargate Universe’ün yeni bölümünü hızlıca indirip izledim. Sonrasında Drupal’ı indirdim. Gayet güzel sevilen bir CMS ve şimdilik bir projem için yeterli görünüyor. Kurulum sırasında hata verdi PHP bilmeyen ben kurulum dosyalarını açıp hatayı düzelttim. default_settings dosyasını settings.php’ye dönüştürüyoruz oysa kurulum için gerekli dosya eski haliyle arama yapıyor. Hata verilen satırda dosya ismini düzelttiğinizde sorun ortadan kalkıyor ve kurulum tamamlanıyor. Pek sade pek şeker bir sisteme sahip. Hoşuma gitti üzerinde biraz çalışabilirim.
Windows’a Git Kurulumu
Her zaman Linux kurulu bir makine bulamıyoruz, böyle durumlarda Windows ile çalışmak zorundayız. Benim gibi sıkıntı çekmemeniz için bir döküman hazırlamak istedim. Öncelikle Msysgit’i bu adreste ki downloads bölümünden indirin. Benim bu yazıyı hazırladığım sırada ki dosya şuydu: Git-1.6.5.1-preview20091022.exe
Dosyayı indirdiğinizde açmaya çalıştığınız sırada 7Z arşivi değil gibi bir hata alabilirsiniz. Eğer benim gibi bu hatayı almışsanız 7-Zip isimli arşiv programını kurmanızı tavsiye ederim. Hata alırsanız önce 7-zip’i kurun ardından msysgit’i kurmaya geçin. Use git bash only seçeneği işaretleyin. Line ending konusunda kafanıza göre takılın. Ben windows seçeneğini seçtim.
Kurulumu tamamladıktan sonra herhangi bir klasöre sağ tıklayın “Git Bash Here” seçeneğini tıklayın. Bir konsol açılacak burada öncelikle ssh-keyimizi alıyoruz daha önce herhangi bir şekilde ssh key oluşturmuşsanız onu kullanabilirsiniz oluşturmamışsanız şu komutu girin : ssh-keygen -C “[email protected]” -t rsa
Key Windowsta Documents and Settings dizinin alt dizini olan .ssh dizininde. Orada ki id_rsa.pub dosyasını bir metin editörü ile açınız. SSH keyiniz içindeki yazılardır. Bu içeriği kopyalayıp githubda ki profilinizde ki sshkeylere ekleyiniz. Ardından normal şekilde git kullanmaya devam edebilirsiniz. Ben ilk denememi yaptım ama her nedense gönderen kısmında kullanıcı adım gözükmüyor. Onu da halledince buraya yazarım çözümü ama şimdilik bu kadar 🙂
Bu arada yazdığı açıklamalarla git’i windowsa kurmamı sağlayan Kyle Cordes‘a teşekkürler. Thanks Kyle.
Ek: Hatayı buldum kullanıcı adımızı tanıtırken başka bir isim girmişim. git config –global user.name “kullanıcı adı” olacak.
Pardus Üzerinde Sık Kullanılanlarım
Hangi paketlerin gerekli olup olmadığına bir göz atayım derken aklıma geldi böyle bir liste yapmak. Galiba bilgisayarın tüm nimetlerinden faydalanmıyorum neyse liste ve beraberinde ufak açıklamalar şöyle:
Pidgin – Artık başka bir mesajlaşma aracı kullanmıyorum. Sorunsuz bir araç ayrıca kuşları severim.
Firefox – Neredeyse sürekli açık bir program. Eklentileriyle(Adblock, chatzilla, download helper vb.) benim için vazgeçilmez.
Kate – Programlama için artık onu kullanıyorum. Böylece listeyi kısaltmış oldum. Tavsiyesi için Ali E. İmrek‘e teşekkürler.
OpenOffice.Org Writer – Hikaye, haber ve diğer metin içerikli yazılarım buradan çıkıyor. Özellikle PDF dönüştürme işini sevdim çünkü doc, odf gibi formatların diğer platformlara taşınması sorunlu/zahmetli oluyor pdf ise bozulmadan her yere taşınabiliyor.
Amarok – Bana hantal geliyor, pek sevdiğim bir uygulama değil ama alternatiflerini bilmediğimden şimdilik onu kullanıyorum.
Dragon Player – İndirdiğim dizi bölümlerini buradan seyrediyorum. Nedense flv formatıyla sorun yaşadım ama onun içinde diğerleri yetiyor.
Ktorrent – Diziler diziler diziler Supernatural ile StarGate Universe bu aralar favorilerim. Torrent konusunda hepsi bir birinin benzeri gibi ben şimdilik bunu kullanıyorum, bir sorun da yaşamadım.
Aklıma geldikçe bu listeyi güncelleyeceğim. Yeni kullanıcıların işine yarayabilir.
APyGM OpenGL
Oyuna görsellik kazandırmak için ufaktan OpenGL konusuna giriş yaptım. Python kodlarıyla PyOpenGL kütüphanesini kullanıyorum. Çeşitli sitelerde örnekler mevcut ama kodları biraz eski olduğu için bu örnekleri yenilemem gerekti. Şimdilik basit bir menü tasarımı yapmaya çalışıyorum. Sağ tıklandığında çeşitli fonksiyonlar döndürecek. Oyun bu zamana kadar konsol üzerinde geliştiği için dönüşler konsol üzerinde gözüküyor ama bunu yakında halledeceğim. Kasım ayına kadar bazı temel şeyleri halledip kasımdan sonra 3D modelleme ile ilgilenmek istiyorum. Örneklerde GLUT kullanılmış ama bu araç özgür değilmiş, lisans bilgisini tam olarak bulamadım ama sanırım kullanmayacağım. PyGame gibi SDL kullanmayı düşünüyorum ki onu kullanırsam uğraşmaya gerek yok direkt PyGame kullanabilirim, can sıkıcı bir durum. Başa dönüyoruz bu durumda Panda3D mi PyGame mi? Cevabını zaman gösterecek.
Ek: Ogre3D kullanmaya başladım.
APyGM Gelecek
Projeyi İngilizce’ye çevirmiş olsam da bazı fikirlerimi paylaşmak istiyorum, böylelikle takip etmeye başlayan arkadaşlar ne yaptığımı anlayabilir. Öncelikle uzun zamandır oyun yapımı konusuna meraklı olduğumu söylemeliyim, tahminimce orta okul sonu – lise başları gibi internet üzerinden çeşitli oyun yapım ekiplerini takip ettim. Çoğu başarısız oldu, kimisi yön değiştirdi. Kendim bile lisede bir oyun yapmaya çalışmıştım hatta bu amaçla hazırladığım senaryo ayrı bir hikâyeye dönüştü ama oyun projesi durmuştu.
Linux ve Özgür Yazılım şenliğine konuşmacı olarak katılan Google mühendisi abimizin bazı söyledikleri bana fikir verdi. Öncelikle diğer ekiplerin hatalarını düşündüm. Ya gerekli bütçeleri yoktu ya da çok büyük işler yapmaya çalışıyorlardı, bu yüzden olsa gerek bir noktada tıkanıyorlar ve devam edemiyorlardı. Projeleri kapalı kaynak kodlu olduğu için kimse onların yerine projelerini devam ettirmedi. Mezara gömülmüş o kadar emek…
Mühendis abimizin ilk söylediği şey bir fikir ortaya atmadan önce bir şeyleri başlatmamızdı. Önce kodu yaz işe başla ondan sonra insanların katılmasını bekle. Çalıştığınızı bir şeyler ürettiğinizi görmeden kimse size durduk yere katılmaz. Hele hele oyun yapıyorum diye ortaya çıkarsanız çoğu kişi bir tarafıyla size gülecektir. Ama bir yerden başlarsanız… ufak da olsa bir şeyleri başarırsanız insanlar sizi takip etmeye başlar ve zaman içerisinde projeniz büyür. Benim yaptığımda o ilk adımı atmak oluyor.
APyGM şuan çok erken bir safhada. Sadece konsol üzerinde kullanıcının girdiği verilerle benim girdiğim veri tabanı değerleri arasında çeşitli hesaplamalar yapıp kullanıcıya döndürüyor. Şimdilik yaptığım “neyi nasıl yapacağıma karar vermek” ve süreçleri test etmek. Bu bir RPG oyunu olacak ama sizlere World of Warcraft gibi bir oyun sunmayı düşünmüyorum. Sonuçta ne ben profesyonel bir programcıyım ne elimde böyle bir şeyi başaracak ekip var ne de para var. PS oyunlarına benzeyen bir RPG olacak. Turn based bir savaş sistemi düşünüyorum ama onu oyun motoruna geçmeden test etmeyeceğim.
XNA ve PyGame ile yaşadığım tecrübelerden sonra hız konusunda sıkıntı yaşayabileceğimi fark ettim. C gibi bir dil kullanmadığımız sürece araya sürekli çeşitli katmanlar girmekte ve bu katmanları aşmaya çalışırken oyunumuz yavaşlamakta. Şimdilik sadece konsol üzerinde çalıştığım ve fazla değişken olmadığı için bir sorun yok ama oyun geliştikçe bu sorunu yaşayacağım. İşte bu yüzden kodlama sırasında olabildiğince az modülü import edeceğim. Belleğe minimum düzeyde veri atıp işlemleri en alt düzeyde yapmayı planlıyorum. Gereksiz hesaplamalar olmamalı, işlemler hemen yapılıp bitmeli.
Önümde iki seçenek var en azından şimdilik PyGame ve Panda3D. Bunlar başarılı projeler ama kendimde OpenGL üzerinde çalışabilirim. Sonuçta geliştireceğim oyun fazla karmaşık olmayacağı için kendi yazacağım ufak bir motor yeterli olabilir, deneyerek karar vereceğim zaten sizlerde benle öğreneceksiniz.
Sınıf yapısını kullanmaya gerek görmemiştim ama dün sabah yaptığım commit ile ilk sınıfı oluşturdum. Oyuna görsel ögeler eklemeye yaklaştıkça kodları sınıf yapısına geçireceğim. Zaten temiz kodluyorum ve her şey fonksiyonlar üzerine kurulu, onları sınıfların altına almak zor olmayacaktır.
Şimdilik yaptıklarım düşününce daha uzun bir yolum olduğu görüyorum. Kullanıcıyla etkileşim sonunca çeşitli verileri alıp savaşıyor, savaş sonunda da experience alıp bunların toplamıyla level alıyoruz. Level alınca da statleri birer puan arttırıyoruz. Bundan sonrası için karakterimize kıyafet giydirmeye ve elimize birer silah almaya çalışacağım. Onlara göre savaş sistemini yenileyeceğim. Elbette bunu yapmak için öldürdüğümüz yaratıklardan bir şeyler elde etmemiz gerekecek. Çoğu oyunda küçücük solucanlardan ya da diğer hayvanlardan çeşitli kıyafetler düşüyor. Ben onun yerine bu hayvanlardan deri falan elde edip onları bir yere satmayı ve oradan gelen parayla kuracağım bir market üzerinden alışveriş yaptırma yolunu seçeceğim. Bu mesela şimdi geldi aklıma 😀 Nasıl yapacağım diye düşünüyordum yazarken aklıma geldi 😀
Neyse bizi izlemeye devam edin efendim. İyi geceler!
APyGM v0.6 Released
Here we are! APyGM’s new version is released under GPLv3. With this version we star to gain exp, gain lvl and ofcourse loose exp. I added new mounsters to our db. From now on if you ever see a polar bear, run as fast as you can! When you level up all your stats gain +1 points. At the beginning of game you have to select your stats wisely my advice just give 10 hp and 10 power point because at this point these 2 stats are very important. All stats must be 30, i had control over them but with new level system i lost it and have to re-write it. So dont cheat. I really need your advice, you can send me your suggestions via my e-mail adress [email protected] . You should know this is very early stage and im just working on game mechanics i will use a game engine after i finish the mechanics and storyline. Still you can advice me about it.
Anyway here your download link for APyGM version 0.6
New mounsters:
-crow
-snake
-tiger
-wolf
-bear
-ghost
-werewolf
-polar bear(boss)
I hope you enjoy it(not possiable? :P) Goog luck
APyGM
APyGM means Another Python Game. it is my new project name. 🙂
Well i released new version because i traslated the project to english. From now on i will keep it in english. With this version we start to take mounster’s information from our new database(npc.db). You have a script named gm.py which helps to adding your random mounsters. I just added 2 for testing the battle system.
At older versions we got this information from a python dictionary it was hard to add more on it, maybe not so hard but it just makes the code dirty.
With this version i activate the defance value of mounster for the battle system. Im working on experience and level system. I hope i can finish it soon. I would like to hear your ideas anything can help me. Anyway here the link for version 0.5.
To play the game just open files in same directory and run the game.py. Good luck.
Oyun Yapımı -4
Versiyon 0.4 hazır!
Yaptıklarımıza gelecek olursak öncelikle artık bir run() fonksiyonumuz var. Bu fonksiyon sayesinde siz istemedikçe oyun kapanmayacak. Tamamen metinden oluşan bir arayüz oluşturdum ve size iki seçenek verdim. Ya savaşırsınız ya da korkak gibi sys.exit() çekersiniz. İki dosyamız var bundan sonra ana dosyayı kurcalamadan fun.py dosyası üzerinde çalışacağım. Uygulamayı çalıştırmak için bir dizine arşivi açın sonrada oyunv0.4.py dosyasını çalıştığın.
İlk açtığınızda karakter ismini ve özelliklerini soracak 5 özelliğin toplam değeri 20’yi geçemez. Oyun sistemi üzerinde daha karar vermediğim için şimdilik sadece belli bazı teknikleri deniyorum. Yoksa adının oyun olması dışında bunun bir oyunu benzer hali yok gibi 😛 Teknoloji demosu efendim bu. 😀 Ama oyun yapımıyla ilgili mantıkları öğreniyorsunuz dediğim gibi her şey birer döngüden ibaret(loop loop) bizde döngülerimizi arttırmaya devam edeceğiz.