Tank Mariotte - 80'ler tarz Arcade Tank Savaşı Oyunu

Tank Mariotte, 80’lerin meşhur 2D tank oyununa saygı duruşu amaçlı, linux sistemler için geliştirilmiş bir tank savaşı oyunudur. Oyun, sıfırdan yazılmış, tüm assetler elle ve özgür yazılımlar kullanılarak oluşturulmuş, ses efektleri, müzik dosyaları pixabay’dan edinilmiş (pixabay’ın kendine has özgür lisansı ile), girişteki kısa intro ve tüm ses dosyaları özgür formatlar ve uzantılarla oluşturulmuş; ayrıca tüm stage’ler (oyun bölümü haritaları) sıfırdan ve elle tek tek oluşturulmuştur. İçerikte hiçbir çalıntı ya da şüpheli öğe yoktur. Orjinal oyunlardan hiçbir kod, asset ya da başka birşey taşınmamıştır.

Tank Mariotte, Battle City, 90 Tank, Tank 1990 olarak bilinen NES-Famicom oyunlarının en iyi linux alternatifidir denilebilir.

Oyun, orjinal oyuna çok benzeyen mekanikler ve kurallar içerir. Orjinal oyundan farklı olarak, bataklık, mayınlı bölge gibi karoların yanında, lazer atıcı gibi skill ödülü içerir. Daha gelişmiş görsel arayüz ile desteklenir ve ister bir oyuncuyla, ister iki oyuncuyla yan yana ve aynı klavyeden oynanabilir.

Oyunda kullanılan karolar, özgür yazılımlar olan kolourpaint ve GIMP ile düzenlendi. Ses dosyalarından bazıları, Audacity ile düzenlendi. Ayrıca oyunun kısa intro videosu ile youtube’da yayınlanan trailer videosu Kdenlive ile hazırlandı.

Oyunun her ekranda düzgün yerleşmesi için elimden geleni yaptım. Örneğin büyük PC monitörleri olsun, 960px yükseklikteki dar dizüstü monitörleri olsun, hepsinde cuk oturması için ayarlar yapıldı. Bunların dışında, GNOME-Wayland ortamında düzgün görüntülenebilmesi için ayar çekildi.

Oyun, şu an tamamen oynanabilir durumadır ve tarafımdan hiçbir bug tespit edilememiştir. Yine de bir sorunla karşılaşırsanız, mutlaka bana bildirin.

Oyunu indirin:

Gittiğiniz sayfada “*.deb” uzantılı dosyayı bilgisayarınızda herhangi bir yere indirin.

Daha sonra pardus paket kurucu ile kurmayı deneyin.

Bitince sisteminizin uygulamalar menüsünde oyunun yeşil tank şeklinde simgesi belirecektir. Tıklatın.

Sorunsuzca açılmalıdır.

Bir sorunla karşılaşırsanız mutlaka bildirin.

İyi oyunlar dilerim.

4 Beğeni

Tebrik ederim.
Çok güzel görünüyor.

Sâdece bitince GAME OVER ekranı fazla uzun kaldı!

Ayrıca sizin için önemi var mı bilmiyorum, ama Raspberry Pi 5’te çalışmıyor!

1 Beğeni

Çalışmayabilir.

Terminal ne hata veriyor?

Edit: github readme sayfasını güncelledim. Gereksinimleri kurabilir misin öyle direkt çalışmaz.

Raspberry Pi OS’da hiç bir tepki vermiyor!

Çalıştır diyorum tepki yok!
Uç birimde aç diyorum tepki yok!

PyCharm ile açayım dedim.
Kütüphâneleri bile ekledim, ama bir yerde hatâ buldu çalışmadı!

Raspberry Pi 5’de PyCharm Ekran Alıntısı aşağıda.

Ayrıca çalışmaması normal değil mi?

Ben SELDA oyununu dep olarak paketlerken, aynı oyunu hem masaüstünde Pardus 25 ile hem de Raspberry Pi 5 (Raspberry Pi OS) da derleyip Main dosyalarına Raspberry’den derlenene “selda.arm64”, PC’den derlediğime “selda.amd64” diyerek usr/share/selda içine eklemiştim.

Sizin de oyunu Raspberry ile derleyip main dosyasını “.arm64” uzantılı olarak pakete eklemeniz lazım sanırım!

Benimki o şekilde hem PC’de Pardus 25 Gnome ile hem de Raspberry Pi 5’te aynı anda çalışabiliyor! Raspberry Pi 5 ARM tabanlı olduğu için donanımı farklı!

PyQt6 QtCore diye bir paket eksikmiş hocam onu kurmanız lazım.

Raspiye kurduğunuz dağıtımı bilmediğim için direkt komut veremiyorum.

Yapay zekaya o en alttaki debug çıktılarını direkt yapıştırın. Nasıl kuracağım deyin.

Kurulum bittikten sonra başka şeyleri de kurmanız gerekebilir. Tüm hatalar o kırmızı debug çıktısında görünür. Onu yapay zekaya sorarsanız halleder.

Benim gördüğüm kadarıyla paketi deb’den çıkartıp bir klasörden açmaya çalıştığınız için, sistem bağımlılıkları otomatik kurulmuyor. Ama Pardus’da veya herhangi bir debian çatalında deb’e tıklatarak kurarsanız, içerikteki control dosyası tüm bağımlılıkları paket kurucuya gönderir. Paket kurucu da oyunu kurarken o listedeki eksikleri kurar. Ama siz arm tabanlı bir sistem kullanıyorsunuz ve kurmadan portable olarak çalıştırmaya çalışıyorsunuz. Bu durumda bağımlılıkların önceden elle kurulması gerekiyor.

Arm64 paketlemeyi maalesef bilmiyorum. Kullanıcı kitlesi az olduğu için de hiç elim gitmiyor. Çünkü paketlerimi gören herkes “fedora için de paketlesene, arch için de paketlesene, windows için de paketlesene” diye isteklerde bulunuyor. Bir uygulamanın ortaya çıkışı aşırı zor. Normalde TOML desteği ile dağıtmam gerekirken onu bile yapamıyorum, o kadar enerjim yok.

Ama bağımlılıkları kurarsanız main ile rahat çalışır.

EK olarak bağımlılıkları şuraya listeleyeyim:
python3 (>= 3.8),
python3-pyqt6, ←pardusta core paketi içinde geliyor zaten.
python3-pyqt6.qtmultimedia,
python3-pygame,
libxcb-cursor0,
libxcb-xinerama0,
libxkbcommon-x11-0

1 Beğeni

ARM paketlemenin farklı bir özelliği yok.
Bana da yapay zekâ paketletti.
Aynı anda hem Raspberry Pi 5’de ve PC’de çalışsın deyince bana oyunun son hâlini hem Raspberry’de hem de Pardus’da derletti ve iki makinedeki oluşan “main” dosyalarını daha önce yazdığım gibi birinin uzantısını “.arm64” diğerininkini “.amd64” yaptırtıp birlikte paketlettirdi. sh içine bununla ilgili bir kod satırı eklediydi sanırım.

Hiç beklemediğim bir şeydi.
Hatırlıyorsanız paketleme aklımda bile yoktu.
Ben oyunu dosyadan otomatik kursun, kütüphâneleri de eklesin istemiştim.
Siz dep paketi yapmamı tavsiye edince yapay zekâya söyledim ve en fazla bir saat geçtiğinde oyun paketlenmişti! Oysa oyunun paketleme aşaması için çok erken olduğunu düşünüyorum ve sanırım ileride sıfırdan yeni paketleme yapacağım. Yada oluyorsa eski paketin versiyon numarasını 0.000 gibi bir şeye değiştireceğim!

Raspbery Pi 5’te çalışması için herhâlde oyunu bir Raspberry Pi bilgisayarda derlemeniz gerekecek. Raspberry 3, 4 yada en iyisi 5, gibi. Raspberry Pi 3 olsa sorun olur mu onu da tam bilmiyorum. Raspberry gerekmez ARM tabanlı donanım kullanan bir bilgisayarda dersense olur mu, onu da bilmiyorum. Çünkü windows 11 desteği ile birlikte artık ARM tabanlı PC’ler çıkmaya başladı.

Hayır Raspi’de derlemek şart değil. Eğer siz paketleyeceğiniz hedef sistemin tüm özelliklerini biliyorsanız ve o sistemin apt’sinin durumunu biliyorsanız isterseniz windowsta bile paketlersiniz. Az önce sorun yaşamanızın nedeni, -demek ki- pardusun amd64 sistem versiyon debian depolarındaki python ile raspbian’ın apt depolarındaki sürümünün farklı olması idi. Bu nedenle sizden bağımlılık sordu. (gerçek bir hata değil, sisteminizin python kütüphaneleri öyle).

Şunu söylemiştiniz, yanıtlamayı unuttum. GAME OVER ekranı çok bekliyor dediniz. Eğer herşey yolundaysa, GAME OVER esnasında dramatik bir müzik çalıyor! Ekran da bu müziğin bitmesini bekleyip, bitince mainscreen’a dönüyor (main dosyası devreye girer). Bilgisayarınız sessizdeyse o müziği duyamaz ve neden bu ekranda bu kadar bekliyor dersiniz.

Önemli bir diğer durum daha:
Oyununuzun paketlenmesinde sürüm numalarını mutlaka öğrenin. YZ size anlatır.
Alfa ve beta için sıfırla başlar. Örnek:
0.0.15 sondaki 15 kaç bug güzelttiğinizi gösterir. Ama bu rakamlar yayınlanmaya başladıktan sonra atar. Kendi kendinize değil. Ben bu kurala uymadığımdan her zaman 1.0.0 ile başlatıyorum. En baştaki 1 sürümün stable olduğunu söylüyor. Bunu yapmam yanlış, ama 0 ile başlatırsam insanlar bu kez olgun kabul etmeyip indirmezler. Namım yürüsün diye yapıyorum (Jackality Detected)

Majörnumara.MinörNumara.Bugfixnumarası ←bu şekilde olması gerekiyor. Zaten yapay zeka sizi yönlendirir.

1 Beğeni

Müjdemi isterim, YANILMIŞIM!
Oyun Raspberry Pi 5 (Raspberry PiOS) da da sıkıştırılmış deb dosyasından kuruluyormuş!

Yanılmamın sebebi başta Linux cahilliği olmalı.
Bu güne kadar tıklayınca Raspberry Pi OS’da “Çalıştır” seçeneğini seçmem hep yetmişti.
Fakat burada ilk defa tepki vermeyen bir şeyle karşılaşınca içini açıp orada aramıştım.
Oysa çalıştır dememem farklı bir seçeneğe bakmam gerekiyormuş!
Raspberry Pi OS’a harici program çok az kurdum.
Çoğunlukla Pi-Apps içindekiler fazlası ile yetiyor.

Her neyse Pardus’da kurmak çok daha sezgisel ve kolay olduğu için Pi de biraz yanılmışım.

Aşağıya kurulum aşamalarına ait görselleri ekledim.
Şimdi bakınca Pi’ye program kurmayı bilmediğim iyice anlaşılıyor.

Dediğim gibi Pi-Apps içinde bir sürü program ve uygulama olduğu için dışarıdan çok az program kurdum ve düşününce onların hepsini de GitHub tan aldığım komutlarla terminalden kurmuştum!

Neyse. Çok basit olduğunu şimdi gördüğüm bir şeyi daha yeni öğrenmiş oldum!
Böyle şeyler oluyor işte!




1 Beğeni

Test için teşekkürler.

Seslerde sıkıntı var mı? Sesleri pygame motoruyla çaldırıyorum.

1 Beğeni

Hayır! Sesler Raspberry Pi 5 (Raspberry Pi OS) ta da mükemmel çıkıyor.
Raspberry Pi 5’te başta Ubuntu olmak üzere başka dağıtımlar da çalıştırılabildiği için Raspberry Pi OS diye özellikle belirtiyorum.

2 Beğeni

Tamamdır çok sağol.

Ben şimdi bu oyunun “Winter Mode”u üzerinde çalışıyorum. Bitince onu da paylaşıcam.

Oyun motoru hazır olduğu için iş sadece assetleri editlemeye kalıyor.

Eğer bir telif sıkıntısı olacaksa diye, düşman tanklarını kutup ayısı, oyuncu tanklarını da penguen yapacağım. Elden geldiği kadar orjinal oyundan uzaklaşırsam, ola ki bir gün beğenilip merkez depolara alınırsa hazır olsun ve kimse itiraz edemesin.

2 Beğeni

Neden tam üstten görünüşlü penguen aradığınızı şimdi daha iyi anladım. ツ
Tank oyunu tam üstten görünüşlü olduğu için başka şansınız yok!
Kutup ayısı yada penguen bulamazsanız kardan adam deneyin! ツ

Düşman tankları da lazer atabiliyorsa, kardan adama sâdece lazerle vurulduğunda eriyerek yok olma efekti eklenebilir! ツ

:grin:

İşte olay bu!

:index_pointing_at_the_viewer:

Elle çizmekten başka çarem yok. YZ ile sonsuza kadar deneyemem. Ama baka baka 64px’in içine sığacak birkaç kutup ayısı ve onları hareketlisi lazım.
Penguen kolay iş.
Kardan adamı tepeden göstermek zor ama iyi fikir :+1:

1 Beğeni

Oyuna küçük bir güncelleme gelmiştir.

Düşman tankları her zaman ekrandaki toplam sayıyı 4’e tamamlayacak şekilde doğmalıdırlar. Kod, bu denetimi yaparken kaçırıyordu ve bazen 5 veya 6 tank doğabiliyordu. –ÇÖZÜLDÜ.

Aynı sayfadan indirebilirsiniz.

Özgür oyunlar ve iyi çalışmalar.

1 Beğeni

Çift joystick ile oynanabilirse daha güzel olur. steamlink ile yansıtıp tv den oynanabiir

1 Beğeni

Oyunun kış mod versiyonu çıktı!

Tüm varlıklar kış versiyon olarak değiştirildi.

35 harita daha eklendi.

Özgür oyunlar ve iyi çalışmalar.


@mahmutelmas06 o konuyu araştıracağım. Yapabilirsem gelecek güncellemelerde onu da ekleyebilirim. Öneriniz için teşekkürler.

2 Beğeni

Üstten görünüşlü Penguen buldunuz mu?

Şimdi yatarken aklıma geldi.

Ben Selda karakteri için Blender’da üç boyutlu modelini yapıp onu yönlere döndürüp şeffaf görseller alarak canlandırmaları yapmayı düşünmüştüm.

Maalesef bende işe yaramadı. Çünkü Mesh Ai ye yaptırdığım 3B model Selda’ya tam benzemiyordu.

Fakat Penguenlerin hepsi birbirine benzer değil mi? ツ

Bununla ilgili bir karikatür vardı.
Penguenler birbirine benzer deyince hep o aklıma geliyor.
Penguene vesikalık fotoğraf lazım olmuş, arkadaşlarından ödünç istiyor! ツ
Sonuçta hepsi birbirine benziyor ya! ツ

Beğendiğin bir penguen fotoğrafını Meshy ai ye ver sana üç boyutlu medelini yapsın.

Bedavaya yapıyor, ama bedavaya indirebilmek için bir hafta mıydı neydi her gün hesabına girip puan topluyorsun. O puanlar ile bir seferlik bedavaya indirmene izin veriyor. İndireceğin dosya türünü iyi seç. Blender ile açıp üstten görünüşünün şeffaf fotoğrafını alıp kullanabilirsin.

Canlandırma için iskelet ekleyip animasyon da yaptırabiliyorsun, ama ben de yaptırmadım. Sanırım onun için para gerekiyor.

Teşekkürler.
Henüz değil. Çünkü iki ayrı tank versiyonuna fazla zaman harcayınca, “telife takılmamak için penguenli kar topu” oyununa zaman kalmadı. Biraz dinlenip tekrar döneceğim.

Yapay zekaya sprayt yaptırmak istemiyorum. Tankın varlıklarını opengameart’ta paylaşınca baya beğenildi ve indiren oldu. YZ’ye biraz tepkililer. Ben de bu yüzden “kendi elcaazlarımla” varlık çizeceğim.

Hiç sorun değil, hallederim.

1 Beğeni

Yapay zekâya sahip olan büyük başların arsız davranışları yüzünden bir tepki var, ama bu tepki başka bir şekilde yanlış ortaya konuyor.

Dikiş makinesini aslında bir Fransız icad eder!
Tam olarak şimdiki gibi değildir, ama çok da farklı değildir.
Adam icad eder ve üretim hattı falan kurur.
Hatta yanlış olabilir, ama ilk makine ile dikiş yapan konfeksiyon atölyesini de kurur.

Ne olur tahmin edin?

Fransız terziler mesleğimiz elden gidiyor diyerek atölyeyi veya üretim tesisini basıp tüm makineleri parçalarlar!

Fransızların dikiş makinesindeki patent haklarını kaybetmesinde önemli bir dönüm noktasıdır!

Singer’di sanırım çok az değişiklik ile aynı makinenin bir benzerine patent almayı başarır ve mahkemelere rağmen patentini korur!

Dikiş makineleri terzileri işsiz bırakmamıştı.
En iyileri yine dükkan açabiliyorlar, daha az beceriklileri ise artık ancak bir patronun yanında işçi olarak çalışıyor!

Yapay Zekânın yapacağı şey de bu!

Bir ara bazı arkadaşlar kısmen haklı olarak dediler ki; “yapay zekayla yapılan şeyin ruhu yok, sanat yok. Ama elle yapılan şeyde sanat var, alın teri var”. Nerede kim dedi hatırlamıyorum. Bu durum beni düşündürdü: doğru olabilir mi?

Tartışacağım hiç arkadaşım yok, ben de gittim yapay zekaya “benim yapay zekayla uygulama geliştirmem biraz sahtekarlık olmuyor mu? Yağ çekmeden ciddi yanıt ver” dedim. Anlattığı şeyler çok önemliydi. Şu anda bununla ilgili çok fazla tartışma var diyor. Sonunda şuna bağlıyor: “Bir heykeltraş düşün. Bu heykeltraş taşı oyarken keski ve çekiç değil de matkap kullandığı zaman heykeli matkap mı yapmış oluyor yoksa sen mi? Birileri gelip seni eleştirirse bu örneği ver”.

İlginç bir yaklaşım. Benim kafamda bir “şey” var. Bu şeyi ben yapay zekaya “tek seferde bunu yap bana bitmiş olarak ver” dersem yapamaz. Yaptığı şeyin benim amacımla uzaktan yakından ilgisi olmaz. Ama ben tüm detayları, hangi aşamalarda hata alabileceğimi ya da maliyetinin yüksek olabileceğini biliyorum. Hangi komutu subprocess ile sisteme göndermem gerektiğini ya da hangi GNU tool’unu neden seçmem gerektiğini biliyorum. Bunu yapay zekaya detayıyla açıklamaya gerek kalmadan, “şu kod bloğunu buna göre güncelleyip bana verir misin?” dediğimde benim neden bunu seçtiğimi anladığını söyleyerek kodu düzeltiyor. Bak söylemedim bile! İçimi okuyor.

Yani evet, birileri yanlış kullanarak çöp yazılımlar üretiyor. Örnek: flathub. Flathub yöneticileri baktılar ki böyle olmayacak, yapay zeka uygulamalarını yasakladılar şu anda. İyi yaptılar. Gerçekten çöp yazılım çok o tarafta. Ama ne var biliyor musun? KDE apps sitesine git, oradaki yazılımların kabaca %70’i çöp! Baya çöp yazılım. İnsan emeği ile yapıldılar!!! Ve çöp!!!

Dolayısıyla ben şu anda YZ ile barışık bir insanım. Kodlama bilgim çok yetersiz. Ne güzel python’a başlamıştım, şimdi öğrenmeyi bıraktım, sadece verdiği koda göz gezdirip “hah tamam beni anlamış” diyerek yapıştırıyorum. Olaki biri gelip YZ ile dedem de yapar derse, ya muhattap olmam, ya da matkap örneğini veririm.

ÇOK ÖNEMLİ NOT:
Yazımı okuyan diğer değerli arkadaşlar, yazı dilim tamamen doğal ve öfke içermeyen bir dildir. Ancak ifade şekli öfkeli gibi algılanıyor. Bunun örneğini çok sık yaşıyorum. KDE hakkında belirttiğim şeyler benim şahsi düşüncelerim değildir. Ben, bir doğruyu hiç biçimlendirmeden, kıvırtmadan, olduğu gibi “BAM” diye yazarım. Benim özelliğim budur. KDE apps sitesine gidin. Oradaki yazılımların hepsini tek tek deneyin. Ve nasıl yarıda bırakılmış hissi verdiklerini ya da çok yazılım varmış gibi hızlı hızlı yapılıp bırakıldıklarını kendi gözünüzle görün. Eğer haksızsam gelip bana sövün, aha buraya yazıyorum vallahi billahi darılmayacağım. Teşekkürler.

2 Beğeni