The rise of social network gaming has been predicated on easily available platforms to support the various and complex pipelines for graphics, rendering, game logic, animation, and sound production.
As this market has matured, game developers have been able to tap into an increasingly rich set of tools and technologies to deliver cutting edge graphics and experiences across the web. At the same time, consumers are becoming ever more demanding of production quality, requiring developers to continuously refine their pipelines and methodologies for delivering innovative content.
The next phase of social network gaming will require 3D games, built within existing frameworks, and delivering even greater impact to the audience’s experience.
Rocket Ninja’s proprietary Shr3D™ Engine has been designed to literally shred the first generation of social games, replacing tired and uninspired 2D graphics with the visuals players come to expect from modern games. For the first time, true 3D characters and environments can and will be rendered in real time, smashing down the wall separating gamers from their games. This leads to much deeper interaction and connections to interactive experiences. Shr3D is a powerful weapon in Rocket Ninja’s arsenal to deliver these cutting edge and modern stories to gamers.
“Hay bales, poker chips and mafia dons are about to be destroyed by Shr3D!”
--The RocketNinja team
The proprietary Shr3D technology includes a powerful and flexible 3d asset generation pipeline and unmatched AS3-based 3d rendering. Here’s how Shr3D rules:
- Shr3D empowers 3D artists to push the limits of their favorite and most powerful tools to generate the highest fidelity models and animations to ever target the Flash platform: Exporting geometry, UV mapping, skinning, bone rigging and animation are fully supported from Maya and Max. Shr3D supports entities composed of any number of "body parts" (for example: head, face, chest, hands, legs, feet and shoulders) and any number of attachments (which are essentially sub-entities). Body parts can be composed of any number of meshes associated with a common rig shared by all body parts built for that rig; a rig can have any number bones — although keeping that number under control is advisable like in all 3d animation systems. Although any number of weights is allowed, the animation system is highly optimized for skinned vertices with no more than 3 weights. Animation blending, keyframe interpolation and subhierarchy animations are all supported.
- TexPerm! The unique Shr3D TexPerm pipeline and tool set enables the fully automated generation of literally thousands of permutations of composited multi-layer textures per 3D asset. For example, for our last demo we created 2 armor sets. Each armor set had 6 body parts: helmet, chest, pants, gloves, shoulder pads and boots. Each piece of armor had 5 texture layers: base, metallic material, textile material, quality and detail. Each layer had 4 versions. So each piece of armor had 1024 versions; and of course you can mix and match the two armor sets; we also had male and female versions; with only male and female versions of 2 6-piece armor sets, we built a 3D avatar demo with 267 possible avatars. Don’t get me started on custom scaling and tinting!
- IconGenie! Take all those texture permutations, Maya models and some scripting wizardry and you get IconGenie – our pipeline for auto-generating icons and prerendered images at varied camera angles and sizes for the thousands of 3D items in your catalog.
- Flash means everybody can play! According to Adobe, Flash 10 is installed on 99% of the world’s browsers. And Shr3D is built on one the earliest versions of Flash 10 (the 10/4/2008 version to be specific (or v10.0.12.36 to be ridiculously specific)). In other words, everybody can play Shr3D games anywhere, anytime.
- No additional downloads/installs: The Shr3D rendering technology is built exclusively on the out-of-the-box Flash 10.0 AS3 API. Let’s not forget that most of the world’s most hardcore or most highly-monetizing players aren’t allowed to install browser plugins (let alone standalone apps!) on their work (or publicly usable) machines. This is a big deal!
- No 3rd party or open source code dependencies: It’s lean, it’s mean and legally clean! And it’s nice not having to depend on 3rd parties for fixes or new features.
- Highly optimized 3D rendering based on decades of collective experience building 3D engines and Flash games: The bottom line: It's fast. Shr3D strategically exploits the Flash 10 API to maximize, above all else, the number of dynamically animated, skinned polygons rendered to the screen via the Flash player in the browser. For skinned, textured characters, Shr3D can render 5 times as many polygons at interactive rates as a comparable implementation in Away3d can. For our typical test case of 3 animated characters amounting to about 10000 polygons in a swf of size 760x600 pixels (i.e. the typical size of a swf on Facebook) where the characters are fully occupying the screen space and as such are drawing to about 50% of the swf's pixels each turn, on a 3GHz CPU from 2007 we get about 20 fps. In summary, it’s fast.
- Our proprietary animation and model formats are extremely compact: Small assets mean that our downloads are fast, which keeps players happy and keeps our bandwidth down which keeps costs down. Everybody wins! The Shr3D animation format averages 7 bytes per keyframe per joint. Thus for 40-bone models it is less than 7K per second of animation. Geometry is even better: The Shr3D model format averages 17 bytes per polygon. So, for example, the download for the geometry of a 5000 polygon skinned character is less than 85K.
- Progressive Mipmap Downloading: Shr3D currently supports textures downloaded in JPG or PNG formats. Lowest res textures are downloaded first and higher res textures are progressively downloaded thereafter. At render time, the appropriate miplevel is used (if that level has been downloaded) with bilinear interpolation. PNG-format textures are used to support translucency. A proprietary texture format that supports translucency at a 10th the size of PNGs is currently in development.
- Small memory footprint too: RAM is slow, Flash only uses RAM and Flash is not great at managing memory. So we keep our in-memory data very compact too. For example, our basic 3D viewer with no models loaded runs on 10M of memory. The viewer swf loading a character with 182K of assets (amounting to 2746 polygons and 1.2M texels after expansion) uses 22.4M memory. The additional 12.6M comes from: 3.7M of static model data, 1.1M of static animation data, 6.2M of static texture data and 1.6M of dynamic per-instance model and animation data. This comes to about 1.3K static per polygon, .6K per polygon instance and 5 bytes per texel. A comparable example using Away3D format assets and technology uses almost 10 times as much memory.
Written by Steve Matthews - Steve brings to Rocket Ninja 17 years of software engineering experience. After receiving his computer science degree from Stanford University in 1993, Steve worked for IBM, where he served as a lead software engineer and UI designer for marketing and communications applications. Matthews has since lent his development expertise to several start-up web and game companies in the Bay Area, including NBCi, MightyMail, Oompala and Sven Technologies. In 1998 Matthews received a Masters in computer science from the University of California, Santa Cruz, where he specialized in 3D graphics and animation. In 2001, Steve cofounded SuperEgo Games, where he served as lead engineer until 2009, building games including “Barbie Mystery Diaries" for Activision and "Rat Race", an episodic 3D interactive sitcom for Sony. Steve has overseen the architecture and implementation of five game engines for the PC, PS3 and web.