Unity3D, berapa banyak kode yang Anda tulis? [Tutup]


16

Saya ingin tahu alur kerjanya saat membuat game di Unity3D?

Apakah ini menghasilkan banyak kode untuk Anda?

Pemahaman saya adalah bahwa Anda menggambarkan permainan di Unity dan melakukan scripting di bagian belakang untuk melakukan logika. Jenis seperti Anda menggunakan Unity untuk menggambarkan boneka dan Anda menggunakan bahasa scripting sebagai master boneka.



2
Anda mungkin ingin memposting pertanyaan ini di UnityAnswers . Anda akan mendapatkan respons yang jauh lebih baik karena lebih berpusat pada kesatuan
Joe the Person

Jawaban:


18

Unity3D terdiri dari mesin game plus editor 3D (yang belum sempurna). Ini menyediakan jerat, tekstur, shader, medan, kamera, animasi, sistem partikel, sampel audio, dan jenis objek lainnya yang berguna dalam video game. Ini termasuk PHYSX (mesin fisika berpemilik yang dimiliki oleh Nvidia), dan Mono (implementasi open source dari Common Language Runtime, alias .NET).

Berapa banyak dari ini yang Anda gunakan terserah Anda. Anda dapat mewakili semua struktur data Anda sebagai objek Unity, membangun dunia Anda di editor Unity, menghidupkan fisika, dan membiarkan acara mengikuti kursus mereka, dengan minimal scripting. Atau, Anda dapat mematikan mesin fisika, membangun dunia Anda secara algoritmik, dan secara eksplisit memprogram semua perilaku dan fisika objek.

Anda dapat memilih untuk memprogram perilaku sepenuhnya dalam Mono (menggunakan salah satu bahasa C #, JavaScript, atau Boo), atau Anda dapat menuliskannya dalam bahasa lain dan menautkannya dengan proyek Unity Anda. (Integrasi sebenarnya dengan objek game harus melalui Mono, tetapi ini bisa menjadi lapisan yang cukup tipis jika Anda suka.)

Alur kerjanya hampir sama dengan mesin game mana pun. Artis membuat model dan tekstur dan animasi, spesialis audio membuat suara, programmer menulis bayangan dan perilaku.

Komunitas programmer Unity sangat membantu, baik di answers.unity3d.com dan forum.unity3d.com . (Dan mungkin di sini di Stack Exchange?)

Cara terbaik untuk mengetahuinya adalah dengan mencobanya : versi dasarnya gratis, dan Anda mendapatkan periode uji coba 30 hari untuk versi "Pro".


6

Unity3D lebih merupakan pembungkus / pustaka daripada mesin game 'seret dan lepas'. Itu tidak menghasilkan kode juga tidak datang dengan skrip 'off-the-shelf'.

Misalnya, Unreal memiliki kamera orang pertama default, pengontrol karakter, deteksi tabrakan dan AI.

Anda tidak memilikinya di Unity3D. Apa yang Anda dapatkan dari Unity3D adalah loop game, sistem entitas berbasis komponen, perpustakaan matematika yang komprehensif, berarti memuat media, penanganan jerat, kamera, GUI mode langsung, shader, render pipa, dan fungsi level rendah lainnya. Ditambah editor yang bagus. Anda hanya perlu khawatir tentang fungsionalitas tingkat tinggi. Misalnya, Anda masih harus membuat kode kamera orang pertama Anda sendiri (jika Anda tidak menggunakan yang default). Namun, Anda tidak perlu berurusan dengan menghitung vektor lihat dan semacamnya.

Unity3D tidak menghasilkan kode apa pun untuk game Anda, secara ketat (Ini menghasilkan kode untuk menjalankan game Anda, agar lebih akurat, tetapi tidak ada untuk gameplay Anda)

Anda harus menggunakan API untuk menentukan gim Anda. Anda dapat melihat contoh-contoh yang datang dengan Unity3D dan menggunakan kembali kode tersebut; ada beberapa skrip yang telah ditentukan, tetapi biasanya Anda harus menyesuaikannya untuk memenuhi kebutuhan Anda.

Anda membuat game melalui scripting; Anda menulis skrip untuk perilaku, merancang level di Unity3D, dan menetapkan perilaku tersebut ke entitas (atau objek game). Ini sangat fleksibel, tetapi masih membutuhkan usaha untuk menulis permainan. Saya akan membandingkannya dengan Flash untuk 3D.


1
Pernyataan ini salah: "Unreal memiliki kamera orang pertama default, pengontrol karakter, deteksi tabrakan, dan AI. Anda tidak memilikinya di Unity3D"
jcurrie33

8
Faktanya, Unity termasuk komponen untuk semua fungsi yang ada di dalamnya, dan banyak lagi yang bisa diunduh sebagai plugin. Anda memang harus menyesuaikan dan kode untuk mendapatkan fungsionalitas tertentu, tetapi Anda bisa sangat dekat dengan berfungsi penuh dengan kombinasi komponen-komponen ini. Ini tidak sepenuhnya seperti Unreal karena Anda tidak memulai dengan pistol fungsional, tapi saya pribadi berpikir lebih mudah untuk mendapatkan permainan secara umum (non FPS) yang terjadi di Unity. Banyak dari ini adalah semantik - Anda harus benar-benar memprogram untuk mendapatkan apa pun yang terjadi.
jcurrie33

1
Mungkin lebih baik untuk mengatakan bahwa mesin game lain memiliki sub-sistem yang lebih erat daripada Unity3D. Saat Anda memulai proyek Unity3D baru dan tidak mengimpor aset apa pun, Anda mendapatkan papan tulis kosong. Sesuatu yang saya anggap hal yang baik. Mungkin ini sedikit miring pandangan saya tentang mengapa saya pikir tidak ada subsistem default. Ada, hanya saja mereka tidak cocok untuk proyek yang harus saya lakukan. Dan ini adalah salah satu hal baik tentang Unity3D. Sangat mudah untuk meninggalkan yang default dan kode Anda sendiri jika Anda mau.
Extrakun

3

Permukaan Unity3D sepertinya sangat mudah, dan hampir semuanya sudah dibuat sebelumnya, tetapi tidak ada yang benar. Jika Anda mengabaikan untuk menggunakan skrip yang sudah ada (yang ada untuk setiap mesin, titik buruk terhadap Unity) dan plugin yang Anda gambarkan sebagai sangat perkasa, apa yang pasti tidak, Unity hanyalah antarmuka pemrograman dengan editor.

Anda memiliki sebagian besar kode sendiri. Saya mengalaminya dalam 2 proyek berbeda.


2

Analogi dengan flash cukup benar, tapi saya tidak benar-benar mengerti analogi Anda dengan boneka.

Hal-hal baik tentang persatuan adalah:

  • cross-platform: Itu nilai tambah yang sangat besar, saya akan mengatakan alasan yang lebih besar.
  • Mesin dan implementasi berkualitas tinggi, maksud saya menggunakan objek proyek Unity dll.
  • Sangat mudah untuk membuat game sederhana dari awal, jadi itu nilai tambah untuk membuat prototipe.

Hal-hal buruk:

  • Tidak dapat menautkan dengan C ++ atau C, jadi proyek Anda mungkin hanya bekerja di Unity. Dengan C # orang mungkin berpendapat bahwa itu akan bekerja pada XNA, tetapi C ++ akan lebih baik. Dengan komentar ini, saya maksudkan bahwa itu bukan alat yang akan digunakan oleh para profesional atau autodidak veteran, karena Anda tidak memiliki kontrol total pada aplikasi Anda, tetapi ini tidak berarti ada hal yang tidak dapat Anda lakukan dengan Unity. Di sisi lain, sebuah tim dengan ide hebat dan seniman berbakat dapat melakukan hal-hal luar biasa tanpa perlu programmer berpengalaman.
  • Ini cukup baru, jadi jelas tidak ada yang tahu ke mana alat ini akan mengarah.

Hal yang saya tidak suka dari Unity adalah rasanya semua kerja keras sudah dilakukan, jadi programmer jauh lebih tidak bernilai. Di sisi lain itu bagus untuk mengajar orang dengan cepat bagaimana membangun sesuatu dengan cepat.

Jadi untuk menyimpulkan: Unity (atau alat seperti Unity) lebih untuk seniman yang tidak bisa menjangkau pemrogram hebat, tetapi masih bisa tahu untuk membuat skrip permainan kecil. TENTU SAJA Anda dapat membuat game berfitur lengkap, menambahkan IA realistis, melakukan mmo net-code dan apa yang tidak, tetapi perusahaan besar tidak akan menggunakan Unity.

Model pemrograman memungkinkan seseorang untuk mengusulkan solusi yang sesuai dengan 3/4 alat pengembangan sehingga cocok untuk pembuat game "independen" tersebut. Ini menghargai satu alat tertentu dan juga menghargai seniman, tetapi bukan programmer (kecuali yang dari tim persatuan, tentu saja).

Unity adalah jalan pintas yang baik untuk non-programmer, tetapi mereka harus memahami bahwa video game berasal dari garis kode, dan Anda tidak dapat melakukan semuanya hanya dengan alat yang luar biasa. Pada titik tertentu perlu mengetahui sesuatu tentang pemrograman tingkat rendah.

Memiliki proyek pribadi dalam pikiran, saya tidak akan menggunakan Unity, karena saya tidak suka C # atau Boo (Panda baik dengan python, jadi mengapa repot-repot dengan perangkat lunak komersial?), Dan karena jika saya menunjukkan proyek saya dan selesai dengan Persatuan, itu akan jauh lebih mengesankan.


1
Mengomentari diri sendiri: ada juga plugin pro yang memungkinkan untuk memprogram dalam C ++, jadi secara teoritis, ini juga merupakan mesin C ++ ...
jokoon

1

Persatuan mengharuskan Anda untuk skrip, tetapi tanpa semua boilerplate. Dalam permainan OpenGL yang khas, Anda perlu menginisialisasi matriks dan kamera seperti orang gila. Di Unity, Anda membuat skrip untuk memberi tahu perilaku sesuatu, lalu melampirkannya ke objek untuk membuatnya berperilaku.


1

Jika dengan menghasilkan banyak kode untuk Anda, Anda akan menyertakan fungsi pre-built yang dapat Anda gunakan untuk membuat hidup Anda lebih mudah mengenai deteksi tabrakan dan perhitungan rotasi (Perpustakaan) maka ya, dibutuhkan banyak pengkodean dari gambar dan memberikan Anda mengoptimalkan versi yang ada dan siap untuk digunakan. Sebagian besar fungsi yang Anda perlukan secara spesifik untuk Pengembangan Game di semua build.

Mungkin terdengar berlebihan untuk mengatakan ini, tetapi dalam pengalaman saya, ketika Unity3D tidak sibuk menabrak atau membangun itu membuat hidup saya mudah dengan membiarkan saya mengubah apa pun yang saya inginkan dan meninggalkan matematika berbasis Quaternion kepada orang-orang yang memiliki gelar master dalam matematika dan masih cukup mempercayaiku untuk membuatku mengubah apa pun yang aku inginkan.

Ini tidak akan menulis apa pun untuk Anda, lebih baik membantu Anda dengan cara yang dianggapnya terbaik dan membiarkan Anda menulis apa pun yang Anda inginkan.

Dalam satu kata, Fleksibel

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.