Daha önce tamamen amatörce Arduino kodladığım için, başlarken C / C++ kolay öğrenirim sanmıştım. Fakat Arduino kodlamanın C++’ın yanında okyanusta yüzmek ile şişme su havuzunda şişme ördek ile yüzmek kadar basit kaldığını anlamam uzun sürmedi.
C++’ın bu kadar derya deniz bir yazılım dili olduğunu bilmiyordum.
Her neyse!
Fakat bir kere niyet etmiş bulundum. Fakat Linux’ta C++ kodlamak için derleyici aramakla bir süre uğraştım. Aslında bir çok alternatif var, ama ilk seçimlerim hüsran ile sonuçlandıktan sonra nihâyet “Geany” derleyicisinde karar kıldım ve şu ana kadar gayet yeterli geldi.
Python için PyGame kullanıyordum, ama Geany biraz değişik bir derleyici.
Onu kullanmayı kavrayınca zamanında YouTube kanalı Clean Code’un bir PyGame eğitim projesi olan “Zelda in Python” oyunu projeme kaldığım yerden C++ ile devam etme kararı aldım.
windows 10 ile kodladığım PyGame oyunumun Linux’a geçtiğim için çalışmadığını birkaç yıl sonra yapay zekâ’dan öğrenince çok şaşırmıştım! Bense Python güncellemeleri yüzünden imp gibi kütüphanelerin değişmesi yüzünden sanıyordum! Bir türlü çözüm yolu bulamamak beni Python’dan soğutmuştu! Oysa sebep sâdece windows - Linux sistem farkıymış!
Aynı oyunun Linux sürümünü C++ ile yazmaya karar verdim.
Fakat C++’ın Arduino’ya benzemediğini ve bunun PyGame kodlamaktan çok daha zor olacağını anlayınca Yapay Zekâ’dan yardım almak istedim ve hiç aramadım bile Firefox tarayıcı da Google arama motoru sol üstte bulunan ücretsiz AI Modu ile oyunu kodlamaya başladım.
PyGame sürümüne devam etseydim ona menü ve oyun haritasına su ekleyecektim. Bu yüzden oyunumun C++ sürümüne menüden başladım.
Dün oyunumun göletine yapay zekâlı balıklar da eklendi. ツ
Bu paylaşımı yapma sebebim belki oyunlar hakkında bilgisi olan birileri çıkar ve bilgi paylaşır diye. Örneğin bilgisayarı kasmadan rüzgarda savrulan o kadar bitki ve ağaç yapraklarını nasıl ekliyorlar çok merak ediyorum! Bir sürü canlandırma!
_______
• Oyun Yapma Çalışmalarım (YouTube oynatma listesinin 25. videosundan sonrası oyunumun C++ sürümünün geliştirilmesi ile ilgili. Önceki videolar Clear Code’dan alınanların değiştirilip geliştirilmesi ile oluşturulmuş eski PyGame sürümü:
Oyunda en zor kısım oyuna uygun asset bulmak oldu. Bulamadım!
Hâlâ ilk oyunun Clear Code dosyaları ile gelen piksel grafik karakter Zelda’yı ve ondan türettiğim daha gelişmiş 8 yönlü sürümü SELDA’yı kullanıyorum! İsim konusunda acayip yaratıcıyım dır! ツ
SELDA’ya daha nefes bile aldıramadım! Aslında aldırmıştım. 8 yön animasyonları bitmişken karakteri şimdiki daha ileri bir görsel seviyesine çıkartınca, aynı canlandırmaları tekrar yapmak zor geldi ve öylece kaldı! Şimdi oyunda sâdece 8 yöne dönebilen biblo gibi ilerliyor!
Animasyonları zamanında Steam’den aldığım tek program olan “Aseprite” ile yapıyorum ve “Gimp” den de çokça faydalanıyorum.
C++ Oyunumda henüz daha UI aşamasına geçmediğim için “Inkscape“ kullanmadım. PyGame ile UI menülerini vektörel olarak onunla yapıp png çıkış almıştım.
Oyunun temelde 2B bir oyun, ama hileler ile 2.5B görünmesini ve algılanmasını sağlıyorum.
Oyunun tamamı varlıkların bellerine kadar uzun çimler, otlar ve çiçeklerle kaplı. Şimdilik ilk haritayı bile tam donatamadım.
Oyunun şimdilik 9 haritası var ve her bir harita 5000x5000px boyutunda.
Oyun Dünyasının şimdilik tam boyutu 15000x15000px
Yeteri kadar büyük.
Göl kapısı denilen özel kapı ile iki harita arasında kapısız anında geçiş sağlanabiliyor!
Karakter klasörünün içine uygun varlık (asset) ekleyerek oyuna sokabiliyor ve o kendi eklediğiniz varlığınız ile oyun dünyasında dolaşabiliyorsunuz!
Oyunda 12 karakter ekleme yuvası var ve oyun onlara göre hazırlandığı için bunların ikisi kilitli, diğerleri istenildiği gibi değiştirilebiliyor. O ikisi de oyunun ihtiyacı olan özellikleri barındırdığı için kilitlendi. Eklenecek varlığın o karakter klasör içeriği ile uyumlu olması gerekiyor.
Oyunda top var. İlk ciddi fizik sistemi top ile yazıldı ve daha sonra onun sistemi değiştirilip düşmüş yapraklar tasarlandı. İkisi de yerde sürülüp yerleri değiştirilebiliyor ve topun klavye ve oyun kolu için özel havalandırma tuşu da var.
Top ve yaprak gölet üzerinden sürüle sürüle (yada top ise tekmelenerek) diğer haritaya geçirilebilen şimdilik iki obje! Bunun için iki farklı oyun kayıt sistemi geliştirilmek zorunda kalındı!
Oyunumda iki tür kayıt sistemi var. Biri obje hareketlerinin geçici kaydı, diğeri otomatik oyun kaydı. Otomatik oyun kaydı şimdilik kapı geçişleri ile tetikleniyor! Kapılardan geçmeden oyundan çıkarsanız oyun kaydınız da olmuyor!
Balıklar daha dün gece eklendi ve şimdi onları izlemek hoşuma gidiyor. ツ
Belki birilerini oyun yapmaya özendiririm!














