Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] 3D graphics and games
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Brandon J. Van Every <vanevery@i...>
Subject: [Caml-list] 3D graphics and games
John Goerzen wrote:
> Brandon Van Every wrote:
> >
> > I think it would be silly to
> > look to UNIX for game or 3D graphics code.
>
> And your statement is particularly ludicrous regarding 3D
> code.  OpenGL
> was invented by SGI for their Unix operating system IRIX, based on
> their earlier 3-D interface, IRIS GL.

I suppose I should have said, "It would be silly to look to UNIX *now*
for 3D graphics code."  It is not the dominant platform for it anymore.
Why is this so?  Because SGI used to ship very very expensive UNIX
boxes, and Microsoft + Intel + a bunch of ex-SGI engineers brought SGI
to its knees.  Plus a little assistance from DEC Alpha, whom I used to
work for in the Commodity Graphics unit.  UNIX lost relevance in 3D
graphics in the mid-90's.  That is one of the very few positive things
that Microsoft has done for us, breaking SGI's spine.  Too bad they had
the simultaneously regressive strategy of dumping OpenGL and creating
DirectX.

The best open source 3D graphics engine project out there is The Nebula
Device.  http://nebuladevice.cubik.org  It is Windows-centric, although
Linux builds are recently being achieved, I think.  It is the only open
source 3D engine that is both commercially proven in some incarnation
and commercially usable.  (The old Quake engines are commercially
proven, but licensed under the GPL, and are not based on modern 3D
stuff.  They serve a pedagogical and hobbyist function only.)
Unfortunately, only Nebula1 has gotten used in commercial games, and
right now we're in this shader-centric no-man's land called Nebula2.  I
hope somebody ships something this Christmas so we can get past this
sticking point of commercial provenness.  Nobody can yet demonstrate
that Nebula2 actually *does* something, or at least, something worth
bothering with.

I keep strategizing how to OCaml-ize Nebula2, but there are
difficulties.  Best left to ocamlgames list.
http://groups.yahoo.com/group/ocamlgames/  Would love to discuss;
nobody's bitten on that train of thought so far.  I'm probably the only
guy interested in both OCaml and Nebula2.

> Actually, I believe you will
> find some of the most high-end 3-D work happening on *nix platforms.
> See various stories in Linux Journal about Pixar's operations, for
> example.

Pixar writes all their own code, and they ain't givin' you their code.
Also, render farms aren't terribly interesting.  That's about hooking a
bunch of computers together and cost of network licenses, not 3D
graphics per se.

> Games for Unix were popular before even DOS existed.  (And
> yes, I still like playing some of those.)

UNIX has never been relevant to commercial desktop games, and has never
been a source of anything for them.  Linux became relevant for game
servers in the mid-90's, but that's all in-house proprietary
development.


Cheers,                         www.indiegamedesign.com
Brand*n Van Every               S*attle, WA

Praise Be to the caml-list Bayesian filter! It blesseth
my postings, it is evil crap!  evil crap!  Bigarray!
Unboxed overhead group!  Wondering!  chant chant chant...

Is my technical content showing?

// return an array of 100 packed tuples
temps
  int $[tvar0][2*100]; // what the c function needs
  value $[tvar1]; // one int
  value $[tvar2]; // one tuple
  int $[tvar3] // loop control var
oncePre
eachPre
  $[cvar0]=&($[tvar0][0]);
eachPost
  $[lvar0] = alloc(2*100, 0 /*NB: zero-tagged block*/ );
  for(int $[tvar3]=0;$[tvar3]<100;$[tvar3]++) {
    $[tvar2] = alloc_tuple(2);
    $[tvar1] = Val_int($[cvar0][0+2*$[tvar3]]);
    Store_field($[tvar2],0,$[tvar1]);
    $[tvar1] = Val_int($[cvar0][1]);
    Store_field($[tvar2],1,$[tvar1+2*$[tvar3]]);
    Array_store($[lvar0],$[tvar3],$[tvar0]);
  }
oncePost

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners