Apa yang harus dipertimbangkan ketika memutuskan 2D vs 3D untuk sebuah game? [Tutup]


68

Seberapa "sulit" 3D daripada 2D dalam hal:

  • Jumlah / kerumitan kode
  • Diperlukan tingkat keterampilan matematika
  • Waktu terlibat dalam pembuatan aset seni

Judul asli: Seberapa sulit pengembangan game 3D versus 2D?


27
Satu dimensi lebih keras :)
aflafur Waage

5
Waay subjektif ...
Cyclops

Hmm ... setelah mengatakan itu, saya sebenarnya sangat suka jawaban @ munificent. Sekarang saya tidak yakin bagaimana saya ingin mengkategorikan pertanyaan ini. :) Ini tidak tepat untuk meta , baik ... Gantung kasus tepi ini . :)
Cyclops

2
Kompleksitas kode, tingkat matematika, dan waktu tampak seperti ukuran kesulitan yang relatif objektif bagi saya.
Brian Ortiz

@ Brian, yeah, aku berharap kami bisa membatalkan dekat orang. :) Mengevaluasi ulang, saya pikir bagian dari masalah adalah judul - "Seberapa keras X versus Y", terdengar subyektif. Judul yang lebih baik mungkin, "Apa perbedaan dalam pengembangan 3D versus 2D?" (mungkin mengubahnya?). Yang sebenarnya adalah Pertanyaan yang dijawab @munificent , meskipun dengan satu kalimat yang membahas judul. :)
Cyclops

Jawaban:


127

3D adalah urutan besarnya lebih keras dari 2D:

Pemrograman:

  • Matematika secara signifikan lebih kompleks untuk rendering, fisika, tabrakan, dll. Harap Anda suka matriks dan vektor!
  • Karena poin sebelumnya, kinerja yang baik jauh lebih sulit untuk dicapai . Dengan perangkat keras saat ini, Anda dapat membuat game 2D yang terlihat bagus tanpa harus memikirkan kinerja sama sekali di luar tidak aktif secara bodoh. Dengan 3D, Anda harus melakukan beberapa optimasi.
  • Struktur data jauh lebih kompleks. Karena poin sebelumnya, Anda harus berpikir tentang pemusnahan, partisi ruang, dll. Semua ini lebih menantang daripada sederhana "di sini adalah daftar semua yang ada di level".
  • Animasi jauh lebih rumit. Animasi dalam 2D ​​hanyalah filmstrip frame dengan posisi yang mungkin berbeda untuk setiap frame. Dengan 3D, Anda harus berurusan dengan aset animasi yang terpisah, tulang, menguliti, dll.
  • Volume data jauh lebih tinggi. Anda harus melakukan manajemen sumber daya yang cerdas. Game dikirimkan dengan berbagai konten, tetapi konsol pasti tidak memiliki memori.
  • Pipa lebih kompleks untuk dikembangkan dan dipelihara. Anda akan memerlukan kode untuk memasukkan aset ke dalam format pilihan mesin Anda. Kode itu tidak menulis sendiri.

Seni:

  • Aset-asetnya, tentu saja, jauh lebih kompleks. Anda akan memerlukan tekstur, model, rig / kerangka, animasi, dll. Alat-alatnya jauh lebih kompleks dan mahal, dan keterampilan untuk menggunakannya lebih sulit ditemukan.
  • Perangkat keterampilan yang dibutuhkan lebih luas. Animator yang baik tidak sering merupakan seniman tekstur yang baik. Pemantik yang bagus mungkin bukan alat yang baik.
  • Ketergantungan antara aset lebih kompleks. Dengan 2D, Anda dapat mempartisi aset Anda di berbagai artis secara bersih: orang ini memang level satu, orang ini musuh, dll. Dengan 3D, animasi memengaruhi rig yang memengaruhi kerangka yang memengaruhi model yang memengaruhi tekstur yang memengaruhi tekstur yang memengaruhi pencahayaan ... Tim seni Anda harus berkoordinasi dengan hati-hati dan terus-menerus.
  • Keterbatasan teknis lebih kompleks untuk dihadapi. Dengan 2D pada dasarnya "inilah palet Anda dan ukuran sprite maks Anda". Dengan 3D, artis Anda harus menyeimbangkan ukuran tekstur (untuk beberapa tekstur: specular, warna, normal, dll.), Jumlah poligon, jumlah keyframe, jumlah tulang, dll. Khususnya mesin akan menempatkan persyaratan aneh aneh pada mereka ( "Mesin X meledak jika Anda memiliki lebih dari 23 tulang!").
  • Pemrosesan aset membutuhkan waktu lebih lama. Saluran pipa untuk mengonversi aset 3D ke format siap permainan rumit, lambat, dan sering bermasalah. Ini membuat seniman butuh waktu lebih lama untuk melihat perubahan mereka dalam permainan, yang memperlambat mereka.

Desain:

  • Input pengguna menyebalkan. Anda harus berurusan dengan pelacakan kamera, mengubah input pengguna ke ruang karakter secara intuitif, memproyeksikan pilihan 2D ke ruang dunia, dll.
  • Tingkat sulit untuk penulis. Desainer level Anda pada dasarnya membutuhkan keterampilan seorang desainer game dan seorang arsitek. Mereka harus memperhitungkan pemain yang tersesat, visibilitas, dll. Saat membangun level.
  • Fisika tingkat membosankan bagi penulis. Anda harus memeriksa dan mengecek ulang dan mengecek kembali untuk memastikan tidak ada celah dan bug dalam fisika level di mana pemain dapat terjebak atau jatuh melalui dunia.
  • Alat jauh lebih sulit. Sebagian besar game membutuhkan alat mereka sendiri untuk membuat hal-hal seperti level. Karena kontennya jauh lebih kompleks, alat-alatnya lebih sulit untuk dibuat. Itu biasanya menghasilkan alat yang buggier, tidak lengkap, dan lebih sulit untuk digunakan.

2
Jawaban yang sangat bagus. Saya berpikir ini akan lebih subyektif, tetapi Anda telah menjabarkannya dengan sangat jelas. Meskipun ada mungkin tidak menjadi aktual nomor (3.5x lebih keras), Anda sudah membuat kasus yang baik untuk urutan besarnya lebih keras.
Cyclops

5
+1 Dipaku itu. Pertanyaan ini hampir tidak subyektif. Kita berbicara tentang dua dunia yang sangat berbeda. Ada peningkatan yang melekat dalam kesulitan. Jangan mulai berpikir pada tingkat jenius ...
David McGraw

Jawaban luar biasa!
zebrabox

1
Saya melihat jawaban saya dikalahkan oleh beberapa (menggunakan kata-kata penulis) besarnya. Sungguh luar biasa sehingga saya menyandarkan banyak hal sendiri yang tidak pernah saya pikirkan sebelumnya. Kerja bagus!
Toby

Jawaban yang bagus Satu pemikiran tambahan yang saya miliki - mendukung 3D - adalah bahwa, ketika saya memulai, jauh lebih mudah untuk menemukan sumber daya yang berkaitan dengan pengembangan 3D daripada 2D. Tapi itu sudah lebih dari 5 tahun yang lalu, dan lanskap telah berubah sedikit sejak itu.
Andrew Russell

11

Jauh lebih sulit. Jika Anda tidak nyaman membuat game 2D, Anda akan BENAR-BENAR tidak suka apa yang diperlukan untuk membuat game 3D.

Berita baiknya: 99% dari waktu, Anda tidak benar-benar membutuhkannya. Pikirkan setiap game 3D yang Anda bisa. Ambil kameranya, perbaiki di langit-langit sambil melihat ke bawah sehingga Anda sekarang melihat sebuah pesawat 2D. Doom menjadi Gauntlet. Civ IV menjadi Civ I. Metal Gear Solid menjadi Metal Gear asli. Tidak satu pun dari game ini yang "buruk" hanya karena mereka 2D; mereka dapat dimainkan dengan sempurna dan umumnya memiliki banyak gameplay yang sama.


5

Sebagian besar, 3D akan memperkenalkan lebih banyak kesulitan daripada penyederhanaan. Tapi saya merasa ingin menambahkan beberapa hal yang mungkin sebenarnya lebih mudah dalam game 3D:

  • Kustomisasi pemain. Bayangkan jika Team Fortress 2 adalah platformer 2D dengan 20 animasi untuk setiap kelas. Sekarang, bayangkan direktur pemasaran Anda menyarankan Anda menambahkan topi ke permainan. Ini berarti 20 spritesheets baru untuk setiap kelas; dan itu hanya akan berkembang jika Anda memutuskan untuk menambahkan item lain-lain. Satu perusahaan tempat saya bekerja mengalami frustrasi ini.
  • Gerakan karakter. Mempertajam dan menjiwai jelas bukan tugas yang mudah, tetapi jika karakter Anda kompleks, maka pada akhirnya akan menjadi pekerjaan yang lebih mudah daripada di 2D, di mana Anda akan menggambar ulang karakter sepenuhnya untuk setiap pose. Praktis tanda keunggulan pertama dalam game 2D adalah berapa kali pembuatnya bersedia menggambar ulang karakter mereka untuk animasi tambahan.
  • Menemukan mesin. Saya bisa membuat platformer sederhana dalam waktu kurang dari satu jam dalam 3D tanpa coding sama sekali, tetapi mungkin butuh sedikit lebih lama dalam 2D. Anda pasti akan menemukan banyak mesin 2D yang bagus di luar sana setelah beberapa mencari, tapi jujur ​​tidak ada yang langsung terlintas dalam pikiran saya; hanya sedikit yang mencapai popularitas besar mereka seperti Ogre3D atau mesin 3D lainnya. Untuk 3D, ada UDK, Unity, dan jauh lebih banyak kerangka kerja yang tersedia. Sebagian dari ini mungkin karena berkurangnya kompleksitas 2D berarti bahwa tidak terlalu sulit bagi amatir untuk hanya menulis sendiri, mendasarkan pada XNA. (Plus, beberapa mesin 3D yang disebutkan dapat dibuat layak untuk membuat game 2D)

3

Ini adalah pertanyaan yang sangat subyektif, karena jawabannya tergantung pada preferensi / pengalaman / pengetahuan / kecerdasan pribadi.

Saya akan mencoba menjawab secara netral, tetapi karena saya hanya seorang programmer dan bukan seorang seniman saya hanya bisa berhipotesis untuk poin terakhir.

Kompleksitas kode seharusnya tidak jauh berbeda, kecuali dalam matematika dan mungkin render / fisika. Game Logic tidak jauh berbeda jika Anda mengambil tingkat abstraksi yang sehat (tidak terlalu banyak - Anda mencoba membuat game bukan mesin, setidaknya saya kira dari pertanyaan Anda.) Jelas jauh lebih mudah untuk menghitung pergerakan dalam 2D ​​karena Anda memiliki perspektif yang terbatas. Fisika jauh lebih sulit ketika berhadapan dengan tiga sumbu. Juga, memuat Sprite dari Bitmap jauh lebih mudah daripada memuat Model 3D (dan mungkin mengirim pesan teks).

Matematika lebih rumit untuk 3D (yang benar-benar cerdas - angka empat, vektor, matriks. 'Kata nuff)

Untuk seni, saya pikir itu pasti lebih sulit untuk 3D juga, karena Anda perlu membuat seni yang terlihat bagus dari setiap sudut pandang yang memungkinkan (atau setidaknya berbagai macam), dan Anda biasanya ingin tekstur hal-hal juga. Animasi jala bukanlah piknik untuk realistis, dan mendapatkan tekstur untuk dimainkan juga tidak.


Memuat sprite lebih mudah daripada memuat model? Model melibatkan kerangka, menguliti, shader, koordinat UV, tekstur, peta normal, dll. Sprite adalah gambar. Mengikuti sia-sia itu, seni 3D jauh lebih sulit, karena hal-hal yang tercantum di atas.
Sean James

Maaf, itu kesalahan. cukup besar juga, terima kasih sudah menunjukkannya. Pasti sangat hambar sehingga tidak mendaftar ketika saya mengoreksi.
Toby

3

Hal lain yang perlu dipertimbangkan ... dengan game 3D, Anda mungkin ingin mempertimbangkan untuk menggunakan mesin yang sudah ada sebelumnya dan berkonsentrasi untuk membuat game bukan mesin. Dapat mengurangi waktu dan kesulitan yang diambil dalam game 3D (seperti yang diidentifikasi dengan sangat baik oleh munificent).

Jauh lebih mudah untuk membangun permainan 2D. Tapi jelas Anda dapat (dan harus mempertimbangkan) menggunakan sprite, suara, portabilitas perpustakaan juga. Tidak ada gunanya menciptakan kembali roda kecuali untuk tujuan pendidikan.

Tampak jelas - tetapi saya pikir itu layak untuk dikatakan.


2

Izinkan saya menawarkan satu pertimbangan menarik untuk perangkat seluler di mana kinerja 2D sebenarnya dapat tertinggal dari model-model rendah poli 3d:

1) Tingkat pengisian dapat menyebabkan sedikit masalah kinerja ketika berhadapan dengan banyak sprite di layar pada waktu tertentu.

2) Persyaratan memori tekstur untuk gim 2D yang lebih sempurna sebenarnya jauh lebih tinggi jika Anda menggunakan animasi berbasis bingkai. Setiap frame karakter tunggal menghancurkan total anggaran tekstur Anda secara linier. Ini berarti bahwa jika Anda menggunakan animasi flipbook sederhana, Anda sebenarnya memiliki anggaran animasi yang lebih terbatas daripada yang Anda lakukan dengan animasi 3D berbasis kerangka.

Toolkit seperti Spine membantu meratakan medan bermain ini sedikit dengan membuat deformasi tekstur 2d.


Jadi, mengingat ini, dan kemudahan akses Unity dan UDK yang sama-sama mengekstrak banyak kerumitan pengembangan game yang ada tahun lalu untuk 3D, jawabannya tidak begitu lurus ke depan.


Saya sarankan tidak menabrak posting lama seperti ini dengan detail baru. Jawaban teratas saat ini masih sangat berlaku, dan pertanyaan ini tidak benar-benar perlu ditabrak ke halaman pertama.
Pip

2
Saya ditautkan oleh rekan kerja hari ini, dan karena penambahan saya pada jawaban ini sebenarnya sudah akurat selama bertahun-tahun, saya pikir tidak masalah. Tidak ada yang salah dengan menambahkan pertanyaan lama ke informasi relevan baru! Kebanyakan orang menggunakan google sebagai antarmuka untuk stack overflow, sehingga bahkan item yang sangat lama dapat muncul dalam pencarian yang relevan hingga hari ini.
M2tM

1

Itu tergantung pada pengembang game. Bagian yang menghabiskan waktu adalah membuat aset game. Jika Anda merasa lebih mudah bagi Anda untuk membuat aset ini dengan ilustrator dan Photoshop maka 2D lebih mudah bagi Anda, tetapi jika Anda tahu pemodelan 3D mungkin Anda setuju dengan saya bahwa 3D jauh lebih mudah daripada 2D.

Mengenai animasi, pasti 3D lebih mudah dan lebih cepat dan lebih mudah untuk dikelola.

Misalnya saat dalam 3D Anda dapat membuat semua animasi untuk karakter dalam beberapa jam dalam satu adegan, dalam 2d Anda harus menggambar karakter dari awal untuk setiap kegiatan yang seharusnya dilakukan dan menyimpan banyak file, dibutuhkan hari dalam 2D vs. jam dalam 3D.

Juga jika Anda mengubah sesuatu, Anda harus mengulang semuanya dalam 2D, tetapi Anda tidak harus mengubah semuanya misalnya jika Anda memutuskan karakter Anda tidak boleh memiliki topi. Anda tidak perlu mengulang semua animasi yang baru saja Anda hapus topi dalam 3D.

Jika Anda memiliki karakter humanoid, ada ribuan animasi mo-cap gratis. Sebagian besar waktu Anda tidak perlu membuat animasi untuk gim Anda.

Mengenai kompleksitas dan pemrograman tidak ada perbedaan.

Tetapi Anda harus mengenal 3D dengan baik, jika tidak Anda akan berakhir di mesin gim animasi Anda berbeda dari aplikasi 3D Anda atau kepala karakter Anda berputar ke arah sebaliknya dan Anda tidak tahu bagaimana menyelesaikan masalah, dan beberapa gangguan lainnya.

Anda juga harus terbiasa dengan pemodelan poli rendah untuk game dan bagaimana melakukan texturing untuk game, itu berbeda dari pemodelan dan texturing untuk animasi.

Omong-omong, Berlawanan dengan kepercayaan populer, 3D tidak terlalu menuntut perangkat keras untuk perangkat seluler.

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.