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