Co-op uzay hayatta kalma voksel oyunu
Project Persei
Project Persei gerçek ötegezegen verisi üzerine kurulu, co-op bir uzay hayatta kalma voksel oyunu. Gemini blok blok inşa ediyor, donmuş Dünya'dan ayrılıyor ve gerçek galaksiyi aşıyorsun: NASA'nın doğrulanmış 6.278 ötegezegeninin tamamı, gerçek galaktik koordinatlarında.
Problem
Açık kaynak bir motor üzerinde, satın alınmış tek bir varlık olmadan motor seviyesinde bir proje: dünya, gemiler, dokular ve ses tamamen üretilmeli ve hepsi JVM üzerinde akıcı kalmalı.
Önemli kararlar
- 01
Akan bir voksel dünya
Chunk'lar arası yüzey ayıklamalı 32³ chunk'lar, prosedürel arazi ve biyomlar, akışkanlar, güç devreleri, üretim, tarım ve hava durumu.
- 02
Önce inşa edip sonra uçurduğun gemiler
Gemiler blok blok inşa ediliyor, sonra uçurulabilir tek bir mesh'e dönüştürülüyor; gezegen yüzeyinden uzaya kesintisiz geçiş.
- 03
Gerçek galaksi
NASA'nın doğrulanmış 6.278 ötegezegeninin tamamı gerçek galaktik koordinatlarında; her birinin görünüşüne fizik tabanlı kurallar karar veriyor. Dokular çalışma anında boyanıyor, ses tamamen prosedürel, su özel GLSL shader'larıyla.
- 04
Ölçüme dayalı performans
Kare başına bellek ayırma sıcak noktalarını giderdim (en kötüsü saniyede 750 bin nesneydi), JFR profillerine göre generational ZGC'yi ayarladım, chunk yeniden mesh'lemeyi toplulaştırdım ve delta tabanlı atomik bir kayıt sistemi kurdum.
Sonuçlar
- ~35k
- satır, motor seviyesinde, tek başıma
- 6,278
- gerçek ötegezegen, gerçek koordinatlarda
- 0
- satın alınmış varlık
- 750k/s
- saniyelik nesne ayırma sıcak noktası giderildi