Apa pro / kontra dari menggunakan mesin 3d untuk game 2d? [Tutup]

16

Pro atau kontra apa yang harus diketahui oleh pemula saat memutuskan antara mesin game 2d (seperti Slick2D / Flixel / FlashPunk) dan mesin 3d (seperti Unity) untuk pengembangan game 2d?

Saya baru memulai dalam pengembangan game indie, meskipun saya telah mencoba-coba sedikit dengan Game Maker, Flash, dan XNA di masa lalu. Saya telah mendengar banyak hal positif tentang Unity, dan sifat lintas platformnya membuatnya menarik, tetapi seperti yang saya pahami, ini adalah mesin 3d pada intinya.

Untuk game 2d yang ketat, apakah ada alasan kuat untuk bekerja dengan mesin 3d seperti Unity? Atau apakah itu hanya menambah kompleksitas yang tidak dibutuhkan untuk pengalaman belajar awal saya?

mrohlf
sumber
Apakah Anda bertanya dalam konteks game 2D murni dalam sesuatu seperti Unity (seperti sprite dan gerakan 2D) atau game 3D dengan gameplay 2D (seperti dengan aset 3D tetapi hanya bergerak dengan satu pesawat)?
chaosTechnician
Saya punya beberapa teman yang telah bekerja dengan Unity untuk membuat game 2D yang disebut Coypu Space Rumble . Bagian 2D awal tampaknya cukup membosankan, saya akan meminta lebih banyak prescision mengapa.
Jonathan Connell
Tentukan "mesin 3D"? Apakah kita berbicara tentang sesuatu yang mencakup gameplay, atau hanya sesuatu yang merender dalam 3D?
Nicol Bolas
@chaosTechnician - Yang pertama: murni sprite 2D, gerakan 2D, pada dasarnya tidak ada sumbu z nyata apa pun (hanya indeks-z sederhana untuk menentukan urutan rendering sprite)
mrohlf

Jawaban:

15

Itu tergantung pada gim, tetapi sebagian besar, akan lebih mudah untuk membuat gim 2d ketat menggunakan mesin yang dirancang khusus untuk 2d.

Sekarang untuk beberapa pro dan kontra (beberapa di antaranya akan terkait dengan Unity secara khusus, beberapa dari mereka lebih umum)

Cons

  1. Mesin 3d biasanya dirancang di sekitar objek game menjadi model 3d (poligon dan tekstur). Meskipun tentu saja mungkin untuk membuat bidang datar dan menerapkan tekstur padanya, Anda secara aktif bekerja melawan mesin saat Anda melakukannya.

  2. Selain itu, banyak mesin 3d tidak memiliki kemampuan untuk menangani lembar sprite (semua frame animasi pada satu tekstur), karena mereka mengharapkan animasi untuk bertindak pada model (meskipun kecurangan dan metode lain), bukan tekstur. Sekali lagi, ada cara untuk mengatasi hal ini, tetapi sekali lagi, Anda secara aktif bekerja melawan engine untuk mencapai ini.

  3. Kompleksitas ditambahkan. Seperti yang disebutkan dalam jawaban Josh Petrie, 3d sedikit lebih kompleks daripada 2d, sebagian besar dalam manajemen matematika dan adegan. Memindahkan objek dan menangani ruang 3d itu sulit, dan jika ini adalah salah satu game pertama Anda, itu akan menjadi jauh lebih sulit. Berita baiknya: Unity mengabstraksi beberapa masalah ini, meskipun akan ada beberapa hal yang masih harus Anda tangani (dan sebagian besar abstraksi, lagi-lagi, dimaksudkan untuk model 3d, bukan sprite 2d)

  4. Sebagian besar perpustakaan yang dilengkapi dengan Unity atau yang bisa Anda peroleh dimaksudkan untuk objek 3d. Ini termasuk hal-hal seperti pencahayaan, pencarian jalan, fisika, dll. Sementara itu, box2d akan dengan mudah bekerja dengan Flash, atau XNA, atau sesuatu (mungkin, mungkin).

Pro

  1. Akselerasi 3d. Kartu grafis jauh lebih baik dalam menangani banyak objek dalam sebuah adegan daripada CPU, dan dengan Unity Anda dapat memperoleh manfaat itu dengan sangat mudah. Ini memungkinkan Anda menampilkan ribuan sprite di layar, atau memasukkan efek partikel dengan mudah, atau menambahkan sesuatu yang menyenangkan seperti shader untuk mendukung efek keren seperti ruang bengkok dan waktu sesuai keinginan Anda. Unity memiliki banyak efek bawaan ini, yang membuatnya sangat mudah. Perhatikan bahwa banyak mesin 2d menggunakan OpenGL atau DirectX di belakang layar, dan dalam banyak kasus dapat dipercepat perangkat keras.

  2. Dukungan untuk model. Ingat hal yang tadi jadi masalah? Ya, itu bisa bermanfaat juga. Bergantung pada gimnya, bisa memasukkan bola berputar atau sesuatu yang keren seperti objek 3d di latar belakang bisa menjadi keuntungan. Anda juga dapat memiliki gim yang terbuat dari 3d, tetapi hanya dipaksa menjadi perspektif 2d, yang dapat memberi Anda pilihan untuk memutar geometri dunia tanpa harus melakukan banyak grafik tambahan untuk menanganinya.

  3. Belajar 3d. Mari kita hadapi itu, banyak game ditulis dalam 3d, dan jika Anda belajar cara menggunakan Unity, Anda akan dapat menerapkan banyak dari keterampilan itu ke game berikutnya yang mungkin membutuhkan 3d. Selain itu, banyak seniman yang keluar dari sekolah saat ini sedang diajarkan pemodelan 3d, jadi "lebih mudah" untuk menemukan seniman 3d daripada artis permainan 2d tradisional (apakah seniman tersebut ada gunanya ....)

Kesimpulan

Ada banyak kontra, ada juga jumlah pro yang layak. Itu semua akan tergantung pada jenis permainan yang ingin Anda buat, terserah Anda untuk memutuskan apakah itu layak. Flash masih merupakan opsi yang sangat layak, jadi tidak ada yang salah dengan menggunakan mesin 2d jika itu yang lebih cocok dengan gim Anda.

thedaian
sumber
+1. Jawaban yang sangat teliti dan dapat diterapkan. Saya merasa Anda telah menangani ini sebelumnya.
chaosTechnician
Terima kasih, apa yang saya cari! Saya pikir saya akan terus fokus pada mesin 2d, karena sebagian besar yang saya lihat telah dibangun di atas OpenGL atau DirectX, dan pemodelan 3d sedikit di luar kemampuan saya sekarang. Saya ingin belajar Unity di beberapa titik, tetapi saya mungkin akan lebih baik mengatasi itu setelah saya memiliki permainan 2d.
mrohlf
Juga, mesin 3D memungkinkan Anda menggambar sprite dengan rotasi sewenang-wenang dan alpha dengan sangat, sangat mudah; lebih mudah daripada jika Anda memiliki mesin 2D murni. Inilah sebabnya mengapa banyak mesin 2D modern benar-benar 3D di bawah kap; Anda juga bisa menulis custom shader!
ashes999
7

Salah satu kelemahan besar adalah kompleksitas ekstra - mesin 3D tidak selalu memiliki tingkat dukungan kelas satu yang sama untuk grafis 2D seperti mesin 2D khusus. Ini berarti bahwa ini merupakan pekerjaan ekstra untuk berurusan dengan menyusun dan mengelola adegan 2D, dan / atau Anda masih harus berurusan dengan kompleksitas matematika 3D dan pipa transformasi. Terutama jika Anda tidak sepenuhnya akrab dengan dasar-dasar teori grafis 3D, Anda dapat menemukan diri Anda hilang dan bingung ketika gambar Anda tidak muncul dan jika Anda tidak hati-hati, Anda dapat menemukan "solusi" yang membuat Anda gambar muncul tetapi belum tentu benar (dan karenanya akan menggigit Anda nanti).

Tetapi di luar aspek manusia, selama mesin 3D memiliki alat yang Anda butuhkan untuk membangun game 2D Anda, itu bukan ide yang buruk untuk menggunakannya. Mereka jauh lebih lazim akhir-akhir ini dan cenderung dikembangkan lebih agresif, jadi itu nilai tambah. Selain itu mungkin masih ada beberapa mesin atau kerangka kerja yang berfokus pada 2D di luar sana yang tidak menggunakan D3D atau OpenGL di belakang layar, dan dengan demikian mungkin tidak mendapatkan manfaat dari GPU modern.

Dalam pertanyaan terkait ini, Anda dapat melihat banyak diskusi tentang apa yang mungkin membuat 3D lebih sulit (Anda hanya perlu berurusan dengan subset yang Anda gunakan hanya menggunakan mesin 3D untuk game 2D).

Komunitas
sumber
2

Pro: Upaya lebih banyak dihabiskan oleh produsen kartu video yang mengoptimalkan driver 3D mereka. Anda tidak terjebak dalam 2D ​​untuk FX khusus atau fluorish. Anda tidak perlu mensimulasikan diri sendiri secara berlebihan. Mengganti sudut pandang tidak membutuhkan pengerjaan ulang sepenuhnya atas semua karya seni Anda. Saya akan berpendapat bahwa skala 3D lebih baik secara visual.

Con: Jalur pipa aset mungkin harus disesuaikan dengan mesin Anda. Beberapa operasi yang sederhana dalam 2D ​​lebih kompleks dalam 3D. Perpustakaan mungkin akan memiliki fungsionalitas tambahan yang tidak akan pernah Anda gunakan.

Patrick Hughes
sumber
0

Cukup pelajari Unity jika Anda bisa. Unity bekerja BENAR-BENAR baik dengan Blender 3D yang bersifat open source dan gratis. Ada banyak tutorial online yang bagus tentang cara memodelkan dan menghidupkan 2D di Blender dengan pesawat. Juga ada TON model yang dapat Anda unduh secara online biasanya gratis atau murah yang dapat Anda gunakan sebagai titik awal.

Ini tentu saja dengan asumsi bahwa Anda tidak mahir membuat Game Engine Anda sendiri. Game 2D favorit saya saat ini adalah Super Meat Boy yang dirancang dalam Flash dan akhir pemrogramannya dikustomisasi ... membuat mesin game yang sesuai dengan kebutuhan game tertentu. Ini adalah cara terbaik untuk mendekati proyek seperti itu karena memberi Anda banyak kebebasan. Karena itu, dibutuhkan banyak pekerjaan untuk menempuh rute itu.

Aesadai
sumber
Sebenarnya, sekarang UNITY telah menambahkan dukungan 2D ini bahkan lebih dari tidak punya otak: pcworld.com/article/2062740/…
Aesadai
1
Saya masih mengatakan Unity menyebalkan untuk game 2D. Untuk game 2d, ini BUKAN kualitas profesional bagi saya, hanya dibandingkan dengan mesin 2D padat seperti Cocos2D-swift. Itu tidak punya otak.
Jonny