Katakanlah saya memiliki game yang ditulis dalam C ++. Tapi saya ingin menambahkan beberapa fungsi modding atau scripting untuk itu. Bagaimana cara menambahkan fungsionalitas skrip ke game Anda?
Katakanlah saya memiliki game yang ditulis dalam C ++. Tapi saya ingin menambahkan beberapa fungsi modding atau scripting untuk itu. Bagaimana cara menambahkan fungsionalitas skrip ke game Anda?
Jawaban:
Pertama-tama, Anda harus memutuskan bagian mana dari game Anda yang ditulis. Salah satu opsi adalah untuk memiliki game yang sepenuhnya ditulis dalam arti bahwa sementara operasi backend kritis-waktu dikodekan dalam C ++, semua logika game berada dalam bahasa scripting. Desainer menggunakan backend sebagai API yang dipanggil dari bahasa skrip tingkat tinggi. Di sisi lain, Anda dapat memiliki beberapa tempat spesifik tempat skrip digunakan, seperti antarmuka pengguna atau urutan skrip, dengan sebagian besar kode permainan masih dalam C ++. Ada keuntungan untuk setiap pendekatan (kecepatan, fleksibilitas, waktu kompilasi, ruang lingkup permainan, dll.), Tetapi Anda harus memutuskan itu sebelumnya.
Setelah Anda tahu bagaimana Anda ingin menggunakan skrip, Anda sekarang harus memutuskan apakah Anda akan menggunakan bahasa skrip yang ada atau Anda sendiri bahasa khusus domain . Saat ini ada banyak bahasa scripting untuk dipilih dengan berbagai tujuan desain dan target audiens, jadi saya tidak yakin apakah layak membuat Anda sendiri. Jika Anda memutuskan untuk menerapkan sendiri, berikut adalah beberapa sumber:
Lua adalah bahasa scripting yang ringan dan mudah populer. Itu menggunakan tumpukan untuk komunikasi antara host dan bahasa yang disematkan dan itu berhasil digunakan di banyak permainan profesional . Sol2 menyederhanakan proses pengikatan Lua dan C ++. Jika Anda tidak menyukai sintaks Lua, Moonscript adalah bahasa yang mengkompilasi ke Lua dan menambahkan serangkaian fitur yang bagus.
Opsi lain termasuk AngelCode , yang memungkinkan Anda untuk memanggil fungsi C dan C ++ secara langsung. Python dan Ruby sedikit lebih rumit untuk disematkan, tetapi sangat menyenangkan untuk diprogram. Jika Anda ingin menyematkan Python, lihat Boost.Python . Gagasan lain adalah menyematkan JavaScript untuk memanfaatkan mesin skrip cepat yang dikembangkan untuk peramban (lihat V8 dan SpiderMonkey ).
Saya menulis posting tentang menanamkan skrip GameMonkey ke permainan menggunakan DragonFire SDK di sini .
Pada dasarnya idenya adalah untuk mengekspos fungsi C \ C ++ Anda ke bahasa skrip pilihan Anda dan menggunakannya dari skrip Anda. Dalam tutorial saya, saya mengekspos 2 fungsi dari DragonFire SDK. Pada awal permainan, saya memanggil fungsi onStart dari skrip dan saat pembaruan, saya memanggil fungsi onTimer dari skrip.
Semoga itu bisa membantu!