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?
25
Jawaban:
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?
sumber
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.
sumber
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.
sumber
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:
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.
sumber
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.
sumber
citation needed
s