작년에 Haskell에서 상업용 게임 엔진을 개발하는 데 보냈으며 우리에게는 경험이 압도적으로 긍정적이었습니다. 우리의 게임 세계는 복잡하며, Haskell은 편집기 형식에서 게임 엔진 형식으로의 변환 과정을 쉽게 모델링 할 수있게했습니다. 나는 그 코드가 명령형 언어로 보일 것이라고 생각하는 것을 싫어합니다.
경우에 따라 공간 누출이 발생하고 약간의 문제가 발생했지만 일반적으로 비슷한 크기의 Java 프로젝트에서 교착 상태를 찾는 것과 비교할 때 소량의 문제가 발생했습니다. 그들은 고정 된 상태를 유지했다.
우리는 Yampa와 유사한 FRP를 사용하고 있으며, 관련 학습 곡선이 있지만, 일단 끝나면 경험은 매우 긍정적입니다. 라이브러리는 우리에게 문제가되지 않았습니다. 필요한 모든 것이 가능합니다. 가비지 수집 지연은 임베디드 플랫폼을위한 것이기 때문에 특별한 문제였습니다. 우리는 애니메이션을 관리하기 위해 C ++을 사용했습니다. 임베디드 플랫폼 (= 느린 프로세서) 인 경우에도 성능이 문제였습니다. 우리는 일부 C를 수행했으며 가속과 같은 새로운 Haskell 기술도보고 있습니다. C ++ 애니메이터는 초기에 디자인 결정이었으며 코드가 너무 느린 곳은 매우 작은 영역입니다. 장기적으로, 우리는 모든 C를 하스켈로 변환하려고합니다.
Haskell은 어려운 작업을 쉽게 해주 었으며 방금 언급 한 모든 어려움은 깨끗하고 유지 보수가 가능하며 거의 깨지지 않는 대량의 복잡한 코드에 비해 작습니다. 게임 개발에서 병렬화는 곧 문제가 될 것이며,이를 처리 할 수있는 좋은 위치에 있습니다. 제가 말한 것 중 일부는 소규모 프로젝트에는 적용되지 않을 수 있습니다. 우리가 장기적으로이 프로젝트를 진행하고 있기 때문에 학습 곡선, 라이브러리 지원 등과 같은 시작 비용은 문제가되지 않습니다.