

Frag: A Quake3 engine in Haskell - moomin
https://wiki.haskell.org/Frag

======
thinkpad20
"Darcs is the standard revision control system of the Haskell community."

Hmm, was that the case in 2005?

~~~
creichert
Yes, Darcs predates Git by a few years and was used by GHC, XMonad, Happstack,
and several other well-known Haskell projects.

------
mlitchard
I love frag. Have you seen Nikki and The Robots? [https://github.com/nikki-
and-the-robots/nikki](https://github.com/nikki-and-the-robots/nikki)

~~~
willvarfar
Screenshots etc?

~~~
egeozcan
[http://www.indiedb.com/games/nikki-and-the-
robots/images](http://www.indiedb.com/games/nikki-and-the-robots/images)

------
oxryly1
Frag is a decade old. Does it still run?

~~~
codygman
I'm guessing it still runs on GHC 6.8, maybe GHC 7.6.3? It uses HOpenGL-2.0
and the current version is OpenGL-2.12.0.1 (with a name change apparently).

I'll try to compile it.

~~~
codygman
Whoa... I'm surprised this is building (using ghc 7.8.3). I just did:

    
    
        darcs get http://code.haskell.org/frag
        cabal sandbox init
        cabal install
    

It's still building right now. I'm expecting some failures soon, but then
again I wasn't expecting to get this far.

update: Their cabal file doesn't have any bounds... easiest method would
probably be to add bounds and use an older ghc. It depends on Data.HashTable
from base 4.2. However I'm wondering if this is the only thing and if I can
just use the hashtables package on hackage.

~~~
mightybyte
> Their cabal file doesn't have any bounds...

A surefire recipe for bitrot. If you want to maximize the ability of people to
build your code in the future, upper bounds are essential for all your
dependencies.

~~~
TazeTSchnitzel
As I sadly recently discovered when I went back and revived a node.ja project
from 2 years ago.

This is an advantage of PHP's Composer over node.js's npm, as it can write
your require lines for you, so you resist the temptation to put "*".

------
kungfooman
How slow is it, since it's using Haskell?

