기능적 반응 프로그래밍 라이브러리 Yampa를 사용하여 구현 된 Haskell Breakout 게임입니다.

SDL 1.2 그래픽 및 사운드.
다중 입력 장치 (키보드, 마우스, Wiimote 적외선, Kinect).
물리/충돌, 입력, 렌더링/멀티미디어, 논리 등에 대한 차별화 된 서브 시스템.
SDL2를 사용한이 게임의 버전은 Keera Studios에서 Android 용 Google Play에서 무료로 제공되었습니다. 앱을 종료 할 때 앱을 닫지 않거나 게임을 저장하는 버그가 있습니다. 나는 그것을 해결하는 방법을 알고 있습니다. 그 변화를 추진할 시간을 찾지 못했습니다. Android 앱의 다른 버그를 여기에서보고하십시오. Facebook 및 Twitter에서 Android 용 포트 진행 상황을 따라갈 수 있습니다.

우리는 Haskell 프로그래머, 게임 개발자 및 기능적 반응 프로그래밍 및/또는 게임 프로그래밍에 관심이있는 사람을 호출하여 코드를 검토하고 코드가 명확하지 않은 경우 설명을 요청하고 게임 및 FRP/YAMPA 프로그래밍 상태도 개선하는 데 도움이됩니다.
이 게임은 PPDP 14에서 선언적 게임 프로그래밍 자습서를 제시하는 데 사용되었습니다 (자세한 내용은 http://keera.co.uk/blog/2014/09/24/game-programming-videos-code/ 참조). 슬라이드는 해당 웹 사이트에서 링크되었습니다.
이 게임은 Hackage에서 사용할 수 있습니다. 모든 미디어 리소스는 배포에 포함되어 있습니다 (재분배 용어는 라이센스 참조). *로 설치할 수 있습니다.
$ cabal update
$ cabal install haskanoid
$ $HOME/.cabal/bin/haskanoid
코드를 탐색하고 변경하려면 다음을 수행하십시오.
$ cabal update
$ cabal unpack haskanoid # or git clone http://github.com/ivanperez-keera/haskanoid
$ cd haskanoid-* # Game resources are here
$ cabal install
$ $HOME/.cabal/bin/haskanoid
Wiimote와 함께 연주하려면 Special Arguments +RTS -V0으로 프로그램을 실행해야합니다. 설명은 http://github.com/ivanperez-keera/hcwiid를 참조하십시오.
* 추가 메모 :
GHC 7.8 사용자는 추가 단계를 실행해야합니다. 지침은 문제 #2를 참조하십시오.
MacOSX 사용자 (또는 Wiimote가없는 사람)는 Wiimote 및 Kinect 지원을 비활성화 할 수 있습니다. Cabal Flags wiimote 와 kinect 사용하여 cabal install --flags="-kinect -wiimote" 실행하여 그렇게 할 수 있습니다.
위의 설치 지침을 사용하려면 (비활성화 된 Wiimote 및 Kinect 지원 포함, 위의 총알 지점 참조) 다음 패키지가 필요합니다.
Debian/Ubuntu에서는 다음과 같이 설치할 수 있습니다.
$ sudo apt-get install ghc cabal-install
$ sudo apt-get install libsdl1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev
Wiimote 및 Kinect 지원을 활성화하려면 다음 패키지도 필요합니다.
Debian/Ubuntu에서는 각각 다음과 같이 설치할 수 있습니다.
$ sudo apt-get install libcwiid-dev
$ sudo apt-get install freenect
가능한 한 명확하게 시도하고 만들기 위해 코드에는 합리적으로 적합 할 수있는 많은 Haddock 문서와 의견이 포함되어 있습니다. 당신은 다음과 같이 컴파일 할 수 있습니다.
$ cabal unpack haskanoid ## Or git clone this-repo
$ cd haskanoid-*
$ cabal install --only-dependencies
$ cabal haddock --haddock-executables --haddock-internal
위의 Cabal 명령에 플래그 -f-wiimote 및 -f-kinect 추가하여 Wiimote 및 Kinect 지원없이 설치하려면 설치할 수도 있습니다.
Yampa (http://github.com/ivanperez-keera/yampa), Antony Courtney와 Henrik Nilsson이 만든 화살표 기능 반응성 프로그래밍 구현.
Dunai (http://github.com/ivanperez-keera/dunai), 클래식하고 화살이 많은 기능적 반응 프로그래밍, 반응 형 프로그래밍, 스트림 프로그래밍 등을 수행 할 수있는 매우 강력한 반응 형 프로그래밍 구현입니다. Haskanoid를 실행할 수있는 Yampa 교체가 포함되어 있습니다.
hcwiid (http://github.com/ivanperez-keera/hcwiid)는 cwiid 라이브러리 주변의 래퍼 인 wiimotes와 통신합니다.
Freenect (https://hackage.haskell.org/package/freenect), Kinect 장치와 통신하기위한 바인딩.
FRP 충돌 (https://github.com/keera-studios/haskell-frp-yampa-physics), Yampa의 구 충돌 방법에 대한 소개 예.
Magic Cookies (https://github.com/keera-studios/magic-cookies), iTunes 및 Google Play에서 사용할 수있는 Yampa를 사용하여 Haskell에서 작성된 상업용 FRP 게임.
실습 파일에서는 더 깊이 다이빙하고 싶은 (게임) 프로그래밍 관련 영역에 중점을 두는 동안 하스카 노이드를 개선하는 아이디어를 찾습니다. 영역은 기능 (반응성) 프로그래밍, 성능, 휴먼 컴퓨터 상호 작용 및 입력/출력 및 게임 디자인입니다.
이 게임이 매력적이며 기능 프로그래밍이나 다른 주제를 가르치는 데 사용하고 싶다면 이에 대해 매우 기뻐할 것입니다. 학생들 (비디오, 스크린 샷 등)에게 보여줄 수있는 추가 자료를 제공 할 수 있습니다.