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?
Jawaban:
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
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.
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.
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)
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
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.
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.
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.
sumber
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).
sumber
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.
sumber
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.
sumber