Meier, Philipp and Geisseler, Elias (2015) Functional Reactive Programming. Student Research Project thesis, HSR Hochschule für Technik Rapperswil.
Functional Reactive Programming.pdf - Supplemental Material
Download (679kB) | Preview
Abstract
Funktionale Programmiersprachen haben in der letzten Zeit an Interessenten gewonnen, nicht zuletzt weil sich Reactive Programming mit dem funktionalen Programmierparadigma sehr gut vereinen lässt (FRP).
Ziel dieser Arbeit war es, sich in FRP einzuarbeiten und ein einfaches Spiel zu erstellen welches unsere Fortschritte ansprechend aufzeigt. Das Lernen des für uns neuen FRP Paradigmas stand im Vordergrund. Im Gegensatz zur OO-Programmierung bei welcher bekannte Patterns und SW Engineering Techniken angewendet werden können, ist FRP noch nicht so weit entwickelt. Deswegen haben wir viele verschiedene Lösungsansätze verglichen und erarbeitet, um so unsere eigenen Best Practices zu erhalten.
Wir haben sämtliche Spiellogik in Haskell mit der FRP-Library Netwire implementiert. Den Haskell-Code übersetzen wir mithilfe des GHCJS-Compilers in JavaScript damit dieser im Browser lauffähig ist. Für das Rendering der Spielgrafik haben wir die JavaScript Render Engine Pixi.js verwendet.
Für die Schnittstelle vom Haskell-Teil zum Input (Tastatureingaben) und Output (Pixi.js-Rendering) haben wir einen JavaScript-Zwischenlayer implementiert.
Das Ergebnis der Arbeit ist ein funktionsfähiger Prototyp eines simplen 2D-Spieles welches in modernen Browsern läuft. Da wir keine guten Beispiele im Web für diesen FRP-Programmstack gefunden haben macht dies unsere Arbeit einzigartig.
Item Type: | Thesis (Student Research Project) |
---|---|
Subjects: | Area of Application > Web based Area of Application > Multimedia > Gaming Area of Application > Academic and Education Area of Application > Entertainment Technologies > Programming Languages > Java Script |
Divisions: | Bachelor of Science FHO in Informatik > Student Research Project |
Depositing User: | OST Deposit User |
Contributors: | Contribution Name Email Thesis advisor Joller, Josef M. UNSPECIFIED |
Date Deposited: | 17 Mar 2016 08:52 |
Last Modified: | 17 Mar 2016 08:52 |
URI: | https://eprints.ost.ch/id/eprint/492 |