Neden Bu Kadar Zordu
- Bash'in hızı sorunu: Bash çok yavaştır ve piksel başına bir komut çalıştırıldığında uygun bir kare hızına ulaşmak mümkün değildir. Ekran durumunu bellekte tutmak mümkün değildir ve diziler veya dizelerle erişim zaman alır.
- Matematiksel kısıtlamalar: Bash'te kayan nokta desteği ve matematik fonksiyon kütüphanesi yoktur. Tüm matematiksel işlemler tam sayılarla yapılır ve 100000 ile ölçeklendirilir.
- Terminal grafikleri sorunu: Pikseli göstermek için, dikey çözünürlüğü iki katına çıkarmak üzere Unicode yarım blok karakterleri kullanıldı. Komşu piksellerin renklerini bilmek gerekirken Bash, durumu saklayamaz.
- Diğer sorunlar:
- Terminalin tamamını tek seferde güncellemek zordur.
- Çoğu terminal bir video oyunu terminali değildir ve tuş girişlerini gerçek zamanlı işlemek zordur.
- Terminali renklerle doldurmak çok fazla veri gerektirir.
- Bash aynı anda birden fazla satırlık dizeyi yazdırmaz.
- ECMA48, VT100, VT200, Xterm gibi standartlar karmaşık ve anlaşılması zordur.
- Matematiksel hesaplamalarda zorluk yaşandı.
SSS
- S: Pencere yeniden boyutlandırılırken sorun oluyor
- C: Lütfen bir issue açın.
- S: CPU aşırı ısınıyor veya eski bir bilgisayar yavaşlıyor
- C:
FPS ortam değişkenini 30'un altında olacak şekilde ayarlamayı deneyin.
- S: Bash 5'in altında çalışmıyor
- S: Bu kod saf Bash mi?
- C: Değil. Başlangıçta
stty çağırarak yankı kapatılır, çıkışta tekrar etkinleştirilir.
1 yorum
Hacker News Yorumu
Oyun aslında gerçek bir 3B oyun olmadığı için, her sütunda yalnızca bir kez ışın izleme çalıştırıp piksel çizen yaklaşımı çok zekice
MS Batch ile yazılmış bir raycaster olup olmadığını merak ediyorsanız, GitHub bağlantısına bakabilirsiniz
Bash’in yavaş olması nedeniyle betik yazımı veya etkileşimli kullanım için uygun olmadığını düşünüyorum
stty’nin fork gerektirmesi can sıkıcı
Hâlâ bu kadar yavaş bir kabuğu kullanmak zor geldiği için anlamıyorum
stdoutveerryazıyor, bu yüzden metni ekrana çok daha hızlı yazdırabilmeliBash ile böyle bir şeyin mümkün olduğunu bilmiyordum
9 yıl önceki
awkraycaster da anılmaya değerBu projeyi çalıştıramıyor olmam üzücü
bufferedadlı bir dosyaya kaydedilip hemen kapanıyorKodun yalnızca 300 satır olması etkileyici
Bu meydan okuma gerçekten müthiş