Memodelkan kecepatan penyebaran informasi cahaya dalam sim ruang tempur

29

Saya sedang bekerja pada sebuah sim ruang tempur yang berlangsung di area yang relatif luas (kubus ruang ~ 20 menit cahaya ke samping) dan menggunakan (kebanyakan) fisika realistis. Salah satu elemen kunci yang ingin saya modelkan adalah kecepatan penyebaran informasi melintasi ruang pertempuran - yaitu, jika Pemain A menggunakan drive utamanya di satu sisi ruang pertempuran, ada penundaan 20 menit sebelum Pemain B melihatnya dan dapat bereaksi padanya

Bahkan untuk ruang pertempuran yang relatif kecil ini adalah faktor penting mengingat kecepatan yang terlibat. Sebuah kapal sepanjang 500m yang melakukan 30kps akan menggusur dirinya sendiri dengan panjang penuh dalam 1/60 detik, sehingga bahkan menargetkan lawan yang hanya beberapa persepuluh detik cahaya jauhnya akan dipengaruhi oleh lag cahaya.

Saya belum pernah melihat ini dilakukan sebelumnya, dan saya bertanya-tanya apakah ada beberapa praktik terbaik untuk pemodelan ini. Saat ini saya sedang timestamping setiap acara dan menandainya dengan lokasi, memasukkannya ke dalam antrian, dan kemudian setiap centang memeriksa untuk melihat apakah ada objek di dunia game yang baru di tepi kerucut cahaya dan menambahkan acara ke antrian sensor mereka. Saya akan (tetapi belum) mengoptimalkannya dengan menghapus semua peristiwa yang telah dirasakan oleh semua objek yang mungkin dapat merasakannya, tapi tetap saja, saya pikir ini akan menjadi sangat rumit sangat cepat, dan makan banyak siklus jika ada ratusan objek penginderaan dalam permainan (yang cukup rutin).

Apakah ada model data yang lebih cocok untuk ini yang harus saya periksa?

John Biesnecker
sumber
7
Entah jawabannya, tapi saya akan mengatakan pertanyaan yang sangat rapi!
Tim Holt
Wah! Game kebanyakan tentang visualisasi. Saya perlu tahu bagaimana Anda berencana untuk memvisualisasikan lawan ketika piksel terlalu besar? Indikator HUD sederhana? Game petualangan mode teks? Tolong beri saya pencerahan!
Jonas Byström
1
Anda mengatakan model Anda secara fisik akurat. Apakah itu Newtonian atau relativistik? Itu mungkin membuat perbedaan besar pada skala seperti itu.
MSalters
1
Bukannya menjawab pertanyaan, tapi mungkin melihat A Slower Speed ​​of Light akan memberi Anda beberapa ide.
Michael Pankov
@ JonasByström - tampilan jarak jauh cukup rumit, dan saya mencoba untuk membersihkannya. Pada dasarnya, saya berharap ini menjadi pandangan probabilistik di mana target akan berada di masa depan, berdasarkan kelambatan cahaya dan perkiraan komputer kapal Anda tentang max delta-v target. Namun, saat ini agak kurang dahsyat dari itu :)
John Biesnecker

Jawaban:

9

Lakukan brainstorming di sini ...

Yang cukup menarik, lag jaringan adalah teman Anda dalam hal ini. Seperti pada Anda INGIN penundaan terjadi untuk beberapa paket data, setidaknya jika ini tentang menggambar. Tetapi alih-alih kelambatan dasar yang biasanya dimiliki setiap pemain untuk semua paket data yang dipengaruhi oleh hanya kecepatan jaringan mereka, Anda perlu menerapkan kelambatan khusus untuk setiap acara untuk setiap pemain berdasarkan penundaan kecepatan cahaya.

Biasanya server akan mengirimkan pembaruan ke semua klien pada saat yang sama, tetapi yang Anda butuhkan adalah server untuk menghitung "kelambatan cahaya" untuk setiap peristiwa (berdasarkan jarak penonton), dan kemudian tidak mengirimkan pembaruan hingga saat itu. waktu.

Jadi untuk setiap acara, hitung waktu tunda antara acara dan masing-masing pemain, lalu antri acara itu agar tidak dikirim untuk menggambar ke pemain itu sampai waktu tunda berlalu.

Ini tidak membahas efek perubahan posisi pemain atau kecepatan setelah acara terjadi, tetapi Anda dapat berpotensi menyesuaikan acara yang telah antri berdasarkan perubahan pemain. Seorang pemain mulai bergerak lebih dekat, memindahkan acara lebih dekat dalam waktu. Pemain bergerak menjauh, bergerak dalam waktu.

Pergeseran Doppler akan menjadi hal yang menarik untuk dilemparkan ke dalam campuran, berdasarkan pada delta gerakan antara pemirsa dan acara.

Tim Holt
sumber
Saya sudah memodelkan posisi dan kecepatan yang berubah. Terlepas dari skalanya, objek dalam gim umumnya tidak mendapatkan fraksi kecepatan cahaya yang cukup besar, sehingga peristiwa-peristiwa menyalipnya dengan relatif mudah, tetapi ada tanda centang pada setiap centang jika penerima berada dalam bola yang bisa melihat acara tersebut, jadi jika Anda bergerak ke arah atau menjauh dengan klip yang bagus, itu dapat memengaruhi ini dengan beberapa kutu. Doppler memang akan menarik! Sesuatu untuk dilihat. :-)
John Biesnecker
2
Sesuatu yang perlu diperhatikan, jika Anda menggunakan metode ini, tidak ada yang memindai paket akan mendapatkan informasi sebelum mereka harus. Eve Online melakukan sesuatu yang mirip dengan kapal berjubah. Ketika ada kapal yang bergerak di suatu daerah, semua klien diberi tahu, tetapi ketika kapal yang berjubah bergerak, klien tidak diberi tahu apa-apa. Kalau tidak, meskipun klien tidak menunjukkan kapal, paket akan melakukannya.
Ray Britton
5

Pertanyaannya adalah: seberapa tepatnya Anda membutuhkan gambar Anda yang tertunda menjadi bagaimana gambar itu sebenarnya dimainkan? Jika Anda mencari akurasi 100%, Anda perlu menyimpan tindakan atau status setiap objek di peta pada setiap centang dan, seperti yang Anda katakan, putar ulang pada penundaan berdasarkan jarak. Jika Anda tidak terlalu peduli dengan akurasi, yang jarang Anda butuhkan dalam gim, Anda dapat menyimpan status pada interval dan memperkirakan di antara mereka ketika penundaan menyusul. Anda dapat mengoptimalkan dengan tidak menyimpan pembaruan yang identik.

Atau, Anda dapat membuat vektor semua gerakan dan menyimpan jalur untuk setiap objek bersama dengan waktu mulai dilihat dari pengamat universal. Kemudian Anda bisa menghitung posisi yang diharapkan dari suatu objek untuk setiap pengamat berdasarkan penghitung waktu universal waktu lokal berdasarkan jalur path yang telah disimpan. Ketika cap waktu node lintasan berjalan di belakang lightcone dari semua objek yang relevan Anda membuangnya.

Sunting: Di atas mengasumsikan Anda akan menipu pada relativitas dasar dengan memiliki pengamat absolut (saya menganggap pemain). Ini akan merampok Anda dari beberapa aspek yang lebih menarik dari pelebaran waktu tetapi memodelkan itu akan menjadi proyek itu sendiri> _>

jono
sumber