ANNOUNCE: Frag: a First Person Shooting game

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

ANNOUNCE: Frag: a First Person Shooting game

Mun Hon Cheong
Frag is a 3D First Person Shooting game.

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:

  HOpenGL which is provided with GHC

  OpenGL drivers that support the vertex array
  and multitexture OpenGL extensions

Darcs: darcs get http://www.cse.unsw.edu.au/~pls/repos/frag

Thanks goes to Don Stewart, this project would not
have become public if not for him.

Enjoy,
Mun
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: ANNOUNCE: Frag: a First Person Shooting game

Tomasz Zielonka
On Tue, Nov 22, 2005 at 05:05:17PM +1100, Mun Hon Cheong wrote:
> Frag is a 3D First Person Shooting game.

I would be nice if you could put some screenshots somewhere.

Best regards
Tomasz
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: ANNOUNCE: Frag: a First Person Shooting game

Donald Bruce Stewart
tomasz.zielonka:
> On Tue, Nov 22, 2005 at 05:05:17PM +1100, Mun Hon Cheong wrote:
> > Frag is a 3D First Person Shooting game.
> I would be nice if you could put some screenshots somewhere.

A wiki page has been put up on haskell.org, with screenshots:

    http://haskell.org/hawiki/Frag

-- Don
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: ANNOUNCE: Frag: a First Person Shooting game

Kenneth Hoste
In reply to this post by Mun Hon Cheong
Mun Hon Cheong wrote:

> Frag is a 3D First Person Shooting game.
>
> Features:
>
> * <snip>

This is a real cool Haskell project, and I think a lot of people will
agree with me.
Also, many people will wonder what problems you were faced with, how you
solved them,
which features you used, and so on... (see Joel Reymont's post).

It might be a good idea to answer all those questions at once: write a
TMR article on it !
TMR is a e-zine which provides non-academic though interesting articles
on topics concerning Haskell.
I think your Frag project is an ideal candidate for a TMR article. Don't
worry about 'that's for smart people',
the level of difficulty of the articles varies a lot (which doesn't make
them less interesting).

If you're interested (or someone else is, on any topic), please ask
people (shapr, boegel, ...) in the #haskell channel on
irc.freenode.org, mail the editor (Shae Erisson, see the wiki
[http://haskell.org/tmrwiki] for more info), or just simply
reply to this mail.

Hope to hear from you,

boegel

--
Statistics are like a bikini. What they reveal is suggestive, but what they conceal is vital (Aaron Levenstein)

Kenneth Hoste
ELIS - Ghent University
http://elis.ugent.be/~kehoste

_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: ANNOUNCE: Frag: a First Person Shooting game

Sebastian Sylvan
In reply to this post by Mun Hon Cheong
On 11/22/05, Mun Hon Cheong <[hidden email]> wrote:

> Frag is a 3D First Person Shooting game.
>
> 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:
>
>   HOpenGL which is provided with GHC
>
>   OpenGL drivers that support the vertex array
>   and multitexture OpenGL extensions
>
> Darcs: darcs get http://www.cse.unsw.edu.au/~pls/repos/frag
>
> Thanks goes to Don Stewart, this project would not
> have become public if not for him.
>

This is really cool.
I too would like to read a post-mortem on this project. What worked
well, what didn't, etc.
There aren't a lot of game engines written in Haskell so it would be
interesting to see how it worked out for you.

/S


--
Sebastian Sylvan
+46(0)736-818655
UIN: 44640862
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: ANNOUNCE: Frag: a First Person Shooting game

Sven Panne
Am Dienstag, 22. November 2005 15:36 schrieb Sebastian Sylvan:
> This is really cool.

Yes, I am really impressed, too! Finally Haskell enters the world we the real
big bucks are made, e.g. Electronic Arts alone made a $3.1 billion annual
revenue last year. :-)

> I too would like to read a post-mortem on this project. What worked
> well, what didn't, etc.
> There aren't a lot of game engines written in Haskell so it would be
> interesting to see how it worked out for you.

As the developer/maintainer of the OpenGL and GLUT packages used, I would be
highly interested in a post-mortem, too, especially regarding the API design,
missing features, etc. Some years ago I wrote a Quake 1 level viewer (still
in my old HOpenGL tar files somewhere) and one could see hickups due to GC,
but this doesn't seem to be an issue anymore. Nice!

Of course the next step should be using the OpenAL/ALUT packages to hear the
screams of your enemies when you frag them... >:-)

   http://haskell.org/HOpenGL/newAPI/OpenAL/Sound-OpenAL.html
   http://haskell.org/HOpenGL/newAPI/ALUT/Sound-ALUT.html

Cheers,
   S.

P.S.: Some commandline options for choosing the resolution or full-screen
rendering and "invert mouse" would be highly appreciated.
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: ANNOUNCE: Frag: a First Person Shooting game

Jens Petersen-3
In reply to this post by Mun Hon Cheong
Mun Hon Cheong wrote:
> Frag is a 3D First Person Shooting game.

Thanks for releasing this!

It built fine for me with ghc-6.4.1 on Fedora Core 4 x86_64,
but when I run it I get:

frag% ./a.out leveleg
:
:
"loaded textures/egyptians/sand_egy.tga"
"loaded textures/egyptians/leaf.tga"
"loaded textures/egyptians/gold_trim02.tga"
"missing texture: models/mapobjects/Skull/skull.tga"
"missing texture: textures/common/trigger.tga"
"loaded textures/egyptians/oldstone_ramses.tga"
"missing texture: textures/sfx/hellfog.tga"
*** glibc detected *** ./a.out: malloc(): memory corruption: 0x0000000000807f90 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3d03d6b79e]
/lib64/libc.so.6(malloc+0x7b)[0x3d03d6cb3b]
./a.out[0x58aa95]
======= Memory map: ========
:
:

Minimal gdb backtrace:

Program received signal SIGABRT, Aborted.
[Switching to Thread 46912496296672 (LWP 20343)]
0x0000003d03d2f280 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x0000003d03d2f280 in raise () from /lib64/libc.so.6
#1  0x0000003d03d30750 in abort () from /lib64/libc.so.6
#2  0x0000003d03d64a7f in __libc_message () from /lib64/libc.so.6
#3  0x0000003d03d6b79e in _int_malloc () from /lib64/libc.so.6
#4  0x0000003d03d6cb3b in malloc () from /lib64/libc.so.6
#5  0x000000000058aa95 in ForeignziMarshalziAlloc_zdwccall2_info ()
#6  0x0000000000000028 in ?? ()
#7  0x0000000000000000 in ?? ()

Jens
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: ANNOUNCE: Frag: a First Person Shooting game

Sven Panne
Am Donnerstag, 24. November 2005 03:06 schrieb Jens Petersen:

> [...]
> "loaded textures/egyptians/leaf.tga"
> "loaded textures/egyptians/gold_trim02.tga"
> "missing texture: models/mapobjects/Skull/skull.tga"
> "missing texture: textures/common/trigger.tga"
> "loaded textures/egyptians/oldstone_ramses.tga"
> "missing texture: textures/sfx/hellfog.tga"
> *** glibc detected *** ./a.out: malloc(): memory corruption:
> 0x0000000000807f90 *** ======= Backtrace: =========
> /lib64/libc.so.6[0x3d03d6b79e]
> /lib64/libc.so.6(malloc+0x7b)[0x3d03d6cb3b]
> ./a.out[0x58aa95]
> [...]

A quick look into the frag sources reveals that its I/O assumes 32bit
little-endian (i.e. x86-like) memory layout, so there's no surprise that it
segfaults on x86-64. This should be easily fixable, I think... Mun?

Cheers,
   S.
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: ANNOUNCE: Frag: a First Person Shooting game

Daniel "Örstadius"
In reply to this post by Mun Hon Cheong
I cannot get Frag to compile.

Running "ghc --make -O2 -fglasgow-exts main.hs" gives

...
Compiling Quaternion       ( ./Quaternion.hs,
./Quaternion.o )
Compiling ReadImage        ( ./ReadImage.hs,
./ReadImage.o )

./ReadImage.hs:60:
    Type constructor or class not in scope:
`PixelData'

./ReadImage.hs:68: Data constructor not in scope:
`PixelData'


I am using ghc 6.2.2. I have tried adding "-package
GLUT" to the command line, but still the same output.

Daniel



       
               
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell
Reply | Threaded
Open this post in threaded view
|

Re: Re: ANNOUNCE: Frag: a First Person Shooting game

Sven Panne
Am Sonntag, 27. November 2005 16:17 schrieb Daniel Xrstadius:
> [...] I am using ghc 6.2.2. I have tried adding "-package
> GLUT" to the command line, but still the same output.

The problem comes from an API change in the OpenGL package about 2 years ago.
Upgrading to a GHC 6.4.x should help.

Cheers,
   S.
_______________________________________________
Haskell mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell