[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Distro-agnostic advice for Godot Engine packaging (related to ITP #793057)



Rémi Verschelde <rverschelde@gmail.com> writes:

> 2016-02-29 4:25 GMT+01:00 Paul Wise <pabs@debian.org>:
>> On Sun, 2016-02-28 at 17:03 +0100, Rémi Verschelde wrote:
>>>
>>> Yes, I've actually just fixed it:
>>> https://github.com/godotengine/godot/commit/eb5f9ed89be7be2ba147cb95ee74516ce4862d01
>>
>> I noticed that modifies a lot of different icons, I'm surprised you
>> don't create those at build time from the source SVG using Inkscape or
>> rsvg or similar.
>
> Creating the PNG files at build time would likely be more hassle than
> it would bring improvements: Godot can be compiled from GNU/Linux,
> *BSD, Mac OSX and Windows, and we can't expect for example Windows
> users to have Inkscape or librsvg in their $PATH (it's difficult
> enough for them to have Scons in the $PATH :)).
>
> The few icons provided in the tools/steam folder could indeed be
> generated at build time, but they are not actually used by the built
> binaries, they are only provided here for convenience so that the
> maintainers of the Steam store page can always find the latest icons
> when updating the page.
>
>>> Debian could package Godot (the editor) without the templates, plus
>>> the runner I suggested (that would stay Debian-specific like any other
>>> binary), and let users download the official export templates from the
>>> website indeed.
>>
>> I think that is the right way to go, maybe along with a downloader
>> package in contrib to securely download the templates.
>>
>> I didn't fully understand what "templates" are though, can you provide
>> a link to some of them so I can inspect the content?
>
> Export templates are what make Godot awesome from a game developer
> point of view, and awful from a packager's :)
> The name is not so well chosen as with "templates" one often
> associates a text file that is used as a base to produce something
> more elaborate; here the templates are actually fat binaries of Godot
> compiled without the editor functionalities (`tools=no'), i.e. a kind
> of "runtime". The templates are thus native binaries for each
> supported platforms: X11, OSX, Windows, Android, iOS, HTML5 (asm.js).
>
> The main advantage for the game developers is that when using the
> official templates for their Godot version, they do not need to
> compile anything to "export" their game to their target platforms. As
> long as they have the templates installed, creating a binary release
> is a matter of clicking a few buttons in the export wizard.
>
> I say it's awful for packagers, because it's very hard to compile all
> those templates from source in a clean environment, as some platforms
> require a complex setting (Android SDK, Emscripten, OSXCross, MinGW32
> and 64, 32-bit libraries for the 32-bit X11 template, etc.). That's
> why I chose to package only the X11 templates which are easy to build,
> and the most relevant for developers using my package: they can out of
> the box export to GNU/Linux and *BSD systems and test their game out
> of the editor; if they need support for more platforms, they'll have
> to download the official upstream templates, or build them themselves
> from source.

I think it could be a good idea to split the package contents and have a
godot-runtime-X11 package. That would make it possible for people to
install the godot runtime. I tried to find out if you are already
planning to do it, but a cursory glance did not yield anything.

> I am however starting to consider not providing the templates at all
> as part of my package, since I can't provide a comprehensive set, and
> I'm unhappy with having to statically link libstdc++ in the templates
> to ensure cross-distro compatibility.
>
> If you want to check the templates for yourself, you can download them
> from Godot's website [0], but it's a fat zip archive (150 MB) and as I
> said full of binaries.
>
> Note that the "godot-runner" binary I described earlier is actually
> the release build of the X11 template for the current arch (but
> without statically linking libstdc++ as it's not meant to be used
> outside the distro that packages it). On desktop, Godot games can all
> use the exact same binary to be run, so the "export" step can be
> bypassed if the template is already in the $PATH and the `-path
> path/to/game/project/files' argument is used (this is how I intend to
> package libre games for Mageia). On mobile platforms, the templates
> are nearer to what their name says, as e.g. for Android the game
> project files have to packed into the .apk.
>
> Thanks for your feedback and questions, I think this discussion might
> provide a good base for both Debian packagers and packagers of other
> distros to understand how to package (or not package) this relatively
> complex application. It took me a while to figure out what would be
> the best way to package it all.
>
> Regards,
>
> Rémi
>
> [0] http://downloads.tuxfamily.org/godotengine/Godot_v2.0_stable_20160223_export_templates.tpz
>

-- 
Nils Dagsson Moskopp // erlehmann
<http://dieweltistgarnichtso.net>

Attachment: pgptczaXtA3KD.pgp
Description: PGP signature


Reply to: