Skip to content

Commit

Permalink
Simplify README
Browse files Browse the repository at this point in the history
  • Loading branch information
AntanasKal committed Sep 21, 2023
1 parent bcafdc9 commit c3adccd
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 16,9 @@ Controls:

![Gameplay](./assets/gameplay.gif)

The game implements continuous collision detection following an idea suggested in the paper [Functional Reactive Programming, Refactored (Perez et al.)](https://www.cs.nott.ac.uk/~psxip1/papers/2016-HaskellSymposium-Perez-Barenz-Nilsson-FRPRefactored-short.pdf). Section 7.1.3 outlines how predicted collision times can be calculated from within the MSFs and how the times can be retrieved from the top level reactimate functions using `CCDGameMonad` defined in the paper. `CCDGameMonad` allows holding predicted collision times in writer monad context. Example given in the paper is a simple case of a bouncing ball in one dimension. This game implements the idea from the paper in 2D setting with multiple moving objects.
The game implements continuous collision detection following an idea suggested in the paper [Functional Reactive Programming, Refactored (Perez et al.)](https://www.cs.nott.ac.uk/~psxip1/papers/2016-HaskellSymposium-Perez-Barenz-Nilsson-FRPRefactored-short.pdf). Section 7.1.3 outlines how predicted collision times can be calculated from within the MSFs and how the times can be retrieved from the top level reactimate functions. This is done by using `CCDGameMonad` which is defined in the paper and which allows holding predicted collision times in writer monad context. Example given in the paper is a simple case of a bouncing ball in one dimension. In this game the idea is implemented in 2D setting with multiple moving objects.

Bellow is the definition of `CCDGameMonad` used in this project, `tellFututureTime` is an MSF that puts a `FutureTime` value in the writer context (the context holds the minimal told value).
For reference, bellow is the definition of `CCDGameMonad` used in this project, `tellFututureTime` is an MSF that puts a `FutureTime` value in the writer context (the context holds the minimal told value).

```haskell
type DTime = Double
Expand Down Expand Up @@ -75,4 75,4 @@ I would like to point to some literature that I reviewed while working on this p
- [Antony Courtney, Henrik Nilsson, John Peterson. The Yampa Arcade.](https://dl.acm.org/doi/10.1145/871895.871897) A good extended example on how to structure games with heterogeneous actors using Yampa library.
- [Ivan Perez, Manuel Bärenz, Henrik Nilsson. Functional Reactive Programming, Refactored.](https://www.cs.nott.ac.uk/~psxip1/papers/2016-HaskellSymposium-Perez-Barenz-Nilsson-FRPRefactored-short.pdf) An introduction to monadic stream functions and Dunai library.
- [Ivan Perez. Extensible and Robust Functional Reactive Programming.](http://www.cs.nott.ac.uk/~psxip1/papers/2017-Perez-thesis-latest.pdf) Parts of this PhD thesis covers topics on applications of monadic stream functions in game programming in greater detail, it could be used as a supplement to ["FRP Refactored"](https://www.cs.nott.ac.uk/~psxip1/papers/2016-HaskellSymposium-Perez-Barenz-Nilsson-FRPRefactored-short.pdf) paper.
- [Ivan Perez. Extensible and Robust Functional Reactive Programming.](http://www.cs.nott.ac.uk/~psxip1/papers/2017-Perez-thesis-latest.pdf) Parts of this PhD thesis covers topics on applications of monadic stream functions in game programming in greater detail, it could be used as a supplement to [FRP Refactored](https://www.cs.nott.ac.uk/~psxip1/papers/2016-HaskellSymposium-Perez-Barenz-Nilsson-FRPRefactored-short.pdf) paper.

0 comments on commit c3adccd

Please sign in to comment.