Bullet kullanarak bir istemci / sunucu fizik sistemi uygulamaya çalışıyorum ancak senkronize şeyler almakta sorun yaşıyorum.
Oyun nesnelerimden dönüşümü okuyan ve yazan özel bir hareket durumu uyguladım ve yerel olarak çalışıyor, ancak ağa bağlı oyunlar için iki farklı yaklaşım denedim:
- İstemcide sunucu üzerinde bulunan dinamik nesneler (örneğin rastgele enkaz ve diğer önemsiz şeyler) kinematik yapılır. Bu doğru çalışıyor ancak nesneler çok düzgün hareket etmiyor
- Nesneler her ikisinde de dinamiktir, ancak nesnenin taşındığı sunucudan gelen her iletiden sonra, sunucudaki değerlere doğrusal ve açısal hızı ayarladım ve sunucudaki dönüşümle btRigidBody :: progressToTransform'u çağırın. Ayrıca btCollisionObject :: enable (true); nesneyi güncellemeye zorlamak.
Yöntem 2 ile niyetim, temel olarak yöntem 1 yapmaktı, ancak Metodu 1 yöntemini düzeltmek için kendimi yapmak yerine fakir bir adamın tahminini yapmak için kaçırmaktı, ancak bu işe yaramadı (% 100 net olmayan nedenlerden dolayı) hatta Mermi'nin arasından geçiyorum) ve nesneler bazen farklı yerlerde ortaya çıkıyor.
Doğru yönde mi gidiyorum? Bullet'in kendi dahili enterpolasyon kodu var gibi görünüyor. Bu yöntem 1'in daha iyi çalışmasına yardımcı olabilir mi? Yoksa yanlışlıkla stomping çünkü benim yöntem 2 kod çalışmıyor?
DÜZENLEME: Yöntem 1 ile ilgili bir diğer sorun, çarpışma yanıtı senkronize olmayan nesnelere karşı çarpışmalar için yol olacaktır olmasıdır. Kinetik cisimler bazen geri alınamayacakları için sonsuza dek ateş ederler.