Insomniac launches "Nocturnal" - initiative for sharing game development libraries

Titanio

Legend
They just started talking about this at GDC apparently:

http://nocturnal.insomniacgames.com/index.php/Main_Page

Our goal is to develop an open collection of libraries and utilities for addressing common challenges in game development.

Nocturnal is not a game engine. The libraries provided here are potentially very useful for developing a game engine, but we want to avoid the 'all things to all people' that so often results in overly complex and/or under-performing monolithic engines. Instead, we want to provide a useful toolbox for the professional game developer.

There are a lot of common problems that are presented during game development. These problems are often solved separately at game studios across the industry. Sometimes the same people end up writing the same solution at several companies throughout their career. This is a waste of resources that can be avoided by openly sharing useful foundation code and techniques across company boundaries. We feel that this kind of sharing will allow studios to focus more on what sets their games apart and less on the basic building blocks necessary to create a modern game. It is our hope that this will result in studios making better games in less time, and hence benefit the industry as a whole.

More at the link..

edit - a press release. Wouldn't you know, Mike Acton is behind it all ;)

Highly-Acclaimed Independent Videogames Developer Insomniac Games Announces 'Nocturnal Initiative'

Ratchet & Clank(R) and Resistance(TM): Fall of Man Creators Kick Start
Industry-Wide Tech Sharing by Providing Free Source Code, Tips and
Tutorials

SAN FRANCISCO, Feb. 21 /PRNewswire/ -- Independent console games
developer Insomniac Games, creators of the multimillion-selling Ratchet &
Clank(R) and Resistance(TM) franchises, today unveiled a tech-sharing
initiative dubbed 'Nocturnal' in which it will share elements of its
technology source code and presentations free of charge with the worldwide
development community.

"The Nocturnal initiative is designed to encourage greater
communication and information sharing among the development community
because it will ultimately enable us all to create better games at a lower
development cost," said Mike Acton, engine director, Insomniac Games. "And,
in the end, it's all about making great games."

Nocturnal is being deployed in separate phases. The first phase,
Insomniac's "R&D" site (http://www.insomniacgames.com/tech/techpage.php),
launched in August 2007, and has been updated every Wednesday with new
presentations, research and articles since. Phase two will be launched
shortly, and will open some of Insomniac's source code under a liberal
open-source license. Source code will be documented and downloadable from a
wiki at (http://nocturnal.insomniacgames.com). Insomniac will further
support Nocturnal by releasing additional source code, research and
presentations in the future.

"We feel that the time has come to share what we have learned, and
learn from others to improve our solutions to the common problems that
present themselves when making a game," said Geoff Evans, an Insomniac
senior tools programmer who helped develop and launch Nocturnal.

Insomniac is allowing developers to use elements of its proprietary
third-generation PLAYSTATION(R)3 (PS3(TM)) tools chain source code for any
purpose, for free. Source code makes up the technological building blocks
that drive software development. It is often closely guarded by companies
as they create their technology. However, this has led to many functions
and pieces of code being re-written time-and-time again, wasting resources
across the industry and ultimately affecting consumers' gameplay
experiences.

"We see Nocturnal as a long-term project that may be valuable for those
who want to develop similar technology as us, but without the same effort
we needed," Acton explained. "We also believe Nocturnal may be valuable for
our fans to gain insight to our production processes, while communicating
our ideas with a larger group gives us the opportunity to generate feedback
on our approaches and ultimately improve them."

Insomniac Games is the first studio developing a third-generation PS3
title with its work on Resistance 2(TM). The company's second-generation
title, Ratchet & Clank Future(R): Tools of Destruction(TM), was acclaimed
for its CG-movie-quality graphics upon its release in 2007.

http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=104&STORY=/www/story/02-21-2008/0004760453&EDATE=
 
I take it that this is based on the SPU Shader concept ? Thanks for contributing to the society, Insomniac and Mike Acton. :p
 
It's fantastic that a company as successful as Insomniac is willing to just it's secrets with the competition! I guess they're in a very secure position ;)
 
Check out the feature list:

Features

The big ticket features provided by Nocturnal include (but are by no means limited to):

C++ Delegate/Event System

Some handy pointer templates
* Reference counted objects
* Heap allocated arrays

Interprocess Communications (IPC)
* Fast non-blocking message-based design
* Works over TCP sockets or Windows Named Pipes
* Support for PC to PC or PC to Console (PS3 only currently, retail ethernet port)

In-process debugging helpers
* PDB-based symbol information querying
* Capture stacks within your program making heap object tracking and leak debugging easier
* Give your application automatic crash reports dispatched via email that contain handy user/machine informaton, call stack, and memory page allocation stats

Console output manager
* Log console output to one or more trace files
* Color code the console output based on Error/Warning/Debug print statements
* Throttle output verbosity (configured via command line arg or environment variable)
* Outline nested stages of processing performed by your application (for builders/exporters)
* Augment crash reports with the current outline state of your application (very useful for tracking down new crash bugs)

Instrumenting profiler
* Cross platform (Windows and PS3 currently)
* Macro-instrumented stack timer based profiler
* Concise profile report printed out at program exit
* Logs instance data out to human readable log file (Profile Analyzer is in development)

Perforce wrapper
* We use perforce for both code and data here at Insomniac
* This wrapper wraps the string-command based P4API with a more structured API

These features are building blocks for future releases. Imminent (post-GDC) features will include:
* A C++ persistence library
* Instrument your application classes and register them with the type registry
* Can serialize object instances to XML or our (faster) custom binary format
* Flexible parsing mechanics allow you to read in old versions of your class
* Handles renaming member variables as well as changing member type (within reasonable limits)
* Supports serializing std::vector, std::set, and std::map containers with primitives or pointers to other reflect objects
* Supports serializing enum and bitfield members using string representation (supports reordering enum elements)
* Provides for automatic object comparison and cloning
* Implements introspection using a visitor interface
 
Insomniac is allowing developers to use elements of its proprietary
third-generation PLAYSTATION(R)3 (PS3(TM)) tools chain source code for any
purpose, for free. Source code makes up the technological building blocks
that drive software development. It is often closely guarded by companies
as they create their technology. However, this has led to many functions
and pieces of code being re-written time-and-time again, wasting resources
across the industry and ultimately affecting consumers' gameplay
experiences.

"We see Nocturnal as a long-term project that may be valuable for those
who want to develop similar technology as us, but without the same effort
we needed," Acton explained. "We also believe Nocturnal may be valuable for
our fans to gain insight to our production processes, while communicating
our ideas with a larger group gives us the opportunity to generate feedback
on our approaches and ultimately improve them."
I wish more companies had a mind set like this and adopted open source in a similar way. Companies often seem to fail at realising it´s very often a win-win deal.
 
I wonder how much of this is connected to a fat Sony check in the mail? Regardless, well played and hopefully it will start the ball rolling on more collaborative efforts in the future.
 
I wonder how much of this is connected to a fat Sony check in the mail? Regardless, well played and hopefully it will start the ball rolling on more collaborative efforts in the future.

Why would Sony want to leave this to a second party dev. if they are behind this? They could have used the usual channels for this.
It does make me wonder if Insomniac is allowed to share in the best practices of Sony WWS. Are they also allowed to share those with third party dev?
 
I think that what they are doing is a great idea for them (and the rest of us PS3 developers) because as a dedicated PS3 developer, it is in Insomniac's best interest to have other studios building great PS3 games so the PS3 platform gains more market share, and thus in turn they can sell to more gamers.
 
Why would Sony want to leave this to a second party dev. if they are behind this? They could have used the usual channels for this.
It does make me wonder if Insomniac is allowed to share in the best practices of Sony WWS. Are they also allowed to share those with third party dev?

Sony WWS already share bits of their technology with 3rd parties with their Edge stuff. Mostly that's graphics related tech - SPU routines and the odd tool.

Insomniacs stuff looks more like they're coming from another angle. They're taking some of their framework code, the building blocks their engine is built on, and releasing it publicly. I guess they can do that because they've not left any PS3 specific stuff in (which would be covered by NDAs, etc.)

Cell is public, so SPU related things can be released, but I wouldn't expect to see anything that hits a PS3 specific library, especially on the RSX/graphics side.

It's good to see people sharing stuff. With more efforts like this, there can be less excuses for poor performing titles or developers getting bogged down in the implementation, and more concentration on actual games...
 
Well, this and the presentation (which references several moans directly) from GDC leads me to believe Insomniac are just fed up with all the excuses being offered for poor PS3 games.
 
Some updates...

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.

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!

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!
 
Thanks a lot Nerge-Damage, looking into Progressive Mesh right now. Interesting images, needs video though.
 
Back
Top