Tuesday, January 11, 2011

PORT FORWARD: How Bioshock 2 PC broke my kid’s Christmas

Bioshock 2 is a spectacular game, both visually and as a narrative. While it starts slow, it builds to an exploration of morality and the value of family, with a thrilling non-stop third act.

 

It is also a brutally shitty PC port.


Installed on a rig that currently plays both Borderlands and Left 4 Dead 2 at a native resolution of 1440 x 900, Bioshock 2 can only achieve up to15 fps at 640 x 480 with all settings on low. To complicate matters, it gets the same fps EVEN AT 1400 x 900.

 

WHAT. THE. FUCK.

 

After much basic troubleshooting (new drivers, defragging the hard drive) and moving into more complex analysis, I have come to some conclusions.

 

Bioshock 2 was built for the 360 and ported over with little or no optimization for pc:

The Xbox 360 has a tri core custom PowerPc CPU named Xenon. While the most current console has a smaller cpu die at 45 nm, the actual architecture of the chip has not changed since 2005.

 

The 3 cores run at 3.2 GHz, with 1 MB L2 cache, 512 MB of 700 MHz DDR3 RAM and the Xenos graphics card. ATI designed the Xenos with a 500MHz GPU and 10 MB of eDRAM, making it the semi-equivalent of the ATI X1900 series architecture and even included aspects of the later HD 3000 series.

 

The takeaway is that designing for the 360 as a closed platform necessitates that games leverage the CPU power of the console to the extreme, and use the RAM as a shared resource between the CPU and the GPU as the GPU has no onboard video or texture memory to speak of. 

 

How does this apply to PC gaming and specifically my kids computer?

 

Generally speaking a consumer PC will run a 2GHz single or dual core CPU, 2GHz of DRR2 or DDR3 RAM  and (hopefully) have a discrete video card with it's own GPU clocked around 2 GHz (or higher) as well as onboard memory in excess of 1 GB of GDDR3RAM.

 

360's are unified in design, with the flow of information being handled almost entirely by the CPU's, and graphics streamed to the GPU. PC's are designed to handle multiple general computing tasks, with no dedicated architecture. While this allows the PC to be a multitasking beast, games are inherently designed to dedicate specific tasks to different components of the rig

 

While trying to run Bioshock 2 several things became clear immediately. Sitting on a 2 GHz Athlon 64 cpu with an ATI HD4850 and 2 GB of DDR, Bioshock 2 pins the CPU, which is understandable given it is below the recommended specs.  However, the 4850 has a 2200 MHz GPU and 1 GB of GDRR3 which goes UNTOUCHED.

 

Running ATI Tray Tool allows the user to see granular detail in CPU usage, RAM usage, Video GPU usage and Video Texture Memory usage. Changing the resolution and graphics details from 640 X 480 to 1440 x 900 had no net change in the amount of system RAM, GPU and Texture Memory used, while keeping the CPU pinned to 100%. This indicates that like the 360 build, Bioshock 2 PC is designed to maximize data flow to the CPU(s) with little or no use of the GPU, which is a shame, because Bioshock 2 is a beautiful game.

 

Complicating issues is the integration with Games for Windows Live. Broken at launch GWL is REQUIRED to save single player games.

 

After creating an offline GWL profile for my son, and entirely disabling the in-game menu animations as they are CPU dependant, I was finally able to launch Bioshock 2 and achieved 10-15 FPS NO MATTER WHAT SETTING I used.

 

My next step is to pull the game over via steam onto my dual core system to see if it will run better.

 

           

No comments:

Post a Comment