Bagaimana cara menangani RTS Click-And-Move di 3D Space?

10

Bagaimana saya bisa menangani klik-dan-pindah dalam ruang 3D yang lengkap? Mudah untuk menangani pada bidang 2D dengan raycast sederhana, tetapi ini tidak terjadi dalam 3D karena tidak ada end-plane untuk raycast untuk mendapatkan titik akhir.

Saya punya dua ide dalam pikiran:

  1. Lakukan raycast, lalu izinkan pemain untuk memilih jarak pada ray dengan input lain (misal, misal).
  2. Alih-alih 3D lengkap, miliki beberapa "lapisan ketinggian", sehingga pemain dapat mengubah lapisan ketinggian sebelum memesan langkah.

Apa yang kamu pikirkan?

S. Tarık Çetin
sumber

Jawaban:

4

Mematahkan gerakan dalam dua langkah adalah pendekatan yang sudah ketinggalan zaman.

Gerakan mouse untuk bidang horizontal. Roda mouse untuk bidang vertikal.

Homeworld melakukan pekerjaan yang baik, tetapi roda mouse belum dikerahkan secara luas sehingga mereka tidak melakukannya.

Anda masih dapat memiliki tombol pengubah untuk mengalihkan gerakan mouse antara mode, tetapi menggerakkan mouse dan menggulir dapat dilakukan secara bersamaan sehingga merupakan metode yang paling efisien untuk perangkat keras. Di homeworld Anda mengatur pesawat secara berurutan satu demi satu yang memperlambat Anda. Belum lagi Anda hanya diperlambat untuk pindah ke ruang kosong. Pindah ke objek otomatis lintasan.

Cara lain untuk melakukannya secara bersamaan adalah dua tangan pada keyboard atau kontrol stik kembar.

Jika fluiditas gerakan Anda tergantung pada kecepatan, melakukan dan langkah ekstra dapat membunuh aliran Anda. Homeworld cocok dengan sistemnya karena tidak masalah jika Anda menghabiskan satu atau dua detik ekstra dalam mengeluarkan perintah pemindahan Anda, dan Anda dapat yakin mereka mempertimbangkan pertimbangan itu ketika mereka membangun mondar-mandir.

Penempatan pembesaran PS:

Jika zooming bukan mekanik sentral dan Anda tidak perlu membuatnya sekuat mungkin dapat diturunkan.

Tangani pembesaran dengan cara yang sama seperti yang dilakukan permainan "Hitam dan Putih". Zoom dengan gerakan mouse + tahan tombol Mouse (di mana tombolnya hanyalah pengubah fungsi antara gerakan peta dan zoom peta). Para gametester yang saya gunakan semuanya setuju "rasanya" menjadi zoom terbaik. Saya akan merekomendasikan memegang mouse 1 dan mouse 2 sementara untuk mode zoom (persis seperti B&W) - tetapi secara teknis salah satunya akan cukup jika Anda tidak memiliki konflik.

Saya sering merekomendasikan kepada orang lain untuk menginstal game untuk mencobanya. Tambahkan kegunaan keyboard dan mekaniknya yang paling berguna dan nyaman hingga saat ini yang pernah saya lihat untuk navigasi peta besar.

Sekarang, ini tentu saja bukan standar umum dan Anda harus memastikan itu dijelaskan kepada pengguna Anda setidaknya beberapa kali. Tapi begitu orang mendapatkannya mereka sangat nyaman dengan itu. Selain itu Anda sedang mengajar navigasi orang dalam 3d. Anda terikat untuk keluar dari zona kenyamanan kontrol 2d dengan cara apa pun.

Jika mouse Anda terlalu penuh dengan kontrol, Anda selalu dapat menggunakan tombol keyboard pengubah atau tombol tengah mouse. Konfigurasi optimal akan sangat bergantung pada alur permainan Anda.

helena4
sumber
Jawaban ini sebenarnya lebih cocok dalam skenario ini. Tetapi bagaimana saya harus menangani zoom jika saya menggunakan mousewhell untuk tujuan ini? Akan terlalu merepotkan untuk menangani zoom melalui keyboard.
S. Tarık Çetin
@ S.TarıkÇetin diperbarui.
helena4
9

Hancurkan gerakan menjadi dua langkah

  1. Pilih posisi pada bidang X / Z 2D yang terletak di posisi Y entitas saat ini.
  2. Atur offset (atas atau bawah) dari bidang itu.

Ini mirip dengan bagaimana Homeworld , salah satu game ruang RTS 3D pertama yang menangani pergerakan. Bekerja dengan sangat baik.

Memecah gerakan menjadi dua langkah memberikan kontrol paling besar, hanya karena mouse adalah perangkat input 2D. Itu hanya dapat memberikan posisi pada satu pesawat pada satu waktu. Hal yang sama dapat dicapai dengan mengikat dua tombol pada keyboard untuk menjadi atas / bawah pada sumbu Y.

Atau, Anda dapat menggunakan tombol kanan mouse untuk mengaktifkan mode. Misalnya, klik kiri memulai perintah bergerak dan memindahkan target pada bidang X / Z, menahan tombol kanan mouse untuk mengubah posisi sumbu Y.

masukkan deskripsi gambar di sini

MichaelHouse
sumber
Sejauh ini, ini tampaknya pilihan paling logis. Saya akan menunggu, kalau-kalau ada yang datang dengan ide yang lebih baik.
S. Tarık Çetin
2

Lakukan apa yang dilakukan EVE online: Jangan izinkan klik dan pindahkan! Catatan

Apa yang mereka lakukan adalah mereka membuat objek di luar angkasa, dan memungkinkan Anda untuk mengklik kanan pada objek tersebut (raycast atau yang tidak), dan pilih salah satu opsi yang berbeda:

  • Pergi ke objek (dengan kecepatan berbeda)
  • Putar tentang objek (pada jari-jari yang berbeda)

Ini memungkinkan Anda untuk hanya pindah ke tempat yang relevan.


Catatan (Mereka mungkin telah mengubahnya belakangan ini. Belum bermain untuk sementara waktu.)

Vaillancourt
sumber
Ya, ini menyelesaikan masalah, tetapi juga menghancurkan aspek permainan yang menciptakan masalah ini sejak awal.
S. Tarık Çetin
@ S.TarıkÇetin Yap! Mungkin dalam kasus mereka ini adalah hal yang paling logis untuk dilakukan. Dan mungkin itu tidak berlaku untuk situasi Anda.
Vaillancourt
Dari apa yang saya ingat, Anda sebenarnya bisa mengklik untuk pindah di Hawa. Itu lebih dari memilih jenis hal arah,
MichaelHouse
Ada kontrol keyboard di Hawa yang dapat Anda gunakan untuk mengarahkan kapal Anda, tetapi ketika melakukan ini Anda dibatasi untuk kecepatan taktis (misalnya terbang dari stasiun ruang angkasa yang mengorbit di sekitar Planet X ke satelit yang juga mengorbit Planet X mungkin membutuhkan satu atau dua menit; terbang ke bulan Planet X melalui kontrol manual akan memakan waktu setidaknya 5 menit). Perjalanan berkecepatan tinggi hanya dapat dimulai dengan memilih tujuan.
Dan Henderson
3
Ada teknik untuk menghindari pengejaran berdasarkan ini - mulai terbang ke target yang jauh, berhenti di tengah jalan, lalu pilih target baru di arah yang berbeda, dan lagi berhenti di tengah jalan. Letakkan "bookmark" di lokasi yang terisolasi ini, dan kemudian Anda dapat terbang ke bookmark ini ketika diserang dan pengejar Anda tidak akan dapat terbang dengan kecepatan tinggi ke arah yang sama.
Dan Henderson