[Haskell] Haskell version of Crystal Space 3D?
robert dockins
robdockins at fastmail.fm
Wed Jun 22 17:27:29 EDT 2005
> Two questions:
>
> 1) Would a Haskell counterpart to Crystal Space 3D, if
> implemented, potentially be fast enough to run a
> project similar to the 3D real-time Crystal Space
> 3D-based MMORPG "PlaneShift" ( see
> http://www.planeshift.it/main_01.html ) on Mac OS X
> 10.2.8 Jaguar or above?
>
> 2) For a hobbyist programmer with a computer science
> algorithms background including some coursework in
> lambda-calculus, with some programming background in
> Scheme and C, and with some knowledge of Java, for the
> purpose of writing a project similar to "PlaneShift,"
> which of the following options would more likely be
> easier to accomplish?
>
> Option A)
> Use the existing Java scripting support already
> available in Crystal Space 3D, and deal with debugging
> potentially larger programs in Java.
>
> Option B)
> Write a Haskell binding for the existing Crystal Space
> 3D libraries, and then deal with debugging potentially
> smaller programs in Haskell.
>
> I have written some programs in Scheme, C, and Java,
> but have only audited some lectures, written a few
> programs, and studied a few chapters on Haskell so
> far.
As it turns out, there is a pretty large conceptual gap between the
design of most object oriented libraries and idiomatic Haskell. This
makes writing useful bindings in Haskell for such libraries a tricky
business. If you want it to be easy, I'd say stick with an OO language
that will more closely match the design (caveat: I am not familiar with
the design of CS, but I assume it is OO because its written in C++). If
you want to learn more about Haskell, then the ease question takes a
back seat. To be honest, I don't think there is any easy way to tackle
a project of this size -- the planeshift people et al have been working
on this for a long time.
As to performance, I suspect it would be OK, if you were sufficiently
good with a profiler.
More information about the Haskell
mailing list