Oyunumda bir sahne grafiğinin uygulanıp uygulanmayacağına dair bir kararla uğraşıyorum. Böyle bir araç gerektiren bazı kullanım durumlarım var, ancak bazı uygulama ayrıntılarını alamadım.
Bazı arka plan: Mobil platform (öncelikle Android) hedef alan bir uzay shooter türü oyun yazıyorum ve benim kod neredeyse tamamen C ++. Herhangi bir ara katman yazılımı kullanmıyorum; render ve fizik motorları benim kendi yaratımlarım. Fizik motorum nesnelerin yerlerini kuvvetlere ve darbelere göre günceller. Henüz bir animasyon sistemim yok ama bir noktada (bu tartışma ile ilgisi olabilir veya olmayabilir) bu ziyaret edebilirsiniz.
İlk olarak, iyi bir kullanım durumunu açıklayacağım. Her biri bağımsız olarak hasar görebilen / yok edilebilen birkaç ayrı parçadan oluşan bir patronum olsun istiyorum. Örneğin, patron varlığının geri kalanından bağımsız olarak hasar alabilen bir kolu olan bir patronum olabilir. Kol yok edildiğinde, patronların omzuna yerleştirilen bir yangın parçacığı etkisi, kolun artık yok edildiğini gösterebilir.
Olduğu gibi, bu tür bileşik nesneleri bir arada tutmak için fizik motorumdaki kısıtlamalarla bu tür problemleri çözmeye karar verdim. Böyle bir kısıtlama 0 serbestlik derecesi sağlar ve esasen bir dönüşüm matrisidir. Bu gerçekten en başta beni aşağıda açıklanan sahne grafiklerinden çıkaran bir problemi atlatma girişimidir.
Bir sahne grafiğinin kullanımından uzaklaşmamın başlıca nedeni, hem fizik dünyasında hem de oluşturma sahnesinde iç içe geçmiş nesneleri (ebeveynlerinden bir dönüşümü devralan nesneler) tutmanın etkili bir yolunu bulamamıştım. Fizik dünyasının nesnelerin dünya uzayında (ya da en azından aynı alanda) olması gerekirken, oluşturma sahnesinde üst uzaydaki nesneler gerekir. Her iki alandaki konumları izlemek yardımcı olabilir (ve kaçınılmaz olabilir), ancak en az performansla ilgili olmayan kendi endişelerini ortaya çıkarır.
Bununla birlikte, yukarıda anlatılanlar gibi kullanım durumları göz önüne alındığında, bence ana alanda 'çalışabilmek' çok önemli hale gelecek ve fizik motorumu kısıtlamaları kullanarak bu ilişkileri sürdürmeye zorlamak sorunlu hale gelecektir.
Yukarıda açıklanan kullanım durumu ve tahmini göz önüne alındığında, dönüşümleri bir nesneden diğerine geçirmek için bir grafik yapısı kullanmalı mıyım? Öyleyse, fizik motorum nasıl yeni yerler hesaplamalı ve farklı alanlardaki nesneler için kavşak testleri yapmalıdır?