Join Date: Mar 2006
Bioshock , interview with Irrational Games,DX10/DX9, Specs, Console and PC gameplay
PCGH: What are technical features of that engine that you see most fitting for you title? What parts of the product had to be modified to fulfil your requirements?
Irrational Games: Some of the big areas that are custom in Bioshock are:
- The AI system which is a development of an AI engine that we originally developed for Tribes: Vengeance and was then used in SWAT 4.
- Various water rendering features mentioned above to handle water splashing off objects, water flow, surface properties and so on.
- Integration of Havok physics rather than the default UE3 physics solution.
- A flash based rendering system for the game HUD and UIs.
PCGH: If you compare your product to other games that utilize the Unreal Engine 3 like Parabellum or UT 2007 what are the very special technical highlights of your game?
Irrational Games: The great advantage of Unreal is that it gives us a solid base to start from so that we can spend our technology development time on extensions rather than basic rendering and other engine features. In Bioshock, I think our stand out features are:
- The AI, particularly the “ecology” that supports AI to AI interactions (not always hostile), movement of AIs through the level and repopulation of AIs.
- Density and complexity of environmental interactions: the ability to set things on fire, have that fire propagate dynamically, the ability to use water to conduct electricity, the ability to utilize physical objects to cause damage via Telekinesis and so on.
- Freeform movement of players through the game both within and between levels. We rely much more on systemic gameplay than pre-scripted events because we don’t always know exactly where or when the player is going to encounter something in the game. For example, you can travel back to earlier levels of the game if you want and we have to fully support that.
- Rendering of water surfaces and modeling of water flows.
PCGH: The Unreal Engine 3 is shipping with a modern renderer that fully supports the shader model 3/4 and therefore advanced rendering techniques like FP32 rendering, vertex texturing, higher interpolator counts or dynamic branching. How do you utilize these techniques to increase performance or to offer eye catching visuals?
Irrational Games: Under DirectX 9 we use shader model 3. If you run under DX10, we use shader model 4 which lets us do some nifty things we can’t do in DX9.
In either case, the game uses high dynamic range rendering. We use fp16 (16 bit floating point format) and, under DX10, a packed floating point format. The packed format reduces the fill rate cost allowing us to deliver the same quality image at a higher frame rate.
Dynamic branching lets us decide what pixel shading algorithm to apply on a pixel by pixel basis. This means we can run a more complex algorithm in cases where it benefits us and a simpler one where it doesn’t, saving our processing power. So, when generating a shadow, we use dynamic branching to apply a more complex algorithm that generates crisper outlines on the shadow boundaries and a simpler and faster algorithm on the shadow interior. Vertex texturing is used to simulate splashes caused by falling water onto dynamic objects. We render a texture based on the objects in the volume swept by the falling water. That texture is then used to determine where to place particles illustrating the splashes caused by the water hitting those objects.
PCGH: Where there any visuals on your wish list that you had to drop due to a much smoother performance? What details will players with older graphics hardware miss?
Irrational Games: Surprisingly, not really! We’ve been very pleased at our ability to manage all the dynamic effects (fire in particular) with the density of objects that we want in the game.
Of course, there are always constraints in level building in any game that the artists and designers would love to have removed. If we could magically render whatever we wanted on any hardware, I’m sure we would have put in more windows, more water effects and so on. But I think our level builders have done a great job conveying the impression of being in an underwater city that is falling apart around you.
On lower end systems players will have to make the usual trade offs: turning down the resolution and perhaps turning off some of the more advanced effects like real-time reflections on water surfaces and reducing the quality of some of the shaders and textures.
PCGH: As far as overall performance is concerned. Can players increase it remarkably by buying a second graphics card (SLI/Crossfire)?
Irrational Games: We’ve focused development on single card solutions, so we’re not recommending people rush out to buy an SLI setup for our game.
PCGH: Dual or even multicore CPUs become more powerful, popular and even affordable recently. Furthermore the Unreal Engine 3 is highly optimised for multithreading. How do you utilize the multithreaded structure of that engine efficiently? What different calculations can be or are split up into different threads and what is the expected performance gain resulting from two respectively four or more cores?
Irrational Games: The game is fully multi-threaded so multiple cores are very useful for us. We have separate threads for physics, rendering and other tasks.
So, there’s a very clear jump in overall performance (frame rate) going from one to two cores. Increases beyond that (two to four) are more incremental.
PCGH: Have you already utilized the Intel Core 2 Quad or AMD “4x4” platform? What is your personal opinion about these products?
Irrational Games: Yes we have. Clearly these platforms vastly increase the possible performance of games that use threading. The “sweet spot” for our game is a two core system, though four cores is not going to hurt. I expect our future games will be more focused around these new architectures.
PCGH: Windows Vista comes with the new DiectX 10 API. Will your engine support shader model 4 and will you use advanced features of that shader model like Geometry Shader or Virtual Texture Management?
Irrational Games: We are supporting a number of new features for DX10. Most significantly, DX10 will allow any physical object that comes in contact with a body of water to produce interactive waves that will perturb the surface of the water itself, distorting its refraction and reflection, and blending seamlessly with the simulations already running on the surface. AIs moving in water will leave behind rippling, foaming trails. Bullets and objects that hit water will produce radial ripples. In DX10, for fire and some other effects, we'll be using soft particles which means that the fire particles will no longer "clip" or be cut off by hard surfaces that they intersect with. And finally, under DX10, shadows will be crisper and more precisely match the features of the objects they are cast from. If there is no Direct3D 10 support yet, will it be integrated later on? Have you already made experience with the new API? See above.
PCGH: As far as physics simulation is concerned: Does the player also profit from a PhysX card or are you using Havok solely on the CPU? Are there any plans to accelerate Physics through HavokFX also on GPUs?
Irrational Games: There are no plans to utilise custom physics hardware at the moment.
PCGH: AI plays an important role in a Game with tactical emphasis. Were you satisfied with the AI performance of the Unreal Engine 3 or did you have to overhaul die AI-Part completely?
Irrational Games: As discussed above, we’re using a completely custom AI solution. The Unreal AI that ships with the engine is not appropriate for the kind of gameplay and level of interactions that we’re focusing on in Bioshock.
PCGH: Bioshock was developed for release on Xbox 360 and PC. We’ve seen game-ports from this console in the past to not live up to PC gamers’ expectations, especially as far as interface, handling and – visually – texture resolution is concerned. Can you erase those concerns for potential buyers of Bioshock?
Irrational Games: At the end of the day, the only way we can really erase those concerns is by getting the game in their hands, or at least a reviewer’s. I can promise you though that we’re not just doing a cheap port. The game is being developed on both platforms simultaneously and we have a separate team dedicated to the PC. We’re well aware of interface, graphics and gameplay issues that are different between the two platforms.
To be honest, I think our bigger problem has been getting the 360 right. Don’t forget that we are a PC developer. We’ve done System Shock 2, Tribes and SWAT 4, all shooters on the PC and its our natural home.
I personally prefer playing the game on PC because I like mouse and keyboard above a controller. I don’t think PC gamers will be disappointed.
PCGH: Can you already say what rig players must have to play the game with all details in resolution of 1.280x1.024?
Irrational Games: Our recommended spec is as follows:
- CPU: 3GHz dual core processor
- Memory: 2 GB RAM
- Video card: Pixel Shader 3.0 compliant video card with 512 Ram (Geforce 7900 GT or better)
But to run the game at 1280x1024 with all graphics options enabled you really need an NVIDIA 8800 or ATI 2900XT or better.