Anda dapat menulis mesin gim dalam hampir semua bahasa menggunakan hampir semua metode render. Anda bisa menulis mesin permainan di bash menggunakan output konsol misalnya.
Jadi, saya pikir akan lebih baik untuk menentukan apa yang sebenarnya ingin Anda pelajari dalam menulis mesin Anda sendiri. Ada banyak "bidang" dalam pengembangan game.
dll. Dari sana Anda bahkan dapat memiliki sub topik. Dalam Rendering / Grafik
2d atau 3d?
Pemodelan
Shading
Petir
Tekstur
GUI / Huds / Antarmuka.
dll
Hanya satu dari sub-sub-topik yang dapat menghabiskan banyak waktu (atau bertahun-tahun!) Studi!
Jadi, tentukan terlebih dahulu apa yang ingin Anda pelajari. Mulai dari yang sederhana.
Gunakan bahasa apa pun yang Anda sukai - meskipun beberapa lebih cocok untuk tugas-tugas tertentu. Sebagai contoh, mesin inti dan rendering mungkin paling baik dilakukan dengan bahasa tingkat "lebih rendah" seperti C / C ++ (jika Anda membutuhkan kinerja); tetapi sesuatu seperti AI atau Aturan Game mungkin lebih baik dilakukan dalam bahasa tingkat yang lebih tinggi. Tidak ada yang mengatakan Anda tidak dapat mencampur dan mencocokkan. Anda bisa menulis mesin Anda di C ++, rendering Anda di C (karena bekerja dengan baik dengan OpenGL) dan kemudian menggunakan LUA untuk membuat skrip pada Aturan Game Anda, dll.
Sejauh contoh, ada mesin game bernama Slick2D. Ini ditulis dalam Java dan open source. Ini adalah contoh mesin 2d sederhana yang ditulis dan dirancang dengan sangat baik. Anda dapat mempelajari konsep dasar dari itu, seperti loop game, mengelola status game, dll.
Jika Anda nyaman dengan C / C ++; Saya akan menyarankan melihat SDL / OpenGL. Ini menangani beberapa rumah tangga seperti input, suara, membuat jendela, dll dan dapat fokus pada hal-hal lain.