News

From Nocturnal Initiative

Jump to: navigation, search

Contents

Nocturnal Initiative News

GDC09: PS3 Water Technology Released

This year at GDC we have released our PS3 water rendering technology as open source. From Mike Day, Senior Engine Programmer:

"Fundamentally, the system simulates waves propagating across a planar surface. Each component wave is a sinusoid, and a detailed height field is generated by summing many such waves. The Fast Fourier Transform (FFT) provides an efficient way to perform the accumulation of the waves. For general background in this technique, see the classic paper by Tessendorf. The paper describes the method used for creating ocean water in the film ‘Titanic’, where the offline generation of images provides the luxury of using very large arrays in the FFT calculations – 2048 × 2048 grid points, with a grid resolution of 3cm. In real-time applications though, it quickly becomes apparent that the size of FFT array must be severely restricted. Consider also the need to render views in which details smaller than 3cm are visible. Our solution is to combine detail at many different scales. We employ only 32 × 32 FFTs, but many such height fields are summed from long wavelengths down to short wavelengths as required by each particular viewpoint. This is not unlike rendering fractal terrain, the major difference being that in the case of water the detail added at each level of detail (LOD) must be animated in a particular way.

We decided early on to devote much of the development budget to the modelling of interactive waves – waves emitted by local disturbances such as the impact of a projectile or a character wading through the water. The result is that while we feel the system is still lacking in certain features, we believe it demonstrates a technological first in games: interactive waves with the property of dispersion (a physically-based dependency between wavelength and wave velocity)."

For the details on how we accomplished this, see this document. The source code is available now, Click Here to download.


Also, Eric Christensen (Principal Engine Programmer) recently gave a presentation about how a physics solver works. This is the supplementary example code.

--Phaile 16:22, 25 March 2009 (EDT)

MIGS2008

I was at the Montreal International Game Summit recently giving a talk on Nocturnal Initiative. The focus of the lecture was:

  • Why we decided to open source some of our technology
  • How we went about launching the project, and the decisions we made
  • What we are sharing, and how it can be useful in game development

Here are the slides, in case anyone is interested in them. Some of the slides are pretty minimal, so there are talking points in the notes section of some slides.

--Geoff 12:56, 25 November 2008 (EST)

Second Nocturnal Initiative Code Release

We have posted our second major release (codenamed BrutalNamespaceLength/Malleable/LaconicPuma/WickedCrazyHorsepower). Some key items include:

  • RCS is our main working library for Revision Control (it consumes Perforce)
  • Reflect is our C++ reflection system that we use for storing export and original content
  • Inspect is our data-drivable property UI system

Most of the modules that we have previously released are also updated with bug fixes and improvements.

Note that many of the wiki pages for these modules have yet to be written. Expect them to come online in the following weeks.

I have installed a plugin on this wiki called WikiArticleFeeds. You should be able to subscribe to future news updates using RSS here and Atom here, or using the shortcuts in the tool box to your left.

--Geoff 18:49, 19 August 2008 (EDT)

GDC08: Press Release

In all the furor that was our announcement at GDC, I forgot to link to our Press Release announcing our project.

Also, we mentioned during GDC that we were putting the final touches on our C++ Reflection system to make it ready to release into the community. It is taking a little longer than we anticipated, so hang in there.

--Geoff

GDC08: Post Launch Update

Well I am finally back from GDC, and everyone at Insomniac is thrilled with the response we have gotten about Nocturnal Initiative! Many developers, large and small, have expressed their support and desire to participate in our project.

Over the next couple of weeks we are going to focus on documenting (from a high level) the code we released at GDC. Don't be surprised if you notice subtle changes in the content and structure of this wiki as time goes by. Once a good documentation pass is complete for the Core modules, and we are done putting the final touches on our C++ reflection system (Reflect), we will make our next release of code.

--Geoff

GDC08: Nocturnal Initiative Launch

Nocturnal Initiative is officially launching! Its really exciting sharing the lessons we have learned over the years.

The code we are releasing at launch is the culmination of several weeks of work by key members of our tools team to prepare our code for public consumption. A big reason why we wanted to do this project was the desire to make our code the same high quality that we come to expect from the Open Source projects that we utilize (boost, expat, etc...). This included cleaning up old (but reliable!) code to our current coding standard as well as programming the build and publish automation for the actual code packages.

Like with all new things, we expect there to be bumps in the road with this software launch. Any problems or ideas you may have while perusing, compiling, or executing Nocturnal Initiative code are welcome at nocturnal@insomniacgames.com

--Geoff

Personal tools
Navigation
projects