Geri Dön
Catlantean 3D: 256 renkli paletle 1993 tarzı bir nişancı oyunu
SiTech AI Team3 წთ. საკითხავი

Catlantean 3D: 256 renkli paletle 1993 tarzı bir nişancı oyunu

Geliştirici Marko Stanic, 90'ların başındaki tekniklerle inşa edilen birinci şahıs nişancı oyunu Catlantean 3D için ilk geliştirme günlüğünü yayımladı: 320x240 çözünürlük, 256 renkli palet ve elle yazılmış render.

Geliştirici Marko Stanic, bir yılı aşkın süredir boş zamanlarında geliştirdiği ve Steam'de yayımlamayı planladığı birinci şahıs nişancı oyunu Catlantean 3D için ilk geliştirme günlüğünü yayımladı. Proje, bilinçli kısıtlamalar üzerine bir alıştırma: oyun, varlıklar dahil sıfırdan yazılıyor; render da ses miksajı da elle yapılıyor.

1993'ten ödünç alınan kurallar

Hedeflenen çözünürlük 256 renkle birlikte 320x240 — klasik 320x200 Mode 13h değil, VGA Mode-X; çünkü 320x200'ü 4:3 bir ekranda göstermek kare olmayan pikseller üretiyor. Oyun mantığı, davranışın tüm platformlarda deterministik kalması için sabit noktalı aritmetik kullanıyor; render ise kayan noktalı aritmetikten yararlanabiliyor. İzin verilen tek platform katmanı çerçeve tamponu, klavye ve fare girdisi, ses tamponu ve dosya giriş-çıkışını kapsıyor. Palet tabanlı render'da her piksel tek bir bayttır: 256 renkli palete bir indeks. Bu yüzden her renk seçimi bilinçli olmak zorunda. 768 baytlık palet; saydamlık, saf beyaz ve saf siyah için yer ayırıyor, kalanını ise kan kırmızılarına, renk kodlu anahtar ve kapılar için yeşil ve mavilere, Catlantis'in antik Mısır parodisi kuran çöl tonlarına ve onu işgal eden sibernetik tesislerin grilerine bırakıyor.

Shader olmadan aydınlatma

Catlantean 3D klasik bir raycasting motoru: harita karelerden oluşan bir ızgara ve her ekran sütunu, geometriyle nerede kesiştiğini bulmak için DDA algoritmasıyla taranıyor. Donanım hızlandırmalı bir render, uzaktaki geometriyi renk vektörünü bir katsayıyla çarparak karartır; oysa palet tabanlı bir render yalnızca indeksleri bilir ve her piksel için paleti taramak çok yavaştır. Bu yüzden motor önceden bir renk haritası hesaplıyor: 32 gölge seviyesi ve her renk için paletin kendisinden seçilen 31 koyu varyant. En yakın eşleşme, her şeyi griye çeken Öklid mesafesi yerine Oklab algısal renk uzayında aranıyor; koyu tonlar ise daha sıcak tonlara doğru hafifçe kaydırılıyor — piksel sanatında hue shifting olarak bilinen teknik. Çalışma anında arama O(1): satır indeksi parça mesafesinin görüş mesafesine oranından çıkıyor ve sütun, satır ve sprite başına yalnızca bir kez hesaplanıyor.

Varlıklar ve araçlar

Grafikler üç kaynaktan geliyor: elle çizilen sprite'lar, Python betikleriyle prosedürel olarak üretilen dokular ve Blender'da iskeletlenip canlandırılan, ardından Blender'ın Python API'siyle sprite sayfalarına render edilen 3D modeller. Render'lar başta bulanık ve soluk çıkıyordu; bu yüzden Stanic kontrast ve kenar netliği için Blender'ın compositor'ına başvuruyor, ardından bir betik görüntüyü palete nicemleyip oyunun TEX biçimine paketliyor. Düşman sprite'ları her animasyon için sekiz yönde render ediliyor. Seviye düzenleme Tiled'da başladı ama hücre bazında ışık boyama, hücre bayrakları ve doğrudan seviye çalıştırma özellikli özel bir wxPython editörüne taşındı; modelinin bir kısmı motor iç bileşenleri için Python bağlayıcıları olan pybast'a dayanıyor.

Yayın planları

Stanic, Catlantean 3D'yi 2027'nin ilk çeyreğinde yaklaşık 5–8 dolar aralığında yayımlamayı bekliyor. Kaynak kodu GitHub'da açık kaynak olarak paylaşılacak; grafik, seviye, ses ve müzikten oluşan veri arşivi ise oyunun satın alınmasını gerektirecek.

SSiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.