On Sep 17, 2011, at 8:08 AM, Peter Alexander wrote: > On 17/09/11 6:53 AM, Nick Sabalausky wrote: > >> And then there's the enurmous savings in build times alone. Full recompiles >> of AAA C++ games are known to take upwards of a full day (not sure whether >> that's using a compile farm, but even if it is, D could still cut down on >> compile farm expenses, or possibly even the need for one). > > This is false. You can easily build several million lines of code in several > minutes using unity files and distributed building. There need not be any > build farm expenses, the build machines can just be everyone's dev machines.
Linking can still be pretty time consuming. My last big project was several million LOC broken into a tree of projects that all eventually produced a handful of large applications. This was a originally SPARC Solaris app so we couldn't spread the build across PCs, but rather built in parallel on big fancy machines. When I started, a full build took the better part of a work day, and before I left a full build was perhaps 30 minutes (my memory is a bit fuzzy here, but that sounds like a reasonable ballpark). The average level of parallelism was 10-20 cores working on the build using make -j. I suppose it's worth mentioning that building on Opteron was significantly faster, even using fewer cores. The code used almost no templates, which is a significant factor in total compile time. > In contrast, my D hobby project at only a few thousand lines of code already > takes 11s to build and doesn't do any fancy metaprogramming or use CTFE. I am > unaware of any distributed, incremental build systems for D, so I see no > particular speed advantage to using D (certainly not orders of magnitude > anyway). My current project builds in 15 minutes on its current, ancient build machine at work. Written in C. A full build on my PC is under 5 minutes. Obviously, compile time isn't the only reason to choose D over some other language though. >> I'm sure there are smaller reasons too, but I'm convinced the primary reason >> why AAA game dev is C++ instead of D is ultimately because of inertia, not >> the languages themselves, or even the tools (If the AAA game dev industry >> genuinely wanted to be using D, you can bet that any tools they needed would >> get made). > > Tools are not free. Don't assume just because a company is large that it has > unlimited funds. Creating tools, converting libraries all take lots of time > and money that have to be justified. > > I work at a very large game studio and I can assure you that I would *never* > be able to justify using D for a project. Even if all our code magically > transformed into D, and all our programmers knew D, I still wouldn't be able > to justify the creation of all the necessary tools and dev systems to do > something that we can already do. It's absolutely about the toolchain. I'd be curious to hear from anyone who has tried developing for the Xbox 360 using D, or any of the big 3 consoles, really.