Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.
My latest "cheese talks to" interview is live, this time talking with cross platform game porter flibitijibibo (Ethan Lee) about porting games, software development and his community endeavours.

In this three part interview, we trace flibit's path through modding and game development, eventually leading him to porting several indie games to MacOS/Linux (including Vessel from the Humble Indie Bundle 6, Waveform, Eversion and Blueberry Garden). We also cover the hurdles and pleasant surprises associated with migrating others' code to new platforms, and touch on flibitijibibo's assorted activities within the Steam and Linux communities.

Here are a couple of snippets:
QuoteHow do you find game porting to differ from game development?

There's a lot more debugging in porting, at least in my experience. I'm a colossal pain in the ass about portability/code quality though, so anything I work on from the start tends to require a lot less time in QA. I like to think that this carries into my port work, but it's probably not as much as I want it to be.
I also tend to learn a lot from my porting. I'll only delve into what I would put in my own engines if I work alone, but when dealing with other engines I'm forced to broaden my horizons a bit more. Here are some things I learned to port some of my games (some of these may shock you):

As you can see, a lot of these things I just learn as I port. Is this bad? I don't know, maybe. I've been able to get these out in a timely manner, so I can't be sure. So far the only project that's been impacted by this is Vessel, but that's also the largest project I've ever worked on. It's hard to tell, at least from my perspective. Maybe someone sensible will read this and tell me I'm a phenomenal idiot for learning things after I take the project.


QuoteHow do you feel that commercial games fit within the Free Software ecosystem?

Right now commercial projects are the main source of professional developers in the Free Software universe. Commercial projects need open libraries, open libraries need work, developers work on those libraries.
Of course, we'd all like for developers to release the main project source as well, but this is where we're at, currently. There are still a lot of people developing on proprietary libraries/frameworks as well, so I think we should keep working at making the free/open libraries the best they can be. Think of it as attacking from all sides, I guess.


QuoteWhat do you consider to be the values of cross platform software to gamers, developers and the industry as a whole?

Games, from a business standpoint, should not be dependent on a single platform. If something goes horribly wrong with one platform (Windows 8?), it shouldn't be grounds for a catastrophe, and it should be possible for the industry as a whole to move freely between platforms to provide gamers and game developers to provide the best experience possible without having to force anyone into using software they'd rather not use. If you think this is silly, read the last sentence again with DRM in mind, rather than platform dependency.



QuoteWhat key factors contribute to the ease or difficulty of a port?

Use of F/OSS libraries helps. Use of cross-platform libraries helps even more. Strict use of multiple static analysis tools helps even more. Use of compilers other than Visual Studio's helps even more. All of these things aren't just portability concerns, they're code quality concerns. High code quality = easy port work, plain and simple.
Liberal use of Visual Studio's liberal compiler is annoying. Misuse of asserts and NDEBUG is irritating. Trying to come up with your own clever asset packaging format is infuriating. Use of OS-dependent low-level APIs is agonizing. Use of DirectX is a death wish.



http://cheesetalks.twolofbees.com/flibitijibibo1.php

Enjoy! Article taken from GamingOnLinux.com.
Tags: Misc
0 Likes
About the author -
author picture
Game developer, Linux helper person, and independent writer/interviewer.

Currently working on Winter's Wake, a first person text adventure thing and its engine Icicle. Also making a little bee themed base builder called Hive Time :)

I do more stuff than could ever fit into a bio.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
12 comments

minj Nov 14, 2012
A very interesting read, thanks.

This interview was first published on the 16th of November 2012.

Living in the feature, aren't we? :DD
SCIBOTIC Nov 14, 2012
Fantastic interview! Thank you both for sharing.
Anon Nov 14, 2012
Read this this morning (noticed a link on Twitter), fantastic interview! Is there any chance you could do the same with Edward Rudd and Ryan C. Gordon?

Also, I want to know the next port. What is it?!
KIAaze Nov 14, 2012
A very interesting read, thanks.


Living in the feature, aren't we? :DD

Living in the future is a cheesetalk feature. ;)

(I love the name "Flibitijibibo". :) )
Cheeseness Nov 14, 2012
Thanks guys :D

I was originally planning to publish tomorrow and hadn't updated the date on all three pages ^_^

Read this this morning (noticed a link on Twitter), fantastic interview! Is there any chance you could do the same with Edward Rudd and Ryan C. Gordon?

This is something I'd be interested in (although I imagine I'd take slightly different angles with each). A lot will depend on their availability/interest when I'm ready :)

I've got a few other articles and interviews I've got lined up that I'd like to get through before seeing whether they'd be keen.

Also, I want to know the next port. What is it?!

flibit isn't able to give details of his upcoming port(s), so he's "codenamed" his next project "lolno". Sadly, some developers don't like to be open (and it can potentially be pretty damaging for everyone if a port is announced too early and people end up losing hope in it ever being released).
Anon Nov 14, 2012
Thanks guys :D

I was originally planning to publish tomorrow and hadn't updated the date on all three pages ^_^


This is something I'd be interested in (although I imagine I'd take slightly different angles with each). A lot will depend on their availability/interest when I'm ready :)

I've got a few other articles and interviews I've got lined up that I'd like to get through before seeing whether they'd be keen.


flibit isn't able to give details of his upcoming port(s), so he's "codenamed" his next project "lolno". Sadly, some developers don't like to be open (and


I think something ate your letters.

But yeah, I understand that that's the issue there. We'll learn sooner or later, and if the port works as well as Waveform (with a few minor bugs that are still being worked on), I'm sure everyone will be happy.

I do hope you're able to get interviews with them later.
Cheeseness Nov 15, 2012
I think something ate your letters.

Fixed. I think time ate them - I was running a little late this morning.

But yeah, I understand that that's the issue there. We'll learn sooner or later, and if the port works as well as Waveform (with a few minor bugs that are still being worked on), I'm sure everyone will be happy.

flibit has actually released [URL='http://flibitijibibo.com/oh.html']an update[/URL] to oh.html talking about where things are at. Sadly, it doesn't seem like he's as keen to update it as I at first thought.

I do hope you're able to get interviews with them later.

Thanks, me too :)
Anon Nov 15, 2012
Yeah, I guess we wouldn't want another UE3.

I know about Vessel, it's very playable now, but not entirely playable.

I'm not sure what do you mean by 'Sadly, it doesn't seem like he's as keen to update it as I at first thought.' The page? Or a port? Or what exactly?
Cheeseness Nov 15, 2012
I know about Vessel, it's very playable now, but not entirely playable.

From what I understand (I haven't tested a build in a while), it's entirely playable - the remaining issues are cosmetic.

I'm not sure what do you mean by 'Sadly, it doesn't seem like he's as keen to update it as I at first thought.' The page? Or a port? Or what exactly?

As mentioned in the footnotes of my interview, I specifically avoided asking about Vessel directly, as I knew that flibit was planning to update his page. His most recent update says it will probably be the last (hopefully no more are needed anyway).
Anon Nov 15, 2012
From what I understand (I haven't tested a build in a while), it's entirely playable - the remaining issues are cosmetic.


As mentioned in the footnotes of my interview, I specifically avoided asking about Vessel directly, as I knew that flibit was planning to update his page. His most recent update says it will probably be the last (hopefully no more are needed anyway).


Yeah, it doesn't really crash anymore and the performance is fine. All-in-all it's almost playable, but the game is still prone to crash due to some graphics related bugs. So it isn't just cosmetic issues. And then there's the bug that's similar to Trochlight's missing heads. But the second one is unimportant for now.

But looking at the current state, I think that it's going to be here before the end of November, as was stated.
Cheeseness Nov 16, 2012
Yeah, it doesn't really crash anymore and the performance is fine. All-in-all it's almost playable, but the game is still prone to crash due to some graphics related bugs. So it isn't just cosmetic issues.

flibit tells me there aren't any crash causing bugs left that are graphics related, so if you've been testing, and you've encountered something that appears to be so, make sure you report it.
flibitijibibo Nov 16, 2012
There are three major blockers left before I can stamp Vessel with an RC tag:

- Outdated assertions. Best case, I just have to delete some of these. Worst case, I compile with NDEBUG.
- Fluro eyeballs. At first glance they're just missing, which I thought was a scripting issue, but something else is going on (looking at it right now). This sounds like a minor issue, but it's the source of every crash I've got in the bug tracker that's not an assertion. This needs to be fixed.
- Color channels. Some materials are still the wrong color, including lighting. Will be doing this last.

There are other things I may address if I can get it in a November release, but none of them are game-breaking or even problematic (and a couple of them could possibly require editing the content files, which I'm avoiding at all costs). Of course, there may be other bugs that I have to fix, but currently Vessel is doing pretty well in QA.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.