"Pro" utama dari Uinty3D adalah sangat cepat. Saya tidak berbicara tentang kinerja di sini, tetapi tentang kecepatan pengembangan. Kamu punya:
- Pipa aset terpadu. Tidak perlu menghabiskan waktu pada subsistem sumber daya sama sekali, tidak ada rutinitas impor kereta untuk menulis dan memperbaiki: cukup masukkan file ke folder, dan itu berfungsi.
- Editor tingkat terintegrasi. Tidak perlu menghabiskan waktu untuk alat level: langsung saja ke bisnis.
- Dukungan tweaker dan debugging yang hebat: semua variabel gameplay Anda ditampilkan tepat saat Anda bermain, dan dapat diubah dengan cepat juga - dan semua ini tanpa menulis satu baris kode pun. Hentikan permainan kapan saja, atau selesaikan kode satu pernyataan pada satu waktu.
- Pustaka yang cukup komprehensif tentang komponen yang sudah jadi. Rendering, suara, fisika, kontrol - banyak kode "boilerplate" sudah ditulis.
- Mono sebagai host skrip. Sementara orang dapat berdebat tentang manfaat C # sebagai bahasa, perpustakaan kelas dasar Mono menawarkan banyak fungsi. Koleksi, I / O, multithreading, dan LINQ yang sangat ekspresif semuanya mempercepat pengembangan secara signifikan.
Juga, Unity3d sangat bagus di banyak platform. Tentu saja, Anda tidak dapat membuat, katakanlah, game windows .exe dan kemudian secara ajaib memilikinya "hanya berfungsi" pada iPhone; tapi Unity mendekati itu. Yang diperlukan adalah "mengutak-atik" lebih dari "porting".
Tentu saja, dalam beberapa kasus Unity3D tidak ideal. Multiplayer jaringan yang terintegrasi dalam Unity adalah OK untuk beberapa bermain LAN peer-to-peer, tetapi apa pun yang membutuhkan server pusat cukup banyak mengharuskan Anda menulis semua kode jaringan dari awal. Sistem GUI Unity cukup unik dan lambat, sehingga membuat GUI dalam game yang rumit itu menyusahkan. Namun, semua sistem GUI gim lain yang saya lihat juga menyakitkan, jadi Unity tidak terlalu buruk secara keseluruhan.
Dan, tentu saja, Unity3D sedikit kurang fleksibel daripada "mesin game" seperti OGRE, yang hanya menawarkan pustaka / kode sumber. Kinerjanya tidak benar-benar top-notch, dan karena Anda hanya memiliki kotak pasir scripting, Anda tidak dapat menggunakan beberapa hack tingkat rendah yang pintar untuk memperbaikinya. Misalnya, jika renderer pohon bawaan Unity tidak memuaskan Anda karena alasan tertentu, Anda tidak dapat menulis sendiri (well, Anda bisa, tetapi itu akan bekerja melalui skrip dan kemungkinan besar terlalu lambat dan terlalu banyak kerumitan ). Namun, dimungkinkan untuk melakukan apa saja dengan Unity selama Anda tidak keberatan kehilangan sedikit kinerja.
"Kon" terbesar dari Unity3D, adalah kontrol sumber. Seperti yang telah disebutkan, Aset Server Unity sendiri harganya cukup mahal. Dan itu menyebalkan, benar-benar, sangat sulit. Bahkan tidak bercabang. Sementara Unity3D secara teoritis mendukung sistem SCM pihak ke-3, menggunakannya juga dilengkapi dengan bahaya. Saya telah melihat pengaturan impor "secara ajaib" berubah setelah SVN melakukan, atau parameter semua objek hilang setelah menggunakan Perforce. Semua ini dapat dikerjakan, tapi bagaimanapun, Unity3D + Kontrol sumber = rasa sakit.
Jadi, untuk benar-benar menjawab pertanyaan Anda. Saya percaya Unity3D adalah salah satu yang terbaik, jika bukan yang terbaik, pilihan mesin gim untuk gim "kecil". Terutama di tahap prototipe.
Yang mengatakan, jika kita berbicara tentang proyek pendidikan, saya sarankan menentangnya. Untuk mempelajari cara permainan bekerja, lebih baik menulis satu pada level serendah mungkin. Mesin gim adalah alat yang hebat; tetapi untuk menggunakannya untuk keuntungan maksimal, perlu dipahami bagaimana cara kerjanya, dan mengapa mereka bekerja seperti itu. Dan cara terbaik untuk mempelajari ini adalah menulis mesin gim Anda sendiri - meskipun pada akhirnya hasilnya jelek.