Master thesis

Ecstatic Coder via Digitalmars-d digitalmars-d at puremagic.com
Sat Jul 1 14:00:14 PDT 2017


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...




More information about the Digitalmars-d mailing list