The FunGEn package

[Tags: bsd3, library, program]

Multi-platform 2D game engine built on top of OpenGL & GLUT

[Skip to ReadMe]


Versions0.1, 0.3, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6,, 1.0
Change logNone available
Dependenciesbase (==4.*), GLUT, haskell98, OpenGL, random [details]
Copyright(C) 2002 Andre Furtado <>, (C) 2008 Miloslav Raus <>, (C) 2008,2011 Simon Michael <>
AuthorAndre Furtado <>
MaintainerSimon Michael <>
Home page
UploadedSun Feb 13 19:58:38 UTC 2011 by SimonMichael
Downloads2240 total (58 in last 30 days)
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]




Maintainers' corner

For package maintainers and hackage trustees

Readme for FunGEn-0.3

FunGEN - Functional Game Engine

FunGEn (Functional Game Engine) is a BSD-licensed 2D platform-independent game engine implemented in and for Haskell, using HOpenGL. It is intended to help game programmers in the game development process, in a faster and automated way. Actually, FunGEn supports:



FunGEn was created by a Computation Science graduation student, at the Informatics Center (CIn) of the Federal University of Pernambuco (UFPE), as part of a Scientific Iniciation (PIBIC/CNPq) research project (Creating a Game Platform Using Haskell), oriented by lecturer Andre Santos (PhD, 1995, University of Glasgow). He was responsible for figuring out a lot of FunGEn implementation details. I would like to thank also the following people who contributed for the development of FunGEn:

To do

Andre's 2002 list: Here you have a list of some upcoming FunGEn features, and some other desired features (but with no implementation prevision yet).


What is a game engine? A game engine can be considered as a library that provides game facilities to a game programmer. When using a game engine, the programmer must specify when the game events happen, rather than how they are implemented. A same functionality may have its implementation varying from platform to platform, in the case the engine is platform-independent. The main advantage of a game engine is that it can be reused to the development of many different kind of games, in an automated way, saving a lot of programming time. Why Haskell? We believe that Haskell is a great language to develop games, because of its high level of abstraction and the generation of a more concise, elegant and shorter code. This is great for code maintenance and understanding. Combining the power of Haskell with the facilities provided by game engines seems a promising project. You can find more info on Haskell in its official site. What is HOpenGL? HOpenGL stands for Haskell Open Graphics Library. Actually, it is a binding to one of the most famous graphics libraries around the world (OpenGL) and its auxiliary toolkit (GLUT). In other words, it makes possible to call OpenGL/GLUT routines (which were written in the C language) when programming in Haskell. You can find more info on HOpenGL in my HOpenGL Tutorial site, or in its official site.