Hi all,
since the wiki isn’t available anymore, I’d like to know if any porting documentation actually exists.
I’m not a porting expert, but still I’d like to know how much work is involved in porting this to new systems.
I’m particularly interested in Xbox One/Series X, which require UWP. From what I understand giving a quick look at the source code, the rendering is done using OpenGL. By a quick Google search I came across an OGL wrapper for UWP called ANGLE. I’m not even sure if this would work here.
What other part of the engine would require a major rewrite in order to be compatible with UWP? I saw that SDL is also used here and there, but as far as I can see (again, by a quick Google search), a port of SDL exists for UWP.
Even if UWP is out of the equation, I still would like to know what parts of the engine would require a full rewrite in order to be ported to other systems.
Anyway, apart the “Modular Rendering System” (which is cool, but outdates as stated there), I can’t find anything related to porting the engine to new platforms.
I’m pretty sure that porting the rendering engine is the bigger task, but there might be a lot of other parts to be ported.
As of right now it compiles out of the box on Windows, Mac and Linux using a Makefile and a few dependences (such as SDL). Pretty much any operating system with an OpenGL driver implementation and that SDL supports. And there’s been work for Open GL ES platforms like Raspberry Pi and iOS (I’m working on getting iOS support into the main tree right now)
I’m inexperienced with UWP but it looks to be a sandboxed, managed platform that runs on top of Windows and the Xbox platforms, which makes it a bit different than the usual computing platforms it’s designed to run on. Looks like SDL has some level of compatibility with WinRT, UWP’s predecessor, and looks like there’s way to use ANGLE like you said to interface with Open GL or Open GL ES code but I have no experience with it.
So there’s not really documentation on porting it to other platforms since it runs on the major ones so ports are usually more about getting the existing code to compile rather than rewriting it. To the extent that you might be feeling ambitious a good starting point might be to make sure you have it up and building on regular Windows and go from there.