Research & Development
March 14, 2010

Three Big Lies: Typical Design Failures in Game Programming (GDC10)

Posted by Mike Acton, Engine Director
Recovering from another inspiring GDC. This presentation went pretty well I think. Unfortunately we had to turn away something like 200 people because the room wasn't big enough. And quite a lot of those people were exactly the folk I wanted to get feedback from! So my appologies to anyone who came to the door and wasn't able to get in.
 
I received a lot of comments from people afterward that it inspired them to rethink their approach. Which is absolutely the best result I could hope for. There are a lot of poor practices with years of traction in the programming industry as a whole (not just game development) and I think it's well past time that we take the time to remember our first principles and keep ourselves from straying further.
 
Fundamentally this whole thing comes down to a simple truth: Computers transform data and nothing else. It's our job as programmers to make sure that data gets transformed. Our job is *not* to write code, but to make sure that data is transformed properly. And when we forget that, we end up with poorly-performing, over-complex, over-abstracted programs that simply do not do the job they need to do and cannot be made to do it well without heroic effort, if it's at all possible.
 
Nothing in this presentation should come as a real surprise to those that know me, but I absolutely believe it remains a problem and it's a problem I'm passionate about fixing.
 
Mike.
 
0
March 03, 2010

Synchronizing Bots

Posted by Ross McIntosh, Gameplay Programmer
Here’s an introduction to a method for synchronizing AI in multiplayer games. It addresses an implementation that uses the Sync Host system that was described in the previous presentation as well as outlining the methods it uses to synchronize the many different aspects of AI. You’ll find details on the rationale behind why systems are synchronized in the way that they are, as well as the problems and solutions programmers have to keep in mind when using this method of synchronization
 
0
February 25, 2010

Introduction to Sync Host

Posted by Peter Kao, Gameplay Programmer
Online functionality has become a fundamental component of our games. This is an introduction to Sync Host, a system developed to address some of the tougher issues we’ve encountered when implementing network synchronization.
 
+3
January 06, 2010

An Algorithm for Lockless Processing of Sound Data

Posted by David Thall, Engine Programmer
An algorithm has been developed to asynchronously load, unload, play and relocate sound files without the use of locks. The algorithm allows the programmer to arbitrarily assign different logical subsections of the underlying system to different threads, all while remaining completely lock-free.
 
An example implementation has been developed that asynchronously loads and unloads sound files in one thread while playing and relocating the same sound files in another thread. All of this happens in a single shared memory heap, all without locking. A complete working version of this system will be described, highlighting the simple yet elegant design principles.
+2
January 06, 2010

Wavelets for the Layman

Posted by Mike Acton, Engine Director
Here's an internal presentation I gave just about a year ago on using wavelets for image compression. A nice and gentle introduction to a subject that's really pretty simple that is often buried under so many details that people don't know how to approach learning it.
0
INSOMNIAC R&D
RSS Feed
Subscribe to the Insomniac R&D RSS feed and never miss another article.
NOCTURNAL INITIATIVE
This section 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. More
Articles