This is the testing Godot forums! All forum posts unique to this forum will be deleted! Please use the main forums here for any posts you want to keep. All forum rules still apply.

Engine and Build Template Compatibility with Linux Distributions

omenosdevomenosdev Posts: 3Member

Hi all!

I'm looking at creating a 2D game for several platforms, including Linux. As I don't need certain functionality of the engine, I'm going to be building Godot from source, including the build templates. My personal workstation is RHEL 8, but I know for a fact that I will need to support RHEL 7. Because of this, I plan on building Godot in a RHEL 7 container to ensure binary compatibility, then use the resulting artifacts on my workstation. However, the part I'm unsure of is whether or not the exported game has any ties to the host system, or just the original tooling the engine/templates were built with.


From the docs:

Linux binaries usually won’t run on distributions that are older than the distribution they were built on. If you wish to distribute binaries that work on most distributions, you should build them on an old distribution such as Ubuntu 16.04. You can use a virtual machine or a container to set up a suitable build environment.


The part I'm hung up on is whether the term 'binaries' is referring to the exported game or to the built export templates. If I take the engine/templates built with RHEL 7 and use them to create a game on RHEL 8, will the resulting game have RHEL 8 as the minimum compatibility or will it maintain RHEL 7 compatibility?

Cheers,
Mike


Tags :

Answers

  • cyberealitycybereality Posts: 928Moderator
    edited December 2019

    I'd be interested to know this as well.

    Also, welcome to the forum!

  • omenosdevomenosdev Posts: 3Member

    I asked this on Discord before posting here, but after rereading the response and the Godot documentation, I think I understand it better.

    I think it makes no difference - the export only really consists of the binary/"export template" (which was compiled elsewhere, like the editor binaries from the website), and your resources packed into data.pck

    SheepAndDotto

    So an exported game is just a bundle of the created game assets and the built binary export template. If this is indeed the case, then building the templates with RHEL 7 will in fact maintain that compatibility and not pull in newer distribution links.

    The terminology of "export template" just confuses me as I see the term "template" as a general guide that will be used to build something. The templates themselves are compiled binaries of the engine (without tooling/editor), not instructions (as far as I can tell) to create the final game binary.

    I'm going to assume this is what is going on and see what happens, but won't mark as answered until there's actual confirmation on this.

  • cyberealitycybereality Posts: 928Moderator

    Yeah, that would make sense. However, if that was the case, why would an Ubuntu 18.04 dev system not be able to export for Ubuntu 16.04, assuming the executables were pre-built and part of the template. I'd like some insight here as well.

  • cyberealitycybereality Posts: 928Moderator
    edited December 2019

    Oh, I think I see. This is only a problem if you build the engine from source and use custom export templates. If you use the binary release then this wouldn't be a issue, right?

  • omenosdevomenosdev Posts: 3Member

    Assuming the official binaries are built on Ubuntu 16.04 (or older distribution), then yes it wouldn't be an issue. However, I should give fair warning that building on Ubuntu 16.04 may not support running on RHEL 7. Went through this for a good amount of time with Blender as the glibc version they used (2.23 on 16.04) added the mvec.so library which wasn't in RHEL 7 (glibc 2.17). They switched to building on RHEL 7 though in compliance with that and the VFX platform.

    I'm not seeing that specific issue when running ldd on a Godot binary, but it's food for though.

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.