Chunking / caching level besar dalam game singleplayer

8

Apakah masuk akal untuk mencoba membongkar level nonlinear besar ke dalam potongan berbasis file, dan memuatnya sesuai permintaan? Kami telah mengimplementasikan level chunking untuk meningkatkan kinerja rendering, tetapi masih semua objek level tetap dalam RAM.

Jika ya, lalu bagaimana kita menjaga ilusi dunia yang hidup / berubah? Karena levelnya tidak linear, melainkan seperti dunia itu sendiri, kita tidak bisa hanya berpura-pura bahwa apa pun yang dilaluinya hilang selamanya.

Apakah ide yang lebih baik untuk membuat level cukup kompleks, tetapi juga cukup dioptimalkan untuk selalu bertahan dalam memori, tetapi menerapkan titik lompatan mikro / makro yang memungkinkan seseorang untuk melompat ke titik yang sama sekali jauh (yaitu level yang sama sekali baru), sehingga melupakan tentang konsistensi dunia, dan ilusi dunia yang berubah. Juga, ini akan memungkinkan kita untuk mengikuti cerita yang agak linier di dunia yang tampaknya tidak linier. Adalah mungkin untuk hanya menerapkan negara baru ke keadaan saat ini dari tingkat "jauh", jika kita ingin membawa pemain kembali ke sana.

pengguna802232
sumber

Jawaban:

6

Membuat bongkahan benar-benar ide yang bagus, tetapi Anda harus menggunakannya dengan bijak. ada banyak judul besar yang menggunakan ide yang sama untuk memberikan ilusi dunia yang sangat besar. misalnya Anda dapat saya sebutkan Spore atau Oblivion.

Pertama mari kita bicara tentang spora karena dalam fase galaksi Anda dapat dengan mudah melihat cara kerjanya:

ada banyak planet di galaksi tetapi tidak semuanya berada dalam memori dalam waktu yang bersamaan. setiap kali Anda mendekati satu game planet secara otomatis memuat tekstur untuk planet itu dari hard disk. Kemudian jika Anda cukup dekat Anda dapat memasuki planet dan membuat beberapa perubahan. saat Anda berada di dalam sebuah planet, hampir semua data tentang luar angkasa tidak dapat dialokasikan. Dan Anda dapat membuat perubahan apa pun di planet yang Anda sukai. maka Anda dapat kembali ke tampilan luar angkasa. kali ini gim memuat ulang data untuk planet lain dan menyimpan perubahan yang Anda buat di planet itu. misalnya jika Anda membuat gunung di sana, semua perubahan jala dan tekstur disimpan lagi dalam file. ada juga beberapa acara yang disimpan dalam file. seperti ketika Anda meletakkan perangkat yang membantu makhluk berevolusi di planet. Peristiwa ini tetap aktif sampai Anda benar-benar jauh dari planet yang memicu mereka.

Dalam hal terlupakan sedikit berbeda, meskipun ide dasarnya sama. saat Anda berjalan di alam liar, gim ini terus-menerus memuat dan menurunkan area. jika Anda mencoba bermain terlupakan pada PS3 proses ini menghasilkan beberapa kelambatan kecil di area transisi (atau setidaknya saya mendengar mereka melakukannya). ada juga beberapa area yang sepenuhnya menghentikan Game dan Anda melihat layar pemuatan seperti ketika Anda memasuki gua rumah Anda. menggunakan metode ini mereka dengan mudah mengurangi kompleksitas dan penggunaan memori di kota-kota. pikirkan saja berapa banyak rumah yang ada di kota dan berapa banyak memori yang akan mereka konsumsi jika mereka ingin memuatnya. juga perhatikan bahwa jika mereka ingin menggunakan sistem bongkar muat yang sama setiap kali Anda berada di dekat rumah, mereka membutuhkan hampir semua bandwidth hdd, dan itu dapat merusak hdd.

untuk menyimpulkan jawaban saya, saya sarankan Anda menggunakan metode yang sama dalam game Anda untuk area yang luas. Anda juga harus menyimpan perubahan apa pun yang dilakukan pemain di suatu daerah saat menurunkannya. Metode ini memberikan pengalaman yang sangat menyenangkan dari menjelajahi dunia nyata bagi para pemain. Tetapi untuk area yang ada banyak objek dan Anda pikir Anda mungkin memerlukan sebagian besar bandwidth penyimpanan untuk transmisi data, gunakan saja metode tradisional dengan layar pemuatan.

Ali1S232
sumber