A game about exponential growth written in Haskell
Haskell HTML Shell Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
android-icons
assets
design-log
extra-src/font-test
html
src
txt
.gitignore
DEVLOG.md
Epidemic.cabal
LICENSE
README.md
THANKS
TODO
cairo-interactive.sh
cs-view
ios-aarch64-build.sh
ios-arm-build.sh
ios-full-build.sh
ios-i386-build.sh
run-macosx.sh
stack.yaml

README.md

Epidemic -- a game about exponential growth written in Haskell

Introduction

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.

Credits

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.

Installation

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.

Building for Android

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"
}

Building for iOS

I may add instructions for doing this one day, but at the moment it seems unlikely.

Building for Mac OS X and Linux

We are using stack to build all the requisite libraries.

It should be as simple as

$ stack build
$ stack exec Epidemic