Teman-teman tentu senang bermain video game? Mungkin sebagian dari teman-teman memiliki keinginan untuk dapat membuat sendiri game tersebut. Namun, kecenderungan game-game saat ini semakin canggih dalam teknologinya seperti 3D, simulasi fisika, bahkan augmented reality. Sebagai game developer dapatkah teman-teman bayangkan proses pengembangan atau kerumitan kode di balik game tersebut? Yup, tapi hal ini jangan menyurutkan semangat teman-teman yang tertarik dalam pengembangan game 3D. Hal yang terpenting adalah pemilihan “senjata” untuk pengembangan dan tentunya kesungguhan hati teman-teman.
XNA Framework adalah salah satu “senjata” besutan Microsoft yang dapat menjadi pilihan teman-teman. Versi terbaru adalah versi 4.0 yang dirilis September 2010. Untuk mengenal lebih dalam mengenai XNA, teman-teman dapat mengunjungi pranala berikut :
Jika teman-teman *** belajar dari ebook ada beberapa ebook sebagai teman belajar yang baik :
- Membuat Game dengan XNA Game Studio
Keterangan : dalam bahasa Indonesia dan menjelaskan cara mengembangkan game 2D dengan XNA mulai dari tahap instalasi. - Learning XNA terbitan O’ Reilly
Keterangan : sekalipun dalam bahasa Inggris dan harus bayar (kalau beruntung bisa dapat versi free di internet..), namun saya mendapatkan banyak bantuan dari buku ini, terutama jika kebutuhannya sudah cukup kompleks seperti pengembangan 3D.
Nah, selanjutnya apa sih yang perlu kita mengerti dalam pengembangan 3D?
1. Sistem koordinat

Perlu diingat bahwa dalam game 3D, koordinat yang kita gunakan memiliki 3 sumbu (xyz) dan pada XNA menggunakan right-handed coordinate system sehingga dalam mentransformasi objek 3D kelak, kita perlu mengingat dengan baik sistem koordinat ini.
2. Camera

Ingat, bahwa layar komputer kita menampilkan gambar 2D, berarti terdapat field of view dari dunia 3D yang dapat ditampilkan kepada user pada satu waktu. Field of view tersebut merupakan properti yang melekat pada objek kamera. Dan kita dapat meletakkan kamera (dapat lebih dari 1) pada koordinat 3D tempat dunia maya kita berada. Apa yang dilihat kamera itulah yang akan ditampilkan pada user. Untuk pengembangan game 3D yang profesional, kita perlu memperhatikan pengaturan kamera seperti field of view, near and far clipPlane, aspect ratio, depth, etc.
3. 3D Model
Tentunya, kita membutuhkan model untuk kita letakkan di dunia 3D kita, dapat berupa orang, robot, pohon, rumah, atau segala objek 3D yang dapat kita temukan di sekeliling kita maupun objek-objek 3D virtual lainnya, yang penting 3D! Nah, untuk pekerjaan ini, biasanya dibutuhkan 3D artist yang membuatkan model 3D untuk kita karena game yang profesional tentunya memiliki model 3D yang apik, mulai dari bone, mesh, sampai material. (Tenang, ini kerjaan artist bukan programmer!). Namun, untuk tahap awal, kita dapat mencari model 3D gratis di internet. Website yang saya anjurkan untuk itu adalah : http://www.turbosquid.com (saya sering mendapatkan model 3D yang cukup bagus dari website ini secara gratis).
4. Lainnya
Dengan ketiga poin di atas, sebenarnya kita sudah memiliki pengertian yang cukup untuk memulai pengembangan 3D. Hal-hal teknis seperti suara, animasi, dan algoritma dalam game akan kita pelajari seiring perjalanan mengenal dunia 3D. Namun sekilas saja, kelak jika memang teman-teman serius dalam dunia 3D ini pasti akan bertemu dengan istilah 3D Collision (bagaimana mendeteksi event tabrakan antara objek, misal orang tidak boleh dapat menembus tembok,dsb), 3D animation (tentu tidak menarik jika model orang yang kita gunakan tidak dapat melangkah, menggerakan tangan, dsb).
Tahap selanjutnya adalah mengintegrasikan simulasi fisika seperti gaya gravitasi, tumbukan, dsb tergantung kebutuhan game. Lebih lanjut lagi adalah augmented reality.
Dalam post selanjutnya, kita akan belajar menggunakan kamera dalam XNA.