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