Toz oyunları: nasıl çalışırlar?


13

Son zamanlarda bu iki cevher buldum:

http://powdertoy.co.uk/

http://dan-ball.jp/en/javagame/dust/

Sorum şu: Pek çok unsuru olan fizik nasıl verimli bir şekilde ele alınıyor? Modern bilgi işlem gücünü ciddi şekilde hafife alıyor muyum, yoksa her hücreye uygun pozisyonda neyin yerleştirildiğini tanımlayan ve her adımda her hücreyi simüle eden iki boyutlu bir diziye 'sadece' sahip olmak mümkün mü? Yoksa aynı türden geniş alanları tek bir veri kümesine özetlemek ve söz konusu kümeyi gerektiği gibi ayırmak gibi daha karmaşık şeyler mi yapılıyor?

Bakabileceğim açık kaynaklı oyunlar var mı?


Orijinal Stackowerflow'daki kum simülasyonu hakkında benzer bir soru sordum . Cevaplar size yardımcı olabilir.
Evgeny Vinnik

Yanıtlar:


5

Kesinlikle çok az var; Onları değiştirirdim. Bağlantıların forum konuları ve kaynak indirmeleri için olduğunu unutmayın. En iyi anılarım olan ikisi:

EngimaSand by xavierenigma ( C ++ | Java ) Java yeni.

BurningSand by sieben ( C ++ ) Bu çok hızlı bir fiziktir.

Site maalesef ölüme yakın, ancak burada fizik hakkında birkaç konu var .

EDIT: ilgilenen herkes için burada EnigmaSand için Java kaynağı mediafire'd var .


Çok takdir etmek. Bağlantılar şu anda kapalı. Birkaç saat sonra tekrar deneyeceğim.
Marc Müller

Onlar? Hepsi benim için iyi çalışıyor.
Komünist Ördek

1
Mediafire yükledi ve cevapta düzenlendi.
Komünist Ördek

5

Bu oyunlardaki fizik, karmaşık bir hücresel otomasyona dayalı bir sistemin kullanılmasıyla simüle edilir . Hayat Oyununda kullanılandan önemli ölçüde daha karmaşıktır ve muhtemelen uygun bir CA olmadığı anlamına gelen özellikleri içerir, ancak hesaplanması hala nispeten basittir ve yıllardır. Çok fazla ayrıntıya girmemek, ancak algoritmanın karmaşıklığı oldukça küçük olacak, belki de O (alan).

Görünüşe göre, yaratabileceği ilginç efektler için şaşırtıcı derecede verimli olan bazı sürüler istihbarat var.


"ve muhtemelen uygun bir CA olmadığı anlamına gelen özellikler içerir" ... bununla ne demek istiyorsun? Bu CA'lar yalnızca daha fazla kural veya başka bir şeye sahip olmaktan farklı mı?
Gastón

2
Standart bir CA, N neslindeki her hücrenin durumunu, N neslindeki hücrenin yakın komşularının durumuna bağlı bir işlevle tanımlanır ve işlev genellikle her hücre için aynıdır. Birçok "toz" oyun, bu tanımın kapsamına girmeyen boids veya kısıtlama tabanlı fizik nesneleri gibi şeyler içerir. Tamamen CA olarak kodlandıklarından şüpheliyim. Bir noktada, mahalle yeterince büyür ve geçiş fonksiyonu gerçekten bir CA ile uğraşmayacak kadar karmaşık hale gelse bile.
Gregory Avery-Weir

İyi cevap ve yorum Gregory, anlayışınız için teşekkürler.
Mühendis

1
Hücresel otomat bunun bir parçası olsa da, kesinlikle yanıtın tamamı değildir. Orada da bir sıvı çözücü var, bu da onu 'gerçekçi' gösteren şey
bobobobo

@bobobobo: Evet, kesinlikle uygun hücresel otomata sınırlarının ötesine geçiyor.
Gregory Avery-Weir

3

Yıllar önce Jos Stam sıvı çözücüler için kaynak kodunu koymaya başladı. Bir ızgara oluşturan ve Navier-Stokes denklemlerini çok hızlı çözen çok kısa bir kod vardır. Tüm kaynak sayfasında da mevcuttur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.