Fisika untuk platformer 2.5D dengan pesawat yang melengkung


9

Saya membuat platformer 2.5D di XNA yang menggunakan model 3D yang dibatasi untuk bepergian sepanjang pesawat 2D (seperti Trine ).

Untuk membuat segalanya lebih rumit, saya ingin pesawat 2D itu sendiri dapat melengkung. Pertimbangkan replay dari Klonoa ini (Anda hanya perlu menonton selama 10 detik): meskipun pemain menggunakan pesawat 2D, pesawat itu sendiri dapat membungkus sisi gunung, secara efektif memungkinkan pemain untuk melakukan perjalanan melalui ruang 3D - sementara itu dibatasi pada bidang 2D reguler platformer.

Bagaimana seharusnya fisika didekati dalam permainan seperti ini?

  • Haruskah saya menggunakan mesin fisika 2D atau mesin fisika 3D?
  • Apakah ada mesin fisika yang benar-benar dirancang dengan mempertimbangkan situasi ini?
  • Untuk semua yang tidak dirancang untuk ini: hack atau trik apa yang diperlukan untuk membuat mesin fisika bekerja sama dengan saya?

2
Saya kira 'kurva' itu murni visual, dalam hal fisika, tampaknya 2D. Satu-satunya trik adalah mengubahnya menjadi ruang GFX, atau mengubahnya menjadi ruang fisika.
decaviatedcaviar

Jawaban:


9

Platformer seperti ini masih, pada dasarnya platformer 2D. Efek 2.5D, bahkan keriting di sekitar gunung, hanyalah visualisasi dari dunia yang dibatasi dalam 2D. Mesin fisika Anda mungkin hanya akan beroperasi di dunia ini dan bukan pada visualisasi itu, sehingga mesin fisika 2D akan cukup.

Yang mengatakan, Anda mungkin tertarik pada beberapa efek 3D. Dalam permainan "Bionic Commando: Re-bersenjata", karakter musuh yang dikalahkan akan agak 'berguling' dari platform, membuat fisika ragdoll sebenarnya 3D. Selain itu, sebagian besar mesin fisika 3D memungkinkan Anda membatasi gerakan di sepanjang satu atau lebih sumbu (meskipun dengan beberapa penyesuaian seperti membuat sambungan antara karakter jalan dan bergerak).

Ingatlah bahwa tidak setiap efek 3D memerlukan mesin fisika lengkap. Anda bisa mengkodekan implementasi 3D Anda sendiri untuk hal-hal kecil seperti jatuhan puing setelah ledakan, tanpa harus menggunakan mesin 3D lengkap.

Rekomendasi saya memulai dengan mesin 2D jika Anda mungkin tidak perlu perhitungan fisika di dimensi ke-3. Kalau tidak pilih mesin 3D dan batasi perhitungan hanya dalam dua sumbu yang relevan.


2

Itu tergantung apakah ada fisika Anda yang bisa terjadi di luar ruang pemain datar.

Seperti yang dikatakan ghostonline, animasi puing-puing dan ragdoll adalah contoh klasik fisika 2D di game 2.5D.

Contoh lain adalah peluru: Jika ada proyektil dalam gim Anda, apakah mereka mengikuti kelengkungan ruang 2D Anda atau melakukan perjalanan lurus ke depan bahkan jika itu berarti mereka akan meninggalkan batas itu?

Juga memetakan ruang 2D fisik ke visualisasi 3D melengkung dengan benar adalah (koreksi saya jika saya salah) .. tidak mudah. Anda akan memerlukan fungsi proyeksi injeksi yang mungkin melibatkan banyak splines atau yang serupa.

Meskipun memiliki ruang permainan 2D melengkung adalah tambahan yang bagus, itu membutuhkan beberapa biaya tambahan untuk kode. Mungkin itulah alasan mengapa tidak ada hal seperti itu di Trine. Tapi permainan itu menyenangkan, bukan? Saya akan berpikir dua kali tentang fitur seperti itu.

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.