Apakah Anda pikir mungkin untuk langsung dari pemrograman C ++ yang berpengalaman (5 tahun atau lebih) langsung ke pembelajaran DirectX 3d?
Maksud saya .... saya akan mulai dengan dasar-dasarnya, saya lebih tertarik untuk menyiapkan Demo (seperti mendapatkan demo air yang baik dan semacamnya) daripada benar-benar melakukan permainan yang lengkap.
Apakah kamu berpikir ini mungkin?
Jawaban:
Sangat mungkin. Titik awal yang bagus Pengantar Pemrograman Game 3D dengan DirectX 10 oleh Frank D. Luna . Ini sangat mudah dibaca, memungkinkan Anda untuk dengan cepat mengimplementasikan banyak fungsi umum, dan berfungsi sebagai dasar yang bagus untuk mempelajari lebih lanjut tentang DirectX dan pemrograman game.
sumber
Tentu saja, meskipun saya sarankan memulai dengan aplikasi 2D yang sangat, sangat sederhana sejak kurva pembelajaran awal (hanya menjalankan aplikasi DX bisa menjadi tugas) bisa sangat curam, dan akan membantu untuk mengetahui apakah masalah yang Anda lihat adalah Khusus 3D, atau jika Anda melewatkan sesuatu yang sangat mendasar.
Implementasikan Pong - Anda akan mempelajari dasar-dasar seperti menjalankan dan menjalankan aplikasi DX, pemrosesan input, deteksi tabrakan dasar, dan yang paling penting, cara menggambar barang di layar.
Jika ini adalah aplikasi pertama Anda, itu akan memakan waktu kurang dari seminggu untuk menjalankannya. Pada titik itu, Anda harus memahami dasar-dasar kerangka kerja DX, dan siap untuk memulai proyek lain di mana Anda dapat fokus pada aspek 3D - matriks transformasi, manajemen objek / negara, culling, pencahayaan, dll. Mungkin menerapkan pong 3D, atau raket.
sumber
Tentu saja itu mungkin. Anda juga dapat mempelajari C ++ sebagai bahasa pemrograman pertama Anda. Tapi itu mungkin bukan cara tercepat untuk sampai ke sana.
Beralih dari "pemrograman" ke "pemrograman game" memerlukan belajar beberapa hal terlepas dari gambar: loop game, input waktu nyata, dan sebagainya. Itu JAUH lebih mudah untuk dipelajari jika Anda tidak harus berurusan dengan belajar perpustakaan grafis baru pada saat yang sama. Pelajari satu hal pada satu waktu dan Anda mungkin akan memiliki waktu yang jauh lebih mudah. (Dan jika Anda seorang programmer yang berpengalaman, mempelajari hal-hal 2D seharusnya tidak terlalu lama.)
sumber
Apa kesamaan 2D dengan 3D? Tidak banyak. 2D adalah dunia datar atau 3D palsu yang, walaupun memiliki tampilan visual yang agak menyerupai 3D, memiliki kode yang sangat berbeda dari 3D yang sebenarnya.
Bahkan untuk hal-hal yang mereka miliki bersama, seperti deteksi tabrakan, seberapa sulit untuk memperluas kode menjadi 3D? Sangat mudah.
Sederhananya, belajar 2D tidak akan membantu Anda sebanyak yang mungkin Anda pikirkan dalam perjalanan Anda untuk belajar game 3D atau desain mesin. Mereka memiliki sedikit kesamaan, dan untuk apa yang mereka miliki bersama, 2D sebenarnya bukan "batu loncatan" yang mudah untuk membuat Anda mencapai 3D.
Seperti yang disarankan oleh David Lively, Anda mungkin ingin memulai dengan permainan 2D yang sangat mendasar seperti Pong, tetapi jangan berpikir bahwa Anda harus membuat ulang Final Fantasy, Super Mario Brothers, Zelda, dll. Sebelum Anda dapat melanjutkan ke menangani 3D. Bahkan pekerjaan pengantar seperti ini bukan untuk mendapatkan banyak pengalaman 2D, tetapi untuk tujuan membuat semuanya sesederhana mungkin sehingga Anda dapat melihat konsep dasar & metode (deteksi tabrakan, mendapatkan perpustakaan grafik yang diinisialisasi, dll. .,) yang ada hubungannya dengan 3D seperti yang mereka lakukan dengan 2D, secepat mungkin sehingga Anda dapat beralih ke langkah berikutnya. Langkah selanjutnya mungkin membuat menu "Baru / Simpan / Muat / Keluar", yang sekali lagi Anda buat sesederhana mungkin, dan kemudian Anda terus menambahkan hal-hal (dimensi +1 ke gerakan, model,
Mari kita begini saja. Setelah mempelajari beberapa teori di kursus perguruan tinggi tentang desain game, kami ditugaskan membuat mesin 3D. Saya berhasil sekitar seminggu. Itu menarik objek 3D, melemparkan bayangan, menggambar tekstur, melakukan pemetaan, mendeteksi tabrakan, memungkinkan Anda untuk melompat, dan membuka menu jika Anda mengklik kanan atau menekan {ENTER} atau {ESC}.
Bagian yang menghabiskan waktu adalah membuatnya mewah ... apakah itu menyempurnakan mesin atau membuat model / tekstur / animasi, konten game, dll.
sumber
Iya. Karena Anda sudah tahu C ++, sekarang Anda hanya perlu mempelajari API dan teori. Rintangan utama dalam mempelajari 3D secara khusus mungkin adalah matematika yang terlibat. Sementara matematika 2D cukup mudah dipahami pada tingkat minimum, 3D membutuhkan pemahaman yang lebih kompleks. Ada juga banyak hal seperti shader yang pasti lebih relevan dengan 3D daripada 2D. Jika Anda berencana membuat game, saya akan mengambil rute 2D cepat hanya untuk merasakan membuat game dari awal sampai akhir (dan mungkin mendapatkan sistem GUI yang dapat Anda porting!) Sebelum masuk ke 3D.
sumber