Capcom interview on gaming technology


Recommended Posts

http://www.watch.impress.co.jp/game/docs/20070131/3dlp.htm

Since the interview is in Japanese, I'll translate some interesting bits:

From Onimusha 3 onwards, there was a move inside capcom to make a multi-platform engine due to the increased complexity of the new consoles. The engine is called "Capcom MT framework" and is used to power "dead rising" and "lost planet". It was originally planned to use a outside engine, but none matched their specific requirements in performance and flexibility.

3dlp04.jpg

MT framework running on the PC

3dlp05.jpg

Same screen on the 360

MT framework was originally made for the PC/360, but is also being ported on the PS3. The strength of the MT framework is its ability to run a performance monitor in real time, making it easy to find bottlenecks. Graphics settings and rendering method can be changed in real time allowing highly tuned performance.

They currently do not intend to sell the engine to the outside, due to managerial constraints and loss of flexibility from version control.

3dlp06.jpg

Lost planet running on the PC!!!!!

According to the programmer at capcom, multithread processors are actually fits very well to gaming, contrary to popular belief. Games can be split up into parts with minimum dependency, and game programs can be easily made to run in parallel.

With multicore consoles, the key to performance is maximising parallel processing, and syncing the threads must be done as fast as possible. For syncing in the 360, the huge 1mb L2 cache and its bandwidth is completely allocated to it.

Although there are opinions that the 3.2Ghz PowerPC 970 (compatible) core in the 360 is not powerful enough, according to the programmer, performance of each core to his experience is about 2/3 Pentium 4 with the same frequency, and making use of 6 threads (3cores with SMT) totals to about 4 times the P4 performance. The key is in parallel processing.

The major weakness of the 360 is in its memory controller. GDDR3 SDRAM has a very high latency, and the memory controller is on the GPU side which adds to the latency. Memory access from the CPU has a very high latency cost. But thanks to its efficient implementation of the SMT, the latency is hidden.

Programming for the PS3 version of the MT framework is going very well, and will be powering DMC4 and RE5. Since the processor configuration is drastically different between the PS3 and the 360, the MT framework also runs somewhat differently. The PS3's PowerPC 970 (compatible) core also has SMT which can run 2 threads in hardware. In the PS3 version, threads are run in software (as opposed to the 360s hardware threads) and each thread outsources its processing to the SPE.

Parallel processing on "dead rising" and "lost planet" was so successful that compared to the single thread version, is speed was increased by 2.6 and 2.15 times respectively.

Due to the way MT framework is designed, the PS3 version and the 360 version of the same game can get the maximum power out of the console.

3dlp29.jpg

Light load scene. The gauge on the left shows current load.

3dlp30.jpg

Scene with heavy load.

Lost planet runs on a newer version of MT framwork compared to dead rising.

Each character has about 10000-20000 polys, VS robots have 30000-40000polys, and background has about 50000.

Including shadows and unseen polys, one frame has about 3million polys.

3dlp31.jpg

3dlp32.jpg

Dead rising had more polys per frame at 5 million for the zombies, but Lost planet uses more effects.

Rendering is done at 720P. 4x Multi-Sample Anti-Aliasing is used, and the game runs at 30fps, but if the engine detects that the framerate is falling below 30, the engine switches to 2x Multi-Sample Anti-Aliasing or even turns MSAA off.

Although it is a huge generalization, 2xMSAA adds 10% load and 4x adds 20%.

3dlp33.jpg

MSAA off (43.80fps)

3dlp34.jpg

2x MSAA (38.76fps)

3dlp35.jpg

4x MSAA(35.91fps)

Amount of texture in memory at any one time is about 160MB. 60-80MB is used for background.

A single stage in lost planet uses more textures, but seamless loading is used.

Most of the physics inside the game runs independenly from the MT framework, and lost planet and dead rising uses the HAVOK engine.

Some of the more minor physics are handled by MT framework, and also by custom made Inverse Kinematics engine.

3dlp45.jpg

Havok engine.

3dlp48.jpg

Hair, accesories and clothes handled by MT framework.

3dlp49.jpg

Collision detection by MT framework.

The move from SD to HD means that the resolution increased by 4 to 7 times, but the GPU fillrate has only increased by about 4 times.

Adding to the limitation is the fact that higher resolution also means more elaborate effects are needed since "more" can be seen.

Even with this limitation, lost planet achieves its phenomenal screen atmosphere with the clever use of compression buffer and a 360 "trick".

Smoke, snow and lighting occupies a large amount of fillrate since many overlap. Compression buffer overcomes this by using reducing the resolution of the semi-transparent particle. This compression has a cost, and realism is lost.

To overcome this cost, capcom uses a trick that makes full use of the 360.

The 360GPU has a 10MB EDRAM can handle 4x MSAA with no cost IF it fits in 10MB.

With normal compression buffer technique, the sceen frame itself is reduced by 1/4 to create the destination buffer.

With the 360, the scene frame is transfered to the EDRAM as its original resolution. Since the scene frame pixel configuration and the MSAA sub pixel buffer configuration is different, pixel shader is used for the conversion.

After that, (without running 4xMSAA) the semi transparent particles are written into the EDRAM. Due to the MSAA algorithm, 1 pixel of the particle becomes 4 pixels inside the buffer. After the particles are all drawn in, the sub pixel buffer configuration is converted back to scene frame.

The benefits this trick are:

1 pixel write become 4 pixels. Although is an over-generalization, consumed fillrate is 1/4.

Since the scene buffer is kept at its original resolution, compression artifacts occur a lot less.

Ofcourse, since 1 pixel is increased to 4 pixels, the end result of the particles can be blocky, expecially when the particle is far away.

This is overcome by incorporating the LOD function in the MT framework to ONLY use this trick when the particle is close.

Particles far away are smaller anyways and does not require that much fill rate.

This trick was well received by microsoft, and will be used more often in future games.

3dlp102.jpg

Smoke and fire effect with artifacts. Intersections of particles shows clearly.

3dlp103.jpg

After soft particle effect applied, achievable from using the 360 "trick"

Lost planet uses the LSPSM:Light-Space Shadow Maps method for its shadows. This method is currently the trend on high end games, and will also be used in doom4.

3dlp86.jpg

Demonstration of complex self shadow.

Lost planet uses many advanced 3d technologies which will become standard in next gen games.

3dlp96.jpg

Advanced bump mapping

3dlp97.jpg

HDR Bloom and glare

3dlp99.jpg

FP10-32 bit buffer HDR

----------------------------------------------------------------------------------------

Phew. The original article goes into a LOT more detail, but I have to sleep. :yes:

The interview concludes with the comment from the programmer saying how awesome the 360 is.

The article also has a whole lot of info on the implementation of motion blur.

I liked the comment about how motion blur is used to make 30fps look better, and how motion blur makes screenshot on magazines and website look bad but the actual moving game look better :laugh:

Impress has TONS of articles like this that goes into game programming and hardware technology.

Its all in Japanese though...

Edited by gunnerhkjp

Oooh, that's a really great article! Many thanks for translating it!

And, I never really figured that something like placing of certain components can actually be more beneficial to the games performance! Of course, it's obvious once its stated, but, y'know :p

I can't wait to start developing games properly...gonna be well fun :D

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.