Re: Frag: a First Person Shooting game

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

Re: Frag: a First Person Shooting game

Joel Reymont
Mun,

I hope this ushers the era of Haskell games! I, for one, was  
certainly looking for something like this.

Did you encounter any difficulties in your development because of  
Haskell?

Was lazy evaluation ever a problem?

Why did you choose Yampa to program the game entities? Did this give  
you a particular advantage?

Isn't your frame rate a bit low?

        Thanks, Joel

On Nov 22, 2005, at 6:05 AM, Mun Hon Cheong 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.

--
http://wagerlabs.com/





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

Re: Frag: a First Person Shooting game

Mun Hon Cheong


Did you encounter any difficulties in your
development because of Haskell?

Well, Haskell is different compared with other languages
like C. I thought collision detection would be easier
if i could use some local or global variables, but i
managed to get around it.



Was lazy evaluation ever a problem?

I found some space leaks in the game, so i had to profile and
enforce strictness in some areas.



Why did you choose Yampa to program the game
entities? Did this give you a particular advantage?

Me and Sean Seefried thought it that would be interesting
to use FRP in the game. I thought the design of
the Space Invaders game in the paper "The Yampa Arcade"
would work for this game and it did.

We could use Yampa's parallel switchers to simulate game
entities simultaneously without much trouble. I felt
that Yampa offered good encapsulation. State information
could be kept inside the signal function used to define the game entity
and they were updated within that function.  So with a
well designed interface we could add game entities without major
changes to the rest of the program.



Isn't your frame rate a bit low?

Yeah, it does run slower than Quake 3 which would run on
my Pentium II 350 and voodoo3 , currently  i doubt my game could do
the same.

I'm sure there are optimisations that could be used to improve
the games performance.

On my machine with an Athlon 1900+ and a Geforce 4mx the game
runs at 60fps in "leveleg". If you find that the framerate
doesn't go above 60fps, its because its capped at 60.



HopenGL



I didn't find any missing features.

Perhaps a listing of functions that have changed significantly
from the original API could be made? ( I've forgotten which functions
that I had trouble looking for though, but it wasn't because their
gl prefixes were removed)


regards,
Mun


On Tue, 22 Nov 2005, Joel Reymont wrote:

> Mun,
>
> I hope this ushers the era of Haskell games! I, for one, was certainly
> looking for something like this.
>
> Did you encounter any difficulties in your development because of Haskell?
>
> Was lazy evaluation ever a problem?
>
> Why did you choose Yampa to program the game entities? Did this give you a
> particular advantage?
>
> Isn't your frame rate a bit low?
>
> Thanks, Joel
>
> On Nov 22, 2005, at 6:05 AM, Mun Hon Cheong 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.
>
> --
> http://wagerlabs.com/
>
>
>
>
>
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe