Alright folks, today's lesson is about console ports, what they are, how they work, and how to not get them confused with games that aren't console ports.
I'm doing this thread to help stem the tide of misinformation flowing through these forums about almost every multi-platform PC game being a console port.
What does console port mean?
You might find it helpful to read the wikipedia entry on "porting" found here. There is a specific mention about porting in video games as well, here.
So is a game like Crysis 2 or Elder Scrolls V: Skyrim a console port that was brought to the PC?
No. Both games were developed on multi-platform engines, and developed such that all platforms will have (or had) the games released simultaneously. This saves the developers quite a bit of money. They can make a game engine that allows them to develop the game's content once and then run it on all platforms. This means they don't have to take the time to re-write large portions of code, make different versions of assets, or even pay another company to perform a port for them, or write a "wrapper" around the console version to emulate it on the PC, which often results in horrible performance on the platform running the wrapper.
But Crysis 2 ended up with actual UI elements from the Xbox 360 in the first version, doesn't that prove it was ported from the Xbox 360?
No. As I said above, the developers create the content once and it will run on all platforms. They could've just as easily had Xbox UI running on the PS3, and that doesn't mean it was ported from the 360 to the PS3. Game assets and UI have nothing to do with porting, the two are completely unrelated.
So can you explain a bit how a port works?
Let's say we want a program that renders a plain box on both the PC and the PS3.
If we first write the entire program to work on the PC. We write a program that goes something like:
1.) Start program
2.) Create window
3.) Initialize video card settings
4.) Detect directX version
5.) Create box
6.) Call to DirectX to submit the geometry for the box
7.) Render the box
That works fine for the PC, but that won't work at all for the PS3. If want to run our program on the PS3 we're going to need to make changes to it. So we can create a new program using our PC version as a reference (this is porting).
1.) Start program
2.) Create box
3.) Submit geometry to PS3 GPU
4.) Render the box
We have two versions of the program now, one was a port of the other. The reason you wouldn't write two versions of the program at the start of a game project is because when you make some awesome new feature to make a box explode on the PC version, you now have to take the time to write the exploding box feature onto the PS3 version. Then you end up with the box exploding differently on one version because it was written so differently, and you now spend time fixing twice as many bugs. You can see why porting is not the best way to go in some cases.
So how does a multi-platform program work?
So in this example, "a" is PC, and "b" is PS3.
1.) Start Program
1a.) Create window
1a.) Initialize video card settings
1a.) Detect directX version
2.) Create box
3.) Submit geometry
3a.) Submit geometry through directX
3b.) Submit geometry to PS3 GPU
4.) Render box
4a.) Render frame on PC GPU(s)
4b.) Render frame on PS3 GPU
You can see that some methods are platform-specific, that is, you will still have to write two versions of certain methods like rendering. However, there will be generic methods like 'Create Box' that will have code identical between both systems. This code is called 'platform agnostic'. Ideally you have a few people on different teams writing the code that will act how it needs on specific platforms. Then you have a team writing the generic part of the engine that should work the same no matter what platform you're on. This means that when a designer creates a box, 'Render Box' is used and the designer doesn't have to worry about how that box will look on one platform vs. the other, the engine will just take care of it.
Why do so many PC gamers insist that games are console ports if they're not?
Probably for many reasons, here are a few possibilities I can think of:
- Multi-platform games are increasingly being focused on the console gamers. This is due to consoles having a larger chunk of marketshare for many types of games like high grossing FPS games such as the Call of Duty series. This gives those games a very console-like feel to them. So while the games may feel in many ways like they came from a console, that doesn't make them a port, that is just how the game was designed.
- Some developers are too lazy to even expose common options like graphics settings. This is a terrible thing for a developer to do, but it still doesn't make a game a console port, it just means that they didn't expose those settings, most likely because the studio or publisher had a focus on the console versions of the game.
- From what I can tell, many PC gamers feel that they are in some way superior to console gamers because their hardware is faster and/or more expensive, or because they have more responsive controls than a gamepad. Due to this sense of superiority they tend to react to PC games that are multiplatform with a console focus very negatively. Their initial reaction might be to yell out "console port", when really they just have no clue what they're talking about. PC gamers, please take this into consideration: Just because your hardware is better doesn't make you any more important, in fact many developers consider PC gaming less important because they will make less money on the PC platform.
So what games are actually console ports then?
Most console ports can be identified by their delayed release on the PC. Usually they will release on the console several months, or even years earlier than the PC. Console ports will often run poorly on a PC of similar hardware to the console. Some console ports are done very well, not all porting is bad.
Some example of console to PC ports are Grand Theft Auto 4 and Assassin's Creed.
GTA4 was done very poorly, and ran like crap even on high-end PCs at the time. Why it was done poorly is something only the developer knows. Maybe the engine it was built on wasn't made in a way that was easy to translate to PC architecture. Maybe they didn't care to even do a good port and just called it "good enough". Maybe they paid another company to make them a wrapper that would work.
Assassin's Creed on the other hand runs very well and most people don't even know it's a port. This is how all ports would ideally run, but it just isn't the case. More often than not the platform being ported to is worth the least to the company of all platforms, and as such is will likely get the least attention to detail and performance.
Why do companies even do console ports if they're so bad then?
There are a couple of main reasons:
- They didn't know if the game would sell very well, so they didn't want to put work into supporting the PC version until they knew the console version would be popular. Supporting the PC is significantly more work than consoles due to the large amount of hardware configurations, drivers, OSes, and other variations you find on different PCs.
- They simply didn't have the time or the budget. Developers are often in a tough spot where the only have a set amount of time and money to develop a game, so they make the decision early on to only developer for 1 or 2 platforms initially. I've seen studios that cross their fingers that the game will do well on the one platform they're releasing it on so they'll have the money to make it on the other platforms.
Why not develop the game for the PC first and then the console?
One reason is that a port is still a port. In a perfect world they wouldn't port from PC to console OR console to PC. But the main reason is that the bulk of the profits are to be had in the consoles. The current generation of consoles are 5-6 years old right now. The biggest bang for your buck as a developer is going to be to make a game that runs on 5-6 year old hardware. This allows you to make one version of the game that runs on two consoles and most of today's PCs (even the slower ones). If you develop for the PC first knowing that you'll need to run on console as well eventually then you would still have to try and develop the game to run on 6 year old PCs primarily.
I know most of the PC elitists out there want a game that will max out their quad-SLI GTX 580s, their i7 990X, and utilize all 12GB of their RAM. But writing a game that can run on that setup, and also on a 6xxx series Nvidia with 256MB of VRAM, a single core pentium 4 3.0Ghz, and 1GB free RAM, is extremely difficult. The games would look vastly different. Even designers would have trouble making a game that gives the looks that they're imagining and delivering that same experience to gamers across the full range of hardware. You could literally spend an extra year or more on a game just to support all of that. Rather than do all of that work to support the 1-2% of their customers with insane hardware, they're going to release the game 1 year earlier, and 98% of their customers will be perfectly happy and won't cry about the lack of DX11 in a game. 98% of the people buying their games aren't even going to know what DirectX is, much less care about minor crap like some rocks being tessellated or not. Do you really expect developers to care about something most of their customers don't care about? If you do then you might want to rethink your position and ask yourself why.
Why should we listen to you?
You don't have to, but I am an experienced game developer who has developed and shipped multi-platform games and programs. I also have a bachelor's degree specific to Game Programming. I've been playing video games extensively for the last 25 years (since I was 4 years old), and I've been programming video games since I was 8 years old. I've owned about 12 PCs, 13 consoles, and 3 handhelds in that time, playing all kinds of PC and consoles games alike, so I'm a fanboy of neither one. Take my opinion for what it's worth to you.
If you find yourself in the position of just being a PC gamer who has been playing video games for a few years, that doesn't necessarily put you in the position to be arguing about what a console port is and isn't...
Is all lost for PC Gaming then?
No. Times have changed, however. Consoles used to be much different than PCs in terms of hardware and capabilities; The technology inside each was quite a bit different in what they were designed to do. Consoles didn't used to have hard drives, or even optical drives, their output resolutions and rates weren't similar to PCs. But now consoles are using similar hardware to PCs, and their hardware capabilities are much closer or even higher than many people's computers (with the exception of most people on OCN, who are the minority). So up until recently making multi-platform games almost always required a large porting process and the game you would get on the different platforms was much different. But now games can be developed for both PC and consoles simultaneously, they can share large amounts of the code in the game engine, and assets (meshes, textures, etc) can be made for all of them at once. This means larger profits for the developers due to less work, it means games can ship to all of their customers at once instead of months/years apart, the marketing campaign can be done all at once, and in rare cases like Portal 2 that PC and console community can play together.
PC elitists can breathe a temporary sigh of relief as the next-gen consoles are released. The performance bar will be raised by 6-8 years hardware-wise, next-gen consoles will all likely have HDD or some other large storage device, they'll all likely utilize online services, etc. This means PC games will also move up a large notch for awhile. Eventually those consoles will begin to age though, and PC games will fall back with them as well.
So what's the solution for the PC elitists?
Get over it. Unless you're paying a lot of money for a simulation program, then you're barking up the wrong tree. Games are a form of entertainment, and the developers are in it to satisfy the majority of their customers and make a lot of money doing it. If they have the opportunity to do some awesome stuff because the majority of the customers happen to have some insane hardware then I'm sure they'll take that opportunity. But if the majority doesn't have it, then don't expect it, or you'll find yourself disappointed.
Besides, the best games out there weren't that way because they looked good, at the most they were extremely fun and just happened to also be gorgeous as well.
Edited by lordikon - 12/7/11 at 11:58am
I'm doing this thread to help stem the tide of misinformation flowing through these forums about almost every multi-platform PC game being a console port.
What does console port mean?
You might find it helpful to read the wikipedia entry on "porting" found here. There is a specific mention about porting in video games as well, here.
Quote:
The key part of the quote above is "originally made", meaning it was made for one platform, and then later re-written or changed to run on other platform."Console Port" is a term specifically used to describe a game that was originally made for a console (such as PS3 or Xbox 360) before an identical version is created which can be played on a personal computer.
So is a game like Crysis 2 or Elder Scrolls V: Skyrim a console port that was brought to the PC?
No. Both games were developed on multi-platform engines, and developed such that all platforms will have (or had) the games released simultaneously. This saves the developers quite a bit of money. They can make a game engine that allows them to develop the game's content once and then run it on all platforms. This means they don't have to take the time to re-write large portions of code, make different versions of assets, or even pay another company to perform a port for them, or write a "wrapper" around the console version to emulate it on the PC, which often results in horrible performance on the platform running the wrapper.
But Crysis 2 ended up with actual UI elements from the Xbox 360 in the first version, doesn't that prove it was ported from the Xbox 360?
No. As I said above, the developers create the content once and it will run on all platforms. They could've just as easily had Xbox UI running on the PS3, and that doesn't mean it was ported from the 360 to the PS3. Game assets and UI have nothing to do with porting, the two are completely unrelated.
So can you explain a bit how a port works?
Let's say we want a program that renders a plain box on both the PC and the PS3.
If we first write the entire program to work on the PC. We write a program that goes something like:
1.) Start program
2.) Create window
3.) Initialize video card settings
4.) Detect directX version
5.) Create box
6.) Call to DirectX to submit the geometry for the box
7.) Render the box
That works fine for the PC, but that won't work at all for the PS3. If want to run our program on the PS3 we're going to need to make changes to it. So we can create a new program using our PC version as a reference (this is porting).
1.) Start program
2.) Create box
3.) Submit geometry to PS3 GPU
4.) Render the box
We have two versions of the program now, one was a port of the other. The reason you wouldn't write two versions of the program at the start of a game project is because when you make some awesome new feature to make a box explode on the PC version, you now have to take the time to write the exploding box feature onto the PS3 version. Then you end up with the box exploding differently on one version because it was written so differently, and you now spend time fixing twice as many bugs. You can see why porting is not the best way to go in some cases.
So how does a multi-platform program work?
So in this example, "a" is PC, and "b" is PS3.
1.) Start Program
1a.) Create window
1a.) Initialize video card settings
1a.) Detect directX version
2.) Create box
3.) Submit geometry
3a.) Submit geometry through directX
3b.) Submit geometry to PS3 GPU
4.) Render box
4a.) Render frame on PC GPU(s)
4b.) Render frame on PS3 GPU
You can see that some methods are platform-specific, that is, you will still have to write two versions of certain methods like rendering. However, there will be generic methods like 'Create Box' that will have code identical between both systems. This code is called 'platform agnostic'. Ideally you have a few people on different teams writing the code that will act how it needs on specific platforms. Then you have a team writing the generic part of the engine that should work the same no matter what platform you're on. This means that when a designer creates a box, 'Render Box' is used and the designer doesn't have to worry about how that box will look on one platform vs. the other, the engine will just take care of it.
Why do so many PC gamers insist that games are console ports if they're not?
Probably for many reasons, here are a few possibilities I can think of:
- Multi-platform games are increasingly being focused on the console gamers. This is due to consoles having a larger chunk of marketshare for many types of games like high grossing FPS games such as the Call of Duty series. This gives those games a very console-like feel to them. So while the games may feel in many ways like they came from a console, that doesn't make them a port, that is just how the game was designed.
- Some developers are too lazy to even expose common options like graphics settings. This is a terrible thing for a developer to do, but it still doesn't make a game a console port, it just means that they didn't expose those settings, most likely because the studio or publisher had a focus on the console versions of the game.
- From what I can tell, many PC gamers feel that they are in some way superior to console gamers because their hardware is faster and/or more expensive, or because they have more responsive controls than a gamepad. Due to this sense of superiority they tend to react to PC games that are multiplatform with a console focus very negatively. Their initial reaction might be to yell out "console port", when really they just have no clue what they're talking about. PC gamers, please take this into consideration: Just because your hardware is better doesn't make you any more important, in fact many developers consider PC gaming less important because they will make less money on the PC platform.
So what games are actually console ports then?
Most console ports can be identified by their delayed release on the PC. Usually they will release on the console several months, or even years earlier than the PC. Console ports will often run poorly on a PC of similar hardware to the console. Some console ports are done very well, not all porting is bad.
Some example of console to PC ports are Grand Theft Auto 4 and Assassin's Creed.
GTA4 was done very poorly, and ran like crap even on high-end PCs at the time. Why it was done poorly is something only the developer knows. Maybe the engine it was built on wasn't made in a way that was easy to translate to PC architecture. Maybe they didn't care to even do a good port and just called it "good enough". Maybe they paid another company to make them a wrapper that would work.
Assassin's Creed on the other hand runs very well and most people don't even know it's a port. This is how all ports would ideally run, but it just isn't the case. More often than not the platform being ported to is worth the least to the company of all platforms, and as such is will likely get the least attention to detail and performance.
Why do companies even do console ports if they're so bad then?
There are a couple of main reasons:
- They didn't know if the game would sell very well, so they didn't want to put work into supporting the PC version until they knew the console version would be popular. Supporting the PC is significantly more work than consoles due to the large amount of hardware configurations, drivers, OSes, and other variations you find on different PCs.
- They simply didn't have the time or the budget. Developers are often in a tough spot where the only have a set amount of time and money to develop a game, so they make the decision early on to only developer for 1 or 2 platforms initially. I've seen studios that cross their fingers that the game will do well on the one platform they're releasing it on so they'll have the money to make it on the other platforms.
Why not develop the game for the PC first and then the console?
One reason is that a port is still a port. In a perfect world they wouldn't port from PC to console OR console to PC. But the main reason is that the bulk of the profits are to be had in the consoles. The current generation of consoles are 5-6 years old right now. The biggest bang for your buck as a developer is going to be to make a game that runs on 5-6 year old hardware. This allows you to make one version of the game that runs on two consoles and most of today's PCs (even the slower ones). If you develop for the PC first knowing that you'll need to run on console as well eventually then you would still have to try and develop the game to run on 6 year old PCs primarily.
I know most of the PC elitists out there want a game that will max out their quad-SLI GTX 580s, their i7 990X, and utilize all 12GB of their RAM. But writing a game that can run on that setup, and also on a 6xxx series Nvidia with 256MB of VRAM, a single core pentium 4 3.0Ghz, and 1GB free RAM, is extremely difficult. The games would look vastly different. Even designers would have trouble making a game that gives the looks that they're imagining and delivering that same experience to gamers across the full range of hardware. You could literally spend an extra year or more on a game just to support all of that. Rather than do all of that work to support the 1-2% of their customers with insane hardware, they're going to release the game 1 year earlier, and 98% of their customers will be perfectly happy and won't cry about the lack of DX11 in a game. 98% of the people buying their games aren't even going to know what DirectX is, much less care about minor crap like some rocks being tessellated or not. Do you really expect developers to care about something most of their customers don't care about? If you do then you might want to rethink your position and ask yourself why.
Why should we listen to you?
You don't have to, but I am an experienced game developer who has developed and shipped multi-platform games and programs. I also have a bachelor's degree specific to Game Programming. I've been playing video games extensively for the last 25 years (since I was 4 years old), and I've been programming video games since I was 8 years old. I've owned about 12 PCs, 13 consoles, and 3 handhelds in that time, playing all kinds of PC and consoles games alike, so I'm a fanboy of neither one. Take my opinion for what it's worth to you.
If you find yourself in the position of just being a PC gamer who has been playing video games for a few years, that doesn't necessarily put you in the position to be arguing about what a console port is and isn't...
Is all lost for PC Gaming then?
No. Times have changed, however. Consoles used to be much different than PCs in terms of hardware and capabilities; The technology inside each was quite a bit different in what they were designed to do. Consoles didn't used to have hard drives, or even optical drives, their output resolutions and rates weren't similar to PCs. But now consoles are using similar hardware to PCs, and their hardware capabilities are much closer or even higher than many people's computers (with the exception of most people on OCN, who are the minority). So up until recently making multi-platform games almost always required a large porting process and the game you would get on the different platforms was much different. But now games can be developed for both PC and consoles simultaneously, they can share large amounts of the code in the game engine, and assets (meshes, textures, etc) can be made for all of them at once. This means larger profits for the developers due to less work, it means games can ship to all of their customers at once instead of months/years apart, the marketing campaign can be done all at once, and in rare cases like Portal 2 that PC and console community can play together.
PC elitists can breathe a temporary sigh of relief as the next-gen consoles are released. The performance bar will be raised by 6-8 years hardware-wise, next-gen consoles will all likely have HDD or some other large storage device, they'll all likely utilize online services, etc. This means PC games will also move up a large notch for awhile. Eventually those consoles will begin to age though, and PC games will fall back with them as well.
So what's the solution for the PC elitists?
Get over it. Unless you're paying a lot of money for a simulation program, then you're barking up the wrong tree. Games are a form of entertainment, and the developers are in it to satisfy the majority of their customers and make a lot of money doing it. If they have the opportunity to do some awesome stuff because the majority of the customers happen to have some insane hardware then I'm sure they'll take that opportunity. But if the majority doesn't have it, then don't expect it, or you'll find yourself disappointed.
Besides, the best games out there weren't that way because they looked good, at the most they were extremely fun and just happened to also be gorgeous as well.
Edited by lordikon - 12/7/11 at 11:58am













