Saya selalu berpikir bahwa menggunakan Direct X untuk Windows adalah metode yang paling kuat, mudah dan modern untuk membuat game dengan grafis modern, saat ini. Mengetahui bahwa ini hanya Windows, saya pikir cukup sulit untuk membuat sesuatu yang serupa pada platform lain; Mac OS, tepatnya. Namun, Blizzard entah bagaimana berhasil mengirimkan Starcraft 2 untuk Mac OS, dan Diablo 3 juga akan tersedia untuk Mac.
Jadi yang saya minati adalah informasi tentang:
- teknologi apa yang mereka gunakan untuk mesin gim mereka?
- apakah mereka menggunakan satu mesin untuk kedua game (Starcraft 2 dan Diablo 3), atau apakah mereka mengembangkan mesin khusus untuk setiap game?
- apa yang mereka bayar, dalam hal waktu dan uang, untuk dukungan Mac OS?
Jawaban:
Blizzard sangat didorong oleh teknologi khusus. Saya tidak memiliki tautan ke artikel, tetapi saya ingat melihat bahwa mereka mengembangkan ribuan shader kustom per game untuk kompatibilitas multiplatform dan kompatibilitas ke belakang.
Dukungan multi platform bukanlah sesuatu yang baru. Banyak perangkat lunak yang mendukung Linux, Mac OS, dan Windows. Seperti yang disebutkan di atas, bagian penting adalah abstrak jauh dari platform spesifik.
Setiap mesin game kontemporer menangani multiplatform dan banyak yang dapat beralih antara OpenGL dan DirectX tergantung pada platform.
Blizzard adalah rumah C ++, seperti kebanyakan pengembang skala besar profesional. Tetapi, seperti yang disebutkan oleh S.gfx, jika Anda mencari solusi yang mudah, ada banyak solusi non-C ++ - termasuk jMonkeyEngine atau LWJGL.
Dari sisi C ++, Anda dapat menggunakan Glut dan Glu untuk dengan mudah menangani sistem operasi yang berbeda saat menggunakan OpenGL, atau menulis abstraksi Anda sendiri untuk panggilan OS tertentu.
Untuk lebih spesifik menjawab peluru Anda:
teknologi apa yang mereka gunakan untuk mesin gim mereka? Blizzard mungkin tidak akan mengatakan; tetapi, Anda dapat memastikan mesin ditulis dalam C ++ dan menggunakan OpenGL atau OpenGL dan DirectX. Ingat, OpenGL berjalan pada Windows.
apakah mereka menggunakan satu mesin untuk kedua game (Starcraft 2 dan Diablo 3)? Atau mengembangkan kustom untuk setiap game? Blizzard telah dikenal memelihara beberapa mesin. Diablo 3, sejak awal, adalah percabangan kode WoW, saya percaya. Tapi, Anda bisa yakin itu tidak akan seperti WoW setelah mereka menyelesaikan proyek. Blizzard bukan perusahaan yang takut menulis banyak kode per proyek.
apa yang mereka bayar dalam hal waktu dan uang untuk dukungan Mac OS? Jika dilakukan dengan benar, dukungan Mac OS tidak boleh "terlalu" signifikan dari biaya. Siapa pun bisa menebak. Blizzard, seperti yang saya katakan, memiliki kecenderungan untuk menulis custom shaders sehingga semuanya tampak "tepat"; jadi, bisa lebih dari yang dibayar rumah lain.
sumber
Ada mesin grafis di luar sana (ambil Ogre3D sebagai contoh) yang menyediakan lapisan abstrak di atas DirectX dan OpenGL. Jadi sebagai pengembang Anda hanya menggunakan Kerangka dan tidak perlu terlalu peduli tentang API-GPU yang mendasarinya. Beberapa hal khusus seperti shader mungkin harus ditulis dalam HLSL dan GLSL tetapi ada juga bahasa shader level yang lebih tinggi yang dapat dijalankan / dikompilasi untuk kedua API.
Asumsi saya adalah bahwa mesin Blizzard menggunakan (mereka menulis sendiri) juga menyediakan lapisan abstraksi yang membuatnya mudah untuk menukar API grafis yang mendasarinya, sehingga mereka tidak perlu menulis ulang semua kode grafis mereka untuk port Mac.
sumber
Saya tidak yakin apa yang sebenarnya mereka gunakan (masing-masing pasti punya solusi yang kuat). Mungkin mesin game yang sudah terbukti dan digunakan berhasil merilis game pada platform itu, atau menggulirkan solusi kustom mereka sendiri. Tetapi bagi saya itu akan menjadi pembuka, shader, dll, kebanyakan. Jika Anda adalah pengembang indy, atau bahkan berencana untuk melakukan permainan komersial (tidak ada AAA) jMonkeyEngine 3 adalah solusi gratis yang cukup bagus. Ini berbasis java, jadi mungkin Anda bisa menggunakan kepercayaan pada JRE termasuk OSX (mungkin memotong fitur jika tidak menggunakan jre yang sangat modern), atau menanamkan / membungkus biner (kami melakukan tes melakukannya untuk Windows) menggunakan salah satu gratis yang tersedia atau solusi komersial. Ada banyak mesin lain yang mengkompilasi ke OSX dan platform lain, tetapi tidak sepenuhnya 'AAA', yang menghasilkan OSX dan platform lain:, C4 Engine , dll. Atau jika menggunakan open source atau mesin multiplatform komersial lainnya, Anda mungkin perlu menggunakan installer lintas platform seperti InstallBuilder .
sumber