Difference between revisions of "Frag"
Jump to navigation
Jump to search
m |
(Added a link to the blog article "A Haskell eye for the windows guy") |
||
(11 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
'''Frag''' |
'''Frag''' |
||
+ | |||
⚫ | |||
Frag is a 3D first person shooting game written in Haskell, by Mun Hon |
Frag is a 3D first person shooting game written in Haskell, by Mun Hon |
||
Line 5: | Line 7: | ||
Frag is described in Mun's undergraduate thesis, |
Frag is described in Mun's undergraduate thesis, |
||
[http://www.cse.unsw.edu.au/~pls/thesis/munc-thesis.pdf Functional Programming and 3D Games]. |
[http://www.cse.unsw.edu.au/~pls/thesis/munc-thesis.pdf Functional Programming and 3D Games]. |
||
+ | |||
+ | [http://uk.youtube.com/watch?v=0jYdu2u8gAU YouTube Video] |
||
== Features == |
== Features == |
||
Line 14: | Line 18: | ||
== Requirements == |
== Requirements == |
||
− | * GHC 6. |
+ | * GHC 6.8 or greater, providing HOpenGL-2.0. |
* OpenGL drivers that support the vertex array and multitexture OpenGL extensions |
* OpenGL drivers that support the vertex array and multitexture OpenGL extensions |
||
+ | * Frag has portability problems. It is known to work on i386 and AMD64, and known not to work on big-endian systems. |
||
+ | |||
+ | See the blog article [http://monadickid.blogspot.com/2008/11/haskell-eye-for-windows-guy.html A Haskell eye for the windows guy] for the list of requirements and how to install for Windows users. |
||
== Download == |
== Download == |
||
+ | The code can be downloaded from |
||
− | The code is distributed via a darcs repository: ''darcs get http://www.cse.unsw.edu.au/~pls/repos/frag'' |
||
+ | [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/frag Hackage]; it is also distributed via a Darcs repository: |
||
+ | darcs get http://code.haskell.org/frag |
||
⚫ | |||
+ | |||
⚫ | |||
== Contributions == |
== Contributions == |
||
Line 27: | Line 37: | ||
Frag needs contributions from the community! Darcs send patches to |
Frag needs contributions from the community! Darcs send patches to |
||
[http://www.cse.unsw.edu.au/~dons/ Don Stewart]. |
[http://www.cse.unsw.edu.au/~dons/ Don Stewart]. |
||
− | |||
− | ''Update'': 2007, there are reports of crashes on 64 bit machines. |
||
− | If you have access to a 64 bit machine, with a recent OpenGL, please do |
||
− | consider checking the FFI bindings for 64 bit cleanliness. 32 bit |
||
− | machines appear to be fine. |
||
− | |||
− | ''Update'': The IO code makes assumptions about the size of CInt et al, this may well be the source of the crashes. It also probably has endian issues. |
||
== Screenshots == |
== Screenshots == |
||
+ | (Note that these screenshots are of the old level, which was replaced for copyright reasons.) |
||
− | |||
⚫ | |||
[[Image:Frag2.png]] |
[[Image:Frag2.png]] |
||
Line 48: | Line 50: | ||
[[Category:Applications]] |
[[Category:Applications]] |
||
+ | [[Category:Games]] |
||
+ | [[Category:3D]] |
||
== BibTeX Entry == |
== BibTeX Entry == |
Revision as of 10:40, 11 November 2008
Frag
Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It is licensed under the GPL. The design and implementation of Frag is described in Mun's undergraduate thesis, Functional Programming and 3D Games.
Features
- Yampa, a domain-specific embedded language for the programming of hybrid systems that using the concepts of Functional Reactive Programming (FRP) was used to program the game entities.
- The Quake 3 BSP level format, Q3Map2, and the MD3 format for models and animations are used in this game.
- Sven Panne's OpenGL binding, HOpenGL is used to render graphics.
Requirements
- GHC 6.8 or greater, providing HOpenGL-2.0.
- OpenGL drivers that support the vertex array and multitexture OpenGL extensions
- Frag has portability problems. It is known to work on i386 and AMD64, and known not to work on big-endian systems.
See the blog article A Haskell eye for the windows guy for the list of requirements and how to install for Windows users.
Download
The code can be downloaded from Hackage; it is also distributed via a Darcs repository:
darcs get http://code.haskell.org/frag
Darcs is the standard revision control system of the Haskell community.
Contributions
Frag needs contributions from the community! Darcs send patches to Don Stewart.
Screenshots
(Note that these screenshots are of the old level, which was replaced for copyright reasons.)
BibTeX Entry
@mastersthesis{Frag, author = {Mun Hon Cheong}, title = {Functional Programming and 3D Games}, year = {2005}, month = {November}, school = {University of New South Wales}, address = {Sydney, Australia}, abstract = {Games are commonly programmed in imperative languages. Functional languages have been known to have benefits but have rarely been used to program games. In this thesis we implement a first person shooting game in Haskell and Yampa. The merits of this approach are examined.} }