Bagaimana cara membuat fitur Ghost Replay dalam game?

19

Saat Anda menetapkan waktu putaran terbaik pribadi dalam game balap konsol, Anda memiliki opsi untuk bersaing melawan hantu Anda.

Bagaimana fitur ini dapat dibuat untuk game tipe biasa pemain tunggal?

claude keller
sumber
2
+1 Pertanyaan menarik untuk orang yang hanya pemula dalam pengembangan game (saya). =)
Will Marcouiller
Jika Anda memberi tahu kami jenis permainannya, kami dapat membantu Anda lebih spesifik.
AttackingHobo

Jawaban:

10

Hantu biasanya dilakukan dengan menampilkan replay dari upaya sebelumnya. Replay ini diberikan dengan versi mobil pemain yang tidak dapat di-collid sehingga Anda tidak dapat memengaruhinya. Karena game balap sering memiliki fitur replay, jenis ini datang secara gratis.

Berikut ini adalah titik awal yang baik untuk membangun sistem replay: http://www.gamasutra.com/view/feature/2029/developing_your_own_replay_system.php

Juga ada sejumlah pertanyaan di sini tentang topik itu:

wkerslake
sumber
+1 Baru belajar sesuatu yang baru dengan jawaban Anda, terima kasih! =)
Will Marcouiller
1

Tergantung pada teknologi yang Anda gunakan. Karenanya, kita tidak dapat benar-benar membahas cara terbaik, karena mungkin berubah dari satu teknologi ke teknologi lainnya. Gagasan kotor menurut saya adalah sebagai berikut:

  1. Gunakan penyimpanan data yang mendasarinya untuk mempertahankan data Anda (XML, Cookie, Database, CSV, lainnya ...);
  2. Kerjakan akses data Anda ke penyimpanan data mendasar ini;
  3. Anda perlu menyimpan data informasi tentang skor terbaik pemain, sehingga diperlukan pengenal (email, nama input, atau yang lain ...);
  4. Kaitkan skor terbaik ini dengan pengidentifikasi dengan satu atau lain cara.

Singkatnya, dengan asumsi penggunaan database, kita bisa memiliki dua tabel:

  1. Data pengguna / pemain (pengidentifikasi, email, dll.);
  2. Data informasi papan skor terbaik.

Kemudian, Anda dapat menyimpan informasi pengguna bersama dengan papan skor individu yang dapat, jika diinginkan, berisi tanggal dan waktu pendaftaran kapan skor ini telah dicapai.

Saya harap ini membantu dan saya sudah mengerti pertanyaannya. Kalau tidak, tolong katakan agar saya dapat mengedit jawaban saya.

Will Marcouiller
sumber
3
Saya pikir dia kemungkinan mencari mekanisme perekaman / pemutaran untuk mencapai ini. Lingkungan permainan deterministik, melacak peristiwa yang mengubah hal-hal (misalnya masukan Pemain) dan sejenisnya biasanya merupakan cara yang disarankan untuk melakukan ini.
James
Terima kasih atas masukan Anda, James! Ini adalah hal-hal yang tidak saya ketahui, meskipun jawaban saya juga merupakan pendekatan yang mudah dilakukan, dengan rendah hati. Namun, saya tertarik untuk mempelajari lebih lanjut tentang topik ini. Oh dan +1 untuk komentar Anda, ini mengajarkan saya bahwa ada pendekatan lain yang bisa dilakukan. =) Terima kasih! =)
Will Marcouiller
Saya benar-benar minta maaf untuk kesalahan ini, saya masih mempelajari dasar-dasarnya, terima kasih atas informasinya, saya tidak bisa menjawab dengan pengetahuan yang benar karena saya tidak memilikinya. apa yang ingin saya capai adalah setiap kali saya mencoba untuk mengalahkan skor tinggi pribadi saya yang saya lihat di layar hantu (replay) tentang bagaimana saya memainkan permainan ketika saya menetapkan skor tinggi saya
claude keller
@Apakah Anda akan memberitahunya informasi tentang apa yang bisa dilakukan untuk pengaturan multi-pemain, begitu ia benar-benar mengetahui jawaban untuk pertanyaannya tentang permainan pemain tunggal. Pertanyaannya adalah bagaimana cara membuat hantu di tempat pertama.
AttackingHobo
@AttackingHobo: Terima kasih sudah memberi tahu saya. Saya sebenarnya telah mengetahui dari komentar James tentang hal rekaman, kemudian setelah membaca jawaban wkerslake, saya sekarang lebih mengerti apa yang diminta oleh OP. Selain itu, Anda benar ketika mengatakan bahwa pengaturan yang saya usulkan lebih cenderung digunakan dalam pengaturan multi-pemain. Hei, saya masih belajar di sini, dan terima kasih telah mengizinkan untuk tumbuh lebih baik! Pengembangan Game masih merupakan trik baru bagi saya meskipun saya adalah pengembang yang berpengalaman. =) Terima kasih atas komentar Anda AttackingHobo! =)
Will Marcouiller
1

Tidak mudah untuk menjawab pertanyaan ini tanpa memiliki informasi lebih lanjut tentang permainan Anda. Jawaban dari wkerslake bekerja selama permainan saat ini dengan hantu tidak dapat mempengaruhi determinisme dari data hantu yang direkam. Jika data yang direkam adalah percobaan waktu mobil tunggal dalam lingkungan statis, Anda harus baik-baik saja menggunakan teknik itu.

Namun dalam banyak game dengan playback hantu, seperti Super Meat Boy, posisi pemain dapat mengubah keadaan level dan AI. Jelas, Anda tidak dapat memiliki hantu yang mempengaruhi dunia dan AI, jadi mungkin lebih baik hanya merekam perubahan posisi + animasi (dan apa pun yang terlihat) setiap frame untuk pemain utama. Selama pemutaran, render hantu di lokasi saat ini dan bingkai animasi tanpa harus ada di dunia. Ini memungkinkan Anda untuk memutar ulang hantu dan tidak memengaruhi pemain saat ini.

Lathentar
sumber