On Saturday, 1 July 2017 at 08:48:19 UTC, Dgame wrote:
Hi there. I hope that is the right place for this topic.
I'm currently writing my master thesis and just like in my bachelor thesis, D will play a significant role in my master thesis. My thesis will discuss the impact of software engineering concepts of security-oriented programming languages on software development with a focus on the effects on software design / design patterns and specifically software architecture. As said, D will be one of the few secure programming languages which I will present. Others will be Rust & Ada and on the other side C/C++ will be one example of the many unsecure programming languages. That as a short introduction of the purpose of my master thesis and what I intend to do in the next six months. Currently, I'm collecting links, literature and other stuff on that topic. But I thought that maybe some of you know more about that and can give me hints, links or maybe even real live experience/examples. That would be really kind of you. :)

For example:
Which impact would have D on the software-architecture, if it would be choosen for a 2D game instead of C/C++? The 2D game is my choosen case example since I programmed small games on gamejams in C/C++ and D, until two years ago. Of course, any architecture regarding that topic is of interest.

Have you already made such experience or do you know people who have and maybe even wrote articles about?

Many thanks in advance!

Whatever the object oriented language you use, you can keep exactly the same global game architecture, using more or less the same classes for your game subsystems and gameplay elements.

Therefore, as an old game industry veteran, I confirm what you already know, which is that it's all about memory allocation, access and deallocation when comparing a game made in C++, D or Rust.

I'm not saying that other matters are not important, but many game development directors apply Bertrand Meyer's architectural advices (design by contract with pre/post condition assertions, etc) since the early nineties, so there is not much difference between a C++ game and a D/Rust game in this area.


So all that remains in the end are just concurrency and memory-related features, like immutable data, array memory slicing, automatic array bound and null pointer checking, object destruction and deallocation through variable scope and garbage collection, etc.

This of course includes interfacing with C/C++, i.e. managing the memory and lifecycle of C/C++ structs/objects from D or Rust.

With D, my biggest concern was about avoiding the application thread to freeze during a GC, while C++ and Rust can completely ignore this problem.

IMHO just these last points could already explain why Rust and C++ still remain preferred to D for game development...


Reply via email to