Mengapa mesin seperti Unity3D ditekankan pada pustaka asli seperti OpenGL untuk pemula? [Tutup]


25

Saya hanya pemula dalam game 3D, platform pilihan saya adalah Android. Saya memposting pertanyaan di beberapa forum lain tentang "Apa yang harus digunakan: OpenGL atau Unity3d?" Mereka semua menekankan Unity3D dan menggunakan fitur dan alat bawaannya, yang harus saya kode sendiri jika saya ingin menggunakan OpenGL. Tetapi kemudian seseorang berkata bahwa sebagian besar permainan kompleks membutuhkan mesin khusus. Mengapa saya menggunakan mesin seperti Unity3D melalui OpenGL?


15
Dua kata: Gratifikasi Instan. Anda bisa mendapatkan sesuatu yang "berguna" dilakukan dengan persatuan tanpa banyak tahu, sementara menjalankan aplikasi OpenGL membutuhkan beberapa baris kode dan memahami berbagai konsep.
Jari Komppa

5
Mungkin kita bisa menjelaskannya di utas yang satu ini dan semua pertanyaan "teknologi apa yang harus saya gunakan" hilang selamanya. Saya juga ingin unicorn
jhocking

8
"sebagian besar game kompleks membutuhkan mesin khusus" - sebenarnya, sejumlah besar game AAA yang sangat sukses dibangun di atas mesin stok seperti mesin Unreal .
Philipp

2
Selain itu, seorang pemula tidak akan dapat membuat permainan yang cukup kompleks sehingga membutuhkan mesin khusus.
Christian

Ini baru saja muncul di Gamasutra, dan sementara itu bukan jawaban langsung untuk pertanyaan ini, itu relevan: gamasutra.com/blogs/ChrisDeLeon/20140426/215519/… - khususnya, itu akan sangat sulit untuk proyek yang Anda bangun dari ground up w / OpenGL menjadi proyek pertama yang 'sederhana'.
Steven Stadnicki

Jawaban:


30

Saya pikir Anda sudah menjawab pertanyaan ini sendiri. Anda berkata "Saya hanya pemula dalam game 3D" . Lebih lanjut Anda mengatakan "... Unity3D dan menggunakan fitur dan alat bawaannya, yang harus saya kode sendiri jika saya menggunakan OpenGL" .

Pada dasarnya ini berarti jika Anda menggunakan OpenGL sendirian, Anda akan menulis mesin gim, kemudian, berpotensi bertahun-tahun kemudian, menulis gim Anda. Jika Anda ingin fokus pada permainan, manfaatkan sumber daya yang tersedia untuk membuat Anda sedekat mungkin dengan tujuan itu. Menggunakan mesin gim adalah cara terbaik untuk memfokuskan upaya Anda menciptakan gim, daripada menulis semua hal yang diperlukan untuk membuat gim.

Lihat pertanyaan terkait ini: Apa perbedaan antara Perpustakaan dan Mesin dan yang ini Apa kerangka kerja game versus mesin game?


jadi OpenGL hanya untuk grafis dan unity3d adalah kerangka kerja lengkap yang memiliki grafis serta persyaratan fisika untuk game saya?
Aman Grover

1
Persatuan jauh lebih dari itu, tetapi ya, itulah bedanya.
jhocking

3
@AmanGrover: sadari juga bahwa dengan GL "hanya untuk grafis" benar-benar "hanya untuk mengirim perintah ke GPU." Semua kerja keras sebenarnya dari grafis masih harus dilakukan oleh programmer, sementara Unity memiliki semua fitur grafik yang penting dan algoritma termasuk dan siap untuk digunakan.
Sean Middleditch

2
Jangan menulis Mesin, tulis game. Itulah yang saya diberitahu untuk didekati. Maksud saya seseorang membuat mesin gim saat Anda membuat gim yang sebenarnya. Jadi itu intinya saya tidak setuju dengan Byte.
LaVolpe

28

Karena pemula, menurut definisi, tidak tahu apa yang mereka lakukan .

OpenGL memiliki kurva belajar yang sangat besar . Tentu, Anda dapat mengeluarkan beberapa perintah glBegin, dapatkan semua kegembiraan tentang meletakkan beberapa segitiga di layar, lalu lanjutkan ke bagian paling dalam dengan sesuatu yang lebih rumit yang belum siap untuk diambil. Itu bukan cara yang bagus untuk belajar. Sebuah analogi (sedikit dilebih-lebihkan) mungkin belajar beberapa fisika dasar sekolah menengah yang kemudian ditugaskan pada Large Hadron Collider. Itu bukan tenggelam atau berenang, itu berenang-atau-meninggalkan-lubang radioaktif-besar-di-tanah.

Diasumsikan bahwa sebagian besar orang bertanya "Saya ingin membuat game, apa yang harus saya gunakan?" pertanyaan sebenarnya ingin membuat permainan (kalau tidak mereka pasti akan mengajukan pertanyaan yang berbeda, tentu saja?) Jadi jawabannya disesuaikan dengan pertanyaan, dan menggunakan toolkit, kerangka kerja atau mesin yang sudah ada sebelumnya adalah salah satu cara untuk membantu mereka mencapai ambisi itu tanpa terganggu oleh penderitaan apakah panggilan UBO atau glUniform lebih disukai untuk memperbarui matriks tunggal.

Ini semua tentang mengambil satu langkah pada satu waktu, membuat proses belajar lebih mudah, dan memberi Anda sesuatu yang bermanfaat pada akhirnya. Mencoba mempelajari cara membuat game dan cara menggunakan API 3D yang matang dan kuat secara bersamaan mungkin terlalu banyak untuk pemula. Ini seperti efek Dunning-Kruger dikurangi konotasi negatif. Anda tidak tahu apa yang tidak Anda ketahui, sehingga Anda tidak benar-benar memiliki gambaran realistis tentang apa yang akan Anda ambil.

Di sisi lain, jika tujuan Anda adalah mempelajari OpenGL, maka Anda sebenarnya tidak ingin membuat game! Anda ingin belajar OpenGL, dan melakukannya dalam konteks membuat game mungkin cara belajar yang menyenangkan, tetapi membuat game adalah sarana untuk mencapai tujuan, bukan tujuan itu sendiri (dan tentu saja bukan satu-satunya cara belajar OpenGL ). Anda mungkin tidak akan pernah merilisnya, dan Anda hampir pasti akan melihatnya kembali dalam beberapa tahun mendatang dan merasa sangat malu dengan beberapa hal bodoh yang Anda lakukan.


22

Itu benar-benar tergantung pada apa yang ingin Anda dapatkan dari proyek ini. Jika tujuan utama Anda adalah fokus pada desain game, maka Anda mungkin lebih baik dengan mesin yang sudah dibuat sebelumnya, karena itu akan membuat Anda lebih cepat membuat bagian pembuatan game. Jika tujuan Anda adalah mempelajari tentang bagian pemrograman dari membuat game (terutama jika Anda sedang mencoba mempersiapkan pekerjaan di industri), maka Anda mungkin akan menemukan bekerja dengan OpenGL akan menjadi pengalaman yang lebih berharga. Perlu diingat bahwa tak satu pun dari pernyataan sebelumnya yang benar 100% dari waktu.

Tidak ada aturan saat memutuskan hal semacam ini. Sebagian besar respons yang Anda dengar dalam pertanyaan semacam itu adalah pendapat, dan sangat sedikit dari mereka yang benar-benar relevan dengan proyek dan keahlian Anda sendiri.


Terima kasih, dan ya, saya mencari pekerjaan di bidang ini, jadi saya akan pergi dengan OpenGL.
Aman Grover

9
Saya sangat tidak setuju bahwa bekerja dengan OpenGL 'telanjang' akan lebih berharga bagi seseorang yang membobol industri game. Unity memberikan contoh yang sangat baik dari mesin game modern, yang relatif matang; memahami fungsionalitas yang disediakannya (dengan tujuan mempelajari bagaimana Anda dapat menyediakan fungsionalitas serupa sendiri) adalah cara yang bagus untuk memahami proses pengembangan game itu sendiri, sedangkan OpenGL jauh dari spesifik game dalam arti yang berarti.
Steven Stadnicki

Ini hanya untuk menunjukkan betapa tidak ada aturan tentang hal ini, hanya pendapat. Itu semua tergantung apa yang Anda butuhkan / inginkan.
jhocking

5
@AmanGrover - maka jangan membuat game! Anda akan lebih mudah mempelajari satu hal pada satu waktu. Buat simulator tata surya. Pelajari cara menggambar primitif dasar, pelajari cara menerjemahkan dan memutarnya, letakkan planet di VBO untuk menggambarnya lebih cepat, gunakan beberapa shader untuk membuat awan animasi di atasnya, dan Anda berada pada jarak yang cukup dekat untuk memahami dasar-dasarnya.
Maximus Minimus

3
@KamikazeSoctsman Lagi, tidak setuju di sini. Saya tidak mengatakan OGL tidak berguna - jauh dari itu! - tetapi dalam dekade terakhir saya telah menggunakan pengetahuan OpenGL saya hanya segelintir waktu dalam kesesuaian dan permulaan yang singkat. Sebaliknya, karena mesin grafis game cenderung sangat sensitif terhadap kinerja, dalam pengalaman saya mereka adalah salah satu tempat paling tidak umum bagi seorang programmer baru untuk memulai. Anda harus tahu matematika 3d, mutlak, dan Anda harus memahami prinsip-prinsip rendering - tapi itu hal yang sangat berbeda dari belajar OGL.
Steven Stadnicki

6

Perbedaannya sederhana. Unity adalah gerbong dengan empat roda bundar yang dapat memberi Anda tempat. OpenGL adalah serbuk gergaji yang bisa Anda buat di toko dan berpotensi digunakan untuk membentuk gerbong dan roda yang lebih modern. Itu jika Anda menginvestasikan berjam-jam waktu Anda untuk mempelajari apa yang orang-orang sebelum Anda lakukan terlebih dahulu.

Tujuan Anda sebagai pemula harus terlebih dahulu mempelajari gerbong yang ada dan desainnya. Tidak ada gunanya membuang semuanya keluar jendela dan mulai dari awal. Pertama-tama pelajari apa yang sudah ada dan dapatkan pengetahuan yang menyeluruh tentangnya. Jika tidak, bagaimana Anda tahu keterbatasannya dan jika Anda tidak tahu batasannya, bagaimana Anda bisa menerobosnya? Apa gunanya membuat sesuatu yang biasa-biasa saja yang tidak berguna dan tidak mengetahui semua alat canggih yang sudah tersedia?

Salah satu langkah dari pengembang game yang masih baru adalah:

  1. Kuasai kerangka kerja / Mesin modern dan dapatkan pemahaman yang mendalam tentang hal itu (Ini juga akan membantu Anda mempelajari berbagai aspek desain game, grafik, dan OpenGL tidak semuanya ada).
  2. Buat gim kecil dengannya dan pelajari lebih lanjut dalam prosesnya.
  3. Secara organik menghadapi hambatan dan keterbatasan dalam mesin.
  4. Pelajari lebih lanjut tentang subjek ini.
  5. Berusahalah untuk meningkatkan area yang Anda anggap perlu ditingkatkan.

Bekerja sendiri untuk membuat sesuatu yang sudah dibuat tidak akan membuat Anda menjadi pengembang yang berharga bagi siapa pun karena Anda tidak akan produktif dalam kebenaran atau pembelajar yang baik dalam hal ini, Anda hanya akan menyalin bit kode yang ada dan mungkin belajar untuk baca dan pahami mereka. Seperti kata pepatah lama Pokemon, "Ini tidak terlalu efektif ...".

Bagian terburuknya adalah bahwa pendekatan semacam ini tidak mudah untuk diimbangi karena tidak ada kepuasan di dalamnya sehingga Anda menjalankan kekuatan kehendak mentah yang telah terbukti secara ilmiah sebagai sumber daya terbatas bagi manusia. Anda perlu melakukan sesuatu yang memberikan kepuasan harian atau kemauan Anda mungkin tidak akan mampu mempertahankannya.

Jadi singkatnya, Mesin ditekankan karena Anda bisa menyelesaikan sesuatu dengan Mesin dan Anda jauh lebih mungkin berhasil dengan cara itu. Bahkan pembuat game hebat mengandalkan karya orang lain sebelumnya dan itu adalah sifat dari kemajuan. Anda perlu memahami gambaran besar dan tahu cara bermain dengan potongan-potongan Lego yang disediakan oleh orang lain sebelum Anda membuat potongan-potongan Lego kustom Anda sendiri.


4

Dengan asumsi tujuan Anda adalah membuat game, orang yang berbicara tentang mesin khusus yang diminta itu salah. Jika ada, game yang kompleks membutuhkan mesin yang matang yang telah dirancang, diimplementasikan, dioptimalkan, diuji dan dikelola oleh para profesional yang telah lama berkecimpung di industri - atau yang dapat menyamai kualitas mereka (setidaknya untuk tujuan game tertentu) , jika itu mungkin.

Pengembang game besar memang membangun mesin in-house, tetapi mereka masih menggunakan mereka untuk game masa depan mereka. Tetapi perlu diingat bahwa anggaran mereka dan ukuran tim serta banyak faktor lainnya sangat berbeda dari pengembang independen - mungkin lebih masuk akal secara bisnis bagi mereka untuk membangun mesin sendiri, bahkan jika yang sudah ada tidak gagal secara teknologi.

Tentu saja, masih ada kesalahpahaman, karena banyak fitur tidak ada out-of-the-box di mesin yang ada, bahwa mereka tidak dapat diimplementasikan di mesin itu sama sekali, tetapi itu biasanya tidak akurat.

Perlu diingat bahwa beberapa game modern paling inovatif, seperti Portal dan Antichamber, dibangun menggunakan mesin yang ada. Beberapa game online yang agak rumit, seperti Aion dan TERA dibangun menggunakan mesin yang ada. Beberapa game yang paling indah secara visual, seperti Bioshock Infinite dan Thief, dibangun menggunakan mesin yang ada. Dan, tentu saja, beberapa tidak. Tapi intinya adalah: tidak ada yang pernah saya lihat benar-benar membutuhkan mesin kustom.

Di sisi lain, jika tujuan Anda adalah mempelajari konsep pemrograman grafis, tentu saja OpenGL adalah cara yang harus ditempuh. Tetapi meskipun begitu, perlu diingat bahwa menjadi akrab dengan beberapa mesin yang ada akan sangat membantu Anda memahami apa yang Anda lakukan dan apa yang harus Anda tuju.


1
-1. Pernyataan yang cukup besar tentang industri game. Kebanyakan dari mereka tidak akurat. Saya berharap saya bisa menaburkan posting Anda dengan sekitar selusin citation neededs
Panda Pajama

1
@PandaPajama Hanya ada satu pernyataan tentang industri game dalam jawaban saya. Jika itu mengganggu Anda, Anda dapat memperbaikinya atau bahkan menghapusnya sama sekali.
TC

Pengalaman saya (terbatas) menunjukkan kepada saya bahwa jika ada sesuatu yang tidak dapat digeneralisasikan adalah industri permainan. Setiap perusahaan memiliki cara pandang yang berbeda, bahkan tim yang berbeda di dalam perusahaan mungkin memiliki kebijakan yang sangat berbeda tentang segalanya. Dalam kasus khusus ini, mesin in-house menghasilkan biaya, dan membawa beberapa kelebihan dan kekurangan. Apakah hasil bersihnya adalah tabungan atau pengeluaran sangat sulit untuk dihitung, dan akan bervariasi di setiap proyek. Selain itu, anggaran, meskipun penting, bukan satu-satunya elemen yang dipertimbangkan saat membuat game.
Panda Pajama

@PandaPajama Diberikan, lihat edit saya. Saya hanya mengatakan bahwa mungkin secara bisnis lebih masuk akal bagi mereka secara umum, yang mencakup faktor anggaran dan apa pun yang membantu membentuk keputusan mereka, menunjukkan bahwa itu mungkin bukan batasan teknis dari mesin yang ada sama sekali.
TC
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.