Our FOSS pipeline – Backgrounds from draft to import
Here at Gamechuck, we are big supporters of the FOSS (Free and Open Source software) way of development. In short, this means that we think that any software should be available for free and has to include access to the source code.
We speak from our own experiences when we say that any pretense of protection of IP is, in most cases, actually a foil for hiding a big steaming big mess of incomprehensible spaghetti code. A ‘keeping up appearances’ of some sort that only does harm in the long run. That’s why we are actively sponsoring several FOSS projects such as Krita, Godot, and Ink.
Unfortunately, this also means that there are cases in which the required tools do not exist… yet! That’s why Gamechuck has decided to help propagate the FOSS ecosystem to even greater heights by making our own custom tool-set and giving it away for free!
Join our main developer, Piet Bronders, as he explains the problems he faced when importing assets into the Godot game engine and proposes his own custom solutions for the asset pipeline process.
Backgrounds: from draft to import
My name is Piet Bronders and I serve as the main developer of Trip the Ark Fantastic. In my case, this partly involves making sure that all assets and material have the correct format and, subsequently, adding the assets in question into the game itself!
As a result, I’m here to take you on a journey of our asset pipeline. I’ll discuss one of our game locations starting from the early draft and ending into the actual importation process of the finished art-piece into the game engine. In this case, I’ll discuss the starting location of our game: The observatory deck outside the main character’s laboratory!
Even in the early beginnings, we knew that we wanted Charles’ laboratory, the starting location in the game, to set the correct expectations for the player. This meant having a visually stunning background that is bound to elicit a wow-response from anyone that boots up the game.
Consequently, we decided that a cliff-side observatory was sure to get the point across. Not only can we toy around with parallax and positional sounds such as wind and waves crashing against the rock, but this also opens up opportunities to have visitors, of the avian variety, to come and meet Charles on his deck.
Thus, a rough draft is made that aims to get all of the most important points across:
This draft is then sent to Zlatko Drusko, our concept artist, who takes over and infuses the draft with the necessary details and charm:
Evidently there’s some back and forth where some things have to be redrawn/re-scaled or scrapped altogether, but these things are an unavoidable aspect of creative design. Eventually, when all parties are satisfied, the sketch is annotated with the necessary layers, paths and other relevant information and given to our Background artist: Sanja Kolaj!
The result is a multi-layered high-resolution image that is bound to impress:
And thus, my dear reader comes the time of importing!
Each of these layers has to be individually exported with the correct settings and then imported into the Game Engine. This is an incredible mind-numbing and menial task that I do not wish upon anyone, especially considering that we will have an estimated 200+ backgrounds of this complexity in the final game.
Asset Pipeline: Importing into the engine
As is always the case with menial development tasks of such caliber, the developer seeks solutions that automate the entire pipeline as much as possible. Such is the case here where an Importing tool would give some much-needed solace!
In these cases it is always a good idea to first look around a little bit… did anyone in the community already make a tool that fits our needs? Might there be a commercial solution hidden somewhere that does exactly what we need it to do? After a brief search I, unfortunately, came back empty-handed from my hunt for out-of-the-box tooling solutions.
Thus the options are to either give up or to implement and design my own tool. Naturally, I choose the do the latter.
Thus I’m proud to present to the community our Godot plugin for importing both Krita *.kra and Photoshop *.psd-files which enables one to automatically import the whole multi-layered image file with the push of a single button:
Giving back to the community: Our importing tool is free
Furthermore, I would like to spare any future developers from encountering this exact same gap in the Godot engine’s tooling ecosystem. Thus, I would like to give back to the community and, in true FOSS spirit, this importing tool is made available for free for everyone to use under the MIT license. For those unaware, such a license basically gives everyone free reign to do whatever they want as long as they keep the original license intact.
Now obviously this project is a work-in-progress and, while it does perform nicely for importing simple Krita and Photoshop files, it will most definitely crash whenever the user tries something a tad bit more exotic…. I do hope to make it a bit more stable and performant in the coming weeks and, if time permits it, to add a lot of missing features.
Nevertheless, we hope that the community will make full use of its capabilities and I can’t wait to keep adding features to it until it is a mature and stable tool!