Apa batasan Persatuan yang paling serius? [Tutup]

30

Setelah membaca pertanyaan panas ini tentang Unity vs UDK vs ID sesuatu, saya ingin tahu: apa yang paling sering terjadi, keterbatasan Unity yang paling melumpuhkan?

Untuk menjaga agar pertanyaan ini tidak subyektif, sekali lagi, saya sedang berbicara tentang pelanggar berulang atas Unity. Ini adalah sesuatu yang, sebagai pengguna Unity, Anda benar-benar berharap seseorang memberi tahu Anda sebelum Anda mulai menggunakannya.

Saya telah mendengar dari seseorang bahwa Unity tidak berurusan dengan baik dengan kontrol versi, karena ia menghasilkan banyak file biner (yang tidak dapat difabel). Bagi saya, ini tidak terlalu melumpuhkan karena saya bekerja sendiri.

Pikiran?

ashes999
sumber
1
DV tetapi tidak ada komentar, dan pada pertanyaan 2.5yo? Mengapa demikian?
ashes999
Mungkin hanya tersandung secara acak. Pertanyaan ini jelas berdasarkan opini sejak awal. Mengatakan "Untuk menjaga pertanyaan ini tidak subyektif" tidak menjadikannya tidak subyektif karena pelaku berulang yang paling menjengkelkan menurut Anda tidak akan sama dengan pelaku teratas pengguna berikutnya. Daftar tersebut memiliki sedikit atau tidak ada nilai dan hanya membantu untuk menegakkan mitos, misalnya bagaimana jika semua orang mengatakan "X adalah satu hal" tapi X akan tetap dalam Unity memperbarui seminggu kemudian belum jawaban atas peringkat mungkin tetap diedit dengan "X adalah masalah BESAR "di atas daftar mereka bahkan bertahun-tahun kemudian.
LearnCocos2D
Plus, jawaban mana yang dapat diterima sebagai jawaban yang benar ? Jika Anda berpikir tentang hal itu, tidak ada jawaban harus diterima sebagai satu jawaban karena tidak ada cara yang tepat untuk menjawab pertanyaan ini. Itu mungkin indikator # 1 dari pertanyaan subjektif.
LearnCocos2D

Jawaban:

33

Saya perkenalkan ini bahwa orang-orang Persatuan telah cukup baik dalam mendengar keraguan utama yang dihadapi komunitas mereka dan akhirnya mendapat janji untuk memperbaiki hal-hal. Ada juga banyak masalah yang hanya muncul pada platform tertentu atau masalah preferensi pribadi atau masalah tertentu dari gim yang sedang Anda kerjakan.

Yang telah dibilang:

1) Integrasi kontrol sumber yang buruk dan alat tim besar. Seperti yang Anda sebutkan, banyak file biner non-difabel. Editor mengabaikan flag hanya baca untuk file adegan. File aktual yang harus Anda periksa tidak segera jelas. Beberapa di antaranya sedang diperbaiki di 3.5 dengan integrasi SVN dan P4. Ada juga janji format adegan berbasis teks. UPDATE: Format adegan berbasis teks sekarang tersedia di versi Pro Unity. Lihat di sini .

2) Alat UI sentris programmer yang lambat. Setiap widget adalah panggilan undiannya sendiri, yang memiliki banyak overhead pada platform seluler. Tidak ada konsep hal-hal seperti panel dengan animasi dan semua hal mewah lainnya yang membuat UI terasa nyaman tanpa menggulirkannya sendiri. Ada janji sistem UI baru pada peta jalan (3.6?). Ada beberapa alat pihak ketiga tetapi tidak bagus.

3) Pengeditan partikel yang benar-benar belum sempurna. Mereka menjanjikan sistem berbasis kurva baru di 3,5, meskipun. PEMBARUAN: Sistem berbasis kurva ini, yang disebut Shuriken, sekarang tersedia. Lihat di sini .

4) Anda tidak bisa membuat prefab sarang. Masalah kecil tetapi ketika Anda terbiasa bekerja dengan sistem cetakan dan semua kekuatan yang diberikannya kepada Anda, itu bisa membuat Anda frustrasi. Ini telah dijanjikan tetapi tidak ada tanggal yang spesifik. UPDATE: Anda sekarang dapat membuat cetakan.

5) Di samping mustahil untuk mendapatkan game iOS di bawah batas udara. Biner saja seperti 8 MB dalam skenario kasus terbaik. Ini bukan sesuatu yang mudah diperbaiki.

6) Null pengecualian pengecualian platform crash yang tidak memungkinkan kode JIT dikompilasi. Pada versi mandiri atau web, NRE ditangkap. Ini masih pengecualian, tetapi setidaknya aplikasi akan mencoba untuk terus berjalan. Di iOS, perangkat mengalami kerusakan. Anda bisa meletakkannya dalam mode debug dan menangkap beberapa jenis pengecualian, tetapi kinerjanya terganggu.

7) Saat mengerjakan game multi platform, setiap kali Anda mengganti target bangunan, Anda harus mengimpor ulang semuanya dan itu membutuhkan waktu lama. Saya telah mengatasinya dengan sebenarnya hanya memiliki beberapa salinan proyek pada disk. Rupanya ada server aset impor yang masuk dalam 3,5.

Tetrad
sumber
1
@iamcreasy, Sesuaikan diri Anda, DUDE. "Sementara Dropbox berfungsi sebagai layanan penyimpanan, fokusnya adalah pada sinkronisasi dan berbagi. Ini mendukung riwayat revisi, sehingga file yang dihapus dari folder Dropbox dapat dipulihkan dari komputer yang disinkronkan apa pun. [33] [34] Kontrol versi Dropbox juga membantu pengguna tahu sejarah file yang sedang mereka kerjakan, memungkinkan lebih dari satu orang untuk mengedit dan memposting ulang file tanpa komplikasi kehilangan bentuk sebelumnya. [35] Riwayat versi dibatasi hingga 30 hari. Opsi berbayar untuk riwayat versi tanpa batas yang disebut "Pack-Rat" tersedia. " -Wikipedia
Engineer
6
Mungkin saya bersikap tidak adil, tapi saya pikir NullReferenceExceptions adalah kesalahan programmer; Anda harus memeriksa parameter yang masuk. Tentu saja, itu akan lebih mudah untuk ditegakkan jika kita memiliki semacam tambahan analisis kode untuk MonoDevelop seperti yang Anda dapatkan di VisualStudio ...
chrish
1
@ ashes999 Selalu ada beberapa istilah yang harus Anda pelajari, dengan teknologi baru. Kata-kata adalah pegangan kami pada konsep. Hal yang sama berlaku bahkan untuk Flash dasar. Hype sekitar kegunaan Unity bukan untuk apa-apa. Ini menurunkan hambatan untuk masuk untuk pengembang non-profesional, dan memungkinkan pro untuk melakukan jauh, jauh lebih banyak dengan jauh lebih sedikit. Jangan terlalu khawatir tentang batasan yang seharusnya. Kemungkinannya kebanyakan dari mereka bahkan mungkin tidak menjadi penghalang bagi Anda. Satu-satunya hal yang saya khawatirkan adalah pengecualian null pointer, dan itu bisa debuggable.
Insinyur
3
Bagaimana jawaban Tedrad sekarang di Unity 4.1.x? Apakah ada yang tahu?
Sil
1
Ketika Anda mengatakan 'Anda sekarang dapat membuat cetakan rumah' Apa yang Anda maksud? Mungkin fungsi ini telah dihapus sejak pertanyaan terakhir diedit? Atau Anda mengacu pada addin ini ?
NauticalMile
6

Ketika saya dan seorang teman evalutad Unity untuk proyek yang lebih besar, kami menemukan bahwa salah satu masalah yang lebih besar adalah kinerja dengan pengerjaan perangkat lunak mereka. Jika saya ingat benar, kami memiliki sesuatu seperti 10 objek animasi dengan masing-masing sekitar 1000 verts dan saya mendapat 20fps saat menggunakan komputer midend ... Tidak terlalu bagus ...

Cpt. Merah
sumber
Sudah berapa lama ini? Sepertinya hampir setiap versi ada sesuatu dalam catatan rilis tentang peningkatan kinerja skinning. Pada wajah di iOS mereka beralih dari melakukan skinning GPU untuk menggunakan FPU karena itu jauh lebih cepat.
Tetrad
Itu sebulan yang lalu ...
Cpt.
6

Masalah nomor satu saya adalah kontrol versi ulang. Solusinya? Cukup gunakan DropBox untuk proyek Unity. Asalkan Anda mengaturnya dengan benar (yaitu membayar untuk layanan "PackRat" mereka), itu mempertahankan riwayat revisi. Ini juga jauh lebih mudah untuk berkolaborasi dengan desainer, dengan cara ini, yang tidak ingin tahu tentang kontrol versi tradisional, DropBox memberi mereka solusi transparan. The downside adalah percabangan / penggabungan tidak benar-benar didukung dalam cara mereka misalnya. git, SVN.

Bagi mereka yang ragu ...

Sementara Dropbox berfungsi sebagai layanan penyimpanan, fokusnya adalah pada sinkronisasi dan berbagi. Ini mendukung riwayat revisi, jadi file yang dihapus dari folder Dropbox dapat dipulihkan dari komputer yang disinkronkan. [33] [34] Kontrol versi Dropbox juga membantu pengguna mengetahui riwayat file yang saat ini sedang mereka kerjakan, memungkinkan lebih dari satu orang untuk mengedit dan memposting ulang file tanpa komplikasi kehilangan bentuk sebelumnya. [35] Riwayat versi dibatasi hingga 30 hari. Opsi berbayar untuk riwayat versi tanpa batas yang disebut "Tik Tik" tersedia.

Lihat di sini untuk referensi yang solid dari forum Unity.

Selain itu, satu-satunya hal yang saya anggap mengganggu tentang Unity adalah tidak memiliki titik masuk aplikasi seperti halnya C (main ()) atau AS3 (kelas dokumen). Tapi Anda hanya menempatkan aplikasi Anda di GameObject kosong, bukan masalah besar. Aliran kode sedikit berbeda di sekitar struktur yang melekat ini, juga, tapi sekali lagi, tidak ada yang terlalu sulit untuk ditangani.

Mengenai lisensi, kebanyakan orang tidak menyadari (dan saya terutama merujuk pada operasi indie kecil dan penggemar yang mungkin tidak memiliki uang untuk membayar lisensi pro dan addon manajer aset) bahwa Anda dapat melakukan apa saja yang Anda bisa pernah ingin dengan edisi dasar / gratis. Sungguh, itu bukan penghalang besar, tim Unity telah sangat murah hati.

Insinyur
sumber
1
Dropbox, ya. Tapi +1 - ini pada dasarnya adalah apa yang saya cari.
ashes999
Hehe, saya pikir pengembang mana pun akan merasakan hal yang sama. Tapi hei, jika itu berhasil ...
Insinyur
2
Kami menggunakan Git dengan Unity. Dibutuhkan sedikit kerja untuk mengatur file .gitignore, tetapi berfungsi, dan memberikan set fitur VCS lengkap.
Kylotan
2
Kami menggunakan Mercurial (dengan BitBucket) dengan Unity dan berfungsi dengan baik setelah Anda mengonfigurasi file .hgignore dengan benar.
JD
@JD (& Kylotan) - Bagaimana Anda menyiasati masalah dengan file adegan yang tidak dapat digabungkan?
UpTheCreek
6

Saya memikirkan batasan utama lain yang mengganggu saya setiap hari jadi saya akan memposting ini secara terpisah.

Unity3D ingin Anda mengedit skrip Anda di MonoDevelop, khususnya versi lama MonoDevelop yang mereka distribusikan. Fungsionalitas "Find In Files" versi ini rusak, karena menggunakannya biasanya menyebabkan IDE hang, menjadikannya tidak berguna.

Ini akan menjadi iritasi besar pada mesin apa pun, tetapi ini merupakan iritasi besar pada Unity karena mendorong sistem komponen terpisah yang sangat terdesentralisasi yang bekerja pada berbagai objek game. Tetapi bagaimana Anda bisa mengetahui komponen mana yang mengakses properti mana jika Anda bahkan tidak bisa mencari di berbagai komponen?

EDIT: Jawaban ini diposting pada tahun 2011: bug Find In Files diperbaiki beberapa waktu lalu, untungnya. Dan seperti yang dikatakan komentator, Anda dapat mengedit kode Anda di editor lain (meskipun pilihan Anda terbatas jika Anda ingin dapat berjalan di debugger).

Kylotan
sumber
1
Untuk apa nilainya, Anda dapat menggunakan IDE apa pun yang Anda inginkan dengan Unity (Saya menggunakan Visual Studio Pro). Tetapi jika Anda ingin menggunakan debugger Anda terbatas pada MonoDevelop.
Tetrad
1
Ya, debugger itu cukup penting (meskipun MonoDevelop tidak begitu bagus). Plus, sayangnya dikatakan tidak bekerja dengan Visual Studio Express. Saya tidak tahu adanya C # IDE lain yang digunakan orang. Tapi sungguh, yang dikirimkan dengan Unity harus dalam kondisi yang lebih baik.
Kylotan
Anda juga dapat menggunakan editor teks lain seperti Sublime Texthttp: //wiki.unity3d.com/index.php/Using_Sublime_Text_as_a_script_editor
Terrance
Saya belum mencobanya, tetapi saya sudah membaca bahwa sekarang ada cara untuk menggunakan Visual Studio untuk debugging (melalui plugin, saya pikir). Mungkin ini hanya untuk versi Pro, saya tidak yakin.
Christian
FWIW, UnityVS membuat integrasi Visual Studio jauh lebih lancar. Anda dapat men-debug, melangkah, dll.
Dasar
5

Bagi saya batasan paling serius adalah di EULA:

"Batasan Perjudian Anda tidak boleh mendistribusikan atau menerbitkan Konten Penerima Lisensi apa pun sehubungan dengan Kegiatan Perjudian apa pun tanpa lisensi terpisah dari Unity."

Ini berarti bahwa sejak v4.0, Anda tidak dapat menggunakan Unity untuk game yang melibatkan uang tunai / kesempatan, kecuali Anda atau klien Anda siap untuk membayar biaya lisensi tambahan yang dinegosiasikan berdasarkan kasus per kasus. Yaitu mereka melihat berapa banyak Anda layak dan pajak Anda sesuai, dengan 6 angka dikutip.

Yang lebih mengganggu adalah siapa yang tahu apa yang akan mereka tambahkan ke v5 EULA. Mungkin semua game sosial? Mungkin semua game multi-pemain?

Setiap pengembang yang menggunakan Unity beresiko ditahan untuk mendapatkan tebusan di masa mendatang.

John Little
sumber
4
Setiap alat atau perangkat lunak pihak ketiga dapat menambah (atau menghapus) klausa EULA dalam versi baru. Saya tidak benar-benar melihat bagaimana itu khusus untuk Unity. Lebih jauh, tanpa bukti yang mendukung, rasanya aneh untuk mengklaim bahwa klausa tanpa judi cukup serius untuk menjadi batasan paling lunak dari perangkat lunak pada umumnya, yang coba dijawab oleh pertanyaan awal (yang diakui sekarang di luar topik). Kecuali jika sebagian besar permainan Persatuan dibuat dengan mengandalkan perjudian sebagai fitur inti, jawaban ini lebih mirip kata kasar.
Josh
4

Pertanyaan bagus. Bagi saya, masalah terbesar adalah GUI. Saya tidak keberatan itu menjadi programmer-centric, tapi saya keberatan dengan cara mengerikan di mana objek GUI adalah fungsi daripada objek, dan bahwa penanganan GUI semuanya dimasukkan ke dalam satu panggilan fungsi yang digunakan untuk rendering dan untuk penanganan event, dan bahwa tidak ada integrasi dengan sistem input (artinya klik pada elemen GUI dapat diartikan sebagai klik di dunia), dll.

Masalah sekunder adalah kurangnya dukungan kontrol versi yang memadai (sebagian besar karena sistem menggunakan tata letak direktori sebagai tata letak proyek, yang membingungkan VCS ketika Anda memindahkan atau mengganti nama hal-hal), tetapi ini dapat diselesaikan dan bukan masalah untuk semua orang.

Kylotan
sumber
Anda dapat meminta sistem GUI untuk melihat apakah klik dikonsumsi olehnya, dan kemudian mengabaikan klik di kode pengambilan objek dunia Anda. Tidak praktis, tetapi berhasil.
Sean Middleditch
Bagaimana Anda akan melakukannya?
Kylotan
Ada properti pada objek sistem input untuk mendapatkan id elemen "panas", yang akan menjadi nol jika tidak ada elemen GUI di bawah kursor. Lupakan nama properti yang tepat, harus dalam referensi skrip kesatuan.
Sean Middleditch