PDA

View Full Version : Technical Blog #10



John
09-26-2015, 12:37 PM
2015/08/19

Linux and Console Ports

The Linux and Console ports are closely related, because we are using the same technology approach for all of these platforms.

From the very beginning of development, when we decided to use Adobe AIR as our underlying technology, I had planned on approaching the console ports using Scaleform GFx as a wrapper. Scaleform GFx is a 3rd party clean room implementation of the Flash runtime, and it works on just about every platform. Historically, Scaleform GFx is used to overlay Flash GUIs onto 3d games. It is heavily used in the industry. I used it professionally at Sony and at BioWare. Star Wars The Old Republic was one of the earlier games to use it extensively, and it was my task on that project to implement the interface between the game and Scaleform GFx. You can read more about Scaleform GFx here: https://en.wikipedia.org/wiki/Scaleform_GFx

On a side note, during our early and intensive usage of Scaleform GFx, I met its creator, Brendan Iribe. Brendan went on to sell Scaleform GFx to Autodesk and after some other successes is now a co-founder and the CEO of Oculus Rift. Brendan was one of our Kickstarter backers and his motion acting is rotoscoped into the game as the character Eyvind.

I reached out to Autodesk at GDC 2014, and met with them there to discuss the possibility of using their technology for our purpose. Autodesk was enthusiastic about the feasibility and we started moving in that direction. During the time that I started working on the mobile ports (Summer 2014), I started investigating the Scaleform GFx port in earnest. I integrated the technology with the game and created a proof of concept (on Windows) that convinced me that the technique could work.

At this point I began to shop around for contractors capable of helping me perform this port. All throughout the project, our usage of Adobe AIR has been something of an obstacle when it comes to finding programming help. The technology is not heavily used by the core game industry where most of my contacts reside. When I finally found Jason Maltzen for help with the Adobe AIR mobile ports, it was quite a relief. For the console ports, however, I needed to find people with both Adobe AIR and Scaleform GFx experience, which is even more rare. I eventually found 3 studios, and chose 2 of them as final candidates. I hired both studios to build a prototype with a fixed time and monetary budget. I felt like this initial investment would save me quite a bit of time and trouble in the long run. The ultimate winner of this contest was Atlanta Game Cooperative, a distributed group with a long history of working with Scaleform.

Work got underway immediately. The first goal was to get as far as possible doing a full port of the game into Scaleform GFx on Windows. Windows is a much less complex, familiar, and easy platform to develop under than going directly to console or Linux. This allowed the team to clear the core hurdles of getting the game up and running. Scaleform GFx is cross-platform, so once your game is integrated with it, the central integration work is shared across all platforms.

Once this was completed satisfactorily, focus was shifted to Linux, PS4, and Xbox One. Linux and PS4 progressed well for a time, but staff availability changed, and the project stumbled to a crawl on all platforms but Linux. Our Linux efforts finally paid off and we were able to release the Linux port on Steam alongside the gamepad controller updates in April 2015.

Afterwards, everyone realized that without the necessary staff to complete PS4 and Xbox One, we would need to shift gears again. We started shopping around for porting houses, seriously considering about half a dozen different options. We finally decided to go forward with Shiny Shoe (http://shinyshoe.com/) who has been doing a stellar job pushing the console ports forward.

Up to this point I have very little console development experience. I worked on PS3 briefly at Sony Online Entertainment. However I can say that working on console development is quite satisfying. It really scratches the techno-geek itch to get into the guts of strange and wonderful tech landscapes and to play with exotic and complex machinery.

Next: Technical Blog #10 (Banner Saga 2) (http://stoicstudio.com/forum/showthread.php?3621)

Previous: Technical Blog #9 (Gamepad support) (http://stoicstudio.com/forum/showthread.php?3604)

Aleonymous
09-26-2015, 05:26 PM
Adobe AIR/Flash as the root of all "evil", again, eh? :D Sounds like a bit of an acrobatic act, trying to "wrap" an entire game (even a simple one, like TBS) with that Scaleform technology. On this note, I've been reading in the Steamboards that quite a lot of the Linux players have trouble with TBS1, ridiculously low frame-rates, specifically. I wonder if it fares better on SteamOS...?

Do you have any estimates on when will the PS & XB ports be released?

Thanks for the write-up, for the trivial about the Eyvind actor and... Can't wait for the TechBlog post #11 :cool:

John
09-26-2015, 05:46 PM
Well I wouldn't call it 'evil' but Adobe AIR does present an unfortunate technical challenge. My biggest complaint is that Adobe hasn't taken any steps to natively support AIR on console platforms, and in fact abandoned Linux even though they once supported it. Since the time we started TBS, they had lots of time to develop PS4 and Xbox One runtimes for their tech, but chose not to do so.

Regarding the Linux performance, yes we are aware that it runs poorly on many systems. We hope that the ongoing Scaleform porting work for Xbox One and PS4 will loop back around to an update for Linux that improves performance. We've already made massive improvements in performance on those platforms.

I don't have any estimates on the console releases, but I can tell you that both builds are being tested by QA (Sculpin) almost every day now. If all continues to go well, we hope to submit our 'release candidates' to the platform holders in November. At that point it's open ended depending on their turnaround time and what feedback we get from them.


Adobe AIR/Flash as the root of all "evil", again, eh? :D Sounds like a bit of an acrobatic act, trying to "wrap" an entire game (even a simple one, like TBS) with that Scaleform technology. On this note, I've been reading in the Steamboards that quite a lot of the Linux players have trouble with TBS1, ridiculously low frame-rates, specifically. I wonder if it fares better on SteamOS...?

Do you have any estimates on when will the PS & XB ports be released?

Thanks for the write-up, for the trivial about the Eyvind actor and... Can't wait for the TechBlog post #11 :cool:

Aleonymous
09-26-2015, 06:19 PM
Being left on your own fate to roam into uncharted territories is kinda bad, yes... Even more so if you relied on that high-level/complex technology to make your life easier, and it just sweeps your feet from under you =/ If you were thrown back to 2012, would you have gone with AIR again?

Thanks for the heads up on the PS & XB ports as well as for the Linux problems. That Linux community has developed a patience throughout the long years of waiting (usually last in line, after Windows/Mac etc), but it's better not to overtax it!

John
09-26-2015, 06:39 PM
Being left on your own fate to roam into uncharted territories is kinda bad, yes... Even more so if you relied on that high-level/complex technology to make your life easier, and it just sweeps your feet from under you =/ If you were thrown back to 2012, would you have gone with AIR again?

Yes, I probably would. It certainly made the initial development of the game go faster, as well as the porting to mobile. However, I might consider writing the entire engine in a language like C++ instead of AS3. Still using AIR for the platform-specific framework and the its low level renderer, but keeping all that behind a nice abstract interface that can be swapped out later. I'd have to think about that some more though, to determine if it's really feasible.

I did make a prototype of the game in Unity back in 2012 as well, but based on some technical limitations at the time, I felt it was not quite ready to trust for the project. Of course, these days it seems like Unity is the best choice for many things.



Thanks for the heads up on the PS & XB ports as well as for the Linux problems. That Linux community has developed a patience throughout the long years of waiting (usually last in line, after Windows/Mac etc), but it's better not to overtax it!

Agreed with that. Before I got into professional game development I was 100% on Linux. My first amateur game was actually developed on Linux and cross-compiled for Windows. I wrote a Linux/Unix level editor from scratch for Quake because I hated having to reboot to use Worldcraft or whatever I was using back then to make Quake maps. I can still vividly remember the joy I had, and the hours I played, when Loki games ported Heroes of Might and Magic III to Linux.

The downside for small developers like us is that Linux is such a tiny fraction of the gaming market that developing for it is pretty much a labor of love and there's no expectation for it to even pay for itself in sales. I can tell you that Linux amounts to less than 1% of TBS sales, and that 6 months from the TBS Linux release, we are about 25% of the way to the port paying for itself, and if the current 3 month moving average holds steady it will pay for itself in only 70 more months of sales. However we both know that game sales always decline rapidly over time. Now, if we could manage a simultaneous release, things might be a bit rosier financially. I'm also very curious what will happen to the Linux market when the Steam Machines hit the market in November. If anybody can pull off a game-change like that, Valve can.

Aleonymous
09-27-2015, 03:51 AM
Yes, I probably would. It certainly made the initial development of the game go faster, as well as the porting to mobile. However, I might consider writing the entire engine in a language like C++ instead of AS3. Still using AIR for the platform-specific framework and the its low level renderer, but keeping all that behind a nice abstract interface that can be swapped out later. I'd have to think about that some more though, to determine if it's really feasible.

I did make a prototype of the game in Unity back in 2012 as well, but based on some technical limitations at the time, I felt it was not quite ready to trust for the project. Of course, these days it seems like Unity is the best choice for many things.

Yes, a lot of the game-dev world seems to be orbiting around Unity lately. I wonder if it will (also) grow too big for its own good before the end! :rolleyes:

Keeping your source code up-to-date for such big projects can be a laborous task, indeed. Here's a tricky question: To what extent do you believe that TBS1 will be "technologically compatible" with TBS2 (and, why not, TBS3)? We already have the "bad history" of Factions' code being obsolete/incompatible with TBS1 code. At this point, I'll confess that certain big changes in the TBS1 code structure kinda discouraged me from keeping up with modding, as some things "broke" when a new patch or hotfix was released. Steam is also bad at not allowing you to roll-back the versions of a game... I understand that supporting the whole modding toolset is a big load itself (and one that bears zero profit...), but I would be greatly pleased to see all three games (and Factions as well) becoming "one", in the distant future, of course :o


Agreed with that. Before I got into professional game development I was 100% on Linux. My first amateur game was actually developed on Linux and cross-compiled for Windows. I wrote a Linux/Unix level editor from scratch for Quake because I hated having to reboot to use Worldcraft or whatever I was using back then to make Quake maps. I can still vividly remember the joy I had, and the hours I played, when Loki games ported Heroes of Might and Magic III to Linux.

My experience with Linux is very limited. Throughout the last ~15 years of my life I've had practically free access to Windows OS (via academic licences), so there was never a "real" reason for me to try something different. I don't know the mentality of Linux gamers, but I presume that the majority of them also have Windows/Mac machines as well. So, seeking gaming on Linux is just their "labor of love", as you put it :)

Concerning free/open software and operating systems -- Back in the 00's when Linux started becoming a bit more popular in Greece, I figured that it might actually come to stand a chance against paid software. However, the subsequent deployment of ADSL (always online/high bandwidth) internet connections along with the "relaxed" anti-piracy measures in my country, soon made it clear that it would be just a niche community. Back to the present, I am not sure what will become of that community with the recent advent of these "software as service" or "freemium" etc marketing strategies.


The downside for small developers like us is that Linux is such a tiny fraction of the gaming market that developing for it is pretty much a labor of love and there's no expectation for it to even pay for itself in sales. I can tell you that Linux amounts to less than 1% of TBS sales, and that 6 months from the TBS Linux release, we are about 25% of the way to the port paying for itself, and if the current 3 month moving average holds steady it will pay for itself in only 70 more months of sales. However we both know that game sales always decline rapidly over time. Now, if we could manage a simultaneous release, things might be a bit rosier financially. I'm also very curious what will happen to the Linux market when the Steam Machines hit the market in November. If anybody can pull off a game-change like that, Valve can.

Yes, all this makes sense. I understand that Linux was in your Kickstarter campaign deliverables, so, even though only a few backers actually asked for it (I remember a platforms survey), you were morally obliged to deliver. Concerning Steam-machines, you think that (SteamOS being Linux-based) they might actually bring a collateral boost to pure Linux community?

Speaking of sales numbers, I recently stumbled upon this SteamSpy website. It fournishes some interesting numbers for both TBS1 (http://steamspy.com/app/237990) and Factions (http://steamspy.com/app/219340). Would you say these figures are in the ballpark? Finally, would you disclose the fraction of TBS1 sales that is with Steam, compared to the other "platforms" (GoG, GooglePlay/Android, AppStore/iOS)?

John
09-27-2015, 12:45 PM
Keeping your source code up-to-date for such big projects can be a laborous task, indeed. Here's a tricky question: To what extent do you believe that TBS1 will be "technologically compatible" with TBS2 (and, why not, TBS3)? We already have the "bad history" of Factions' code being obsolete/incompatible with TBS1 code. At this point, I'll confess that certain big changes in the TBS1 code structure kinda discouraged me from keeping up with modding, as some things "broke" when a new patch or hotfix was released. Steam is also bad at not allowing you to roll-back the versions of a game... I understand that supporting the whole modding toolset is a big load itself (and one that bears zero profit...), but I would be greatly pleased to see all three games (and Factions as well) becoming "one", in the distant future, of course :o

We 100% intend for TBS1,2,3 to be running on the same engine. We're not updating TBS1 with our TBS2 changes just yet, but we will at some point. Maybe when the whole trilogy is complete, we might think about releasing it as one giant mega-game.



Concerning free/open software and operating systems -- Back in the 00's when Linux started becoming a bit more popular in Greece, I figured that it might actually come to stand a chance against paid software. However, the subsequent deployment of ADSL (always online/high bandwidth) internet connections along with the "relaxed" anti-piracy measures in my country, soon made it clear that it would be just a niche community. Back to the present, I am not sure what will become of that community with the recent advent of these "software as service" or "freemium" etc marketing strategies.

Linux is the king and master of the backend... you might say that in many ways 'the internet runs on linux'. Our webserver runs on Linux. Our servers for Factions run on Linux. Heck, all Android phones are running a variant of linux. The differentiation comes between using an operating system for a server and a backend and using it for a client-side frontend, with well defined and well behaved video, sound, and input drivers. Android runs on a variant of Linux, with carefully packaged drivers, although its extreme fragmentation seriously undermines its stability as a game development platform. PS4 runs on FreeBSD ("Orbis"), something very similar to Linux, but again with _extremely_ carefully packaged and maintained drivers. Hopefully the Steam Machines provide a similar level of consistency, without allowing rampant fragmentation like what exists with Android.




Concerning Steam-machines, you think that (SteamOS being Linux-based) they might actually bring a collateral boost to pure Linux community?

Coming out with a new type of console is tricky business, but if anybody can do it, Valve can, with their massive catalog of games. If Steam Machines take off, then I would definitely expect a collateral boost for the pure Linux gamers. I tend to think that in order for it to succeed, Valve must be very careful about preventing fragmentation.



Speaking of sales numbers, I recently stumbled upon this SteamSpy website. It fournishes some interesting numbers for both TBS1 (http://steamspy.com/app/237990) and Factions (http://steamspy.com/app/219340). Would you say these figures are in the ballpark? Finally, would you disclose the fraction of TBS1 sales that is with Steam, compared to the other "platforms" (GoG, GooglePlay/Android, AppStore/iOS)?
SteamSpy is remarkably accurate. According to the Factions database, we have 301,801 unique user accounts. The TBS1 numbers are pretty dang close as well. TBS1 is sold directly through Steam, but also as steam keys sold through Humble, Green Man, etc... The SteamSpy estimate aggregates all those sources together into a single number. Regarding percentages, I don't have them at hand but direct-through-steam Steam is roughly 90% of PC/Mac sales. They totally dominate the market.

The number of mobile players is about a third of Steam. A third of the mobile players are on Android. This is our first rodeo on Console, so we really have no idea what to expect, but we are nonetheless expecting sales numbers similar to mobile.

Aleonymous
09-27-2015, 04:38 PM
Thanks a lot for the TechBlog posts as well as for taking the time to reply to this continued question-burst, John! Gonna let you enjoy your Sunday now :o

Keep fighting the good fight! :cool:

eriktorbjorn
09-29-2015, 01:44 PM
Regarding the Linux performance, yes we are aware that it runs poorly on many systems. We hope that the ongoing Scaleform porting work for Xbox One and PS4 will loop back around to an update for Linux that improves performance. We've already made massive improvements in performance on those platforms.

Out of curiosity, is that what's been delaying the DRM-free version? There was a Kickstarter update saying that "The GOG and DRM-free versions will be uploaded in about a week", but that was more than five months ago now and I haven't heard any news about it since then.

Aleonymous
09-29-2015, 02:08 PM
Out of curiosity, is that what's been delaying the DRM-free version? There was a Kickstarter update saying that "The GOG and DRM-free versions will be uploaded in about a week", but that was more than five months ago now and I haven't heard any news about it since then.

While we wait for John's official response -- I believe that the DRM-free version was released a couple of weeks (or months) after the Steam version. The GoG version appeared some months after that. Maybe you should browse around the Kickstarter-exclusive area of these forums to find out how to retrieve your DRM-free copy. However, I am not sure if it's the same version as the Steam one (controller-support, localisations etc)

eriktorbjorn
09-29-2015, 04:12 PM
While we wait for John's official response -- I believe that the DRM-free version was released a couple of weeks (or months) after the Steam version. The GoG version appeared some months after that. Maybe you should browse around the Kickstarter-exclusive area of these forums to find out how to retrieve your DRM-free copy. However, I am not sure if it's the same version as the Steam one (controller-support, localisations etc)

GOG does have the game, and as far as I remember that's the only DRM-free version I've heard of. However, they only have it for Windows and Mac, but not yet for Linux. Someone from the GOG Team posted in their forum that "We're hoping to have [the Linux version] soon, please be patient for just a little longer :)", but that was a month ago.

I did cave in and get a Steam account a while ago, mainly because I've been curious about the Portal games, and at that time I asked for and got a Steam key for The Banner Saga. I've tried that version ever so briefly, but at least on my computer (which is fairly new), it's pretty broken at the moment. It works fine until I get to any combat situation, but as soon as that happens the frame rate drops from "X frames per second" to "Y seconds per frame" (no, I don't think I'm exaggerating), making it almost completely unplayable. There is a beta version that doesn't have this problem, but I haven't had the time to try it beyond that.

Aleonymous
09-29-2015, 04:48 PM
GOG does have the game, and as far as I remember that's the only DRM-free version I've heard of.

I believe there was a DRM-free version of the game to be downloaded directly via StoicStudio somehow, and that was long before the game became available on GoG. Not sure what happened to that, as I am not a backer and I didn't have access to those parts of the forums.

The Linux version of the game is currently available only via Steam (not GoG, nor other DRM-free) and, yes, Steam/Linux version is kinda dysfunctional at the moment, by many accounts (unplayable framerates). So, if you're only on Linux, then you're kinda stuck at the moment =/

Romance1984
10-05-2015, 09:37 PM
I don't know the mentality of Linux gamers, but I presume that the majority of them also have Windows/Mac machines as well.
online casino (http://casinoonline.cawblog.com/online-casino/)