1 puan yazan GN⁺ 2023-07-16 | 1 yorum | WhatsApp'ta paylaş
  • Yazar, UP5K FPGA kullanarak "Another World" oyununu donanım üzerinde yeniden oluşturdu.
  • Oyun, grafikleri üretmek için blitter ve rasterizer'ı çağıran bir sanal makine (VM) üzerinde çalışıyor.
  • Yazar, FPGA üzerinde VM, blitter ve rasterizer'ın donanımsal gerçekleştirimini oluşturdu.
  • Tasarım, FPGA'nın kaynak gereksinimleri içine sığıyor ve 128KB SPRAM bellek kullanıyor.
  • Yazar işe, veri akışının oyun verileri ve kodu boyunca nasıl ilerlediğini anlayarak başladı.
  • Tasarım, her şeyi birbirine bağlayan ve ekran yenilemeyi ekleyen bir SoC içeriyor.
  • Framebuffer, SPRAM bloklarını kullanıyor ve her framebuffer SPRAM bloklarına eksiksiz biçimde eşleniyor.
  • Görüntü denetleyicisi pikselleri 25 MHz'de akıtıyor ve titreşimi önlemek için çift tamponlama kullanıyor.
  • Blitter, bir framebuffer'ın içeriğini başka bir framebuffer'a kopyalıyor veya framebuffer'ı tek bir renkle dolduruyor.
  • Yazar, tasarımın çeşitli FPGA kartlarında çalışan donanım üzerinde oyunu başarıyla yeniden yarattı.
  • Bu yazı, oyun motorundaki blitter ve rasterizer gerçekleştirimlerini ele alıyor.
  • Blitter birimi pikselleri vblank sırasında kopyalıyor; rasterizer birimi ise framebuffer üzerine çokgenler çiziyor.
  • Blitter, başlangıç darbesini kontrol ediyor ve belirtilmişse renk doldurma yapıyor.
  • Rasterizer, içbükey çokgenler çizmek için çokgen köşelerini çift portlu BRAM'den okuyor.
  • Rasterizer, saydamlık için palet hileleri kullanıyor ve başka bir kaynak framebuffer'dan piksel kopyalayabiliyor.
  • Oyun motoru, bir yazı tipi çizim motoru içeriyor ve önceden işlenmiş arka planları destekliyor.
  • Derleme süreci; oyun veri dosyalarını kopyalamayı, simülasyonu çalıştırmayı veya oyunu başka donanım platformlarında oynamayı içeriyor.
  • Bu yazı, Another World oyunu için FPGA üzerinde çalışan bir donanım tasarımının geliştirilmesini ele alıyor.
  • Yazar; oyun testi, zamanlama ayarı, render sorunlarını düzeltme ve müzik ekleme gibi hâlâ tamamlanması gereken çeşitli işlerden söz ediyor.
  • Yazar ayrıca oyunun diğer bölümlerini bağlama ve oyun durumunu kaydetme olasılığından da bahsediyor.
  • Bu donanım üzerinde başka oyunlar veya demolar geliştirmek de gelecekteki olası projeler arasında yer alıyor.
  • Yazı; blog serisi, port, araçlar ve ilgili materyallere bağlantılar sunuyor.
  • Bu projede kullanılan Silice tasarımı MIT lisansı altında; değiştirilmiş C++ portu ise özgün GPL lisansını koruyor.
  • Yazı, framebuffer, rasterizer, blitter ve sanal makine (VM) gibi temel terimleri, sektöre aşina olmayan okurlar için açıklıyor.

1 yorum

 
GN⁺ 2023-07-16
Hacker News görüşleri
  • Another World: etkileyici grafikleri ve sanatsal tarzıyla bilinen klasik bir video oyunu
  • Oyun kısa ve bulmacaları deneme-yanılmaya dayanıyor, ancak sanatsal açıdan hâlâ popüler
  • Another World hayranları Flashback: The Quest for Identity'yi de sevebilir
  • Amstrad CPC, Nintendo 64 ve PlayStation 1 dahil olmak üzere çeşitli platformlar için Another World portları bulunuyor
  • Bu makalenin yazarı FPGA portu için Silice adlı özel bir HDL dili kullanıyor
  • Amiga'da kullanılan düzlemsel grafikler, saydamlık efektleri ve hare efekti gibi avantajlara sahip
  • Oyunda sanal makine (VM) kullanılması, 90'lardaki PC'lerde performans düşüşüne yol açmış olabilir
  • Oyun, akılda kalıcı bir açılışa ve aslandan kaçış gibi zorlu oynanış anlarına sahip
  • Oyunun orijinal geliştiricisi, geliştirme araçları ve animasyon süreci hakkında GDC'de oyun sonrası bir konuşma yaptı
  • YouTube'daki bir oynanış videosunu izlemek, oyunda zorlanan oyunculara yardımcı olabilir