Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simre1/haskell-game
https://github.com/simre1/haskell-game
apecs ecs game game-engine gpipe haskell opengl
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/simre1/haskell-game
- Owner: Simre1
- License: mit
- Created: 2019-07-04T17:52:28.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-07-29T20:35:03.000Z (over 4 years ago)
- Last Synced: 2023-03-10T22:56:38.220Z (almost 2 years ago)
- Topics: apecs, ecs, game, game-engine, gpipe, haskell, opengl
- Language: Haskell
- Size: 3.31 MB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# haskell-game
A game in progress using [apecs](https://github.com/jonascarpay/apecs) for handling the game state as well as physics, [polysemy](https://github.com/polysemy-research/polysemy.git) for algebraic effects, a slightly modified version of [GPipe](https://github.com/tobbebex/GPipe-Core.git) for graphics and my own interpretation of FRP Signals *(Sigma)* for data flow management.
## Getting Started
### Prerequisites
This haskell project is using [stack](https://www.haskellstack.org), which makes it easy to reliably build haskell projects on different machines. You will also need at least [OpenGL 3.3](https://www.opengl.org/).
### Installing
The following should get you the project installed and running.
```bash
git clone https://github.com/Simre1/haskell-game.git
cd haskell-game
stack build
stack exec haskell-game-exe
```Press *Space* to start the game and then use the *arrow keys* to move and _Space_ to shoot!
## Checking out the code
A good place to start would be the file *./app/Main.hs*, which is the main file for the executable. If you are interested in the Signal implementation **Sigma** or how **GPipe** and **apecs** work together with **polysemy**, look no further than *./src/Sigma.hs*, *./src/Window/GPipe.hs* and *./src/ECS/Apecs.hs* respectively.