Saya telah memperhatikan bahasa pemrograman fungsional untuk sementara waktu, tetapi saya ragu untuk benar-benar memahami mereka. Tapi saya pikir sudah waktunya saya setidaknya mulai melirik ke arah itu untuk memastikan saya siap untuk apa pun.
Saya telah melihat pembicaraan tentang Haskell, F #, Scala, dan sebagainya. Tetapi saya tidak tahu perbedaan antara bahasa dan komunitas mereka, saya juga tidak begitu peduli; kecuali dalam konteks pengembangan game.
Jadi, dari sudut pandang pengembangan game, bahasa pemrograman fungsional mana yang memiliki fitur paling cocok untuk pemrograman game? Sebagai contoh, apakah ada perpustakaan pengembangan mesin fungsional / mesin / kerangka kerja atau mesin grafis untuk bahasa fungsional? Apakah ada bahasa yang menangani struktur data tertentu yang biasanya digunakan dalam pengembangan game dengan lebih baik?
Intinya: bahasa pemrograman fungsional apa yang terbaik untuk pemrograman game fungsional, dan mengapa?
Saya percaya / berharap pertanyaan ini akan menyatakan bahasa terbaik yang jelas karena itu saya belum menandainya CW meskipun kecenderungan subyektifnya.
sumber
Jawaban:
F # menjadi bagian dari keluarga .net Microsoft memiliki akses ke XNA, yang merupakan basis yang fantastis untuk membuat game. Sedikit googling menghasilkan beberapa tutorial, video, dan artikel. Dokumen XNA yang hebat juga harus membantu.
Ada beberapa gerakan dalam game untuk Haskell juga, lihat di sini . Anda mungkin akan menggunakan binding openGL.
Karena Scala bermain di tanah Jawa, ia terintegrasi dengan semua mesin / binding Java yang tersedia, lihat pos SO ini .
Saya pikir itu karena preferensi, sementara saya hanya bermain dengan Haskell, saya membayangkan setiap bahasa fungsional memiliki keistimewaan sendiri. Mungkin layak untuk membuat game uji kecil di masing-masing dan melihat mana yang terasa lebih baik bagi Anda.
Seperti yang saya katakan, saya hanya memiliki pengalaman Haskell minimal, jadi saya tidak bisa mengomentari yang terbaik, tetapi sumber daya ini semestinya membantu Anda memulai.
sumber
Saya akan mengatakan Lisp.
Ini telah digunakan dalam permainan sebagai bahasa scripting, setidaknya di Dog Nakal (atau saya pikir itu), dan merupakan bahasa yang sangat dewasa.
Keuntungan Lisp adalah deserialisasi, yang merupakan bagian utama dari apa yang kita sebut manajemen aset. Deserializing lisp sepele, kode dan datanya satu. Ini membuatnya lebih mudah untuk memiliki format file untuk aset dan perilaku. Ini tidak seperti Anda yang di json / xml / yaml / bin dan satu file F # untuk AI. Anda dapat menyimpan semuanya sebagai ekspresi s yang akan menyederhanakan pipa aset banyak.
sumber
Setelah mendapatkan pengalaman praktis dengannya, saya akan memilih Clojure - sudah menulis satu permainan kecil di dalamnya, dan berencana untuk melakukan lebih banyak.
Alasan:
Satu-satunya waktu saya tidak akan mempertimbangkan Clojure adalah jika saya menulis sebuah permainan intensif grafis canggih di mana Anda membutuhkan kinerja yang canggih (di mana saya masih berpikir Anda membutuhkan C / C ++).
sumber