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