Any 3D Game or Engine with examples/demos which just work (compile&run) out of the box on linux ?

evilrat evilrat666 at gmail.com
Mon Jun 7 15:02:37 UTC 2021


On Monday, 7 June 2021 at 14:02:14 UTC, Prokop Hapala wrote:
>
> Basically I'm desperate do find anything which encapsulates 
> OpenGL calls into some nice D-lang classes to learn from it. I 
> don't really want to use Dagon, nor Godot. What I want is to 
> use it as learning resources fro learning graphics programming 
> in Dlang.
>
> Rewriting my graphics engine from C++ to Dlang is huge barrier 
> for me, sice I don't know Dlang enough. I want to see some nice 
> Tricks and convenience of Dlang features applied to graphics 
> programming.
>
> Ability to compile without much hessel is minimal requirement 
> for me.
> The only thing which I was able to compile up to no was dmech, 
> which is nice for physics but very old OpenGL

Ok then, no dagon won't help you that much IMHO. There is 
definitely a lot of projects on github with some basic 
engine-like functionality which encapsulates VBO, shaders, and 
stuff. Nothing specific that comes to mind but they do exist.(uh, 
maybe serpent engine?)

They are however mostly quickly hacked up student's homework 
rather than designed solid projects, so I again suggest you to 
try godot for anything serious. It's all shaders after all, doing 
VBO and render pipeline setups is not that much fun.

For learning graphics programming however D is ok, but you will 
definitely almost on your own, still github is your friend, look 
for existing projects on github (for example dash) on how it can 
be done.

As for actual language features that might help - that will be 
reflection and meta-programming.
With them you can generate everything from the code - VBO's, 
render passes, etc...
Make declarative DSL from that to rule them all!
It's fancy and all, but it is only slightly better than C++ (esp. 
since it has shitty OpenGL/vulkan loaders and clumsy build tools) 
and there's nothing new compared to it.

And final option would be to make bindings for your existing C++ 
code, either manually or with tools (like my own generator)
https://github.com/Superbelko/ohmygentool



More information about the Digitalmars-d-learn mailing list