Metode Pemijahan Musuh dalam Top-Down Shooter


20

Saya sedang mengerjakan penembak top-down seperti DoDonPachi , Ikaruga , dll. Gerakan kamera di seluruh dunia ditangani secara otomatis dengan pemain dapat bergerak ke dalam wilayah kamera yang terlihat.

Sepanjang jalan, musuh ditulis untuk menelurkan pada titik-titik tertentu di sepanjang jalan. Meskipun ini terdengar langsung, saya bisa melihat dua cara untuk mendefinisikan poin-poin ini:

  1. Posisi kamera: pemicu 'pemicu' saat kamera melewati titik
  2. Waktu di sepanjang jalur: "30 detik, menelurkan 2 musuh"

Dalam kedua kasus tersebut, posisi relatif kamera akan ditentukan serta perilaku musuh.

Cara saya melihatnya, cara Anda mendefinisikan poin-poin ini akan secara langsung mempengaruhi bagaimana 'editor level', atau apa pun yang Anda miliki, akan bekerja.

Apakah akan ada manfaat dari satu pendekatan di atas yang lain?

Jawaban:


7

Saya sarankan menempatkan posisi spawn benar-benar DI peta latar belakang sebagai node yang terlihat dari semacam editor peta. Anda dapat mewakili pemijahan shmup dengan dua variabel:

  1. Posisi mereka pertama kali terlihat, yang paling baik divisualisasikan sebagai titik
  2. Jarak dari layar bawah ketika Anda harus menelurkan mereka.

Kemudian Anda dapat memvisualisasikan jarak dari bawah layar sebagai garis vertikal yang menunjuk ke bawah dari spawn node (yang dapat divisualisasikan sebagai versi musuh yang diklik atau semacamnya). Ketika bagian bawah layar menyentuh garis itu, ia akan muncul. Ini memungkinkan Anda untuk melakukan semua penyuntingan musuh sepenuhnya dalam semacam editor visual, dan memberi Anda gambaran umum dari seluruh alur permainan.


Re 2) Tentu saja, pada ekspor Anda harus membalikkan kode ini (yaitu per baris, titik spawn mana yang harus aktif, karena dengan sistem ini Anda perlu mengetahui beberapa titik spawn sebelum terlihat. Detail sekalipun, ini memang cara yang paling logis
Kaj

1
Sebagai catatan, pastikan Anda menggunakan editor yang memungkinkan Anda dengan mudah menggeser node secara massal. Saat mengatur level shmup Anda, Anda akan menyisipkan dan menghilangkan musuh, dan terus-menerus mengutak-atik timing di tengah level Anda, dan harus menggeser semua entitas Anda satu per satu akan membunuh Anda.
ZorbaTHut

Saya suka ide ini karena itu benar-benar akan membuat pengeditan menjadi jauh lebih mudah, yang selalu merupakan nilai tambah
Chris Waters

7

Hanya saja, posisi kamera untuk menelurkan mungkin akan lebih fleksibel karena Anda dapat memodifikasi jalur tanpa harus khawatir tentang efek domino yang besar.

Jika Anda pergi dengan waktu memunculkan maka akan sangat menyakitkan untuk menambah atau menghapus jalan karena Anda harus memodifikasi banyak memunculkan musuh.

Masalah lain yang saya lihat adalah mengutak-atik kecepatan kamera. Apakah Anda benar-benar ingin pergi dan harus men-tweak musuh hanya karena Anda membuat kamera bergerak sedikit lebih cepat atau lebih lambat? Plus, Anda harus bermain melalui level dalam jumlah yang mengerikan hanya untuk menemukan waktu bertelur atau tweak untuk mereka.


2

Saya sangat merekomendasikan untuk tidak memindahkan "kamera" sama sekali; pertimbangkan pemain dan musuh dalam ruang koordinat tetap yang sama setiap saat. Musuh dan pengguliran latar belakang harus dicocokkan dengan timeline independen. Itu membuat semua matematika lebih mudah.


Saya setengah setuju dengan Anda. Fisika shmup pasti palsu dan didasarkan pada kapal tidak benar-benar bergerak maju. Yang mengatakan, pertanyaan itu masih berlaku karena Anda memiliki kamera dll untuk dipertimbangkan
Iain

Memang, itu tidak membatalkan pertanyaan. Ini masih waktu versus jarak (virtual) yang ditempuh. Apakah Anda menggerakkan pemain ke depan atau latar belakang hanya lapisan konseptual. Selain itu, memisahkan mereka untuk membuat matematika lebih mudah dapat membuat hal-hal lain jauh lebih sulit, seperti menempatkan musuh di latar belakang (menara), membuat mereka menghindari objek latar belakang, atau memiliki collidable di latar belakang.
Kaj

1

Saya akan memilih posisi kamera. Menggunakan waktu akan membuatnya agak sulit jika Anda ingin memiliki jalur musuh yang cocok dengan beberapa gambar dalam file peta Anda (seperti musuh yang mengikuti jalur melengkung). Juga memungkinkan Anda untuk mempercepat gulir tanpa mengubah spawnpoints.
Sisi baiknya adalah mempercepat gulir akan membuat musuh datang lebih cepat. Yang dapat dianggap sebagai nilai tambah (speedup akan kesulitan naik) atau negatif (kecepatan gulir mempengaruhi mondar-mandir).


1

Saya juga mengerjakan game penembak ruang. Apa yang saya lakukan adalah saya menggunakan objek game kosong bernama GameController. menambahkan komponen skrip yang disebut GameController.cs yang mengendalikan bagian pemijahan seperti,

  • Menyimpan daftar titik pemijahan [array]
  • Beri masing-masing musuh bobot dan poin tertentu. Berat mengendalikan tingkat pemijahan musuh jika musuh memiliki berat tinggi mendapat kemungkinan yang baik untuk memilih di setiap level.
  • Kemudian setiap kali periksa Level saat ini dan Pilihan nomor acak, jika jumlahnya kurang dari berat, menelurkan musuh itu. Saya harap ini membantu.

http://www.youtube.com/watch?v=VqFJsU63GRo


0

Saya akan menempatkan mereka di latar belakang peta besar dan menyertakan jalur pergerakan awal mereka di peta itu. Dengan begitu saya bisa mengubah jalur kamera nanti dengan cara yang berarti alih-alih perlu mengubah jalur dan waktu secara terpisah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.