Add a page on creating custom platform ports
Follow-up to https://github.com/godotengine/godot-docs/pull/6133.
Marked as draft as the content is technically complete, but I'd like proofreading from people involved in writing platform ports such as @efornara.
~~One thing I wonder is whether audio drivers can be distributed as part of platform/, rather than drivers/. This might be more convenient so you don't have to distribute your platform port as an engine fork (or a collection of folders) that can't be easily git clone'd into a Godot repository clone.~~
Edit: This is now documented.
One thing I wonder is whether audio drivers can be distributed as part of platform/, rather than drivers/.
Yes, see Android and Web platform ports.
It looks good to me, keeping in mind that the page cannot be exhaustive, and it looks more like a starting point with some tips.
I personally would add the suggestion to investigate if the platform allows deriving from OS_Unix instead of implementing OS from scratch. If you are familiar with Windows and tasked with a port, you might use that port as your reference.
When wayland support is merged, it will probably make sense to mention the option of adding a new DisplayServer to linuxbsd instead of creating a brand new platform.
CC @Riteo if you have some input after working on Wayland support :) And CC @RandomShaper who's quite familiar with that stuff.
I'll try to review too when I find some time.
Links to X11 files will need to be adjusted after https://github.com/godotengine/godot/pull/68182
I'd add a very brief explanation on what the build system expects for a working platform, namely the custom detect.py script, but other than that this looks like a great starting point for a developer wanting to work on a custom platform.
Links to X11 files will need to be adjusted after https://github.com/godotengine/godot/pull/68182
I'd add a very brief explanation on what the build system expects for a working platform, namely the custom
detect.pyscript, but other than that this looks like a great starting point for a developer wanting to work on a custom platform.
Both are done :slightly_smiling_face:
This needs to be rebased. Also should this still be considered a draft?
This needs to be rebased. Also should this still be considered a draft?
Done! This can be reviewed and merged now.
I get a CI error on an unrelated page despite rebasing on master and pushing the result:
Warning, treated as error:
/home/runner/work/godot-docs/godot-docs/tutorials/scripting/gdextension/what_is_gdextension.rst:19:undefined label: doc_custom_modules_in_c++
Finally merged - thank you! 🎉