Experienced Points: The Perils of Porting

By Shamus
on Jul 7, 2015
Filed under:
Column

My column this week is on the difficulties of porting. I hope it doesn’t come off like I’m making excuses for lousy ports. Yes, porting is a massive pain in the ass, but you still need to do it and you need to be thorough if you’re going to ask for 60 dollarsOr in Australia: $60 and a kidney. for your videogame entertainment product.

Basically: Do it right, and I’ll do my best to help people feel sorry for all the hard work you had to do. Sell me a broken game and I’ll drag you over the coals.

On a totally unrelated note: As of the writing, Arkham Knight has still not returned to the PC after being pulled by Warner Brothers.

Enjoyed this post? Please share!

Footnotes:

[1] Or in Australia: $60 and a kidney.


2020202013There are now 93 comments. Almost a hundred!

From the Archives:

  1. Chris says:

    If you delay the game on all platforms, then your publisher will crucify you because their timetable says this is going to be a Christmas release, and literally millions of dollars are hinging on that.

    Man, it would have made Arkham Knight a pretty cool Halloween game if they had managed to release it on its original October timetable.

    Also explains the (otherwise awkward) jump scares.

  2. Aegis says:

    As someone from Australia, it’s nice to be remembered. :’)

    Oh, also, y’know, game prices are completely bonkers here.

    • Wide And Nerdy says:

      So sorry for whats going on there. Heard they’ve widened the scope of their banning.

    • Da Mage says:

      To be fair, with the plummeting current exchange rate, as long as you are paying about $80AUD for a new release then you are paying the right amount. Just don’t buy through Steam, as it’s all in US and $80USD is SIGNIFICANTLY more ($107AUD) then the $80AUD you’ll pay in a store. Why publishers are still marking up Australian steam prices I’ll never understand.

      Fellow Aussie here.

      • Daemian Lucifer says:

        Wait,let me get this straight,the publishers convert the price to aud,then give it to steam who interprets it as usd and reconverts it again to aud?Thats why it has been so ridiculous?And they are getting away with it for this long?

        Wow,thats stupid.And I thought such bonkers cheating was happening only in my country.

        • Da Mage says:

          Yes. It’s not that they covert it, more that they know it is sold at $80AUD by the retailers, so they tell steam to charge $80, not considering the exchange rate that steam charges in USD. Hence why piracy has become a HUGE problem ins Australia, even to the extend our government is implementing an internet filter (laws for it were passed 2 weeks ago).

          It actually made a little more sense a few years ago when $1AUD = $1USD, as it meant steam offered the same price as a retailer (which I hear is common in most countries). At that time the price hike was just silly, as it matched EB Games prices, which were the most expensive retailer, but some of it could be explained by importing goods, taxes etc. And retailers (other then EB Games) started dropping game prices to where a new release was often $70-$80 instead of $90-$100.

          But since our dollar started to plummet in the last 3 years, so now not only is steam matching EB Games with the same price, but the currency exchange adds on a significant price hike on top of that. If I want a new release, I buy a psychical copy. I do still buy games on steam when we are given the proper US price, as I am happy to pay $60USD/$80AUD.

          But in the gaming community there are very few big Australian voices, so it rarely get coverage outside of Australia. Not to mention it is a complete mess that goes back through 20 years of business decisions. It’s why the comments will be filled with Australians whenever someone is complaining out the price of games, cause it’s always worse here.

          • tmtvl says:

            Sounds to me like easy money could be made buying games on Steam for true price and reselling them for ever-so-slightly more in Australia.

            Buying and selling at the same price would be charity, so that might be something for me to do when I get sick of rolling out DSpace.

            • Alexander The 1st says:

              Thing is, that type of behavior leads to region locking, which means the copy bought elsewhere won’t work in the new country (IIRC, isn’t this already the case with Russia? Or another Eastern European country – but they had a problem where games bought for an account in one country couldn’t be played in another on the same account even.), which while it could take a while to hit all the games, leads to the local populace not bothering buying second-hand when they could just straight pirate it for free.

              And that’s not even getting into the banned games for a specific region only…

              • Daemian Lucifer says:

                Ugh,region locking.It can be avoided you know.The banks could take a huge chunk of your profit if you deal with someone outside your country(and then siphon that back to the appropriate governments as taxes),which would act as a sort of digital customs,and thus remove the need to region lock digital media.On the other hand,giving that additional power to banks,I wouldnt be that keen on that.

          • Alex says:

            “even to the extend our government is implementing an internet filter (laws for it were passed 2 weeks ago).”

            I don’t know why I’m surprised. The Abbott government has done nothing but try to **** us all over, so why not bring back the internet blacklist?

          • dp says:

            When I lived in Australia I bought games through a company called CDWoW which imported foreign copies of games. For PC games they were about half the Australian price and seemed to be mostly from the UK. Never tried buying a console game from them though. This was about 5 years ago so they may not be in business anymore.

        • Rick says:

          I don’t know what their reasoning is, but here in NZ a AAA title is usually over NZ$100

          Eg. Regurgitated Shooter for NZ$114.

    • Corpital says:

      I feel your pain.

      Thankfully, the Euro isn’t at 1.5USD anymore, so the typical big game sold for 60Euros doesn’t sting as much.

      • wswordsmen says:

        Remember to thank every Greek you meet (and to a lesser extent Spaniard Italian and Irish).

        No seriously otherwise the Euro would be way stronger vs. USD.

  3. Merlin says:

    Y’know, in this context, timed exclusives seem downright reasonable.

    • Felblood says:

      It’s almost like getting a multi-billion dollar company to pay you an incentive to do things the easy way.

      If it wasn’t for the inevitable console fanboy backlash, pretty much everyone would take that money, and feel not one whit of guilt.

  4. KingJosh says:

    I want a FunBox!

    • boota says:

      ah you stupid retard funboy. if you saw last E3 announcement you will know MicroBox just wants to destroy gaming with their dudebro appealing titles. it’s guys like you who DESTROY GAMING!!!!

      if you want a real console, go Wizbang.

      • MrGuy says:

        You need to get off the [internet] because you clearly are a [dumb] person who likes [dumb] things and is [dumb].

        The hardware specs on the FunBox are better than on the Wizbang. That’s just a fact. Are you too [dumb] to understand facts?

        The only reason people think the Wizbang is [better] is that the manufacturer raised the price by $100 to include a native toenail animation chip. Sure, toenail-intensive sections of games look a tad better, and it makes for [good] trailers, but that’s almost never core gameplay. Most of the game will ALWAYS look and play [worse] on the Wizbang. People like you are just [fooled] by pretty trailers. You’re [not real gamers].

        Who cares who makes the console? MicroBox has massive [resources], tons of [talented] developers, and are absolutely committed to the platform. They’ve built the [best], most [good] console on the market, have the [best] games, and offer the [best] experience.

        Get over your [dumb] fanboy hate and realize that you’re [only hurting yourself].

    • Best played with a Joystick?

  5. The Seed Bismuth says:

    I want a Wizbang!

  6. Retsam says:

    I wonder if this is part of the incentive for timed exclusives. You make your game six months exclusive on the Wizbang, and you have six whole months to focus on porting it to the other platforms, plus a nice kickback from the Wizbang company for doing so.

  7. Wide And Nerdy says:

    As good as the refund policy is, I just hope that this series of disastrous ports combined with the new policy doesn’t scare devs off from trying for a PC Port. Consoles have been struggling to distinguish themselves, with “exclusive” to one console often still getting a PC port even if the other console doesn’t get the same port.

    Its been good times for us and it needs to be good times for a while longer to build the userbase to a level that can’t be ignored.

    • Tizzy says:

      I feel like the guys in charge would like us to own all – or most – platforms. I can see why it would make their life easier, but it’s obnoxious.

      • Wide And Nerdy says:

        I feel like they’d like us all to own the same machine and they’d like that machine to be way more powerful than what any of us have so they could just do whatever they want.

    • Mephane says:

      The answer is simple. Maybe a bit selfish, but also, I think, the technically more efficient option: Build it for the PC. And then port it to consoles, where more often than not, you need to dial back different things on different consoles, whereas original the PC build must be able to scale up and down the various PC hardware configurations anyway.

      • Robyrt says:

        Building for the PC first leads to games with bad console ports, because something that’s basically free on PC could have huge performance costs on a given console. Slightly awkward interface? No problem, we’ll just make people use the mouse. Oh wait, most of your customer base is using twin sticks. PS4 owners also have a touchpad which is sort of like a mouse, but we can’t force them to navigate all the menus with that thing…

        • Wide And Nerdy says:

          The answer to that is to lobby congress to require that all video game consoles ship with keyboard and mouse. I’m gonna get a petition started on Change.org later.

      • Incunabulum says:

        As much as I would like that, its actually easier to go the other way.

        You build a console version, targeted to the mediocre hardware of the console but most PC’s will be able to handle it as-is, then you build the PC version with a few more bells and whistles (or, usually *not* as is the standard practice) for those with higher end rigs.

        If you build for the PC first, often you’ll have your design team doing all these neat things – and then find out they need to be trimmed down drastically to fit on the console version. Its almost like designing two separate games (with the associated costs).

        • Wide And Nerdy says:

          The problem with that is in order to compete with the other Triple A’s, you’re tailoring the game to the exact performance capabilities of the two consoles, coming up with weird programming tricks that work because you know exactly what hardware this is going to run on and when you can load what thing.

          For example if my hardware has a much faster hard drive (like an SSD which many PC owners have while console owners are still running on traditional hard drives) and only slightly faster RAM, that might result in things loading out of order (a lot of us have noticed problems with texture pop in and characters suddenly appearing in scenes in the latest gen games of the past couple of years, not game breaking but a little annoying). Also, while high end PCs are better overall, even most of the expensive video cards don’t have the 8GB of GDDR5 that a PS4 has. We probably have 2 to 4 GB of GDDR5 and 8 to 16 GB of the DDR3 that an XBox has (though what we have loaded while a game runs can vary greatly from what an XBox has loaded.)

          Shamus mentioned optical media. My computer has a DVD player but not a Blu Ray player (I took it out to make room for another hard drive) so that streaming trick wouldn’t work.

          Also, as Shamus pointed out. I haven’t spent over a thousand dollars on PC hardware (just counting whats currently in my rig) to have an experience comparable to what the consoles have. I expect my interface to take advantage of the available keyboard and mouse. I want to bind macros, I want more hotkey slots, I want to be able to click and drag items in inventory and multi select (I can’t remember the last game that offered mouse based multi select for inventory management.) I want to be able to adjust the FOV, resolution, various graphical effects. I want to be able to interact with objects in more than one way and not just with an all purpose “interact” button thats there because my console brethren are saddles with controllers.

          And the list goes on. Personally, I don’t want all of those specific things, I’m echoing the PC Gamer community here.

          Watch a few of Totalbiscuit’s Port Reports if you want a good idea of what the PC community expects and often fails to get.

        • Blake says:

          Other reasons why console -> PC is the simpler order, is dealing with all the sorts of special requirements consoles have.

          Things like dealing with user profiles can actually be a massive pain if the game isn’t built with them in mind from the start. Going PC first can lead to a LOT of code needing to be rewritten when you want to get it working on console.

          There’s also a lot of technical requirements console manufacturers will force you to adhere to before you can release on console (including things like consistent frame rates, loading screen times, correctly handling errors when external servers are down, etc.) that will make for a better product on all platforms.
          Making sure you’re compliant on your console builds will help your PC build be better.

          Then there’s the big draw of developing for consoles, consistent hardware. If you’ve got teams working in different locations and external testers and you’ve got a game that’s not yet entirely stable, then it’s much easier to find, reproduce and fix bugs than when everyones configuration is slightly different.
          As the game nears release you can test all the pc hardware and be pretty certain the problems you find are due to the hardware differences and not just that the build was a bit flaky that day.

          But the performance is probably the main thing. Get it working on the weaker platforms and it should have no problem running on a pc.

  8. Benjamin Hilton says:

    I’m getting the notion that this idea is wrong but perhaps someone could explain precisely why:

    I was always under the notion that it was easiest to build a game on the PC for the PC and then port it to systems from there.

    • I always thought it was easier to do a console first, since you’re working with known hardware configurations with not much variety. You develop on the Wizbang, you know what video hardware and drivers you’ve got to work with. You develop on PC, and suddenly you’re dealing with a lot more configurations.

      Thinking about it a bit more, I’d probably say develop on PC first to get the hardest part over with. Once you’ve gotten things working with 3-5 OSes (Win7, 8, 10, Mac and/or Linux) and all the variable drivers and specs, it doesn’t seem like it’d be that much more work to throw in the console specs and testing. But I know nothing about porting, I’m just logicing things out.

    • Chris says:

      Depends on what you’re trying to do, I reckon.

      If you’re making a modest budget title it’s not a bad idea to focus on the PC first. It’s way easier to find ways to distribute on that platform – you don’t want to build for XBox One and find they can’t slot you on their arcade market for another eight months. Plus, if you’re focused on computers rather than consoles you may well build your game in a modular enough way to facilitate porting (since you’re likely gonna want to make the game work on OSX/Windows/Linux, etc). So that way if the opportunity to release on consoles presents itself you know you’re gonna run fine (it’s just a 2D game or limited scope 3D game, after all) and you’ve already modularized your game for easy porting to support multiple OSes. There’s more work to do than just that (integrating with each platform’s APIs can be a pain) but you’ve set yourself up nicely for an easy-ish transition to consoles if the need arises.

      If you’re talking about a big budget, system-limit-pushing game, though, the business realities change a bit. You’re likely gonna run into all the stuff Shamus talks about in his post because odds are you need to release on all platforms concurrently. And you can’t just build for the PC because it’s the that thing can scale, but consoles have a set spec. At a minimum they’re gonna drive your art pipeline, overall performance considerations, and memory restrictions. You can’t just build a game that scales okayish on the PC and hope the mid-tier of “okayish” is what’s gonna be acceptable on the consoles. Also, consoles are where all the money is made. That’s a little bit less true today than it was five or so years ago (Steam has really revitalized interest in PC ports) but I suspect it’s still an overall lower tentpole than XBox One/PS4 sales.

      So in a big budget setting consoles drive your lowest-common-denominator constraints and your biggest share of customers. Meanwhile PCs exist, but there’s a whole host of operating systems (OSX/Linux/Windows), platforms you may need to consider (Steam? GoG? Origin? God forbid, uPlay?), and a plethora of hardware configurations you’d need to support (or exclude and alienate, depending). In that setting it makes tons of sense why the PC is largely ignored and given to port houses rather than handled in-house.

      None of this is universal, obviously – if you’re a small indie studio that struggled to finish your game but Microsoft offered to pay for the rest of development if you made it an XBox exclusive, you’re probably gonna focus on that platform out of necessity. If you’re working on a big budget game like The Witcher and your company has a vested interest and history with PC gaming like CD Projekt RED do, you’re probably not gonna just hand the PC release over to a port house. The point is: deciding what platform to set as your primary dev platform is both a technical and financial decision, and what your business plan is for the game can drive a lot of that.

      • Mephane says:

        You can’t just build a game that scales okayish on the PC and hope the mid-tier of “okayish” is what’s gonna be acceptable on the consoles.

        I find it quite unfair to expect the console version to always reach the same visual quality as the PC version when the console is only a mid-tier system. When you have a PC comparable to an XB1 or PS4 in terms of hardware, if you go and complain the game doesn’t look as good (or run as fluidly) as it does on a brand new i7/dual 980/etc. machine, no one will take you seriously. But suddenly, when your mid-tier machine is call XB1 or PS4, you are catered for, even if that means that the quality that is reachable on your device becomes the maximum the game ever produces, even on high end PCs.

        Don’t get me wrong, graphics are not everything and I am totally fine if the PC version doesn’t have graphics better than what an XB1 can handle (so long as certain corners are NOT being cut; I am looking at you, GTA4 and your nonexistent antialiasing and weird shadows). In fact we had just this situation not too long ago, which had the positive effect that PC upgrades were far less often required because a several-year-old PC was just as good as the current-gen consoles and could handle any newly released game with ease.

        But this isn’t the case any more. What we get in the AAA world nowadays, far too often, is a game that is clearly build for consoles first, bringing the consoles to just below the very limit of their capabilities, a point where a mid-tier gaming PC should be able cope just as well. Except the port to the PC ends up so shoddy that even high-end machines experience massive performance issues when even trying to reach the same visual quality as the console version.

        • MichaelGC says:

          Aye, and one new factor (even with a decent port) is that both the FunBone and the WB4 have boatloads of VRAM (or RAM that can be used as VRAM, whatevs), so your equivalent mid-tier PC now needs a fairly super-duper GPU to keep up, like a skinny kid with one massively overmuscled arm.

        • boota says:

          i’ll preface this with that i of course want to see games that are optimized for pc, since that’s where i do roughly 90% of my gaming.

          the thing is though, a developer is going to optimize the experience for as many customers as possible, so as long as their consumer base is at consoles, that is where they will optimize the experience.

          i don’t really see how it’s unfair that this is how developers prioritize their resources. nobody forces us to buy high end computers, and if catering to our very niche segment means a worse product for the main market, then that’s just bad business.

          something tied to this that i have wondered and would actually like to see a talk/column on is: How do you optimize for pc? do we target a specific hardware/driver combination? (eg. haswell core i5, geforce 770, 4 gb of DDR3 at 1600 mhz.. running windows 8.1 with a specific list of updates installed?) or do you try to optimize for a specific HAL? i.e. try to squeeze as much as possible out of directx?

        • Wide And Nerdy says:

          To address your point, basically there’s graphics and there’s how good the game looks. Those are two different loosely related things.

          Its unfair to expect consoles to be able to do as much with graphics as a high end PC yes, but as most of your sales are going to be console, you want to make sure your art direction makes heavy consideration of the graphics that a console can handle so that your game looks as intended with console level graphics, with anything additional that a PC can handle merely being an added treat (more stuff, more dynamic effects that look neat but aren’t necessary for the game to look right).

      • Wide And Nerdy says:

        How much impact do you figure the push to a few common engines like Unity and Unreal will impact this? Extra Credits made the point that studios will be able to hire devs in the future who already have experience with the engine they’re working on instead of having to learn the ins and outs of the in house engine.

        People keep talking about a crash. I feel like one thing we could see is some of the Triple A’s folding due to clinging to their all in house strategies while mid tiers and indies will promote the use of these common engines and create a growing market for the shared art asset market out of necessity allowing them to produce games at or close to what we’re used to with much less cost.

        Then some of these studios will rise to the top and become the new triple A’s using these leaner strategies with greater resources to help push games further. Since the really popular stuff these days is three dimensional photorealistic worlds a primary combat mechanic, a few side systems and minigames, it only makes sense to converge on a standard. The only reason not to is competition but if the market can’t support rewriting your engine for each new round of games, then studios will have to compete on another basis and use these common engines.

      • Benjamin Hilton says:

        I guess this is all a good example of the Black Friday scenario where the end results seems ridiculous and arbitrary, but if you follow events step by step it’s all just a natural and logical progression.

    • Nidokoenig says:

      Basically, no. Consoles are weaker than PCs, and thus, to get the levels of performance the publishers want, developing for console architecture first and using all the hardware specific tricks to get as big of a boost as they can is the sensible strategy. Consoles are their primary market and thus get the focus, and they pretty neatly set expectations a little lower so they can get away with spending less on the base game and the port.

      • Mephane says:

        The problem isn’t how high or low the consoles set the expectation for graphical quality. Few people would have a problem if, for example, Arkham Knight would look exactly (30 FPS notwithstanding) like on the XB1 in maximum settings on the PC, and never goes higher.

        But it shouldn’t perform less, especially not so much less to the point of being effectively broken.

        • Thomas says:

          “Few people would have a problem if, for example, Arkham Knight would look exactly (30 FPS notwithstanding) like on the XB1 in maximum settings on the PC”

          If only :p There’s already one person in a comment just above your own who seems fairly outraged that developers concentrate on their biggest markets instead of optimising for the people who spent the most money on their machines.

          There would be less of a fuss than there is now admittedly, but there is a lot of complaining whenever a PC game doesn’t look significantly better than a console game. And tbf when there are people in the world who are buying graphics cards four times as expensive as an entire console, it would be kind of gutting if you weren’t getting nicer pixels at the end of it.

          • Daniel says:

            I kind of see this like someone going out and buying an expensive sports car and then complaining that most roads are not “optimized” for their driving experience.

            With an expensive sports car, you are generally going to have a different/better driving experience than us regular folk. There are some roads and tracks that are specifically optimized for your driving experience that you can enjoy. There are others that your car gives you little to no advantage on (lots of potholes, speed bumps, traffic, etc.). It is just that the vast majority of people have regular cars (moderate PC’s or consoles), so most roads are designed first and foremost to work best for them.

            It makes no fiscal sense for game makers to throw a lot of money at catering to a tiny percentage of the game playing population.

      • Peter H. Coffin says:

        Consoles are weaker than PCs,

        Someday, I’ll own a PC with 8 cores and 8 GB of unified memory (so there’s no “move this from main to video RAM” step). But today is not this day. Tell us about your PC.

  9. Daemian Lucifer says:

    Yes, porting is a massive pain in the ass, but you still need to do it and you need to be thorough if you’re going to ask for 60 dollars

    Correction:You dont need to do it.If your game is good enough that it will make money just on one system,sometimes its better to release an exclusive game,and then maybe port it later when you get more funds.What you need is to do it right,or not do it at all.

    • MichaelGC says:

      I completely agree, but this approach will piss people off. I think Shamus mentioned it in passing (don’t have time to check!), but some people who own the systems you’re not developing for will be pissed off. Then, bizarrely, if you do eventually go non-exclusive, some who own the system which previously had exclusivity will be pissed off.

      The obvious answer to all that is for people to get less pissed off about stuff. (Obvious: yes; easy: no.)

      • Mephane says:

        Then, bizarrely, if you do eventually go non-exclusive, some who own the system which previously had exclusivity will be pissed off.

        Frankly, eff all the people with such a greedy, selfish attitude to derive pleasure from other people not getting to play the game, ever. I couldn’t care less how they feel about their shiny exclusive toy suddenly being not as exclusive any more.

        • MichaelGC says:

          Well, quite: it’s not a mindset I can even understand, much less support. But I wasn’t suggesting we should: it’s the big publishers and their marketing depts. & shareholders who have to care about it, for better or worse. Or for worse or worser.

          • Daemian Lucifer says:

            Im not sure any corporation wants a customer who wants them to have a smaller market.

            • MichaelGC says:

              Well, maybe Soylent Co. …

              But no, you’re right, of course – they ideally want:

              -Customers who aren’t really bothered either way; and:
              -Non-customers who also aren’t really bothered, and aren’t backlashing and boycotting and organising petitions and suchlike to the point where investors are asking: “Why aren’t we making this for FunBone, too? If all these people are screaming for our game, why aren’t we selling it to them? Bugs, you say? Screw it, deal with those in a patch – get it out the door!”

              Er… that hypothetical got a bit out of hand.

        • Daimbert says:

          The issue is with people who buy a console only or primarily to get that game because it was advertised as being permanently exclusive to that console, who then find that they could have waited 6 months and gotten it for another console or the PC instead. So, for example, someone who already owns an XBone buying a PS3 to get the latest Persona game and then finding out that they didn’t need to spend that money. They’d feel a bit cheated, and ultimately by the game company that at least allowed the perception that this game was not going to come to the console they already owned, and so feel like they wasted money on a console that they didn’t actually need to buy. The same thing can apply to someone who can only afford one console. If they buy a console for the exclusive that they really want to play, and the other system has more games of the sort they want to play or has an exclusive that stays exclusive that they really wanted, they’ll essentially be left with the console that they really shouldn’t have bought knowing that they’d be able to get that exclusive for the other console eventually anyway, which can be rightly enraging.

          The ideal is either to have no exclusives at all, or decide well in advance which ones will come later and advertise those as that. But if you imply that this is a game that will never come to a console, and use that as a selling point for the console it appears on, then customers who believe you and buy that console will be rightfully upset.

          • Cilvre says:

            you could always avoid said games as well. I haven’t bought into the new console generation and while I am sad I can’t play games like Bloodborne, I just watched someone else play it on youtube to get the story parts of it I actually cared about.

            I wasn’t going to buy a ps4 for 1 or 2 games I may play. And there aren’t any exclusives on xbox that would cause me to buy that machine either.

            • Trix2000 says:

              You touch on the problem there already – it requires sacrificing large sections of available games to play, which can be rather unfortunate when one or more of them turns out to be really appealing.

              For some people, ignoring sections of the gaming market may not be a big deal (maybe a certain console doesn’t make titles you like), but for others it can be frustrating to not be able to play a game you want just because you shelled out hundreds of dollars to a different company.

              It wouldn’t be so bad if console exclusives didn’t seem so arbitrary and unnecessary, even though there are clear reasons for them to exist. It’s almost like buying a DVD player only to find out it only plays certain movies and not others.

              I long for the day when consoles and PCs end up merging – to hopefully create a more unified architecture to make games in without having to worry about ports. Who knows when or if that’ll come?

              • Daemian Lucifer says:

                1 or 2 games are large sections?

                • Daimbert says:

                  1 or 2 games can be pretty serious. For example, with the PS2 vs XBox you would have had to choose between Persona 3 and Persona 4 (PS2) and Knights of the Old Republic 1 and 2. If you chose the XBox you’d also miss out on Suikoden III and Silent Hill 2 and 3 (I’m not as up on XBox exclusives as I am on PS2 ones, since I’ve never owned an XBox). So, if you liked more JRPG style gaming, but REALLY wanted KotOR, it’s a tough choice. If you went with the XBox because you thought those games just that good and that you’d still have other games to play anyway, and so gave up the genre that you can pretty much only get there, if those games six months later came to the PS2 even though they said that they were exclusive and at least strongly implied that they’d never be on that system, you’d be rightly really annoyed about that.

                  Of course, if you went with the PS2 option and that happened, you’d be thrilled. But to take that option counting on that would mean that you’d have to assume that all the hype about exclusives was just false advertising, and if they actually, you know, kept their word you would have chosen the option that you thought WAS the worse one just because you believed or hoped that they were actually lying to you.

                  Of course, if you can afford both it isn’t a problem, and that’s probably what keeps the “exclusives” market going, and exclusives staying exclusive. But that’s not an option for everyone.

              • Cilvre says:

                i’m hoping we get to the point with them all basically being pc’s instead. but at least for older games and a few of the dying consoles, we have emulators to keep those games going.

  10. Daemian Lucifer says:

    What I dont get about the whole batman fiasco is:Current consoles are basically just premade pcs.You dont get weird architecture like with previous generations.So how come this happened?

    • On the mobile here, so I’ll keep this short:

      Because hardware quirks are only part of the problem. A minor part at that if you consider the set specs of the console.
      It’s the APIs that eat time. Xbone talks a DirectX dialect. Don’t know how far it is from vanilla DX. PS4 has a weird OpenGL dialect with proprietary Sony pieces bolted onto it, IIRC. And on the WiiU, afaik theres noAPIs, you’re writing againste the bare metal. So in order to port, you’re basically rewriting the guts of the engine for every platform. There was a porting guide thing a a steam conference last year. I’ll search for the link later and post it.

    • Here we go. Ryan Gordon of Icculus at the Steam Dev Days ’14 about porting to Linux. This is basically a high-level overview, but it gets the gist of it.

      This is about porting from one x86_64 CISC architecture to another, basically the same as porting from XBone to PS4. Only nice things like SDL aren’t available on XBone or Ps4, as far as I know.

      Also, have another Video from four Valve guys.

      To this day I’m astounded that they seem to have NEVER been out of their comfort zone. Game Devs seem to not even KNOW of the tools that are available other than the Visual Studio ecosystem. Which baffles me to no end. I mean I only dabble in development in general, and I have used most of the tools out there, even if it’s only to come back to what I used in the first place. I mean you got to know what alternatives there are before choosing, don’t you?

      • Correction to the second video I linked: I meant this one. The other one is interesting too, though.

        This video goes into a LOT of technicalities, but the point I’m trying to underline with it is: These really good Devs by and large don’t have a clue about other tools than those they have used previously. So in addition to all the work that porting is, you’ll most likely have to learn a whole new toolset.

      • Matt Downie says:

        Most coders don’t get to choose their tools. They join a company – it’s a DevStudio company – so they use that for everything and there’s little incentive to learn anything else.

        Also, when you use one tool exclusively for a long time every aspect of it becomes second nature, while all other tools that have, say, a different keyboard shortcut, become incredibly frustrating.

      • I understand the mind-set. For example, I knit. There’s tons of different ways to knit, and I know that the other most common way to knit is generally faster, but I’ve been knitting English for years and it’d take a lot of work to learn Continental and get as comfortable as I am knitting in the English fashion.
        It’s a “I’ve been doing it this way/using this program for years, and it works, so why change?” There’s a cost to learning the new way/program/whatever that is readily apparent and what’s not so obvious are the gains from learning.
        Of course, I’ve been living with a broken toilet that you have to stick your hand in the tank to flush for 2ish years now because fixing it seems like more work than just continuing to live with it, so I may be unusually lazy.

  11. Zaxares says:

    All I have to say on the issue is… Throw everything in there. The PC community will find it and make 3rd party mods to get all the goodies working.

    PC Gamer Master Race! ;)

    • Incunabulum says:

      That’s one of the more annoying things about ports form consoles – their dev culture seems to find locking up all the game files (to the point of hiding things down multiple nested directories that are labeled with nothing more than a long number and only have another directory inside them) to be second nature.

      There’s lots of little things that could be done by modders for the PC version *if* the console development didn’t hide this stuff, even without the devs releasing a toolset.

      Like upgrading textures for higher end machines.

      • Richard says:

        Those long numbers (probably) aren’t to hide anything, they’re likely to simply be GUID/UUIDs that uniquely identify a section of data, code or whatever.

        In the ‘traditional’ way, you simply use text to identify each section to the game.
        That’s fine when there’s a central authority assigning names – so during development, BigGameCo has a manager decide what everything is called and there’ll never be a clash.

        However, in an active modding community, there’s no manager. It’s very likely that there will be two mods that end up with the same name, and thus can’t be used together – even if it ought to be possible.

        Eg I make a mod called “bucket” that adds fixed buckets to the game environment, and you make a mod called “bucket” that lets the player make buckets to carry around.
        Worse, I might accidentally choose the name of something already in the root game and break it in subtle ways.

        GUID/UUIDs can be generated without any central authority, and you can be pretty certain that nobody will ever make two the same.

        That’s really useful for extensible systems – and especially for moddable ones – because you can effectively guarantee that the one I choose for my mod is different to the one you chose for yours.

        The only downside is that they look weird and are hard to remember.

        • Incunabulum says:

          Its not that the numbers are hiding anything – and these are numbers assigned by the *game developers* to label their own directories – its that often things are nested down multiple directories that have nothing but another directory inside it.

          Then there’s stuff that’s hidden in one large bloated .exe rather than externalized in separate files. I’ve been *assuming* there’s some performance gain to this, that they’re scraping out whatever they can to reduce load times, for example. Otherwise its just kinda dickish for any game that isn’t intended to be predominately MP.

          Overlap in *mod* names is a separate problem from console devs making their games hard to mod. And it is usually solved by the user renaming one of the mod folders in the cases where it happens.

          For example – Bethesda’s TES/FO games. FNV has umpty-thousands of mods and yet these guys, without centralization, seem to avoid duplicate naming of plugins – and those all go in the *same* directory.

          • Richard says:

            Packaging up the game data into a small number of giant wad*, whether as a small number of external files or inside the executable does indeed have a huge performance gain for several reasons.

            1) Opening (and then closing) a file is slow, so minimising the number of files that need to be opened/closed speeds up loading time.
            – The best-case is of course just one file, the executable itself.

            2) There’s a system limit to the number of file handles a given process can have open at once. It used to be very small – tens of files.
            It’s fairly high these days (2048 in Windows 7), but can still be hit. Thus once you go above X, you have to close something before you can open anything else.

            And the really big one:
            3) Modern operating systems automatically start to preload (cache) an open file into shared RAM when you start reading from it.
            If your loading process isn’t just a raw copy-to-memory – which it nearly always will be – then once you get sufficiently far through loading from the file, the rest of what you’re reading and processing is already be in RAM and will be stonkingly fast.

            An anecdotal example:
            One piece of (massively parallel) software I maintain has two loading modes:
            A) All data compressed into a single file-on-disk with a folder structure. (ZIP in fact)
            B) All data in a normal folder structure as the >10,000 separate uncompressed files.

            Mode B takes more than ten times longer than A on exactly the same SSD hardware.

            Mode A is also CPU bound, so will go faster in the future as I get better CPU hardware.
            – When I switched from 2 to 4 hyperthreaded cores it really did run in almost exactly half the time.

            * See what I did there?

  12. DrMcCoy says:

    So you’re making a videogame. And let’s say this videogame is planned to release on multiple platforms: The FunBox, the WizBang, and the PC. You can’t very well have your programmers jumping from machine to machine as they work, so you need to pick one specific platform as your development platform. Let’s say you pick the FunBox. You get FunBox development machines for the team and you put them to work making your videogame

    I feel that’s fundamentally the completely wrong way to go about this.

    If, at beginning of development, you know the game is slated to be released on platform A, B and C, you should get developers familiars with A, B and C together, and then you plan your game according to the different limitations and needs of the different platforms. And instead of all devs sitting at a machine running A, they each sit at their respective platforms and, together, develop something that’s portable across these platforms from the start.

    Then you won’t get problems like a porting team, way later, realizing that, while method Z is completely against the grain on platform C (and therefore way slower, or even impossible), the whole engine is built on method Z, and so everything has to be rebuild and restructured. Or the original dev team writing code against the bare metal, without any abstractions, of platform A (“Using std::wstring everywhere is totally portable, right? RIGHT?”).

    EDIT: And, of course, ideally, you never do the latter, even if the only planned release, for now, is on one single platform.

    • MichaelGC says:

      Wouldn’t that mean you’d need around three times as many programmers? So you’d run into the ‘programmer time is crazy expensive’ problem which Shamus mentioned?

    • Matt Downie says:

      The problem is, actual experts on the FunBox4 (which only came out recently) are like gold dust. A typical developer will say, “I reckon we can manage about this many polygons, and that many pixels. Currently we can only render about half that many before it starts to judder, but I’m pretty sure that’s a bug that we’ll track down eventually.”

    • Incunabulum says:

      They do – that’s why they all sit around looking at the weakest link and design a game that runs on *that* machine, and then port that game over to the others.

  13. MrGuy says:

    You can have a platform specialist working on the game in tandem with the rest of the team. The core team can make a build for the FunBox and then your WizBang guy gets it running on the WizBang. The problem is that plans change throughout development. Features get cut, effects are added, tweaked, removed, and then implemented in a different way. That’s just part of development. But if you’re paying someone to port this half-finished game as it gradually becomes a finished game, then a lot of their work is going to get thrown away. Programmer time is crazy expensive, and not the sort of time you want to be wasting like this. It makes more financial sense to let the game solidify on the FunBox, and then have your specialist come in and do the port once the game is nearly done.

    I think your article is a good argument why that last sentence isn’t necessarily true.

    Yes, work done by the porting team will be wasted if you change a feature. But if you’re cutting a feature, you’re already throwing away the cost that went into developing it. So this is just making cutting slightly more expensive (assuming core dev is significantly more expensive than porting).

    Is that a problem? Sure. But learning as you go what is and is not portable, when you still have time to change things and before you’ve invested too heavily in the assets that won’t port well, allows you to fix cross-platform issues much more easily and much sooner in the process. This is a huge SAVINGS compared to doing the porting at the end, and only finding the issues when it’s too late or too expensive to fix them.

    The analogy here for me is to the idea of continuous integration and automated testing in software replacing “the old way” of doing all the programming first, and then doing one Great Big Round of QA at the end. Sure, you never “wasted” time testing features that got changed later. But you delayed finding problems until it was too late to fix them. There’s a reason most of the software industry has moved away from the “one big effort at the end” effort.

    • Shamus says:

      Hm. That was poorly worded. I was trying to keep this in the realm of the hypothetical. I probably should have read, “So you figure it makes more financial sense to let the game solidify on the FunBox, and then…” because I wasn’t trying to actually advocate one path or the other. I understand the tradeoffs exist, but I’m sure I don’t know nearly enough to make the right call.

      • MrGuy says:

        Yeah, get that you’re not advocating that approach. My point is that, IF that’s the way companies do things, then they’re being penny-wise, pound-foolish, for all the reasons your article makes clear.

        A company following my suggestion (continuously porting to know where the issues are) would likely face different problems than the ones you enumerate. Probably also substantial, just different (the whole “Cell Architecture is crazypants” from the PS3 being one example of something that would be a constant thorn).

        • guy says:

          That would depend on how hard the particular port turns out to be. If you wind up pushing the envelope on both platforms and they have distinct characteristics, then integrating it from the start is probably the best idea. On the other hand, if it’s comfortably mid-range on the port destination, the port job is unlikely to send a level back to the drawing board.

          • MrGuy says:

            Agree. However, while I love most of Shamus’ articles on programming, that’s where this specific one falls down for me.

            At the beginning of the article, Shamus assumes a model of how companies would approach porting, based on his belief that it’s the one they’d choose because it’s lower cost.

            The rest of the article describes why the approach that appeared lower cost actually can cause some very expensive problems (delayed ship date, losing a heavily marketed feature, redesigning a whole level, or reducing quality of the product).

            But if those issues really are high cost, and they happen frequently, then the initial assumption of “developers will probably do things this way to avoid cost” is a poor assumption (at least if developers are smart, which admittedly is not necessarily a given in an industry that includes EA, Activision, etc.)

            In other words, the article (to me) undermines its own premise.

            I’m not saying that companies DON’T approach porting this way (EA, Activision, etc.), and I’m not saying that this isn’t correct in asserting “this is how porting issues happen.” Shamus is a smart guy. But the analysis would sound a lot more convincing if it came from personal knowledge that this is how porting in the industry actually happens, as opposed to being a thought experiment based on a shaky assumption of “how they probably do things.”

            One man’s opinion. I love your column, just this one rings a little hollow to me.

            • Trix2000 says:

              To me, it sounds a bit more like a ‘lesser of two evils’ sort of thing. Hence, “Porting is Hard” is basically just saying “Porting is expensive whatever method you choose”.

              So the reason things tend to go the way they do is because it’s still cheaper than the alternatives, but since it’s still so expensive to do they may cut corners and take shortcuts.

              • MichaelGC says:

                Aye, and whilst there will be some allowance for exigencies, they probably tend not to forecast things like: “massive credibility-shredding nightmare” nor “refund avalanche” in the initial budget planning.

                “We don’t need to spend any money on PC development until x weeks before we ship,” is more likely the kind of thing budget-holders will want to hear…

  14. Incunabulum says:

    Did you know they can return defective games now?

    This has got to have publishers shitting their pants.

    Think of how many mediocre ‘AAA’ console games then got a crappy PC port.

    I’ve got roughly a dozen games on Steam that were clearly designed for the console and are complete crap on the PC that I would like to return – but I got them before the refund policy existed.

    If I had picked them up now, Kingdoms of Amalur, Dark Souls, Dishonored, GTA IV . . . well, ‘and more’ would all be sent back, if nothing else, for being locked at 65 degree FOV.

  15. I find it amusing that games are developed on PCs even if they are console exclusives. (nobody actually develop games “ON” a console).

    In some cases like Unreal 4 the porting should be relatively easy as Epic already did the bulk work for you.

    Now if you edit the engine too much then you will run into issues (or if you can’t control the engine).

    As somebody pointed out earlier, Arkam Knight uses Unreal 3 which is not a new engine, you’d be hard pressed to fuck that up if you know your engine.

    For comparison, Mass Effect was the first Unreal 3 engine game that BioWare ever made and that turned out pretty good (sure, some technical issues but not as bad as Arkham Knight).

  16. James Bennett says:

    I’m just commenting to say that I actually laughed out loud when I got to the end of your article. That was a good gag.

  17. Ziusudra says:

    one instance of “stuttering” is typo’d as “stuterting”

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>