Apa yang menyebabkan "jatuh dari dunia" dan apa yang memperbaikinya?

14

Banyak game 3D awal memiliki masalah di mana Anda akan berjalan dengan riang dan tiba-tiba semuanya menjadi hitam, dengan sebuah pulau yang tampak seperti cangkang fasad pemandangan tempat Anda berjalan naik ke jarak di atas. Karena Anda telah jatuh dari dunia. Saya ingat ini menjadi masalah khusus dan lama bagi Bethesda Softworks, meskipun mereka tentu saja tidak sendirian. Sudah lama sejak saya melihatnya di alam liar, jadi sepertinya kita sudah melewatinya. Pertanyaan saya adalah dua bagian:

1) Apa penyebab, atau penyebab dari ini? (Dugaan saya adalah bahwa ini berkaitan dengan jahitan terkait titik-mengambang-mengambang antara poligon, berinteraksi dengan posisi karakter model-titik, yaitu bongkahan lantai A berakhir di posisi 1.0, bongkahan lantai B dimulai pada posisi 0,9998 dan untuk mikrodetik posisi Anda adalah 0,99992, dan boom, Anda jatuh di dunia. Tapi itu hanya dugaan.)

2) Bagaimana cara memperbaikinya?

kekacauan
sumber
Morrowind. Vivec. Kenangan ...
Tobias Kienzler
3
Berbicara tentang Bethesda dan jatuh melalui lantai, inilah NPC yang malang di skyrim .
Chris
Selalu membuat saya berpikir tentang Skate 3 .
user1118321

Jawaban:

14

"Retak" dalam geometri sebagian besar. Game-game ini memiliki beberapa kesamaan, mereka memiliki gravitasi dan mereka memiliki deteksi tabrakan.

Anomali ini adalah lokasi di mana deteksi tabrakan gagal dalam beberapa cara. Itu bisa berupa tepi yang tajam, celah atau sejumlah anomali geometri lainnya. Bahkan bisa menjadi masalah dengan langkah-langkah waktu di mesin fisika, di mana pembaruan diuraikan dan karakter diizinkan jatuh melalui geometri yang sangat baik.

Ini umum ketika pemain melakukan sesuatu yang tidak diharapkan oleh desainer level. Melompat ke suatu tempat yang tidak seharusnya, atau entah bagaimana selamat dari kejatuhan yang seharusnya tidak terjadi. Atau, ketika pemain menggunakan fitur-fitur dalam permainan seperti teleportasi atau terbang untuk sampai ke tempat-tempat yang menurut para desainer tingkat tidak bisa dicapai oleh pemain. Baru-baru ini seperti Skyrim ( video: keluar dari dunia pada jam 11:25 saya sarankan mematikan audio ...).

Ketika deteksi tabrakan gagal, tidak ada yang mendorong kembali dari gravitasi, sehingga Anda jatuh. Persis seperti berjalan dari tebing.

Itu tidak benar-benar "diperbaiki". Ada teknik untuk menghindari hal ini, tetapi sebagian besar hanya alat yang lebih baik dan alat pembuatan geometri untuk lansekap sehingga anomali ini tidak diperkenalkan.

MichaelHouse
sumber
5

Saya pikir tidak mungkin untuk mengatakan bahwa ada satu alasan khusus mengapa penjelajahan dunia terjadi. Karena perbedaan dalam mesin permainan / prosedur fisika antara game, sejumlah alasan dapat menyebabkan ini.

Berasal dari ini, saya cukup yakin bahwa jatuh dari dunia belum dihilangkan, tentu saja.

Memiliki beberapa mesin game skala besar (Unreal, CryEngine, dll) dapat menyebabkan masalah yang tidak terduga karena fakta bahwa mesin tersebut terus dikerjakan. Namun, tidak ada yang menghentikan pengembang untuk menambahkan fitur / perubahan menarik ke lingkungan yang dapat menyebabkan kliping dunia terjadi bahkan di mesin game yang paling dikerjakan.

EDIT: 1. Penyebab mendasar dari hal ini, sejauh yang saya tahu, ada hubungannya dengan fakta bahwa mesin permainan yang memungkinkan hal ini terjadi memiliki metode terbatas untuk mendeteksi apakah seorang pemain bergerak secara salah. Mesin game sebelumnya mungkin memiliki lebih banyak masalah dengan ini karena pesawat darat sering hanya pesawat itu. Jika seorang pemain berada di pesawat tersebut, dia tidak akan jatuh. Jika, karena alasan apa pun, lokasi vertikalnya turun sedikit, maka ia akan jatuh selamanya. Cukup banyak apa yang Anda katakan sehubungan dengan perhitungan floating point. Karena mesin mampu menjadi lebih kuat dan memeriksa apakah seorang pemain berada di seluruh REGION yang terlarang, memicu kesalahan akan lebih kecil kemungkinannya.

SWPhantom
sumber
1
Yap, perhitungan floating point dapat dengan mudah menyebabkan ini jika tidak ada buffer yang cukup atau jika karakter direpresentasikan sebagai sebuah titik. +1
MichaelHouse
5

Dugaan saya adalah bahwa mesin yang lebih tua mungkin menggunakan tes ray vs triangle yang cepat dan sederhana untuk mendeteksi tabrakan dengan geometri. Itu berarti bahkan celah terkecil (atau kesalahan presisi dalam perhitungan) dapat membiarkan pemain melewati sesekali.

Lebih banyak game modern mungkin akan menggunakan tes yang lebih mahal dengan bola atau kapsul yang mewakili pemain, dan itu tidak akan masuk melalui celah kecil. Banyak game modern juga akan menggunakan middleware fisika teruji dengan baik untuk tujuan alih-alih menulis tes mereka sendiri.

Langkah besar dalam pembaruan fisika pasti dapat disalahkan dalam beberapa kasus juga. Sepertinya saya ingat bahwa dalam setidaknya satu permainan Elite Anda bisa terbang menembus planet dalam beberapa kasus karena itu. Ini dapat diperbaiki dengan menggunakan deteksi tabrakan berkelanjutan yang juga memakan waktu CPU tambahan.

Adam
sumber