Skip to content

wildefyre116/SpaceInvaders

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpaceInvaders

Build Status Version on Hackage

This is a Haskell Space Invaders game implemented using the Functional Reactive Programming library Yampa.

The game has been created for educational purposes, but tries to feature a substantial amount of the complexity often found in real arcade games. For example, differentiated subsystems for physics/collisions, input, rendering/multimedia, logic, etc.

SpaceInvaders on Debian

Installation

The game is available on hackage and you can install it with*:

$ cabal update
$ cabal sandbox init
$ cabal install SpaceInvaders
$ ./.cabal-sandbox/bin/spaceInvaders

If you want to explore the code and possibly make changes, do the following:

$ cabal update
$ cabal sandbox init
$ cabal unpack SpaceInvaders        # or git clone https://github.com/ivanperez-keera/SpaceInvaders.git
$ cd SpaceInvaders-*                # Game resources are here
$ cabal install
$ ./dist/build/spaceInvaders/spaceInvaders

*Additional notes: For the use of the above installation instructions you need GHC and the command-line interface for cabal. On debian/ubuntu, you can install them with:

$ sudo apt-get install ghc cabal-install

Documentation

To try and make things as clear as possible, the code includes a much haddock documentation and comments as we could reasonably fit. You can compile those with:

$ cabal unpack SpaceInvaders     ## Or git clone this-repo
$ cd SpaceInvaders-*
$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal configure && cabal haddock --executables --internal

Related slides and projects

Educators

If you find this game attractive and would like to use it to teach functional programming or other subjects, we'd be very happy to know about it. We can provide extra material that you can show to students (videos, screenshots, etc.).

Help and collaboration

You can collaborate at least in two ways:

  • File an issue.
  • Write documentation (send a link and/or a pull request).

We would like to call on Haskell programmers, game developers and anyone with an interest in Functional Reactive Programming and/or Game Programming to review the code, ask for clarification when it is not clear enough, and help us improve the game, and the state of FRP/Yampa programming as well.

Author

  • Henrik Nilsson

Maintainer

  • Ivan Perez

Collaborators

  • Christina Zeller

About

A Haskell game written in Yampa

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haskell 100.0%