Saya menghabiskan tahun lalu mengembangkan mesin permainan komersial di Haskell, dan bagi kami, pengalamannya sangat positif. Dunia permainan kami sangat kompleks, dan Haskell membuatnya mudah untuk memodelkan proses konversi dari format editor ke format mesin game. Saya tidak suka berpikir seperti apa kode itu dalam bahasa imperatif.
Kebocoran antariksa telah muncul pada beberapa kesempatan, dan sementara mereka telah menyebabkan sedikit masalah, dalam skema umum jumlahnya sedikit (misalnya dibandingkan dengan menemukan deadlock di proyek Jawa dengan ukuran yang sama), dan begitu mereka diperbaiki , mereka tetap diam.
Kami menggunakan FRP mirip dengan Yampa, dan tentu saja ada kurva belajar yang terkait dengannya, tapi begitu selesai, pengalamannya sangat positif. Perpustakaan tidak menjadi masalah bagi kami - semua yang kami butuhkan telah tersedia. Penundaan pengumpulan sampah adalah masalah khusus karena itu untuk platform yang disematkan. Kami telah menggunakan beberapa C ++ untuk mengelola animasi. Kinerja juga menjadi masalah dengan ini menjadi platform tertanam (= prosesor lambat). Kami telah melakukan beberapa C dan kami juga melihat teknologi Haskell yang muncul seperti akselerasi. Animator C ++ adalah keputusan desain sejak awal dan tempat-tempat di mana kode terlalu lambat hanya area yang sangat kecil. Dalam jangka panjang, kami ingin menerjemahkan semua C kami ke Haskell.
Haskell telah membuat pekerjaan yang sulit menjadi mudah, dan semua kesulitan yang baru saja saya sebutkan sangat kecil dibandingkan dengan sejumlah besar kode kompleks yang kami hasilkan yang bersih, dapat dipelihara dan cukup banyak yang tidak bisa dipecahkan. Paralelisme akan menjadi masalah dalam pengembangan game segera, dan kami sangat baik ditempatkan untuk menghadapinya. Beberapa dari apa yang saya katakan mungkin tidak berlaku untuk proyek-proyek kecil, karena kita berada di sini untuk jangka panjang, jadi biaya awal seperti kurva belajar, dukungan perpustakaan, dll, jauh lebih sedikit dari masalah.