On Apr 19, 2012, at 11:30 PM, "Jameson Ernst" <[email protected]> wrote:
> On Thursday, 19 April 2012 at 19:37:28 UTC, Nick Sabalausky wrote: >> "Paulo Pinto" <[email protected]> wrote in message >> news:[email protected]... >>> Hi, >>> >>> just wanted to announce that Sony has finally made the new Playstation >>> Vita SDK available, as we were discussing some months ago. >>> >>> http://www.playstation.com/pss/index_e.html >>> >>> The gamming industry seems to be slowing moving to C#. Would we still >>> be able to convince developers to move to D instead? >>> >> >> Yes. I suspect that the movement to C# is somewhat of a compromise due to >> the fact that C/C++ has been the *only* real systems language usable for >> most gaming systems. Obviously, something better than C++ is needed, and >> thanks to the moronic VM/interpreted obsessions from the last decade or so >> that rendered most new languages impotent, there was no real alternative to >> C++. So, I suspect, that's why they made the compromise of going with C#. >> >> But D is *real* systems language, unlike C#. And frankly, it beats the snot >> out of C#. I'm not just saying that subjectively as D fan: Five years ago >> (if not less) I considered C# and D tied as my favorite languages. But the >> more I used both, the more I got fed up with C#'s dumb limitations and MS's >> disinterest in addressing them, and the more I liked D. >> >> If D can't be made to attract game devs away from C++/C#, then I'll loose >> what little faith I have left in mainstream games development. > > As a C# game developer very interested in D, I'll chime in on this. The > contrast from C++ is definitely a part of it. C# is very pleasant to work in > for the most part. C# is actually quite fast, but would I prefer to also reap > the full benefit of native speed? Absolutely, that's why I'm so interested in > D. > > I think there's more to it though. I mentioned this in the Fibers thread, but > C# provides a limited form of coroutine built into the language. The utility > of coroutines in game logic cannot be overstated. Being able to do things > like: > > { > WalkTo(pos); > WaitForSeconds(3); > FireMyLaser(target); > } > > And have it JUST WORK like you want is huge. You can get this by delegating > out to a script language that supports it like LUA, but then we're back in > JIT territory. Expressing this kind of thing in the native language itself > would be ideal. > > I think D is sitting on a game dev goldmine with core.thread.Fiber. > Especially the bit about being able to migrate them across threads. Having > 10,000 entity coroutines active and being able to load balance them across > all your cores with a taskpool would be amazing. I'm just worried that since > Fiber seems to be such a low-key feature that it won't survive a refactor of > the library or fall out of favor over time and be deprecated. For what it's worth, Mikola Lysenko did a talk on coroutines in D at a D conference a few years ago. It's on video, if you're interested in looking for it.
