A Programmer’s Look Inside BioShock

121 0

I’m Steve Sinclair and I work at Digital Extremes. I’m scrawny with dry skin and male pattern baldness. Despite all that – I’m still smiling because I got to peek up BioShock’s skirt!

By skirt I mean the source code. For a programmer there is great joy in understanding. Every time the Great Carmack open sources an id engine, I rush to the Interwebs and fill my brain with the glory. I remember being astonished that they were using Huffman compression on their network stream for Quake 3. If I recall correctly, they’d just capture a bunch of traffic and build the table out of it. It was like profile-guided optimization for packets. That’s sublime right there.

Well, it was a bit odd, being the way I am, that the first thing I did when we got the BioShock build was … check the other ending. Like a coward, I could never bring myself to harvest. What kind of demented person can do that? Sure, I laugh when I light a Splicer on fire and she runs away screaming and then I shoot her in the head and beat her corpse with a wrench … but in my mind the freak deserved it. The point I’ve failed to make is this: learning more about the world of BioShock overwhelmed that programmer’s impulse.

crashsite

How about I say something on topic? BioShock on the PlayStation 3! My first task was to optimize the character ‘skinning’. For Bioshock, a lot of resources go into the character animation – here ‘skinning’ refers to the process of taking the various animated joints (spine, elbows, knees, wrists, etc) and deforming the rendered character to match that animation.


Skinning was coded for PS3 in two phases: first I made it work on the main CPU (actually Sony calls their CPU a PPU) using their specialized math instruction set (much faster than straight up C/C++). That was about four times faster, but the PS3 still had more love. That love was the final step, take that code and run it entirely on a SPU, freeing up the PPU for other tasks. The SPU processors run along side the PPU, chewing data while the PPU worries about something else. The idea being, if you have spare SPU time, your skinning is essentially ‘free’ (done before the rendering system even asks for it).

After that was working, I helped out with profiling and memory optimization. Things you want to do when you change memory architectures, like adding a second straw to your milkshake. In this amazing analogy the two straws would be the collision system and the rendering system. The ‘milkshake’ (chocolate) would be the objects in the world that need to be drawn but, just as importantly, shot, knocked over and generally interacted with. By dividing the data describing the objects between the two dedicated areas of memory I eliminated the need to make a second copy of the object while giving both systems full-speed access to the parts they needed.

As we wrapped, I was slogging on TRC issues (not fun) and crashes (quite fun actually). Such are the tasks of taking it the last mile … as usual it comes down to some nuanced and hard to nail down issues.

Well, enough of my technical jargon for now – thanks for reading. I hope you enjoy BioShock on PlayStation 3. It was an honor to be able to contribute to it.

Comments are closed.

121 Comments

  • I’ve played the demo on my PC (which barely ran it) and now on my PS3.

    I like it on my PS3 much better.

  • Thanks for posting Steve, Im really looking forward for BioShock :)

  • You’ve got some balls charging $59.99 for this year old, inferior port.

  • OUSTANDING!!!!!!!!!1111UnoDosTres

  • loved the demo but i will not buy it the full game

  • looking forward to this, I really liked the demo and the games is worth the $60 price tag… only sad fanboys stare and try to point out differences(if any) between the three versions…

  • The developer of the overpriced, inferior port speaks. How do you explain the slower framerate and crappy textures?

  • I am so excited to get Bioshock on the PS3. I really enjoyed playing the demo. :)

  • Not buying this unless is costs $30 or less. Seriously, with all the games coming out these next 3 months that are actually new, it’s insulting that this game would cost full price.

  • @3

    Yes they do. Considering it costs about $30 now for 360, paying double just sucks. But, its a phenomenal game any how and shouldn’t be missed.

    Blockbuster FTW!

  • Guys… keep these coming!! I love the fact that the Blog also has a more technical side. I do understand that not everyone is interested on how games work behind the screen… but I appreciate the understanding of these geniuses work!

    Great work PS Blog!! Bring us more!

  • The demo was impressive, but with LBP and stuff coming out, I won’t be buying it until the price drops to reasonablville, like 30-40 dollars.

    I’m also really annoyed that Namco is charging $60 for Eternal Sonata and $40 (by rumor) for the Katamari port.

    They are older games, please discount them unless they are way more awesome.

    Thanks though for bringing it to PS3.
    It should have been a simultaneous release though.

  • The game is a year old, and yet you have the audacity of selling it for 60$ ? Unless the price drops to at least 40$, i’m certainly not getting it.

  • wow some people are harsh at least they brought the game over to the PS3 where it belongs but man… they should of taken some lessons from Hideo Kojima

  • Steve how you guys could done so bad port?The awful Bid Daddy textures issue, this horrible blur effect…Im a big fan of this game in PC and the 360 port is superior too. 1 year later.

    I´m still crying since last Thursday…

  • I can’t wait for it to come out, this is a day one buy for me! :)

  • I know you’re probably a bit worried about how the game might be recieved by PS3 owners giving that little texture issue with the big daddy, but I assure you no one REALLY cares that much. This and dead space= creepy horror fun. ^_^ I’m buying.

  • Thanks for the inside look. Do you guys have a site with a more in-depth documentation of the process?

    PSN: WalterKovacs

  • Nice inside look dude, it was an interesting read, oh and BTW you did an amazing job!!

  • I’m not paying more then $40.00 for this game. Its a year old port with a few tweeks. If its not that price I’ll just wait until it hits the bargain bins. Besides there are to many new games coming out in the next 2 months for me to buy this old game. Trophies are the only reason Bioshock is on my radar.

    There’s a very important lesson to be learned from this. Next time, release your game the same time across all platforms. You guys need to stop treating PS3 as the hand me down audience.

  • Thats great information man.

    Programming has always been an interest of mine since working with pascal and doing some html coding on websites etc…

    Its tough stuff and I commend you for your hard work on this impressive title.

  • Wow, Steve you have no idea how much I enjoyed your post. You have a very extensive vocabulary. Anyway, I sure am glad to have BioShock on the PS3, and with how much more the PS3 can handle than other systems, I can’t wait to see the finalized version rather than the awesome demo.

  • i agree, thanks for the insider info, that was a fun read. so you like the chocolate milkshakes ehh. i’m partial to vanilla myself, or a nice loganberry.
    anyway, to those whiners, shut up. seriously. you look like fools. don’t want it, don’t fricking get it. upset about the price, refer to the prior sentence ending. so what if it’s a year old, it’s still brand spanking new for the ps3, there are also some subtle differences if you’ve been keeping up on the blog posts of the game. and you’re also making huge speculations off a demo. thats like crying about how bad the game will be from a beta. (looks around) so go back and enjoy your rrodbox version if you are so inclined. after this years gaming frenzy i plan on making my choice of purchasing it, not a day one buy mind you. at 60$ a pop with everything else hitting, can’t afford that. i still have to eat and all.

  • A matter of fact! Keep your Bioshock and shove it. Maybe your 360 people will buy a second copy. You people at 2K think PS3 owners are stupid huh? Charging $60 for your old hand me down game. LMFAO!!!

    “THANKS FOR THE OFFER BUT I’LL HAVE TO PASS!”

  • Thanks for the deep dive info here, very interesting to me as a desktop software dev to see the amazing stuff you guys pull off in the game biz. Out of curiosity, can you recommend any places to learn more for the merely curious (not someone looking to break into the business)? I made a simple OpenGL game back in the 90’s and was quite flummoxed when I profiled it to find that collision detection was occupying 40-55% of the cycles. I’ve always wondered how games that actually run well handle that sort of thing

  • great update on current events. loved the demo of bioshock and may consider buying it after a rental at first just for precaution. great job though on bioshock

  • All of you guys on here, need to really stop supporting these year old ports. All we are doing is letting developers know that it’s okay to treat PS3 as second class citizens. Vote with your wallet and don’t buy. Next time they will be a lot more considerate about releasing old software at full price. Kevin Levin and 2K are sitting on a huge pile of money laughing at us PS3 owners. “ha ha ha ha, we didn’t even develop a new title for this holiday and we are going to make a ton of money on these PS3 owners. They are desperate! HA HA HA HA” HO HO HO HO, MERRY CHRISTMAS!

    Look, you either decide to go all out exclusive or do like Capcom. All games are multi-platform from this point on. Capcom still owes me for Monster Hunter 3. But we’ll talk about that later.

  • Crossing my fingers that Bioshock 2 comes to PS3, and uses PS3 as lead SKU so we can see the water system REALLY blow us away.

  • As a programmer myself, I thoroughly enjoyed reading this post and will most definitely be picking the game up at release. And despite all the criticism people (kids?) are giving, your hard work is appreciated. Don’t be a stranger!

  • Excellent article. As someone who can’t afford both platforms I’m very pleased the effort has been made to port Bioshock to the PS3. So many games to choose from this month… wonder if my family REALLY needs to eat.

  • Mr. Sinclair, could you give some info on if the TRC for 2009 will be different for 2008? For example will the TRC for 2009 make trophies and in-game access to music mandatory?

  • as someone who is in university and intends to learn how to become a game programmer, even though the main goal is lead game designer, it’s always great to see the inside into how these things are done

    keep up the good work

  • I have to say, I’m not a big Bioshock fan. I have it for the PC and I’ve never gotten very far. However, I will be making an effort to get this just because the PS3 is awesome, and I’m curious to see if it will run better on my PS3 than my computer.

  • Thanks for the hard work.You guys did Dark Sector too ,correct? Don’t worry about the comments on here.Most couldn’t tell a framerate if it written with a crayon on the screen.They like to hear themselves talk,lol.

    I played/beat it on 360 and I’ll be playing it again on PS3.There’s a reason for all the awards.

  • awesome! I cant wait to get this game! LOVE THE DEMO!

  • did u enjoy working on the ps3 be truthfully?will bioshock 2 get launch on all systems at the same time?

  • I absolutely loved the demo by far the best demo i’ve ever played on the PS3. Unfortunately (for me) I wont be able to purchase the game due to financial difficulties. I have saved up enough for two games that i’ve been waiting a while for. I will get this game the moment I have enough money. I can’t wait for it (sadly that exactly what I have to do is WAIT… I hate waiting.)

  • No thanks. I’m sorry but u guys a Digital Extremes and 2K studios give us a inferior version compare with the other versions out there. The iconic character of the game look like from the PSX era so I don’t give a cent from my hard earn money for this game until the game hit a $29.99 price tag or less(cuz there highly anticipated game coming this fall). Sorry but u guys fail on deliver what did u promise to begin with it.

  • I don’t own other consoles or a PC that can handle this game.

    The demo seemed very good to me.

    I’ll be buying for sure.

    I’m assuming supporting Bioshock 1 will make for a good case to bring Bioshock 2 our way?

    And thanks for taking all the BS commentary since you don’t even work for 2K and have no control or input over when this game was considered for porting!

  • I cancelled my pre-order. The texture/framerate/blur filter are completely unacceptable for a year old port!!!

    I’ll gladly buy it when a patch correcting these issues is released.

  • So you’re saying that PS3 is better.

    No question mark.

  • I might rent it.. to check out the new things.. huge fan of bioshock.. playing it for the 3rd time on pc… :D

  • @37…

    this is Digital Extremes…they’ve already worked on the PS3…Dark Sector is thier game…they were brought in as they have experience on the PS3 and with the Unreal Engin on PC and Xbox.

    You can all refer back to this post to see what their job was:

    http://www.digitalextremes.com/news/jul0308.htm

  • OK, so where’s the keyboard and mouse support? I played the demo, and I was very, very disappointed to find out that there was no keyboard or mouse support, which seems like a regression from the Windows version of the game.

    Sorry, but for me, no keyboard support & no mouse support = no thanks.

  • Just waiting for the game to come out. Must be hard with recent downplay of the PS3 version being called “crap”.

  • The texture issue was a huge turn off for me. What surprised me the most was to have read that this version wil be “identical” to the Box version. As soon as i booted up the demo i was very dissapointed. If developers are going to make inferior ports just for the sake of making more money it will be a cold day in hell when i even look at one of your products again.

    I really don’t know if it’s just the ignorance of those who have never played another version of the game (pc or Xbx)or their denial, but this version is far inferior.. It’s not even close. Resistance 2 will OWN this game, save your money guys.

  • Game was disappointing, port-wise, and charging a full $60 for it is absurd. Will probably rent it.

  • @47…

    That is right…I DON’T play X or PC games and I like good single player story line games…to me this makes Bioshock an attractive must buy.

    The blur filter is a stylistic choice and if there is a bad texture here and there on the back of Big Daddy’s head it really isn’t going to change my enjoyment of the game one iota.

    As for $60 vs $30…we’ll I guess I’m spoiled as I always ‘find’ new games at the $45 mark or less by shopping around and I currently have Bioshock preordered for $44.99 at Amazon.ca (with 1st purchase discount code)

  • Thanks for the update. I enjoyed reading your post, being a programmer myself.

Please enter your date of birth.

Date of birth fields