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.