Saya mendapat 2 pertanyaan, yang ke-2 lebih merupakan pertanyaan pendapat.
Pertanyaan 1:
Semua orang mendengar tentang panda3d, OGRE dan IrrLicht: mereka adalah mesin yang hebat, dengan banyak fitur. Dengan OGRE Anda dapat melakukan hampir semua hal yang dapat dibayangkan jika Anda hanya mempelajari mesinnya, dengan Irrlicht Anda dapat melakukan banyak hal, tetapi mesinnya sedikit lebih ramah-pemula dan ringan. Panda3D juga bagus, python memudahkan, tetapi banyak hal juga bisa dilakukan.
Sebelum era baru pemrograman yang dibawa oleh evolusi C ++, game 3D yang perlu dijalankan pada mesin lambat diprogram dalam C, tetapi sejak itu, kami setiap hari mendorong transistor ke batas lebih jauh, melupakan betapa mengerikannya memprogram game di "waktu lama". Oke mungkin itu tidak mengerikan, tetapi karena pemrograman 3D rumit melakukan 2D, dan karena sebagian besar mesin mendukung hal-hal mengkilap seperti shader, manajer adegan, node adegan, NURBS, bayangan, animasi dll, tidak ada mesin 3D sederhana atau renderer yang hanya cocok untuk orang yang memiliki cukup dengan 3D sederhana sederhana, tanpa tekstur atau hanya tekstur yang sangat sederhana?
Karena saya mendengar "jangan menemukan kembali roda", saya yakin itu agak terlalu banyak untuk belajar bagaimana membuat mesin lengkap menggunakan D3D atau OpenGL, dan karena saya akan belajar D3D ini selanjutnya di sekolah pemrograman 3D, saya berpikir bahwa dengan semua mesin gratis di luar sana, pasti ada yang sesuai dengan kebutuhan saya.
Pertanyaan 2:
Sejak masa lalu yang baik dari PlayStation, saya masih melihat datangnya grafis definisi tinggi (seperti 360, PS3) seperti wabah: Itu selalu lebih sulit untuk belajar bagaimana memprogram perangkat lunak yang lebih canggih, itu menantang dan memberikan hasil yang memuaskan , tetapi pada akhirnya, itu masih merupakan program bodoh yang membuat piksel!
Saya merasa kesenangan dalam permainan tidak berkembang sama sekali atau hanya benar-benar menurun dibandingkan dengan masa lalu di mana orang-orang yang membuat permainan tidak diperlukan hanya untuk memberi makan mata pemain, tetapi dimaksudkan untuk memberikan pengalaman dan kesenangan.
Saya merasa bahwa saat ini game hanyalah perangkat lunak yang menunjukkan teknologi yang tersedia, tetapi kecuali beberapa mutiara, game bukan ide lagi, mereka hanyalah semacam demonstrasi tentang bagaimana dolar yang diinvestasikan dapat bersinar dalam keindahan pada CEO yang tidak tahu apa-apa tentang bagaimana permainan dibuat dan apa yang benar-benar mungkin dilakukan.
Yah kecuali permainan independen tentu saja yang akan bersinar satu hari atau yang lain berkat XBox Live dan Steam, tetapi masih jauh dari memungkinkan programmer dan desainer melakukan apa yang mereka inginkan. Saya tidak mengatakan "perusahaan jahat" dll, tetapi saya merasakan bahwa foto realisme hanya mengecewakan: bahkan jika kita memiliki ribuan kekuatan komputer, apa gunanya untuk dicoba: kita tidak dapat benar-benar "mensimulasikan kenyataan", karena itu bertentangan dengan hukum fisika ... Kita bisa menghitung realitas alternatif, tapi tetap saja sangat rumit untuk mendesain ...
Jawaban:
Di sisi OpenGL, saya pikir Horde3D layak disebutkan. Mungkin tidak ramah bagi pemula karena tidak menawarkan banyak alat GUI seperti Unreal SDK, tetapi itu membuatnya sangat ringan. Yang terpenting, saya pikir itu bagus untuk belajar.
Horde mengajarkan Anda untuk sangat teratur dengan kode Anda. Ini menggunakan XML untuk data (jerat, shader, grafik adegan, dll) dan C ++ untuk kontrol.
Saya suka fakta bahwa itu bukan "mesin permainan". Ini adalah mesin rendering 3D yang menangani pemusnahan, level detail, kilat, animasi, dll, tetapi meninggalkan semua logika program untuk Anda.
Seperti kata bummzack, setiap mesin di luar sana akan memungkinkan Anda untuk melakukan hal-hal dasar poligon. Tetapi karena Anda berada di jalur pembelajaran, Anda mungkin ingin belajar mesin yang juga akan memungkinkan Anda untuk menangani mata pelajaran yang lebih kompleks di masa depan.
sumber
Baiklah, saya akan mencoba ini.
Sehubungan dengan pertanyaan pertama Anda, saya dengan sepenuh hati merekomendasikan SDL kepada Anda. Ini bukan mesin grafik adegan, dan semua grafik Anda akan dilakukan dengan OpenGL, tetapi menangani hal-hal penting untuk Anda, seperti membuat jendela, mengatur konteks OpenGL, menerima input dan memutar audio. Saya benar-benar merasakan rasa sakit Anda ketika datang ke mesin 3D, dan saya merasa studi saya tentang OpenGL cukup menarik dan menantang. Saya pribadi telah pindah ke Jawa, menggunakan LWJGL (atau JOGL jika Anda mau), karena saya menikmati bahasa tingkat tinggi dan penggunaan applet, dan Java juga menangani pembuatan jendela, input, suara, dll. Untuk Anda.
Namun, fakta bahwa Anda akan segera belajar DirectX mungkin berarti Anda harus fokus pada hal itu. Saya tidak tahu ada yang setara dengan SDL untuk DirectX, tapi saya percaya DirectX saat ini memiliki beberapa fungsi pembantu yang membuat Anda bangun dan berjalan cukup cepat. Sayangnya saya benar-benar tidak tahu sama sekali tentang DirectX jadi saya tidak dapat berbicara tentang spesifik. Tapi saya sarankan Anda mencobanya.
Ya, itu terlalu banyak. Dan saya melihatnya sepanjang waktu. Jangan membuat mesin; membuat game. Jangan terjebak dalam menciptakan banyak kelas dengan kode yang belum diuji dan tidak terpakai di dalamnya dan menyebutnya "perpustakaan" atau "mesin" karena itu lebih cenderung hanya "kekacauan teoretis". Lakukan apa yang perlu Anda lakukan untuk membuat game.
"Pertanyaan" kedua Anda hanyalah sebuah pengamatan, dan yang menyedihkan dan (menurut saya) sangat salah pada saat itu. Tentu saja ada game-game buruk di luar sana, game-game berat-grafis dengan sedikit gameplay. Permainan film muncul di benak, karena sering kali itu yang tidak terlalu bagus. Tetapi grafik dan gameplay tidak saling eksklusif . Dari membaca kata-kata kasar Anda, saya hampir bertanya-tanya apakah Anda telah memainkan game belakangan ini; ada banyak pilihan di luar sana dan saya yakin ada sesuatu untuk Anda. Tapi saya tidak mengerti mengapa grafik yang bagus menyiratkan gameplay yang buruk. Dan jika Anda benar-benar menentang grafik mewah, masih ada game untuk Anda. Anda bahkan bisa pergi ke eBay dan membeli sistem lama dan game lama dengan harga murah.
Lucunya, saya berani bertaruh pendapat ini sudah ada sejak lama, melalui beberapa generasi konsol terakhir. Saya yakin orang-orang melihat Nintendo 64 ketika keluar dan memikirkan hal yang sama: grafis yang hebat (untuk saat itu) = gameplay yang buruk. Dan ada game N64 yang baik dan buruk. Dan kemudian saya tahu pasti orang-orang khawatir tentang hal semacam ini selama era Gamecube dan PS2 dan Xbox. Heck, saya duduk dan menyaksikan permainan untuk Xbox melakukan hal yang tepat ini. Jadi selalu ada gim yang bagus dan gim yang buruk, dan Anda hanya perlu tenang, menarik napas panjang, dan mencari beberapa gim yang menarik bagi Anda. Akan selalu ada permainan di kedua ujung spektrum; game beresolusi rendah yang tidak bisa Anda hentikan bermain bertahun-tahun kemudian (CounterStrike 1.6 ada orang?), dan game beresolusi tinggi yang total flop.
Dan ya, akan selalu ada lebih dari yang terakhir, karena grafik lebih mudah untuk engkol daripada ide-ide gameplay yang baik . Keberadaan mereka tidak mengambil dari keberadaan permainan yang bagus, atau mengurangi jumlah mereka. Mereka hanya memberi lebih banyak bukti kepada para desainer tentang apa yang tidak boleh dilakukan ketika merancang game mereka berikutnya. Apakah itu hal yang buruk?
sumber
Jika Anda tidak ingin semua manfaat (dan mengasapi?) Mesin 3D, mengapa tidak menggunakan GLUT ?
Saya pikir SceneManagers dan sejenisnya sebenarnya menambahkan ke pengguna-keramahan dari mesin 3D sebagai lawan untuk membuat hal-hal yang lebih rumit.
Anda dapat melakukan rendering yang sangat mendasar (tanpa tekstur, tanpa bayangan) dengan semua Mesin 3D yang Anda sebutkan. Beberapa dari mereka bahkan memiliki arsitektur modular (Plugin) sehingga Anda benar-benar dapat menghapus semua hal yang Anda (saat ini) tidak perlu.
IMHO tidak ada yang namanya Mesin 3D ramah pemula atau bahkan kerangka kerja ramah / perpustakaan. Anda harus selalu belajar dan terbiasa dengan paket perangkat lunak terlebih dahulu. Sepertinya saya mencoba melewati langkah itu :)
sumber
Sebuah. SDL (Simple Direct Layer) Memiliki mesin rendering 3D yang cukup sederhana dan dapat diperpanjang yang bersifat open-source. Namun C ++ efisien itu kurva belajar yang curam.
b. sdlbasic adalah interpreter BASIC kecil, efisien dan multiplatform untuk membuat game menggunakan kekuatan perpustakaan SDL. Itu terinspirasi oleh AMOS tua dan mulia. - ada di repositori Ubuntu dan mungkin yang lainnya juga.
c. ?
Sebuah. saya setuju dengan sentimen Anda walaupun "permainan kasual" seperti teka-teki 2d, dan permainan hiburan yang santai secara online dan sebagai paket kolektor tampaknya telah memperoleh lebih banyak real-estate di pasar game daripada jenis perangkat keras yang intensif hanya karena sifat praktis permainan dengan persyaratan sistem yang rendah. akan lebih baik untuk melihat lebih banyak kreativitas di substrat lebih rendah dari belahan penciptaan 3d dari game world inc.
sumber