Announcing: Slashdot Deals - Explore geek apps, games, gadgets and more. (what is this?)

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!

Game Tech: How BioShock Infinite's Lighting Works

Soulskill posted about a year ago | from the i-bet-they-used-sprites dept.

Graphics 55

An anonymous reader writes "The Principal Graphics Programmer for BioShock Infinite has put up a post about how the game's lighting was developed. We don't usually get this kind of look into the creation of AAA game releases, but the studio shut down recently, so ex-employees are more willing to explain. The game uses a hybrid lighting system: direct lighting is dynamic, indirect uses lightmaps, shadows are a mix. 'Dynamic lighting was handled primarily with a deferred lighting/light-pre pass renderer. This met our goals of high contrast/high saturation — direct lighting baked into lightmaps tends to be flat, mostly because the specular approximations available were fairly limited.' It's interesting how much detail goes into something you don't really think about when you're playing through the game. 'We came up with a system that supported baked shadows but put a fixed upper bound on the storage required for baked shadows. The key observation was that if two lights do not overlap in 3D space, they will never overlap in texture space. We made a graph of lights and their overlaps. Lights were the vertices in the graph and the edges were present if two lights' falloff shapes overlapped in 3D space. We could then use this graph to do a vertex coloring to assign one of four shadow channels (R,G,B,A) to each light. Overlapping lights would be placed in different channels, but lights which did not overlap could reuse the same channel. This allowed us to pack a theoretically infinite number of lights in a single baked shadow texture as long as the graph was 4-colorable.'"

Sorry! There are no comments related to the filter you selected.

So...... (0)

Anonymous Coward | about a year ago | (#46404257)

like every other UnrealEngine3 game ever?

Re:So...... (0)

Anonymous Coward | about a year ago | (#46404695)

Or most engines since id Tech 3.

Re:So...... (1)

gl4ss (559668) | about a year ago | (#46404867)

yeah I dunno why even write an article about it.

and bioshock infinite.. ..isn't that infinite at all. the lighting didn't really add anything to it.

like, how is the lighting different from bioshock1?? if i is calculated differently it sure as fuck doesn't change anything gameplay wise nor even graphically...

Re:So...... (1)

hairyfeet (841228) | about a year ago | (#46405553)

The only thing that amazed me about Infinite was...how lame it was.

I'm sorry but as a die hard Bioshock fan (I even bought the Minerva DLC on release day even though frankly Bioshock II wasn't as good story wise as 1 and the protagonist of 2 was the definition of irritating) I could not believe how bad they fucked up the core combat, it was terrible! The guns not only had the lame Halo 2 gun rule but honestly they were not only not fun to use but the muscle bound "hero" could carry less bullets than my out of shape behind! But the plasmids...err vigors, OMFG WTF were they thinking? Not only was the range so underwhelming that you might as well just shoot the bad guy but they just weren't fun to use. I ended up sticking to just two (seduction and electric) because the rest just weren't fun. And the gears were just a waste and it made it even more painfully obvious that ALL the designers wanted you to do was use the fucking hook, I mean something like 70%+ of the gears revolved around the damned hook! I could hear Jeff Goldblum doing an Ian Malcom "Uhh there is going to be shooting in your first person shooter...yes?" the whole time because it felt like the designers fell in love with the hook (that was fun for a little bit but quickly became annoying) and the forgot to do anything else. Don't get me wrong, the story was decent (with the exception of a super lame face heel turn, you know the one) but a story without a decent game to back it up just isn't very good.

So while Bioshock I and II (along with the excellent Minerva, better story than II had IMHO) will always have a place on my drive as soon as I play Burial At Sea II I'll be uninstalling Infinite, most likely never to play again. Its not as broken as F3AR was but it really wasn't enjoyable, I ended up just slogging through to get to the next story bit, strictly a 1 and done for me and considering the low sales and studio closing I can only hope the next game under new management will wrap a decent story with enjoyable gameplay again.

Re:So...... (1)

DrXym (126579) | about a year ago | (#46406317)

I think the storyline in Bioshock Infinite is a cut above most video games and some of the level design was amazing. But at the same time, what's the point of throwing the player into a world of time rips, alternate realities, cities in the cloud when they spend the majority of the game rooting around bins for candy bars and dollar coins?

Other game mechanics are also pretty whiffy - the expository voxophones lying conveniently around are such a lazy gaming trope (other games might use email terminals, voice mails, dictaphones etc.) that they should have been put down years ago.

Re:So...... (1)

hairyfeet (841228) | about a year ago | (#46413579)

To me it showed just how fucking BROKEN the current review system is, as reviewers rushed to trip over themselves giving perfect 10 scores when if you were to truly look at it as a GAME, and not just the story? it was honestly maybe a 5, I personally would have given it a 4. It just wasn't fun, it was all scripted, all linear, and it was painfully obvious the entire game was designed for you to use the hook and the hook alone, as they made sure damned near every guy rushed you...yawn.

Bioshock I,II, and Minerva had good stories but they were presented in what felt like a living breathing WORLD, whereas Infinite felt like set pieces. And I agree with others once you start throwing in time travel you can give it up as you can hand wave any plot holes away with paradoxes...so even the story frankly wasn't that good. I would even argue to jam in their "twist" they had to throw out the entire arc and make more than half of what you learned (such as the fact Booker wasn't racist and felt guilty over Wounded Knee) to make their lame M. Night twist fit!

So I still say it was average at best, again not completely broken like F3AR but strictly a 1 and done.

Re:So...... (0)

Anonymous Coward | about a year ago | (#46407795)

>The only thing that amazed me about Infinite was...how lame it was.

Agreed! What drove me nuts was that almost everything was literally nailed down and designed to prevent any out-of-the-box fun. Want to jump on that barrel? Oh, sorry, no. Want to push that cart? Oh, sorry, no. Want to shove the annoying person in your way? Oh, sorry, no.

For a game that gets literally perfect 10/10 reviews, I expected, at a minimum, a fully interactive environment. Instead, what I got was lots of completely fully thought of beforehand interactivity. Which certainly deserves a higher than average score, but the perfect game lets me have fun doing things that were never intended.

Bioshock seems to purposefully make it impossible to have any out of the box fun. Heck, for a 10/10 perfect game, I expect to be able to either pick from plenty of bizzare speech options or really, I should be able to type in my own inane responses and the system should parse and respond appropriately.

As it stands, I'd have given Bioshock a 7.5/10. A fun game for one playthrough, perhaps good enough for a second, but there's no way you could make it a game you simple start up once a week every week to kick back and relax in. To be honest, of all things, minecraft has more flexibility than Bioshock.

So they used Baked and dynamic lightning. (0)

Anonymous Coward | about a year ago | (#46404319)

How very REALly UNfascinating...

Re:So they used Baked and dynamic lightning. (2)

Eric Bacus (2942717) | about a year ago | (#46404373)

it seems to me like the interest is in the minutia, specifically how they achieved a more film-like quality to their renders without wasting overhead on expensive and unnecessary raytracing. Is it worth a story on slashdot? probably not. Is this response a gross oversimplification? sure!

Re:So they used Baked and dynamic lightning. (0)

Anonymous Coward | about a year ago | (#46405311)

Hello, welcome to slashdot. Now shut up and get back to bitching about how horrible beta is.

Graph was 4-colorable... (0)

Anonymous Coward | about a year ago | (#46404369)

Get your computer science out of here! :)

Re:Graph was 4-colorable... (4, Insightful)

Nimey (114278) | about a year ago | (#46404741)

See, this is something actually nerdy but nobody gives a shit. /. is dead.

Re:Graph was 4-colorable... (3, Insightful)

Anonymous Coward | about a year ago | (#46404957)

The best part is that most of the people complaining about it or making idiotic comments without reading the article are the same people who will, tomorrow, be bitching about "slashvertisements" and "important world news isn't news for nerds!", etc. They act like they want slashdot to be a recondite technical news and discussion site, but when they are actually given that, the comments sections languish and are filled with people who know little or nothing about the subject matter deriding it to feel better about themselves.

Beta is a drop in the bucket next to how shitty and anti-intellectual the community has become.

Re:Graph was 4-colorable... (1)

Frosty Piss (770223) | about a year ago | (#46405121)

It's early yet. Believe it or not, many Slashdot readers do other things during the evening hours like go out (of the house, not just the basement) and socialize (with real people in the flesh)... Sometimes pick up the kids, swing by a grocery store (believe it or not, many Slashdot readers do not live on Cheetos, Dew, and the occasional Ramen noodles anymore).

Had this story been posted during working hours, there would be twice as many comments by now, since most Slashdot readers surf the site at work...

baked shadows (1)

wasteoid (1897370) | about a year ago | (#46405403)

I prefer my shadows like my muffins - baked with no fixed upper bound.

Re:baked shadows (1)

Tatarize (682683) | about a year ago | (#46405605)

Sounds like burnt. You like burnt muffins.

Re:Graph was 4-colorable... (1)

Frobnicator (565869) | about a year ago | (#46405917)

There are occasional gems in the comments, enough to make older visitors browse them, but you are quite correct, most of us have moved on to better sources of news.

Quit complaining, it doesn't help. I suggest visiting reddit and finding some topics you enjoy, perhaps /r/programming or /r/technology, and also move along to sources like IEEE and ACM discussion groups.

Beta (-1, Troll)

aaaaaaargh! (1150173) | about a year ago | (#46406257)

It's because of Beta, which totally sucks. And perhaps also because the stories and comments have declined constantly in quality over the last decade and very rapidly over the past few weeks. Slashdot is full of shit now. A rotten piece of advertisement Web-junk.

I would be gone too if I hadn't forgotten to include the Beta subdomains when I configured Leechblock. :(

Re:Graph was 4-colorable... (2)

Kjella (173770) | about a year ago | (#46406319)

No, it's an excellent technical write up for those in the know about 3D lighting but I'm still at a loss for anything to actually discuss about it. I think even the old guard are 99.9% out of their depth trying to discuss whether any of the techniques used were appropriate or optimal. It's not even remotely trying to make it accessible to the general nerd as it's throwing references, acronyms and low level implementation details at you at a blazing pace with little to no explanation. The only summary I got away with was "smart man, if I ever need anyone to do something like that you're the kind of guy I'd hire" which I suppose might be the point, but it's not my little phd-class niche of expertize so I'm not going to argue with him. So what exactly would you like to discuss?

Re:Graph was 4-colorable... (3, Interesting)

systemeng (998953) | about a year ago | (#46406369)

I actually found this story quite useful as the references it gave showed that some of the problems they solved are very similar to a research problem that I am working on in electron microscopy. That being said, the article was very technical and outside of my understanding in some of the more video game related areas. I'm happy to see this on slashdot.

Re:Graph was 4-colorable... (2)

LoRdTAW (99712) | about a year ago | (#46407135)

Oh stop it. You're overreacting.

So what if the article does not have a huge conversation tacked on. You expect 500 comments about video game lighting? While the article is in fact very nerdy and jives with the whole "news for nerds" thing. It's one of those articles that caters to a limited number of people, namely video game developers. For most people its overly technical and beyond their understanding. There are plenty of other technical articles that don't get a large number of posts either.

Re:Graph was 4-colorable... (0)

Anonymous Coward | about a year ago | (#46409239)

Saw this on HackerNews but thought I would see what Slashdot had to say. Hahahahahaha!

  Beta can't kill what's already dead. RIP /.

Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46404491)

It's the Unreal engine. Irrational just bought the license and modded it a bit to suit their needs, but the heavy work in designing and developing the engine came from Epic games, not these guys, and it's Epic who should get the credit for the technical know-how of the engine.

That and the game itself was really strange. The environment and story was quite interesting... then they had to go to a fairly generic FPS style of gameplay with a lot of violence that seemed quite out of place (and wasn't particularly fun anyway, especially on harder skill levels where the AI just became annoying bullet sponges rather than anything of an interesting combatant).

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46404977)

If you think the engine was just modded a bit then you have an overly generous understanding of game engines. Unless you are shipping a clone of a game the engine was created for (ie. gears of war) then you'll spend a lot of time modifying the engine. If you read the actual article you'll get a sense of that. And it's just covering one small part of the engine. If you don't believe me go compare a few unreal engine games to each other and to what exists in games like gears of war.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46405011)

Unreal Engine games can utilise UnrealScript, which is powerful enough that you can create a totally different type of game without modifying the engine.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46405039)

Unreal Engine games can utilise UnrealScript, which is powerful enough that you can create a totally different type of game without modifying the engine.

If you believe that that then I have a bridge I'd like to sell you.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46405061)

Then explain why not.

Re:Who gives a fuck (2, Informative)

Anonymous Coward | about a year ago | (#46405329)

Ignoring the obvious performance issues you can't make any substantial changes to the behavior of the engine. Take a look at most games shipped with Unreal and you'll see they use different middleware (audio, pathfinding + others) to what is in the shipped engine. This is not something which can be practicably done via UnrealScript. Even if you could manage to make it work the performance will be appalling. Transitions between UnrealScript and native code are expensive.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46412143)

Bullshit, the performance is super fast and you can do all of that shit. You don't know what you're talking about and you've never developed for Unreal Engine.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46412635)

Wrong on all counts. If you think you're right then go prove it you clueless muppet.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46414207)

Burden of proof is on you, faggot. Plenty of games utilize UnrealScript to make totally different games.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46414745)

Sorry sweetie you aren't my type.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46415637)

Obviously you can't read either, faggot.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46415155)

The burder of proof lies on you for this one (I'm a different commenter, but also someone with Unreal Engine experience). UnrealScript is not super fast compared to C++, and if you think that I would like to see some stats that it is. Interpreted script code is never faster than the equivalent C++, unless you're a idiot of a C++ programmer.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46416383)

You have no experience with Unreal Engine. Stop lying.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46416461)

That's nice dear. I may have actually worked with the 2 other commenters responding to you (since we've had a laugh about this thread), the 3 of us having around 10 years, maybe more, combined Unreal experience.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46416497)

I've been working with the Unreal engines since before you were born, little boy. Now go back to bed.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46416669)

For the record (I posted what I am replying to), I have 2 shipped Unreal Engine 3 titles to my name, and about 11 others using various other engines. I am a Technical Programmer by trade, and have worked in the industry around 8 years. Been doing this gig quite some time now and know my way around an engine or few ;)

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46416695)

Whoops, replied to the wrong one. Anonymous Cowards are becoming very confusing now :P

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46416467)

And what much experience do you have with Unreal? Have you done any native coding for it? Profiled any of the code?

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46416523)

Only thing I have more experience with than Unreal Engine is your mom. She says hi btw.

Re:Who gives a fuck (0)

Anonymous Coward | about a year ago | (#46415295)

Haha. Okay, then try integrating something like Kynapse, Beast, or Wwise (all fairly common middleware products) using only Unrealscript. If you check out their websites, the vendors actually provide ready-made integrations, but guess what... even if the middleware itself is shipped as a DLL, the integration code is written in C++, and you need to compile it into the executable. :) Unrealscript cannot call C++ functions that haven't already been registered with Unrealscript (via native code) and declared in a .uc file using the "native" keyword. If you could, say, bind to DLLs in Unrealscript then there would be a way to do it, but (A) you can't do that out of the box (check out http://udn.epicgames.com/ if you don't believe me), and (B) even if you did implement that feature into the engine, you'd need to do so using C++, and calling into the middleware would be horribly slow because of all the indirection between the scripts, the native code, and the DLL.

Unrealscript is a purely interpreted language. There's no JIT available to speed it up, unlike most/all other interpreted languages in wide usage. It can be useful for iterating quickly on simple gameplay features, and a lot of the fancy features of the engine (like RTTI and reflection) require it, but it's no real substitute for C++. Modern computers do have a lot of power available to throw at running interpreted languages, but games often don't leave a lot of it spare, and the overhead of Unrealscript *is* significant (I've measured it before - the profiler doesn't lie). And remember that a lot of Unreal games still run on XBox 360 and PS3. The XBox 360 is almost 9 years old now, and most of the PS3's computing power is locked up in the SPUs (which obviously can't run Unrealscript). Think about how much faster CPUs have become since 2005.

Source: I have one shipped Unreal Engine game to my name, and I'm working on another right now.

- a different Anonymous Coward

Humbled yet again (0)

Anonymous Coward | about a year ago | (#46404551)

There's always someone out there that's smarter than you.

pity the gameplay was boring (0)

Anonymous Coward | about a year ago | (#46404583)

yeah some lovely graphics. gameplay wise, one of the worst on rails boredom ever. wow fps shoot in face, have somebody talk to you for a bit, resume shooting in face etc etc ad nausem.

as soon as the time travel shit was introduced I had an inner groan... so time travel... the get out of jail free card for bad writers. from that point on the plot to me went blah blah blah blah... couldnt care less. in a world with 'time travel' everything could be complete bollocks only to be explained away at a whim. too bored to finish it.

Re:pity the gameplay was boring (1)

Black LED (1957016) | about a year ago | (#46404795)

I felt that way about all of the Bioshock games. What I'd like to see is a System Shock 3 that lives up to its predecessors.

Ummmm (0)

Anonymous Coward | about a year ago | (#46404609)


i touch da pepe (1)

Anonymous Coward | about a year ago | (#46404801)

and a small further note you can use the same technique to cull the geometry fed into the shadow pass as well - if its not in the pvs from the light's perspective then it can't cast a shadow you will ever see from that light. :)

Yawn. (0)

Anonymous Coward | about a year ago | (#46404893)

Clever hack developed for underpowered hardware based on one of the most generic game engines out there. Colour me moderately unimpressed.

I was going to make a snarky comment about moving beyond OpenGL and Direct X into the land of realtime ray tracers that run on a GPGPU, but then I realized that would probably slaughter the franchise market. If such a game engine did exist, the visual quality attainable in realtime would likely only be limited by the amount of computational power available (which would restrict how many GI bounces you could do, or the ray depth for reflections and shadows, or if you can support things like AO, soft caustics, subsurface scattering, etc). Which would mean that old games would look considerably better on newer hardware simply because of the increased amount of simulation you could perform in-between a single frame. So all your franchise cookie cutter COD games would effectively look the same, and the fanbois would lose half of their justification for running out and buying the latest greatest yearly release.

Re:Yawn. (1)

Samantha Wright (1324923) | about a year ago | (#46404933)

Speaking of realtime raytracing... [youtube.com] (Say hello to your new god.)

Re:Yawn. (1)

Black LED (1957016) | about a year ago | (#46405047)

Running the actual demo [pouet.net] is perhaps a better way to show it off. More impressive that way :)

From the readme:

windows 7 / directx 11 required
high end directx 11 gpu required
ati 7970 or nvidia 680 recommended
due to the intense pixel work, max 720p resolution recommended

Just buy it and STFU! (0)

Bodhammer (559311) | about a year ago | (#46405001)

I'm only a few hours into the game but the artwork and graphics are stupendous! My system is mid-range with a Intel Core 930 clocked to 3.3Ghz, 12 Gig DDR3, and a GTX 660 and the game is beautiful!. I got it for $7 at GMG and it is a bargain. Just buy it and no whining... Games on a per $/hr basis are the best value in entertainment the world has ever seen. I sincerely thank the people who produce them!

And yet they never actually do anything with it. (0)

Anonymous Coward | about a year ago | (#46405177)

The lighting in the game is horribly static.
Games since 2004 have had 30 or so lights in a single scene, and all dynamic.
Take FEAR for instance. This game had many dynamic shadowed lights, and even did volumetric effects on top of that!
You just don't get this kind of amazing lighting in today's games. They are too focused on Lens flare and god rays rather than making fully dynamic lights and shadows. They might have one or two shadowed lights in one scene, but the rest is just statically baked or unshadowed lighting.

Re:And yet they never actually do anything with it (1)

ledow (319597) | about a year ago | (#46406489)

Because, like Hollywood, or any kind of photography, making things more realistic does not get you any more people going "wow".

We've reached a point now where we can make photorealistic scenes. The problem is that photorealistic scenes have to be of something fantastical for you to be able to see what's going on, what's an enemy and what's prop furniture. Like the old Holywood adage - it has to be light enough to see the dark by.

Otherwise you get complaints like those that surrounded Doom 3 upon its release.

As such, all the shadows in the world will not make people go "Wow" any more. And the trick of "this is your enemy approaching, look, you can see by his shadow" can only really be used once per game (if that, nowadays). So, as you say, they can have all this fancy technology and capabilities but how do you use them in what is basically a *game* without them being ignored for the most part while people are running from the enemy?

This is the problem that many old-school gamers moan about in terms of games nowadays. I have seen any number of games that are beautiful. But I don't play them. The ones I do, they can be beautiful or not - it barely matters.

And if you're going to get people who whine that their computer can't run the game because it's so slow because you're doing all this fancy stuff, then it's better to dial it down and make more of a game, than dial it up and have nobody play it.

Like Hollywood, photography, and lots of similar art-forms - there's only so much you can do and keep people interested. Notice that movies are full of lens-flare too (despite the fact that it could be avoided). Photographers and movie producer adjust the lighting by flooding the scene with artificial light and reflectors to make it look "more natural", and removing natural shadows. When was the last time you played a game that fell into "night" and yet went dark except for a realistic arrangement of external lights? Possibly Doom 3 that everyone whined about?

You can have things look realistic, or be functional inside an interactive environment. The middle ground is exceedingly hard to manage and co-ordinate to make a good game.

Re:And yet they never actually do anything with it (0)

Anonymous Coward | about a year ago | (#46416487)

That's because most recent games were made for PS3 or 360 and they were too weak to handle dynamic lighting.

handbag store http://www.shoesctv.com (1)

videosjih (3568207) | about a year ago | (#46433721)

Hello! everybody, give you recommend a good shopping place. discount sunglasses sale http://www.shoesctv.com/ [shoesctv.com] NFL cap wholesale http://www.shoesctv.com/ [shoesctv.com] discount jordan shoes http://www.shoesctv.com/ [shoesctv.com] jordan michael http://www.shoesctv.com/ [shoesctv.com] designer sunglasses http://www.shoesctv.com/ [shoesctv.com] cheap jordan shoes http://www.shoesctv.com/ [shoesctv.com] jordan store http://www.shoesctv.com/ [shoesctv.com] Air jordan 13 http://www.shoesctv.com/ [shoesctv.com] cheap designer handbags http://www.shoesctv.com/ [shoesctv.com] NBA cap wholesale http://www.shoesctv.com/ [shoesctv.com] best handbags http://www.shoesctv.com/ [shoesctv.com] cheap jordan http://www.shoesctv.com/ [shoesctv.com] Jordan for cheap http://www.shoesctv.com/ [shoesctv.com] Air jordan 11 http://www.shoesctv.com/ [shoesctv.com] ray ban sunglasses http://www.shoesctv.com/ [shoesctv.com] handbag store http://www.shoesctv.com/ [shoesctv.com] Air jordan 1 http://www.shoesctv.com/ [shoesctv.com] handbag patterns http://www.shoesctv.com/ [shoesctv.com] mens sunglasses http://www.shoesctv.com/ [shoesctv.com] imitation handbags http://www.shoesctv.com/ [shoesctv.com] replica rolex http://www.topreplicarolex.org... [topreplicarolex.org] replica watches http://www.topreplicarolex.org... [topreplicarolex.org] jordan release dates http://www.shoesctv.com/ [shoesctv.com] NHL cap wholesale http://www.shoesctv.com/ [shoesctv.com] Air jordan 9 http://www.shoesctv.com/ [shoesctv.com] MLB cap wholesale http://www.shoesctv.com/ [shoesctv.com] cheap sunglasses http://www.shoesctv.com/ [shoesctv.com] wholesale from china http://www.shoesctv.com/ [shoesctv.com] jordan shoes wholesale http://www.shoesctv.com/ [shoesctv.com] Top replica watches http://www.topreplicarolex.org... [topreplicarolex.org] replica rolex watches http://www.topreplicarolex.org... [topreplicarolex.org] designer handbags wholesale http://www.shoesctv.com/ [shoesctv.com]
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?