Linux'ta Space Cadet Pinball
(brennan.io)- Space Cadet Pinball, tersine mühendislik sayesinde kaynak koda dönüştürüldü ve birden fazla platformda çalıştırılabiliyor
- Linux'ta kurmanın en kolay yolu Flatpak ve Windows'taki özgün oyun kaynakları da buna dahil
- Full Tilt! Pinball verileriyle değiştirilirse 1024x768 çözünürlük kullanılabiliyor
- Full Tilt verileri kuralları da değiştiriyor; bazı ışıklar artık aç/kapa yapmayıp sürekli açık kalıyor
- Satışı durdurulmuş kapalı kaynak yazılımlar için FOSS lisansına geçişli emanet modeli tercih edilmeli
Linux'ta Space Cadet Pinball çalıştırmak
- Windows XP ile birlikte gelen Space Cadet Pinball, decompiler'lar ve tersine mühendislik araçlarıyla kaynak koda dönüştürüldü; bunu düzenleyip birden fazla platformda çalıştırılabilir hale getiren bir GitHub projesi bulunuyor
- Linux'ta çalıştırmanın en kolay yolu Flatpak ve Windows sürümünün özgün oyun kaynakları da pakete dahil
- GUI tarafında KDE Discover gibi araçlarla kurulabiliyor; CLI'da ise şu komutla yüklenebiliyor
flatpak install com.github.k4zmu2a.spacecadetpinball - Tarayıcı tabanlı sürüm de var, ancak yerel bilgisayara doğrudan kurup çalıştırmak daha iyi bulunmuş
Full Tilt verileriyle daha yüksek çözünürlük kullanmak
- Varsayılan grafikler 480p seviyesinde olduğu için pürüzlü görünebiliyor
- Ayrı bir sürüm olan Full Tilt! Pinball oyununun verileri, 1024x768 çözünürlükte görüntülemeyi destekliyor
- Full Tilt oyun verileri archive.org üzerindeki zip dosyasından alınabiliyor
- Flatpak sürümünün bu veri dosyalarını kullanması için biraz manuel işlem gerekiyor
-
Veri uygulama adımları
- Önce veri dizininin oluşturulması için oyunu en az bir kez çalıştırmak gerekiyor
- İndirilen zip dosyası doğrudan Flatpak veri dizinine açılıyor
cd ~/.var/app/com.github.k4zmu2a.spacecadetpinball/data/SpaceCadetPinball unzip ~/Downloads/CADET.ZIP - Uygulamayla birlikte gelen mevcut veri dizini silinmeli; daha temkinli olmak istenirse adı değiştirilmeli
sudo rm -r $(flatpak info --show-location com.github.k4zmu2a.spacecadetpinball)/files/extra/Pinball - Bunun silinmesi gerekiyor çünkü oyun verileri birden fazla konumda arıyor, ancak bir dizinde veri dosyalarını bulursa başka konumlara bakmayı bırakıyor
- Kurulum kullanıcıya özelse
sudogerekmeyebilir, ancak kurulum konumu/var/lib/flatpakise root yetkisi gerekiyor - Oyun güncellenirse 3. adımı yeniden yapmak gerekebilir
- Ancak Flatpak paketi iki yıldan uzun süredir güncellenmediği için güncelleme olasılığı ya da sıklığı düşük görünüyor
Özgün veriler ile Full Tilt verileri arasındaki fark
- Özgün dosyalarla Full Tilt dosyaları birlikte tutulursa oyun içinde özgün 3DPB verileri ile Full Tilt verileri arasında geçiş yapılabiliyor
- Veri dosyaları oyun kurallarını da etkiliyor gibi görünüyor
- Özgün 3DPB sürümünde yeniden giriş şeridi ve fırlatma şeridindeki ışıklar, top her geçtiğinde aç/kapa yapıyor
- Full Tilt sürümünde ise ışıklar aç/kapa yapmıyor, açık kalıyor; bu da ışık setlerini tamamlamayı ve ilişkili bumper setlerini yükseltmeyi kolaylaştırıyor
- Benzer dönemde bazı Mac'lerde Marble Blast adlı oyun önceden yüklü geliyordu ve o oyuna karşı da benzer bir bağlılık hisseden insanlar vardı
- Marble Blast serisi, bu pinball oyununun aksine daha sonra da genişletildi ve bugün oynanabilecek daha yeni sürümleri bulunuyor
Taşınabilirlik ve koruma
- Eski bir oyun, yeterince sevilmiş olması ve özellikle yetenekli ve motive birilerinin emek vermesi sayesinde birçok platformda çalıştırılabilir hale gelmiş
- Kaynak kodun bir şekilde mevcut olması, oyunu farklı platformlara taşımayı mümkün kılan büyük bir avantaj
- Bu proje sayesinde Mac, Windows ve Linux'un yanı sıra Android ve Nintendo Switch'te de çalışabildiği görülüyor
- Özgün geliştiriciye ödeme yapabilse ödeme yapmak isteyeceğini söylüyor, ancak özellikle Full Tilt sürümünün oyun verilerini indirmenin yasallığı konusunda endişeleri var
- Çünkü bu veriler ticari bir ürüne dahil edilmiş telif hakkı korumalı sanat varlıkları ve veriler içeriyor
- FOSS lisanslı sonuçlar tercih edilse bile gerçek dünya her zaman böyle işlemiyor; iyi şeyler üreten insanların ödüllendirilmesi, daha fazla iyi işin ortaya çıkmasına yardımcı oluyor
Kapalı kaynak yazılım ve kaynak kod emaneti
- Yazılımın korunması da önemli bir hedef
- İdeal olarak, bu tür kapalı kaynak yazılımlar bir tür kaynak kod emaneti kapsamına girebilmeli
- Özgün telif hakkı sahibi ürünü satmayı sürdürdüğü sürece bu hakka saygı gösterilmeli
- Ancak satışı durdurmayı seçtiğinde, kullanıcıların kullandıkları yazılımı geliştirebilmesi ve sürdürebilmesi için kodun FOSS lisansına dönüştürülmesi tercih edilmeli
- Böyle bir yaklaşım, üretici hakları, kullanıcı hakları ve koruma hedefi arasında denge kurmaya yardımcı olabilir
1 yorum
Hacker News yorumları
Space Cadet Pinball'ın orijinal yaratıcılarından biriyim ve insanların bu eski pinball oyununu hâlâ yaşatacak kadar sevmesi gerçekten harika
Bu yazıyı Cinematronics'in kurucu ortakları ve arkadaşlarım Mike Sandige'e (baş mühendis) ve Kevin Gliner'a (tasarımcı ve ürün yöneticisi) da ileteceğim; ikisi de en az benim kadar keyifle okuyacaktır
Sayenizde ortaokuldaki klavye derslerinde pinball ligi yapabiliyorduk. Oyunun hangi kısımlarında çalıştığınızı, geliştirme sürecinden eğlenceli anılar ya da bulması zor hatalar olup olmadığını merak ediyorum
Kariyerim boyunca o dönemde ne kadar şanslı olduğumu düşündüm; akıl sağlığımı korumama yardım eden bu oyun için teşekkürler
Bu oyun, gerçek pinball dünyasına girmem ve yarı profesyonel seviyeye kadar ilerlemem üzerinde büyük etki yaptı. Hep sormak istemişimdir: Space Cadet Pinball'ın resmî devam oyunu için yeniden tasarım aşamasına dönmeyi düşünür müsünüz?
Enshittification, mikro ödemeler ve sanal pinball tarafındaki oyuncu aleyhine lisans sorunları arasında, birkaç nesil bu nostaljiyi özlüyor olabilir. Bu konuda zaten fazlasıyla düşündüm; gerekirse elimdeki her şeyi ortaya koymaya da hazırım, ama önce cevabınızı duymak isterim
Sonradan Deluxe Skijump, Doom ve Starcraft getirenler oldu ama Space Cadet hâlâ yeterince iyi bir seçimdi
Software Heritage için dış yüklenici olarak çalışıyorum; şu an hâlâ bu işi yapıyor muyum emin değilim ama böyle bir rol için ideal bir kuruluş olduğunu düşünüyorum
https://www.softwareheritage.org/
Bu yeniden yapımın orijinaline ne kadar sadık olduğu inanılmaz; görünüşü ve hissi neredeyse aynı
Yazar bunu orijinal kaynak kodu görmeden, yalnızca exe dosyasını decompile ederek yapmış; yani fiilen tamamen körlemesine başarmış. O yüzden “duymayan, konuşmayan, görmeyen çocuk pinball'u müthiş oynuyor” sözü tam oturuyor
Bu sürümde de çalışıyor mu diye merak edip sonra bilgisayar başına geçince denemeyi düşünüyordum; AUR sürümünü kurdum ve gerçekten çalışıyor. Oyunun açılış sekansı sırasında “hidden test” yazınca topu sürükleyebiliyorsunuz
Tabii Claude'a disassemble edilmiş koddan bir spesifikasyon yazdırırsanız benzer bir şey yapmak mümkün olabilir
GitHub'a baktım, ilginç: https://github.com/k4zmu2a/SpaceCadetPinball
Çeşitli konsollara port edilmiş ve tarayıcı sürümü de var: https://pinball.alula.me/
Ayrıca Space Cadet Pinball, benim bilmediğim daha büyük bir Maxis oyunu olan Full Tilt! Pinball'ın bir parçasıymış. Windows 95'e DOOM'u bundle etmeye yaklaşıp “pinball gibi bir oyun olmaz mı?” denilerek reddedilince sonuçta bu olmuş
https://en.wikipedia.org/wiki/Full_Tilt!_Pinball#Development
Geçen yıl Shopify'da Space Cadet'ten ilham alan bir pinball oyunu yaptık; hâlâ buradan oynanabiliyor: https://bfcm.shopify.com/
Her yıl Black Friday'de mağazaların satışlarını gerçek zamanlı görselleştiren bir site yayınlıyoruz; eskiden bu, satışların satıcıdan alıcıya hareket eden yaylarla gösterildiği bir küreden ibaretti. Son birkaç yıldır siteyi daha eğlenceli ve etkileşimli hâle getiriyoruz
Bir pinball makinesini programlamak oldukça zordu; 2 mühendis ve 1 sanatçıdan oluşan ekip yaklaşık bir buçuk ay çalıştı. Nasıl çalıştığını merak ediyorsanız, pinball makinesinin yanındaki masaüstü bilgisayara süreç notları koyduk
Yazının alt kısmındaki kaynak kod FLOSS emanet sistemi fikrini beğendim
Hukuken uygulanması zor olabilir ama yazılım satılırken kapalı kaynak olup artık satılmadığında otomatik olarak açık kaynağa dönüşmesi fikri, potansiyel kullanıcı ya da alıcı açısından çekici. En kötü ihtimalle, şirket batarsa veya projeyi iptal ederse bağımlılığı azaltır
https://kde.org/community/whatiskde/kdefreeqtfoundation/ bana biraz bunu hatırlatıyor
Bu tür işleri aracılık eden şirketler de var: https://www.escrowcompany.co/source-code-escrow/
Satış durduktan sonra yeniden dağıtım, decompilation, reverse engineering ve yeniden uygulamayı yasal hâle getirmek bence yeterince kapsayıcı olur
Full Tilt sürümünde, Windows sürümünde olmayan multiball da var
İki ışık aynı renkteyken wormhole'a ateş ederek topları kilitleyebiliyorsunuz; 3 top kilitlenince başlıyor
Space Cadet'i seviyorsanız Visual Pinball'u da mutlaka denemenizi öneririm. Space Cadet'ten daha iyi birçok pinball oyunu var ve insanların yaptığı pek çok harika masa ücretsiz. Yalnız Windows'a özel gibi görünüyor. Masalar VBScript ile script ediliyor ve PinMAME bir COM nesnesi olarak yükleniyor
Bu arada, biraz kurcaladıktan sonra Space Cadet'in programlamasının epey özensiz olduğunu fark ettim. Işıkların durumu doğrudan oyun durumunu yansıtıyor. Bu yüzden rütbe atlama ışık şovu oynarken topu kaybederseniz ya da bir görev başlatırsanız rütbe atlayabildiğiniz bir bug oluşuyor
VPX artık Linux, Mac, iOS ve Android'de de çalışıyor ve jsm174'ün öncü çalışmaları sayesinde gayet iyi durumda. VBScript kısmı gerektiği kadar Wine ile çalışıyor, geri kalan her şey native
Surround Sound Feedback (SSF), Direct Output Framework (DOF), Pinup Popper paketleri (PUP Packs) gibi özellikler de destekleniyor. Eskiden yalnızca Windows'a özel olan GUI de artık ImGUI üzerinden Windows/Mac/Linux sürümlerine gömülü ve oyun sırasında açılabiliyor
Denemek isterseniz GitHub'a giriş yapıp her platform için en son action build'lerini indirebilirsiniz [0]. Windows dışı kullanıcılar için, geçen yılın 10.8.0 sürümüne kıyasla Windows sürümüyle özellik farkını en çok kapatan master'ın en güncel sürümü daha iyi olur. Metal ve Vulkan destekleyen yeni çok iş parçacıklı render backend'ine sahip BGFX sürümünü kullanın
Daha fazla bilgi için Virtual Pinball Chat Discord [1] ve wiki [2] iyi başlangıç noktaları. Geliştiriciler VPX'i çapraz platform yapmak için çok emek verdi ve sonuç ortada. Ben de bunun üstüne bir Pincab [3] kurdum ve gerçekten harika
Ek olarak, VPX artık Batocera'da da destekleniyor ama oradaki VPX sürümü epey eski
[0] https://github.com/vpinball/vpinball/actions/workflows/vpinb...
[1] https://discord.gg/BhR9h5aWm
[2] https://github.com/dekay/vpinball-wiki/wiki/About-Visual-Pin...
[3] https://github.com/dekay/vpin-cabinet/
Ama başka pinball oyunları oynadıkça Space Cadet'in kendi başına da harika bir oyun olduğunu daha çok fark ettim. Hissi çok iyi ve sizi oyunda tutan pek çok unsur var
Benzer ölçüde keyif aldığım başka pinball oyunları aradım; en çok yaklaşanlar Xenotitle ve Demon's Tilt oldu ama alışması ve ustalaşması daha zordu. Ondan sonraki en iyi seçenek ise bana göre Yoku's Island Express
Hafife alınacak bir oyun değil
Visual Pinball için buna bakmaya değer: https://archive.org/details/vpinball-x-73-space-cadet / https://github.com/vpinball/vpinball
Daha iyileri olabilir ama JP sürümü, bir sürü başka yazılım kurup ayarlamanıza gerek kalmadan doğrudan çalışıyor
https://youtube.com/results?search_query=JP%27s+Space+Cadet - https://youtu.be/UXfohCzilrQ
Bugünlerde bu pinball'ların nasıl yapıldığı gerçekten inanılmaz
Daha fazla masa da şuralarda var:
https://vpforums.org/index.php?app=downloads&showcat=50
https://vpuniverse.com/files/category/82-vpx-pinball-tables
https://virtualpinballspreadsheet.github.io
https://nailbuster.com/wikipinup
https://archive.org/search?query=visual+pinball+tables
Linux/Mac üzerinde ne yaptıysam dondu ya da çöktü; şu an bu bağımlılık yavaş yavaş gevşiyor ama proje hâlâ Windows odaklı
Yüzlerce yüksek kaliteli masa mevcut ve her hafta 12'den fazla yeni sürüm çıkıyor. Fiziksel pinball masalarında mümkün olmayan şeyler yapan yeni orijinal masalar da var; ayrıca 1950'lerden 2000'lere uzanan efsanevi ticari pinball makinelerinin özenli yeniden yapımları da bulunuyor. Gençliğinizden hatırladığınız bir masa varsa, büyük ihtimalle emüle edilmiş durumdadır
MAME'in arcade oyunlarını yok olmadan önce koruması gibi, VPin topluluğu da gelecekteki nesillerin elektro-mekanik makineleri deneyimleyebilmesi için tarih koruması yapıyor. Teknik olarak Visual Pinball içinde, PinMAME adlı özel bir MAME sürümü pinball makinesi ROM'larını emüle ediyor; Visual Pinball ise 3D render ve fizik simülasyonunu üstleniyor
Çoğu kişi masaüstünde klavyeyle oynuyor ama bazı MAME oyuncularının özel düğmeler, joystick'ler veya arcade kabinleri kullanması gibi, VPin de pinball makinesi şeklindeki kabinlerde çalıştırılabiliyor. Oyun alanının yerinde düz bir ekran oluyor; flipper düğmeleri ve gerçek bir plunger ile sanal top fırlatılıyor
VPin stereo sesi destekliyor ama sıradan PC ses kartlarının 7.1 çıkışındaki ek kanalları da subwoofer, bass shaker ve en fazla 4 kanallı konumsal haptic feedback için kullanabiliyor. Transdüserlerin, gerçek pinball bumper'ları ve slingshot'ların kabinin içinde çalışıyormuş hissini, hatta metal topun ahşap oyun alanı üzerinde yuvarlanmasının ince titreşimini bile yeniden üretmedeki doğruluğuna şaşırdım
Ben de kabinime, render edilen flipper konumlarının altına gerçek pinball makinelerinde kullanılan flipper solenoid'leri ekledim. VPin kabinim, oyun odamda 8 gerçek pinball makinesi ve özel yapım bir MAME arcade kabininin yanında duruyor; dolayısıyla genel hissin gerçeğe oldukça yakın olduğunu garanti edebilirim
Visual Pinball'u denemek isterseniz, @eahm'in yukarıda bağlantısını verdiği Pinup Popper otomatik kurucusuyla başlamanızı şiddetle öneririm: https://nailbuster.com/wikipinup/doku.php
Bu etkileyici sonuç, birden fazla projenin sorunsuz birlikte çalışmasıyla elde ediliyor ama en başta bunları doğru sırayla ve doğru yerlere kurmak kafa karıştırabiliyor. İlk kurulumda belgeleri biraz okumak hafif can sıkıcıydı ama artık tek tık dostu olmamasını bir avantaj olarak görüyorum. Tamamen ücretsiz, retroya yakın bu hobide hâlâ bilgili ve yüksek katılımlı bir topluluk kalmasını sağlayacak kadar karmaşık; yani çok rahat gelip spam saçacak kullanıcıları doğal olarak eliyor
Kaynak kod emanet sistemi fikrini beğeniyorum ve devletlerin müdahil olması için iyi bir alan gibi geliyor
British Library'nin yayımlanmış her kitabın bir kopyasını saklamasının zorunlu tutulması aklıma geliyor. Sırf koruma amacıyla kaynak kod için de benzer bir yasa olabilir diye düşünüyorum
Mecazi bir kasada kilitli tutulup ancak yazılımın desteği ve ömrüyle ilgili belirli koşullar sağlandıktan sonra açılması da bana uyar. Bu koşul “orijinal telif hakkı süresi dolduktan sonra”, yani 70 yıldan fazla zaman sonra bile olsa, mevcut uygulamalara kıyasla kaynak kodun korunması için çok daha iyi olur. Çıkışından 10 yıl bile geçmeden orijinal kaynak kodu kaybolmuş oyunlar var (Kingdom Hearts 1). Bana göre şimdikinden daha iyi herhangi bir alternatif faydalı olur
Yaratıcılara yönelik teşvikler zaten yeterince zayıf. Bir kitap yazıyorsunuz, hemen Anna's Archive'a düşüyor ve Altman tayfasının çıkarı için LLM lapasına dönüştürülüyor. Burada ya da Reddit'te bir araştırmacı gazetecilik haberi paylaşıyorsunuz, ücret duvarını aşan bağlantılar en çok oy alan yorumlardan biri oluyor
Zaten Bastiat'nın kırık pencere metaforunu andıran bir durumdayız ve bu, insanların üretme isteğini azaltıyor. Yazılım üreticilerinin eserlerinin daha kolay kopyalanması ve telif hakkı aklanmasına uğraması riskini artırmak istemem. Devlet kasaları, trilyon dolarlık şirketler için kolay hedef olur
Ayrı bir konu olarak, retro reverse engineering yapan biri olarak yazarın yazılım koruma ile üreticilerin ödüllendirilmesi ihtiyacı arasındaki gerilimden söz etmesine güçlü biçimde katılıyorum
Yakında oyun ile veri ayrılacak; böylece ikinci kısım daha kolay olacak ve özel Flatpak'lerin veriyi genişletebilmesi mümkün hâle gelecek
Flatpak, güncel runtime'ları korumak için güncellemeler alıyor ama upstream oyunun kendisi güncellenmedi ve Flathub yalnızca güncellemeler için appstream verisini gösterecek. Flatpak manifest deposuna bakarsanız son commit'in 6 ay önce olduğunu görürsünüz: https://github.com/flathub/com.github.k4zmu2a.spacecadetpinb...
Keşke biri, ister hobi projesi ister şirket düzeyinde olsun, Space Cadet'in gerçek bir pinball masasını yapsa
Hazır yeri gelmişken Sesame Street pinball masasının [2] gerçek bir versiyonunu da görmek isterdim ama o biraz daha iddialı bir iş olabilir
[1] - https://spacecadetpinball.wordpress.com
[2] - https://www.youtube.com/watch?v=JZshZp-cxKg
Çünkü bumper'ların altından geçen bir şerit var ve gerçek bumper'lar aşağı doğru oldukça fazla uzanıyor: https://files.catbox.moe/pnaeri.png
O zamanlar bir Halo makinesi de yapmak istiyorlardı ama o da bir yere varmadı