On Monday, 5 August 2013 at 18:18:30 UTC, Jonathan A Dunlap wrote:
I am one of the few who have taken a keen interest in D for
game development. The concise language and modern conveniences
may be able to reduce many hours worth of development time off
a game project, while making the code more maintainable. Aside
from the core language, Dlang graphics bindings have a way to
go before even earning acceptance in the indie gaming scene,
but it's making great strides to get there.
The main challenge I've hit is the lack of any sort of path for
adopting a media engine. Bindings (like SFML
https://github.com/krzat/SFML-D) all suffer from:
A) No information about its current status: this is scary if
its repo hasn't been updated in months.
B) Usually are complex to get working in a new project
(manually building or searching for undocumented dependency
DLLs)
C) Lack practical references and tutorials for "real would
usage"
e.g. "how to create an OpenGL window" or "how to render a
triangle"
versus something like "how to load from disk an image texture
onto a quad and move it around using keyboard events"
SFML bindings are also in https://github.com/aldacron/Derelict3
but I couldn't find a scrap of information on how to use it,
how to compile correctly, or example usage. It's unclear if the
library is even usable in its current state.
Please don't take this as blind criticism, but rather a plea to
action for the community to provide better library
documentation support for: current lib status, getting started
adding it, and a general use tutorial/example. If we start
doing this, it'll make a big impact for other game developers
who are new to Dlang to adopt the language. Thanks for
listening!
Take a look at https://github.com/Jebbs/DSFML
The autor, aubade, me and few other guys are trying to maintain
the project. I wrote a small tutorial on the wiki. And we have
plans on documenting it, adding unittests and much more. The
autor announced today that he will soon update the C bindings to
SFML 2.1
If you have any problems using it just open an issue on github.