D and the world
Mike Parker
aldacron71 at yahoo.com
Fri Apr 27 03:46:05 PDT 2007
David B. Held wrote:
> Bill Baxter wrote:
>> [...]
>> That said, there will always be that 5% of code that really really
>> needs the maximum performance the machine can deliver. I'd definitely
>> rather write that in D than Fortran, C, or C++.
>
> I think this number is much bigger than 5%. Consider that much of PC
> advancement has come at the hands of gamers, and gamers demand the kind
> of performance that will never be delivered by a VM.
There's actually already movement in that direction. NCSoft is working
on an MMOG that uses Java on the server side (via Sun's Project
Darkstar, formerly known as the Sun Game Server) *and* on the client
side using the open source JMonkey engine. Microsoft's XNA, using C#, is
taking off in the indie community (with the help of GarageGames) and is
most certainly going to find its way into AAA studios for games
targeting both XBox and Windows.
Both Java and C# have been used in games with good results now, so the
performance myth is gradually being shot down (it wasn't so long ago
that the GarageGames crew regularly posted in their forums that
languages like C# had no place in games, yet now they are developing a
100% C# game engine for XNA called Torque 360). The bigger problem is
that there's a heck of a lot of existing C++ code out there that won't
be easy to replace. And that's a limiting factor for any language to
gain mind share in the industry. I don't see Epic rewriting the Unreal
Engine in Java, C#, or D.
The indie market is a different beast, though. You can find games there
developed in Java, C#, C++, C, Delphi, various flavors of Basic...
> If D captured the video game market, that would be a total coup from a
> PL perspective. I think that would be a pretty nifty target, but would
> require a huge investment in the toolchain.
D is already getting some indie mind share, but in addition to the weak
tool chain there are other reasons why getting D into the AAA game
industry is an uphill battle (as I see it): no interoperability with
legacy C++ code (without a C wrapper); no full-time marketing team to go
out to GDC and other conventions & gatherings to spread the word; no
currently available D compilers for the console platforms... These are
just off the top of my head, but they are major issues. If they could
all be overcome *right now*, D would be in a perfect position to spread
through the game industry like wildfire. It addresses many of the
problems that developers have with C++ and offers a more attractive
performance alternative (real or imagined) to those who aren't yet
convinced about C# or Java. But this is a narrow window of opportunity.
C# and Java are already gaining a foothold, several companies are
putting more and more of their game logic in Python and Lua, the Unreal
Engine has evolved to be a dominant, end-to-end game development
solution that several companies repeatedly invest in (Gamebryo and the
id engines are second-class citizens in comparison). More companines are
going to travel down those roads over the next few years. If D comes to
the party late, it may miss the boat.
To be optimistic, though, I think that the game industry is going to
evolve from single-language dominance (first it was assembly, then C,
now C++) to more of a multi-language melting pot as more developers with
experience in different languages, and less bias, enter the industry.
Multi-platform development is going to become more of the rule than the
exception, so languages which make such code easier to develop and
maintain will be preferred. From that perspective, D may very well
ultimately find a niche within the industry. A robust game engine with a
solid content pipeline will go a long way toward helping a language along.
Then again, they could all be stubborn blockheads and stick with C++
forever.
Project Darkstar: http://www.projectdarkstar.com/
JMonkey Engine: http://jmonkeyengine.com/
GarageGames: http://www.garagegames.com/
XNA: http://msdn2.microsoft.com/en-us/xna/default.aspx
Unreal Engine: http://www.unrealtechnology.com/html/technology/ue30.shtml
More information about the Digitalmars-d
mailing list