Kami sedang mengerjakan proyek sekolah kami dengan Unity3d, karena mereka menggunakan Siwa tahun sebelumnya (yang tampaknya mengerikan bagi saya), dan saya ingin tahu sudut pandang Anda untuk alat ini.
Pro:
- multi platform, saya bahkan mendengar Google akan mengimplementasikannya di Chrome
- semua yang Anda butuhkan ada di sini
- bahasa scripting menjadikannya pilihan yang baik bagi orang-orang yang tidak memprogram guru
Cons:
- multipemain?
- kepemilikan, Anda benar-benar bergantung pada persatuan dan batasnya dan tidak dapat memperpanjangnya
- itu kurang "membuat game dari awal"
- C ++ akan menjadi hal yang keren
Saya benar-benar berpikir alat semacam ini menarik, tetapi apakah itu layak untuk digunakan di sekolah untuk proyek yang melibatkan lebih dari 3 orang pemrograman? Apa yang sebenarnya kita pelajari dalam hal pemrograman dari penggunaan alat semacam ini (saya baik-baik saja dengan python dan js, tapi saya benci C #)? Kita bisa menggunakan Ogre sebagai gantinya, bahkan jika kita belajar langsung x mulai Januari ...
Jawaban:
"Pro" utama dari Uinty3D adalah sangat cepat. Saya tidak berbicara tentang kinerja di sini, tetapi tentang kecepatan pengembangan. Kamu punya:
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.
sumber
Saya akan mulai dengan mengomentari daftar Anda:
Scripting bukan hanya bermanfaat bagi non-programmer. Menjadi seorang programmer (baik) lebih dari sekedar mengetahui bahasa, tetapi juga mengetahui cara mendekonstruksi masalah dan berpikir dengan cara tertentu. Bahasa scripting dapat memungkinkan seorang programmer untuk meningkatkan keterampilan berpikir kritis tingkat tinggi untuk menghasilkan hasil yang lebih kuat, lebih menarik dalam waktu yang lebih sedikit daripada yang dia mungkin perlu untuk menghasilkan hasil yang setara sementara juga khawatir tentang rincian tingkat yang lebih rendah bahwa beberapa bahasa (C ++ datang ke pikiran) memaksa ke dalam gambar.
Dukungan multi-pemain (atau ketiadaannya) hanya merupakan masalah, jika proyek Anda membutuhkannya.
Saya gagal melihat bagaimana "hak milik" adalah penipu. Jika ini adalah proyek sekolah, Anda mungkin tidak ingin menghabiskan waktu meretas sumber kerangka yang Anda gunakan, atau apa pun. Selain itu, DirectX juga eksklusif.
Sama sekali tidak ada yang salah dengan menggunakan kerangka kerja tingkat tinggi atau alat-alat seperti Unity. "Membuat game dari awal" adalah sebuah pencapaian - apa yang sebenarnya Anda pertimbangkan "dari awal?" Anda masih akan menggunakan API grafik orang lain. Runtime orang lain (bahkan C membutuhkan pustaka runtime). "Membuat game" adalah apa yang mendapat penghormatan, bukan "membuat game tanpa menggunakan alat yang berguna."
C ++ menjadi hal yang "keren" agak subyektif. Bahasa ini sangat sering digunakan oleh para profesional di industri ini, tetapi mungkin bukan karena alasan yang Anda pikirkan. Sebagai bahasa, ia mulai menunjukkan usia dan bisa sangat rumit dibandingkan dengan pilihan yang lebih modern. Bagaimanapun, bahasa hanyalah alat dan pemrogram yang baik harus dapat mengambil yang baru dengan relatif mudah.
Keuntungan besar menggunakan Unity untuk proyek sekolah Anda adalah bahwa itu adalah kerangka kerja tingkat tinggi dengan banyak pekerjaan infrastruktur yang sudah siap untuk Anda - ini akan memungkinkan Anda untuk fokus pada permainan Anda dan bukan membangun fondasi. Anda mungkin memiliki jendela yang relatif terbatas untuk menghasilkan permainan ini sehingga semakin Anda dapat memanfaatkan alat yang ada, semakin banyak waktu Anda harus menghasilkan logika atau aset yang khusus untuk permainan Anda dan akan membuat permainan Anda terlihat dan terasa. lebih lengkap - ada kurva belajar untuk Unity, tetapi Anda berakhir dengan lebih banyak yang Anda inginkan lebih cepat.
Kerugiannya adalah Anda berpotensi menenggelamkan waktu untuk mempelajari alat khusus yang melibatkan pengetahuan yang mungkin tidak dapat ditransfer, terutama jika Anda memutuskan bahwa alur kerja dan lingkungan Unity tidak cocok untuk Anda dan Anda tidak ingin menggunakannya lagi . Juga, Unity tidak memiliki alur kerja 2D yang paling jelas - itu sangat fokus pada game 3D, yang mana semua overhead dalam aset seni yang cenderung terlibat. Tapi saya pikir, untuk proyek sekolah seperti yang Anda gambarkan, Unity adalah pilihan yang cukup bagus.
sumber
Satu masalah utama dengan Unity adalah kontrol sumber. Jika Anda tidak bekerja dalam tim, ini tidak akan terlalu berarti (bisa dibilang), tapi itu kemungkinan besar tidak akan menjadi masalah.
Anda dapat menggunakan Unity Asset Server, tetapi itu membutuhkan 1) Unity Pro ($ 1500), dan 2) Lisensi Asset Server per kursi ($ 500). Saya berasumsi Anda bisa mendapatkan semacam diskon pendidikan, tetapi itu tidak gratis.
Atau, Anda dapat menggunakan sesuatu seperti SVN dengan Unity. Untuk mendukungnya dengan benar, Anda masih memerlukan Unity Pro.
Anda tidak dapat benar-benar hanya memeriksa versi Un-pro dari Unity ke SVN dan mengharapkannya berfungsi dengan sempurna. Mekanisme mereka untuk mengikat GUID ke aset dan sebagainya tidak aman bagi SCM.
Fungsionalitas multipemain cukup baik, meskipun jujur saja saya belum mengirim game dengannya. Secara teori Anda hanya melampirkan pandangan jaringan untuk hal-hal dan katakan apa yang ingin Anda serialkan untuk mengatur replikasi dengan benar. Dari sana beberapa UI bekerja untuk terhubung ke rekan-rekan lain dan mengatur. Meskipun demikian, sebagian besar peer-to-peer. Anda mungkin dapat melakukan pemrograman klien / server menjalankan kesatuan dalam mode tanpa kepala, tapi saya belum mengacaukannya. Tetapi hanya dengan mengajak orang A berlarian di layar orang B cukup mudah dan cepat untuk dilakukan.
Juga C # adalah positif sejauh yang saya ketahui. LINQ sangat ekspresif. Ini memiliki pengecualian penanganan dan pengumpulan sampah. Ini memiliki paradigma yang jauh lebih modern seperti delegasi, lambdas, antarmuka dan dukungan generik yang lebih baik daripada C ++. ( Sunting : ini jelas kontroversial. Maksud saya adalah bahwa C # bukan bahasa yang buruk . Saya tidak ingin terlibat dalam perdebatan panjang tentang pro dan kontra bahasa vs. C ++.)
Namun, positif terbesar menggunakan Unity, mungkin adalah jalur seni. Anda dapat mengambil file PSD atau Max (dengan asumsi Anda telah menginstal 3ds maks) di folder dan itu akan diimpor.
sumber
for ( auto x : xs )
.Pembaruan: Unity sekarang menyediakan semua fitur ini bahkan dalam versi gratis, jadi harap abaikan jawaban di bawah ini.
Sesuatu yang patut dicatat - jika Anda menggunakan versi gratis Unity3D Anda tidak akan dapat menggunakan beberapa efek, termasuk shader pasca-pemrosesan (seperti mekar) dan, yang lebih penting, bayangan dinamis. Ini jelas tidak akan banyak berpengaruh pada alur kerja untuk proyek, tetapi mereka menempatkan kendala pada apa yang dapat dicapai secara gratis dengan mesin.
sumber
Jawaban Nevermind mencakup hal-hal dengan cukup teliti, tetapi hanya untuk mencari di sisi kendali sumber dari berbagai hal, sebenarnya tidak begitu mengerikan ketika Anda belajar untuk mencari beberapa gotchas:
Jika Anda ingin lebih detail tentang poin-poin ini, saya memposting beberapa saat yang lalu tentang penggunaan git dengan Unity berdasarkan pengalaman saya pada beberapa proyek Unity yang cukup besar: http://goo.gl/ivJVR
sumber
Sebenarnya. Multiplayer didukung. Ini hanya masalah memilih server yang ingin Anda jalankan gim Anda.
Yang paling populer di pasaran sekarang adalah "SmartFox Server" mereka menawarkan beberapa paket berbeda, yang semuanya gratis (sampai batas tertentu). Ini hanya gratis jika Anda berencana memiliki jumlah pemain tertentu, karena setiap paket memungkinkan sejumlah pemain untuk "gratis".
Jika Anda memilih untuk meningkatkan, harganya cukup mahal untuk pengembang indie. Jadi ... Dalam jangka panjang, jika Anda memiliki banyak pemain di server maka Anda harus membebankan biaya untuk permainan daripada mengunggahnya di situs-situs seperti Download.com sebagai permainan lengkap gratis. Ini mungkin bukan masalah bagi sebagian orang, tetapi kebanyakan dari kita tidak mampu membeli $ 2.500 dari kantong untuk server.
Misalnya - SmartFox pro memungkinkan 20 pemain gratis. Jika Anda ingin memutakhirkannya akan dikenakan biaya 500 Euro, yang sedikit lebih banyak di AS, sekitar 600-700, dan itu memungkinkan untuk 100 koneksi.
Pembaruan berikutnya adalah untuk jumlah maksimum 500 pemain, dan itu adalah 1.000 Euro, tapi ... Anda tidak harus membayar 1000, Anda membayar selisihnya.
Jadi, Anda harus membayar hanya 500 Euro lebih banyak, daripada 1000 keseluruhan. Peningkatan terakhir mendukung jumlah koneksi yang tidak terbatas, untuk 2.000 Euro. Yang hampir $ 3.000 AS.
Jadi, jika Anda meningkatkan dari 500 koneksi, Anda membayar 1.000 Euro, jika Anda meng-upgrade dari 100 koneksi Anda membayar 1.5000 Euro, dan tentu saja, 2.000 Euro untuk ditingkatkan dari gratis.
Selain itu, server ini sangat mudah disetel dengan Unity dan ada banyak video tutorial tentang cara melakukannya di Youtube.
sumber