other stuff

Some time ago, I offered to do an interview with my good friend flibitijibibo (Ethan Lee) about the work he'd been doing with the independent game development studio 12characters, and the contributions he had made to several Free/Open Source projects. Fourteen months and several collaborations later, our schedules have finally coincided, though flibit (as he is known) is now working as an independent game porter, with three cross platform titles under his belt, and one in-progressHumble Bundle port.

In part two of this interview, we look at the values and hurdles faced by porters and cross platform gaming in general. Part one and part three are also live.

What would you say would be the biggest hurdles you've faced? What pleasant surprises have you encountered along the way?

Sometimes learning things takes longer than you'd like, but more often than not it's just something you were just adverse to before, but "oh hey, that wasn't so complicated!" Eversion and Blueberry Garden were both in the latter category for sure.

Debugging massive games is probably the hardest thing I've ever done. Direct3D was actually pretty easy to learn, and I was able to make that initial OpenGL renderer for Vessel pretty quickly, but then came the time to debug it against the internal rendering engine... bleh. I'm still trying to figure this one out, to tell you the truth. I'll probably write about it when I'm done, but yeah. It's hard.

What kind of recognition do you feel that game porters are given in the industry?

Right now we tend to lurk in the shadows, porting games in the background but not really trying to put ourselves out there as some kind of amazing superman to be praised by everyone. Honestly, I like it this way. Sure, I talk to my customers and the community often, but I'd feel like a smug idiot if I approached it as anything other than a guy who happens to be working on a game or two. I probably could have asked my clients to put me in the credits somewhere, but I've never done so. I'm fine with just being in OSX.README and Linux.README.

What I do have a problem with, however, is that we've not been documenting these things very well. Some devs will write small blogs about their internal ports, which is great, but it's a very small number. There are a number of reasons for this, but the big two:

The porter isn't interested in documenting it. Fine, sure. Some people are busier than others.

Lack of transparency of developers.

Transparency in game development is something I have a serious problem with right now. There are things like Kickstarter offsetting this somewhat, with developers promising dev diaries and so on, but there's this awful tradition in the games industry to play Secret Agent CIA Man with everything. I mean, sure, I'm not wanting to spoil Humble Bundle lineups, and I do use Codenames for those games for a reason, but we really need to knock it off with being secretive about everything. I consider myself an advocate of preserving the history of games and the minds of those who develop them, and this is directly and aggressively destroying such an effort. I get it if you don't want to release the source of your game, as helpful as it would be to preserving your game, but you don't have to keep everything in a vault for all eternity "just because".

When I posted oh.html for Vessel, I got an overwhelming amount of demand for more posts like it. Every single site I saw that commented on the article had people in the comments demanding more openness in the port development, including on Humble Bundle's blog. So if you think this is just me complaining about "openness" as some narrow-minded Linux developer, you're incredibly incorrect, and my inbox alone could demonstrate this.

What do you consider to be the pros and cons of having porting done internally compared to contracting porting out externally?

If your company doesn't have anyone with the experience to port, it's probably better to get it contracted out if you need it right this second. Or, if you've got an old game that someone wants to port and you've got other games to be working on, I'd say go ahead. In almost every other case I would recommend doing it internally, even if you have to learn as you go. You'll be glad that you did. The sooner a company learns how to develop cross-platform titles internally, the better off they'll be. Eden Industries has been using my port as the base for their later games, and so far it seems to be working out great. They've updated Waveform a number of times and I've barely had to lift a finger... they're even expanding their target platforms, which is nice to see.

Do you think there is risk to ongoing maintance and bugfixing of externally contracted ports as the contractor moves on to work on different projects?

This is actually the main sticking point with people concerned over the quality of Humble ports, and I have to say that I agree with them. It would be rude of me to try and speak on behalf of Ryan or Edward, but from my perspective it's really hard to let a game go right away, especially when there are definitely game-breakers in the port. One thing I try to do is give the original developer the power to maintain the cross-platform engine themselves (Eden and Zaratustra seem to be doing fine with this so far), but depending on the game, this may not work so well. Edward just started working with Humble Bundle full-time, and I really want to get involved in the business-y process of how these bundles go out if I'm going to keep porting under this organization, so we'll see how it goes.

TL;DR: It's difficult, but we need to allow time to get a game working before we leave it. If we can't do that, ports are just a cheap novelty rather than a real service to gamers on these alternative platforms.

What 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.

What are the biggest hurdles that you think are facing cross platform gaming at this point in time?

People not learning from things described in the last question. It'd be pretty silly to blame game developers entirely, though. As I mentioned earlier, there's virtually no resources for someone looking to port their game, and we're lacking in a few areas when it comes to the new-age libraries that developers are using these days.

We spend a lot of time talking about the marketing of games to gamers. What the free software community needs to do is spend some time thinking about the marketing of libraries to game developers (NOTE: NOT ADVERTISING!). We've actually conquered a of a lot of territory in this regard, but we didn't move much further than what Loki did to encourage cross-platform development.

Here's one that I've been looking at: nowadays we've got things like FMOD and Wwise handling audio development, with no open alternative. On top of that, FMOD and Wwise have a lot of bad parts, on top of being proprietary. Okay, so we've got this massive gap in the market of audio middlewares: no open audio middlewares, lots of bad/missing parts from the current solutions, and no genuinely cross-platform middlewares (FMOD does not count, its platform support is miserable more often than not). We really ought to target this market, and I'm hoping to do that sooner than later (once my port backlog is settled, of course). I've been asked by a couple of developers, clients included, about good middlewares, and I sound like an idiot telling them to just use OpenAL with a custom materials system. I should just do this myself, if I like the idea so much.

If you ended up doing such a project, do you think it would be something you would specifically focus on, or something you would develop whilst working on a port that required it?

For something like flibitAudio (don't worry, I'll probably think of a better name) I would really enjoy dedicating most of my time to it, but this would require a lot of funding. And let's be honest, that would be the worst Kickstarter ever. This actually kind of goes back to the "work with one developer" thing; I could probably develop this middleware for one project with a team willing to hire me, then release this as an open-source project for all to use. I don't know if I'd try to capitalize on the middleware itself, but getting the software finished (or for that matter, started) is what I'm more concerned with at this stage.

If you could have the opportunity to port any title or titles, what would they be?

And probably a whole lot more. I would say "every Retro Studios game ever" (and I actually did help out a bit with the Metroid OnlineHalo CE mod once or twice), but I tend to block the idea of Nintendo adopting a PC platform... I've often suggested that they do this and just make the peripherals PC devices, but that's in a bizarro-land where things I think should happen actually happen.

DerRidda: Have the problems you had with Vessel in any way reflected negatively on your position as a porter for the humble bundles? *

I'm not sure. It's something that'll always be there, but it was just a cavalcade of bad decisions made by just about everyone, though I place most of the blame on me for not giving everyone the opportunity to make the well-informed decision. I'm not taking any more contracts until Vessel and Codename lolno are done, as I'd prefer not to ruin anything else for Humble so soon... :/

That's it for part two. Continue on to part three for more of flibit's thoughts on porting, or head to part one (eno trap) if for some reason you're reading backwards.

A note from Cheese

Thanks for reading!

Questions marked with an asterisk (*) have been submitted by community members/friends/people who are not me.

First up, a nice big, fat disclaimer: flibit and I are friends. We've worked together on a couple of projects over the past year and a half, we're both operators of the #steamlug channel on Freenode.net, he's an admin of the Linux Steam group I now run, I started Para CMS as a base for a revamp of his Big List of 3rd Party DRM on Steam, I've assisted him with testing several of his ports, I made the CLI/headphones avatar he currently uses, and he's offered feedback and encourgement on many of my projects, so I'm totally biased when I say that he's a great guy and fun to work with. It's been a pleasure to watch him discover game porting, and I'm definitely interested to see where things take him from here.

I know that some of my readers have anxiously been waiting for this interview in the hopes that it would reveal more details about the status of Vessel, the Humble Bundle port that flibit was not able to complete before the Humble Indie Bundle 6 ended. Knowing that flibit intends to keep his Vessel development blog with the most up-to-date news, I intentionally steered clear of Vessel specific questions, allowing flibit's responses to be his own. Apologies to anybody who feels cheated, but I feel like what we've ended up with is of more lasting interest, and current Vessel info can still be found on flibit's bloggy thing.