| |
Insomniac Games is currently in development on one of the first third-generation PlayStation 3 titles, Resistance 2. This page is a part of our larger NOCTURNAL INITIATIVE and documents our current research and development in hopes of supporting the PS3 development community and enhancing overall development for its core technologies such as the CELL processor and RSX. In addition, we hope that giving interested tech-heads a deeper look into Insomniac's game development and production philosophy will let them see a bit more of what goes on behind the scenes here.
About this Page
We will feature a large variety of documentation here, such as
Simple tips on how to optimize a certain piece of code or hardware
Internal presentations or conference presentations.
Articles featuring Insomniac tech team members.
More in-depth Insomniac research and analysis.
Visit nocturnal.insomniacgames.com for releases of our source code
Contact Us
We'd love to hear what you think about this R&D page, please
send your comments to us at techsite[at]insomniacgames.com
|
|
|
Optimization 101
04/26/08 - 18:00 PST - Posted by Mike Acton, Engine Director
Usually in presentations, what we (or anyone else really) usually give to the audience are answers (hopefully!) to some interesting problem. Especially when it comes to optimization techniques. It seemed to me there was a big gap there - certainly a lot of people can simply use the answers to make their code/game/application faster, but how do they get better at solving these problems themselves? Usually the answer is simply, "with experience."
Read the article and download the presentation
Shuffle Helper
04/26/08 - 18:00 PST - Posted by Jonathan Garrett, Senior Engine Programmer
Due to some of the problems encountered with those preprocessor shuffle helpers (Read: shuffles.pdf), I cobbled this little exe together. Here's the source: shuff.cpp
See the examples and download the source
igMobyBSpheres
04/09/08 - 18:00 PST - Posted by Jonathan Garrett, Senior Engine Programmer
On Resistance we used collision-prims to dynamically update moby bspheres on the ppu. For RCF we reworked this scheme to run asynchronously on the spu and to also create different bspheres for
rendering related tasks and broad-phase collision.
Download the presentation
SPU Shuffles
04/09/08 - 18:00 PST - Posted by Jonathan Garrett, Senior Engine Programmer
Here's a quick note about the shuffle-mask naming convention we use (borrowed from our friends at ICE / SCEE ATG). [Shared with permission.]
GPU For Everyone
04/02/08 - 18:00 PST - Posted by Mike Acton, Engine Director
We're doing a "For Everyone" series of presentations here at Insomniac intended to give everyone at the company a better background in the details of technology we work with. While artists and designers may work with the tools and engine everyday, there are bound to be a few gaps in their knowledge when it comes to the internals. It's also important, I think, that even those who don't directly work with the game (writers, management, IT, etc.) have a basic understanding of how things are put together - you never know when that knowledge will come in handy. And at least everyone will know the terminology when they overhear conversations in the kitchen. :)
If you are always reading (or hearing) terms like "vertex data", "index stream", "vertex program" or "fragment shader" and aren't quite sure what they all mean, exactly - then this presentation is for you!
Download the presentation
AsyncCharacterX
04/02/08 - 18:00 PST - Posted by Mike Acton, Engine Director
One of the things I've been most excited about lately here at Insomniac is our push to move higher-level gameplay code on to the SPUs - and have this be done by our gameplay programmers - AND make sure they get an understanding of the SPUs (and data design) in the process without giving up the "power" of the processor through crazy abstractions.
Read the article and download the presentation
|
Quick links to some of the presentations we have recently given (in PDF format).
Debugging Tips
GDC 2008 - Insomniac SPU Programming
More on SPU Shaders
Ragdolls and IK
RFOM Debriefing
Combined SPU Physics
Introduction to B-Trees
Fantasy of the Familiar
Insomniac Occlusion Systems
Texture Streaming
Tier Systems
Sound occlusion and diffraction
Shadows in RCF
Insomniac Games Custom Shaders and Effects
Networks and Networking
Virtual Memory System on Nintendo GameCube
Eric Gooch's presentation on R:FOM lighting
igCollision Presentation
Multithreading Optimization Basics by Example
Curved Surfaces on the RSX
Effects Conduit
Gameplay Architecture for Performance
|
Quick links to some of the research we have recently conducted.
Curved Surfaces on the RSX (Updated with screenshot!)
Process Memory Utility
Dynamic SPU Code
|
MobyAsyncUpdate
04/02/08 - 18:00 PST - Posted by Joe Valenzuela, Engine Programmer
We here at Insomniac don't discriminate - we think all code belongs on the SPU. Engine programmer and good looking S.O.B. Joe Valenzuela describes the AsyncMobyUpdate and Guppy systems, which we use to make sure our gameplay and AI code can use all parts of the Cell.
Download PDF file
Comment on this presentation
Progressive Mesh
03/14/08 - 18:00 PST - Posted by Mike Acton, Engine Director
For a while during the development of Ratchet and Clank Future: Tools of Destruction, we were using a progressive mesh system for our LODs. We've since abandoned this approach for various reasons which I'm not going to get in to yet, but Reddy Sambavaram walked us through the how the systems worked and what benefits it had. Read on!
Download PDF file
Comment on this presentation
Dyadic Interpolation
03/14/08 - 18:00 PST - Posted by Mike Day, Senior Engine Programmer
Given a set of equally-spaced samples of some function, we’d like to be able to make educated guesses for the values which the function would take on at points located half-way between the samples. If we had a scheme for doing this, we could then apply it recursively to generate the values at the 1/4 and 3/4 points; then the 1/8, 3/8, 5/8 and 7/8 points, and so on. Points of the form n/2m are called dyadic points, so an interpolation process of this type is called a dyadic interpolation scheme.
Download PDF file
Comment on this presentation
Three Big Lies
03/14/08 - 18:00 PST - Posted by Mike Acton, Engine Director
One of the things we talked about this year at GDC was what we called the "Three Big Lies of Software Development." How much programmers buy into these "lies" has a pretty profound effect on the design (and performance!) of an engine, or any high-performance embedded system for that matter.
Read the article
|
Check out
some of our past highlights
Faster SPU Clamp
Disk Journal Dump Tool
Win32 Profile Tool
Curiously Small Code
Supporting Cylinder Collision
SPU Cheat Sheet
SPU Shaders Introduction
Autodesk Mental Ray pipeline at Insomniac
Mike Acton's Insomniac Blarg on the R&D page
SPU Ninja Homework #3
Beware of Statics
A hair-tearing-out bug and quiz
Why Rotqmbybi Is Broken
Al Hastings on being an Engine Programmer at Insomniac
Configuring VNC for PS3
|
|