Biggest Issue with D - Definition and Versioning

Kiith-Sa 42 at theanswer.com
Sun Jan 15 09:42:25 PST 2012


I'm interested in game development using D, so I'll post my opinion.

I think the discussions here show how particularly specialized people
here are. I've seen some Manu's posts and it was clear that he is a person
in gamedev who thinks most development is like gamedev and can't see the bigger
picture. For a gamedev person, SIMD support is not simply a cool feature, it's
a gamechanger. Just like const, ranges, D threading features and so on. However, 
his posts often show that he doesn't understand positions of other people in other 
areas, e.g. people here working on scientific computing, who are also interested
in SIMD but their thinking of terms such as "vector" is completely different.

I think you're making the same mistake here - you have very little (or no?)
idea about gamedev and aren't exposed to game programmers, so you just assume 
specific gamedev issues don't exist or are unimportant. I don't think you get
much of exposure to game devs when evangelizing D either - you don't evangelize
D in game companies.


For me, SIMD support is extremely important. I can live without it, because I'm
not working on some AAA title that needs to squeeze every last bit of 
performance from a PC/PS3/ARM phone or whatever (I'm an open source dev - doing
this for fun). But regardless it's bean a great disadvantage until now that the
only way to use SIMD was inline ASM which also happe

Also, I have been trying to evangelize D in my environment - an university 
(UPJS in Kosice, Slovakia) - and to other people who do game development as a 
hobby. The fact that there have been no SIMD intrinsics has been a disadvantage
when promoting D - in fact, I know at least one person who considered D for
his project and did _not_ use it due to that.

Furthermore, I think we can get even better than C/C++ compiler's vendor's 
solutions by creating portable Phobos modules that would encapsulate the 
platform-specific intrinsics - e.g. to provide basic vector and matrix structs
which are present in every game project and usually always implemented from 
scratch (in particular, I think the gl3n library, which was recently announced
and provides a very nice GLSL-plus-improvements syntax, could be built on top
of the SIMD intrinsics).

A game-oriented linear algebra module backed by SIMD in Phobos would be 
superior to the approach taken by various C/C++ compiler/library vendors - 
where the code must be rewritten for each compiler.

I could use that to better promote D.

D happens to be pretty much the perfect language for game development - the GC
scares people away but I found the combination of GC-in-most-code and 
manually-managed-critical-stuff to work quite well.
It's a far better language for this purpose that C# - to which many people
have been moving - and C++ is just getting obsolete

You also seem to be unaware of the size of game development industry - this is
in fact one of the largest software development industries that still needs a
systems programming language. You shouldn't underestimate that just because you
don't frequently come into contact with game developers.


To be clear: I'm not saying that fixing the advertised features is unimportant.
In fact, the greatest problems I see in promoting D are that we don't even
have finished containers in the API - and that many features described in TDPL
don't work correctly. But I find the statement that SIMD is a waste of time,
or, for that matter, that it will help little in promoting D's adoption - to
be completely incorrect.


More information about the Digitalmars-d mailing list