In 2014 I worked on a simple mobile game written in Haskell. This repo contains everything that came out of that effort. It is my gift to the Haskell community and I hope it inspires some of you to write more games in Haskell for mobile devices.
While the programming was done solely by me I had some help. First, the music was done by a talented
composer/musician called Anton Kholomiov using his
Haskell library csound-expression
,
a fantastic combinator library that uses Csound as a backend.
The artistic style of the game was inspired by the work of Rauri Rochford. All failings are mine alone. Had he been further involved it would doubtless have been stunning.
Epidemic was designed to be be built for several targets:
- Android
- iOS
- Mac OS X
- Linux
However, you're probably here to build it for Android. In that case see the next section.
Building on Mac OS X is fairly straightforward but building for iOS was always a long and detailed process that I did not get around to automating in the same way that I automated the Android build process.
A complete development environment for Android has been developed with the aid of
Docker. The complete instructions are available in the README.md
files
of the following two repos:
The config.json
file you should use will be something like the following:
{
"repo": "/home/androidbuilder/host-code/open-epidemic-game",
"haskell_package": "Epidemic",
"title": "Epidemic",
"package": "com.test.game.epidemic",
"version": { "code": "1", "name": "Build 1" },
"build_type": "debug",
"orientation": "landscape",
"assets_dir": "/home/androidbuilder/host-code/open-epidemic-game/assets",
"icons_dir": "/home/androidbuilder/host-code/open-epidemic-game/android-icons"
}
I may add instructions for doing this one day, but at the moment it seems unlikely.
We are using stack
to build all the
requisite libraries.
It should be as simple as
$ stack build
$ stack exec Epidemic