Saya baru-baru ini menemukan dua permata ini:
http://dan-ball.jp/en/javagame/dust/
Pertanyaan saya adalah: Bagaimana fisika dengan banyak elemen ditangani secara efisien? Apakah saya hanya terlalu meremehkan kekuatan komputer modern atau mungkinkah 'hanya' memiliki array dua dimensi, masing-masing sel menggambarkan apa yang ditempatkan pada posisi yang sesuai dan mensimulasikan setiap sel dalam setiap langkah. Atau ada hal-hal yang lebih rumit yang dilakukan seperti meringkas area besar dari jenis yang sama ke dalam satu set data tunggal dan memisahkan set yang diperlukan?
Adakah game sumber terbuka seperti ini yang bisa saya lihat?
physics
efficiency
Marc Müller
sumber
sumber
Jawaban:
Tentu ada beberapa; Saya dulu mod mereka. Perhatikan tautan untuk utas forum dan unduhan sumber. Dua yang saya punya kenangan terbaik adalah:
EngimaSand oleh xavierenigma ( C ++ | Java ) Yang Java lebih baru.
BurningSand oleh sieben ( C ++ ) Yang satu ini sangat cepat secara fisika.
Sayangnya situs ini hampir mati, tetapi ada beberapa utas di sini tentang fisika di .
EDIT: Bagi siapa pun yang tertarik, saya memiliki mediafire sumber Java untuk EnigmaSand di sini .
sumber
Fisika dalam permainan ini disimulasikan dengan menggunakan sistem yang didasarkan pada otomat seluler yang kompleks . Ini secara signifikan lebih rumit daripada yang digunakan dalam, katakanlah, Game of Life, dan menggabungkan fitur yang berarti itu mungkin bukan CA yang tepat, tetapi masih relatif sederhana untuk menghitung dan telah bertahun-tahun. Tidak terlalu banyak detail, tetapi kompleksitas algoritma akan menjadi sangat kecil, bahkan mungkin O (area).
Sepertinya ada juga beberapa kecerdasan segerombolan di sana, yang juga sangat efisien untuk efek menarik yang dapat dibuatnya.
sumber
Bertahun-tahun yang lalu Jos Stam mulai mengeluarkan kode sumbernya untuk pemecah cairan. Ada sedikit kode yang mengatur kisi dan memecahkan persamaan Navier-Stokes dengan sangat cepat. Sumber lengkap tersedia di halamannya juga.
sumber