From: Jon Harrop <jon@ffconsultancy.com>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Games
Date: Thu, 28 Jul 2005 01:13:33 +0100 [thread overview]
Message-ID: <200507280113.34285.jon@ffconsultancy.com> (raw)
In-Reply-To: <20050727203535.GA30737@xmunkki.org>
On Wednesday 27 July 2005 21:35, Jere Sanisalo wrote:
> Humh, missed where this started, but.. :)
Skaller flew off on a tangent because he was beaten by a low-level,
bit-twiddling games programmer as a child. ;-)
> As a games developer I somewhat disagree. Sure there are people who do not
> know how, but in my view (and experience) most of professional games
> developers are pretty good at doing high level code.
I can see the definition of "high-level" causing a problem here. It is my
belief (but I may well be wrong) that games programmers have a very different
notion of "high-level" than, say, most of the other people on this list.
> For the problems
> described here I can see much easier explanations. Mostly having something
> to do with extremely tight deadlines, producers/publishers not knowing what
> they want and changing their mind all the time and the tight coupling to a
> limited hardware.
Tight deadlines and closeness to hardware make sense. But if the specification
keeps changing then I would say that a higher-level language would be more
suitable. I know what you mean though...
> On one game developer forum there was a poll on how people managed their
> high level code. Many developers had actually written their own
> preprocessors to C++ in order to get introspection and the like. Only one
> (I know of) have written their own language; GOAL / Naughty Dog.
I suspect that a high proportion of the people on this list have written their
own language, probably several languages. I think I've written three
languages now (two interpreted, one JIT) and I'm just a physicist dabbling in
OCaml. ;-)
> And what I
> gather, even GOAL is split into two parts. The macro language is a full
> scheme and the game side is more like an imperative language in the lisp
> syntax.
Again, I suspect (but may well be wrong) that a significant number of people
here would not regard Lisp as very high level compared to ML.
> Most (if not all) game programmers I have talked to have actively pursued
> more better ways to create their games and handle those increasingly
> complicated event queues that happen there. It's not easy, I can tell you.
> I tried to formulate a basic game in ocaml once and failed badly. It's
> mostly because I'm not yet so experienced in FP style and need to learn to
> think things differently.
Ironically, game programmers probably already do lots of functional
programming without even realising it.
> (btw, one major reason for not using more FP-like languages in gamedev is
> because the platforms are nowadays mostly not-PC and the compilers /
> trained staff is hard to find)
My guess is that there are far more PC game programmers than console
programmers. Specifically, outside industry.
> >I have actually been thinking about writing an "OCaml for Games
> > Programming" book. I think there is a lot of scope for interesting and
> > unusual material in such a book and I think there are lots of possible
> > examples which would demonstrate the power of OCaml for general purpose
> > programming whilst also making wicked cool games. The downside is mainly
> > the lack of state-of-the-art OpenGL bindings.
>
> I would love such a book!
I'm not sure your 80e would justify another 4 months of my time but it's
certainly interesting to hear. :-)
Would you be interested in educational software along these lines and, if so,
for what platforms?
> It would basically have to touch on every single
> aspect of FP programming I do not yet know how to do. And it would probably
> teach me to think more in FP way, since game programming is much closer to
> my daily programming than algorithmic issues (those I can cleanly write in
> FP.
Given that games programming has quite a few parallels with scientific
programming, I think you will find my OCaml book instructive:
http://www.ffconsultancy.com/products/ocaml_for_scientists
> And I have even written a compiler; those are easy to think in FP
> terms).
There are many resources on interpreter and compiler writing, of course.
However, I don't like most of them. I do like Appel's, Xavier's, Cardelli's,
Peyton-Jones' and several others (I'm reading Torben Mogensen's) but I have
yet to see a killer treatise on this, particularly because the current
documents either assume too much knowledge for a passing outsider or because
they are too vague about implementation details (e.g. Cardelli's papers on
static typing and even Appel's ML book) for people who don't really know what
they are doing. So compiler and interpreter writing is my other idea for a
book... :-)
> And I don't think you'd need state-of-the-art OpenGL bindings to write a
> good book on the subject. The problem is in the high level, mostly. The low
> level bindings are relatively straightforward to do.
I agree with you up to the last sentence. I've tried to write low-level OCaml
bindings to OpenGL and it is very difficult if you are a pedant like me and
want to do it properly.
> A shameless plug; a game I've written for this years Assembly demo party:
> http://fpb.xmunkki.org/
> The reason I bring this is up is that is uses OpenGL. And all it need is
> textured triangles with two different blending modes (normal alpha and
> additive). And I've played many fun games with only flat shading :).
Absolutely. I think there is a considerable market here.
> The general issue here (I think) is that most programmers are unfamiliar
> with the FP style of thinking (about problems). That's why most of them
> never even try, except by accident.
I think there is also a mental barrier to the weird and wonderful world of FP
for many game programmers (and similarly for scientists). However, most C++
programmers know that gratuitous use of const is good practice without
noticing that it is purely functional programming and most C++ programmers
would write vector/matrix computations in a purely functional style.
> >I think there is ample market for a games programming OCaml book but it
> > would be difficult to sell it at a low enough price (again, I think it
> > would really benefit from being full color).
>
> I'd be willing to pay about 80e for such a book.. But then again, it's a
> book I've been looking for a long time.
What you need is a consultant. :-)
--
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
Objective CAML for Scientists
http://www.ffconsultancy.com/products/ocaml_for_scientists
next prev parent reply other threads:[~2005-07-28 0:15 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-22 14:26 How to do this properly with OCaml? Thomas Fischbacher
2005-07-22 14:52 ` [Caml-list] " Eric Cooper
2005-07-22 15:26 ` [SPAM_PROBABLE] - [Caml-list] How to do this properly with OCaml? - Bayesian Filter detected spam Christophe Dehlinger
2005-07-22 18:58 ` [Caml-list] How to do this properly with OCaml? Stephane Glondu
2005-07-22 15:50 ` Berke Durak
2005-07-22 16:47 ` brogoff
2005-07-22 15:54 ` Michel Quercia
2005-07-23 5:00 ` Michael Alexander Hamburg
2005-07-23 12:34 ` Xavier Leroy
2005-07-23 13:16 ` Berke Durak
2005-07-23 16:36 ` Stephane Glondu
2005-07-23 18:27 ` Berke Durak
2005-07-23 18:50 ` Matthieu Sozeau
2005-07-24 8:35 ` Berke Durak
2005-07-23 19:18 ` Stephane Glondu
2005-07-23 19:35 ` Thomas Fischbacher
2005-07-23 19:50 ` Stephane Glondu
2005-07-23 19:59 ` Thomas Fischbacher
2005-07-23 20:15 ` Brian Hurt
2005-07-23 23:16 ` james woodyatt
2005-07-23 23:27 ` Stephane Glondu
2005-07-23 18:37 ` Michael Alexander Hamburg
2005-07-23 18:52 ` Bardur Arantsson
2005-07-23 21:35 ` [Caml-list] " Michael Alexander Hamburg
2005-07-23 19:19 ` [Caml-list] " Thomas Fischbacher
2005-07-24 7:27 ` [Caml-list] "Just say no!" campaign against Obj [was: How to do this properly with OCaml?] Alex Baretta
2005-07-24 8:02 ` [Caml-list] "Just say no!" campaign against Obj james woodyatt
2005-07-24 17:27 ` Stephane Glondu
2005-07-25 8:43 ` Alex Baretta
2005-07-24 21:37 ` [Caml-list] "Just say no!" campaign against Obj [was: How to do this properly with OCaml?] brogoff
2005-07-25 8:15 ` Alex Baretta
2005-07-25 17:08 ` brogoff
2005-07-25 8:57 ` Alex Baretta
2005-07-24 17:33 ` [Caml-list] How to do this properly with OCaml? skaller
2005-07-24 18:13 ` Stephane Glondu
2005-07-24 18:48 ` skaller
2005-07-24 19:14 ` Stephane Glondu
2005-07-24 20:29 ` skaller
2005-07-24 20:49 ` skaller
2005-07-24 21:08 ` Stephane Glondu
2005-07-24 21:55 ` skaller
2005-07-24 23:23 ` Stephane Glondu
2005-07-25 0:32 ` skaller
2005-07-25 6:45 ` Stephane Glondu
2005-07-25 11:35 ` skaller
2005-07-26 0:47 ` Brian Hurt
2005-07-26 0:56 ` Jere Sanisalo
2005-07-26 1:10 ` Brian Hurt
2005-07-26 1:34 ` Jere Sanisalo
2005-07-26 9:03 ` Richard Jones
2005-07-27 17:21 ` skaller
2005-07-27 19:44 ` [Caml-list] Games Jon Harrop
2005-07-27 20:35 ` Jere Sanisalo
2005-07-28 0:13 ` Jon Harrop [this message]
2005-07-28 1:12 ` Jere Sanisalo
2005-07-28 2:44 ` Jon Harrop
2005-07-28 4:49 ` skaller
2005-07-28 19:48 ` Jon Harrop
2005-07-28 21:32 ` David Thomas
2005-07-28 22:31 ` Jon Harrop
2005-07-29 1:44 ` Michael Walter
2005-07-29 2:32 ` David Thomas
2005-07-29 3:52 ` skaller
2005-07-29 12:57 ` David Thomas
2005-07-28 10:58 ` Gerd Stolpmann
2005-07-28 17:19 ` David Thomas
2005-07-28 19:22 ` Jon Harrop
2005-07-27 21:13 ` [Caml-list] How to do this properly with OCaml? Pal-Kristian Engstad
2005-07-27 22:28 ` skaller
2005-07-28 1:47 ` Michael Walter
2005-07-27 23:17 ` [Caml-list] Games Jon Harrop
2005-07-28 0:03 ` [Caml-list] How to do this properly with OCaml? Paul Snively
2005-07-28 18:26 ` Jonathan Bryant
2005-07-28 23:10 ` Paul Snively
2005-07-27 16:03 ` skaller
2005-07-26 1:01 ` Stephane Glondu
2005-07-26 1:15 ` Brian Hurt
2005-07-27 15:33 ` skaller
2005-07-30 23:24 ` Thomas Fischbacher
2005-07-31 0:06 ` Jon Harrop
2005-07-31 3:10 ` skaller
2005-07-31 2:54 ` skaller
2005-07-26 20:32 ` David Thomas
2005-07-27 15:05 ` skaller
2005-07-27 15:29 ` Jon Harrop
2005-07-27 15:35 ` David Thomas
2005-07-27 20:11 ` skaller
2005-07-28 16:35 ` David Thomas
2005-07-30 23:33 ` Thomas Fischbacher
2005-07-31 0:39 ` james woodyatt
2005-07-27 19:59 ` skaller
2005-07-26 1:22 ` Jon Harrop
2005-07-27 17:23 ` skaller
2005-07-26 1:05 ` Jon Harrop
2005-07-26 1:20 ` Brian Hurt
2005-07-26 1:28 ` Jon Harrop
2005-07-27 17:03 ` skaller
2005-07-27 16:09 ` skaller
2005-07-24 23:26 ` Brian Hurt
2005-07-25 17:21 ` Ken Rose
2005-07-25 19:19 ` skaller
2005-07-26 7:10 ` Alex Baretta
2005-07-23 18:58 ` Thomas Fischbacher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200507280113.34285.jon@ffconsultancy.com \
--to=jon@ffconsultancy.com \
--cc=caml-list@yquem.inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox