Why can a pc port be poorly built

Started by
7 comments, last by iskatsu 10 years ago
Why can a pc port be poorly built if the game was made for console by using a computer?

Is porting a game as simple as just changing the code from a particular programming language to another language?

The only factor that I read in regards to the question I have was from a developer stated in an interview as having lack of experience developing pc games. This was the case with the dark souls prepare to die edition for pc.

Don't developers need exposure to developing desktop games before jumping to making games for consoles like ps3 And Xbox 360?
Advertisement

I fear there is no simple information we can give here that explains where exactly it gets hard.

The situation differs depending on many different things.

Is porting a game as simple as just changing the code from a particular programming language to another language?

There is nothing simple about moving from one language to another. More often than not you need completely different approaches with completely new libraries etc. I think in most cases the language itself stays the same, but even then porting can be extremely hard if keeping the codebase portable was not one of the original goals. Unless you have many abstraction layers and people who can quickly write new implementation for all the features you pretty much start from scratch.

Even if the language stays the same, people might have specialized on some APIs (application programming interface) that exist for a console.

If they have to program on a very low level things like the architecture / instruction set of the CPU might make a difference as well.

You can read articles about software portability to get an idea of the challenges that exist in that area.

The only factor that I read in regards to the question I have was from a developer stated in an interview as having lack of experience developing pc games.

It is also important to know that for consoles the specs are set in stone while you need to support several different hardware constellations when you develop for desktop pcs.

That might be the main reason behind the statement - a lack of experience in that area.

Given enough eyeballs, all mysteries are shallow.

MeAndVR

Games are created on computers for sure, but its not always the case that there's a PC version running behind the scenes. In general, I'd wager that many studios who don't start out to publish a PC version, simply don't have one at all; of the ones that do maintain one, its either because their engine/middleware make it trivial, or they take effort to maintain a sort of "minimal-effort" port who's primary purpose is for debugging -- they certainly aren't optimizing their PC build if they never plan to ship it.

As to why its hard to port from one to the other after the fact, its because PCs and consoles work in fundamentally different ways; On the PC, you often have greater hardware resources, but you also pay a much larger cost of abstraction. On the Console, you have less hardware to throw at the problem, but you can take tight control of it without having to negotiate 3-4 layers of abstraction. We're also at a point now where the two higher-end consoles both have 8GB of RAM, and where 8GB is not quite the minimum that all PCs are sold with even today, let alone the perfectly-good computer you bought 12-18 months ago -- and even that fails to account for sharing it with other programs, which the consoles don't really do either.

On the PC platform, you have to make the general case go fast on somewhat "better" hardware (typically, faster CPU, faster GPU, but same or less RAM), while on the console you have to make a couple very specific cases go fast on somewhat odd, if not under-powered, hardware (more but slower CPUs, a middling GPU, a reasonable amount of RAM.

PC ports can suck because the PC is a very different beast than a console.

throw table_exception("(? ???)? ? ???");

Games are created on computers for sure, but its not always the case that there's a PC version running behind the scenes. In general, I'd wager that many studios who don't start out to publish a PC version, simply don't have one at all; of the ones that do maintain one, its either because their engine/middleware make it trivial, or they take effort to maintain a sort of "minimal-effort" port who's primary purpose is for debugging -- they certainly aren't optimizing their PC build if they never plan to ship it.

As to why its hard to port from one to the other after the fact, its because PCs and consoles work in fundamentally different ways; On the PC, you often have greater hardware resources, but you also pay a much larger cost of abstraction. On the Console, you have less hardware to throw at the problem, but you can take tight control of it without having to negotiate 3-4 layers of abstraction. We're also at a point now where the two higher-end consoles both have 8GB of RAM, and where 8GB is not quite the minimum that all PCs are sold with even today, let alone the perfectly-good computer you bought 12-18 months ago -- and even that fails to account for sharing it with other programs, which the consoles don't really do either.

On the PC platform, you have to make the general case go fast on somewhat "better" hardware (typically, faster CPU, faster GPU, but same or less RAM), while on the console you have to make a couple very specific cases go fast on somewhat odd, if not under-powered, hardware (more but slower CPUs, a middling GPU, a reasonable amount of RAM.

PC ports can suck because the PC is a very different beast than a console.

Interesting. It leads to my other question to this post and that is how do game developers learn so much about programming games for game console(PS3 when it was still a new product...same question for PS4, 360 and Xbox One)? Is the dev kit and a dev kit API the two things a developer need to understand it all?


Is the dev kit and a dev kit API the two things a developer need to understand it all?

No.

That's why the games that come out when the console is released tend to be no where near as good as products developed a few years later.

Typically you take your existing game engine, recompile it on the new device, and fix the errors.

So you end up with an engine that works, but doesn't take advantage of any of the new features.

When you come to start your second project, you assign a few good men to extending the engine, they get a few features in then run out of time.

It can take several years to really get the best out of a new device, by that time..... a new one has come outsad.png

There's always a learning curve, sure, and Stainless laid out the general flow of title quality pretty well. But I think the launch-window-titles we see this generation will prove to be better representatives of the consoles' potential than launch-windows titles of generation's past. The PS2 launch titles were notoriously poor, for example. Already this generation we see some fairly impressive graphics, and some unique features out of games being hosted "in the cloud" ("Drivatars" in Forza 5, AI-augmented multiplayer in Titanfall). Its impossible to quantify this statement, but I think when all is said and done, this generation's sunset titles will seem, subjectively, 2-3 times "better" than launch titles; rather than better by 5-10 times, as in the past 3 generations.

We're coming back around to "sane" architectures this generation. In the past 3 generations there's always been at least one leading platform with an odd-ball architecture -- the PS3 with Cell, The PS2 with its Emotion Engine and not-quite-homogeneous dual-processors. and the Saturn with its literal symphony of processors. Stuff like that eats up R&D dollars, hurting saner competitors indirectly. Competitors were certainly different in generations before, too, but they were also simple, enough-alike, and essentially fixed-function platforms that there wasn't a lot of difference between launch and sunset titles, barring extra co-processor chips or add-on peripherals.

This generation we have two architectures who litterally share at least their main computational architecture -- the CPU and GPU core, and the amount of RAM -- with each other, and again with common PCs of today if we're talking slightly broader strokes. There's a minor difference of clock-speeds, a moderate difference in GPU clusters, and a philosophical difference in memory architecture, but that's far, far closer together than any two competitors have ever been, and nearer to contemporary workaday PCs than any time before. Also today, engine and middleware companies absorb a lot of that early R&D effort. All of that good juju adds up, and I just don't think that launch titles are leaving tons of untapped potential on the table.

throw table_exception("(? ???)? ? ???");

More things to think about:

On a console you mostly live alone in a well known environment. It is just your app and the OS. You have a specific amount of memory. You have a specific number of processors. You also have a specific list of specialized co-processors for audio decoding, for video decoding, and for other features.

Contrast with PC where you live in a volatile, dynamic environment. Your process is one of thousands on the machine. Every machine has different amounts of memory, different processor configurations, different hardware, and each with their own performance characteristics.


As for programmers learning how to use new tech, that is actually an acute problem in the industry, which is somewhat related to age discrimination in the industry.

Those who are best able to quickly adapt to new hardware features are usually the most senior-level developers because they have lived through multiple industry shifts in the past. Unfortunately many studios prefer younger developers who have learned a specific generation of equipment but don't have the experience of migrating between eras. Tech businesses have a well-documented age bias toward youth, so when a new generation of devices appear it is usually the few remaining senior developers who are responsible for the migration.

If the historical trend continues, some of the senior developers put in serious efforts during the transition, and shortly after the console's initial release (e.g. right now) they often jump employers to studios looking for 2+ years experience on PS4/XBone in the months after it becomes available. These people often end up hopping through the industry making a lot of money very quickly to help port engines to a new generation. ... of course they also end up on the chopping block of the next layoff season, so beware if you are in that boat.

Why can a pc port be poorly built if the game was made for console by using a computer?

Because they can often design it in ways to where it compiles to run on some kind of console dev kit or straight to the console, there's a pretty good chance they might treat the PC as just a work bench and nothing more. If you watch behind the scenes interviews you'll often see people like folks from Bethesda and such sitting there tapping away on a controller right next to their desks as they playtest game changes, completely depends on the environment though.

Is porting a game as simple as just changing the code from a particular programming language to another language?

Generally the language is the same when porting, but no, if you've ever tried porting anything from one language to another, it's not too challenging. However, imagine doing that with a giant game worth of code and assets that may not even behave the same way in a different language/libraries. Porting is expensive in terms of time even for one person teams.

The only factor that I read in regards to the question I have was from a developer stated in an interview as having lack of experience developing pc games. This was the case with the dark souls prepare to die edition for pc.

I actually own that game and it is probably the most pathetic and ridiculous PC port I've ever seen, why that is could be a million reasons from red tape with upper management at the company, to I guess the employees really just being so clueless that they've NEVER played a PC rpg or action game or.. anything, because a lot of the choices they made with even the UI were so bad it was a bit astounding.

Porting a game has a few different aspects, the UI is the biggest one, what works favorably for a controller is very restrictive for a mouse and keyboard, and vice versa. Theres also a lot of optimizations that can be done for PC's vs console.. also vice versa, they tend to be designed quite differently and consoles in particular have very specific tools available to enhance performance in key areas since they are designed for gaming.

Don't developers need exposure to developing desktop games before jumping to making games for consoles like ps3 And Xbox 360?

If you haven't noticed the console market kind of had an up and down wave of popularity, originally games were basically all console but then home PC's got a lot more popular, so gaming was a bit more evenly split for a time. That was back when consoles had a bit of a struggle to maintain the same kind of hardware that could fit into something big and expensive like a PC too. That popularity jumped back up quite a lot around the xbox-360 era since you got a new generation of kids and parents buying all three big systems. Fact is a lot of publishers(the people with all the money and power in the AAA industry) think that targetting consoles first and PC second is a more profitable business decision. They would probably be right in that assumption, as lame as it is.

At the end of the day games are a business unless you do it for a hobby and the big wigs tend to target the most profitable selling points.

PC gaming is hardly dead, the console/pc markets shift a lot, but right now its much more common for every game to be released on console then ported to PC, whereas it was opposite many years ago because often a game on PC was not ported to console or vice versa, so PC was often targetted for high fidelity games. Sadly that leaves us with really awful ports for a lot of big name games, depending on the company and the publisher poking them with a stick.

I personally tend to believe that is a marketing thing. Developers don't really interested in PC version, because it is a lot cheaper and easily pirated. So when they finally decide to make a port, they don't care about tweaking performance specifically for PC.

This topic is closed to new replies.

Advertisement