On Monday, 3 April 2023 at 09:08:42 UTC, dog2002 wrote:
Hello. The title sounds weird, but I try to explain it better.
In Unreal Engine and Unity, source code files don't use main()
and other important functions. They have only a class. Like
this:
```
class SomeClass: someInterface
{
AFunctionFromTheInterface1()
{
}
AFunctionFromTheInterface2()
{
}
}
```
And then all the source code files will be compiled into a
single .dll/.so library, so the game engine can use one in a
game.
I don't know what compiler does Unreal Engine use, but it uses
C++.
Is it possible to do so in D?
Yes, actually, this is the very same approach I've done for my
engine, since holding the main function I can take care of boring
platform details.
For doing that you'll need some way to make your main program
know about your class. The way I do that is by defining another
entry function which is always defined enemy you have a game
project.
You can take a look at
https://github.com/MrcSnm/HipremeEngine/blob/66618c7783d62107bcaad393d5af5b86c9387b34/api/source/hip/api/package.d#L58
The user uses that engine mixin template, which will add the
engine entry point to your game script, after that, whenever my
engine loads the Dll, it will know what function to call and what
scene it should spawn