Unity's annual developer conference, [color="windowtext"]Unite[/color], drew over 1200 attendees this year and offered 40 talks on shader programming, console developing, post-mortems from development teams, and much more. Ex-Blizzard exec David Brevik gave a keynote about staying on the cutting edge of game design. The talk's takeaway tagline, "What Would Nintendo Do?" referred to their ability to design games perfectly suited to a platform's strengths and weaknesses. He urged developers to be sensitive to a game's zeitgeist (input types, network connectivity, distribution models, graphics capabilities) and projected the next frontiers of game development to be AAA-quality browser games, mobile devices, cloud gaming, and free-to-play games.
[size="3"]Unity also announced a major set of feature updates for Spring 2012. They also gave some numbers for their popular Asset Store and announced their "AAA Initiative" aimed at providing support for larger, high-quality game projects.
[media]http://d3-2.design3.com/40016/design3_at_unite11.mp4[/media]
[size="3"][color="windowtext"]Click here[/color] to view more event footage by design3.
[size="5"] New Features
[size="3"]The next version of Unity, 3.5, is currently in beta development. Some of these features will be available in that version, and others will be released as they become ready.
[size="3"]Social API
[size="3"]Unity will provide a cross-platform social API for integration of leaderboards, achievements, chat systems, and friends. Support for the iOS Game Center will be available in 3.5, with support for Facebook and XBox/PS3's native social system added in the future. OpenFeint support is also possible, but the onus is on them to provide a solution using Unity's new API.
[size="3"]Analytics
[size="3"]In-game analytics can be used to enhance monetizing as well as to track player behavior and improve game design. Unity demoed an in-editor "heat map" that showed the parts of a game level at which players were traveling, dying, and quitting the game most often, giving developers valuable insight as to how players are experiencing their games. The analytics server will be hosted by Unity, taking the burden of building and scaling such a server off of a developer's shoulders.
[size="3"]In-app Purchase
[size="3"]Many free-to-play games are more lucrative that their paid-for counterparts. Even Infinity Blade, a $6 game in a market dominated by $1 games, makes 40% of its money from in-app purchases (IAPs). Unity will add a cross-platform IAP solution that ties into its new social and analytics features and is fully integrated into the existing editor. This should provide a boon to developers looking for alternate ways of monetizing their games.
[size="3"]Flash Output
[size="3"]Unity has a working version of a Flash build option that outputs a SWF just like any other Flash authoring software. It will also support the creation of a Flash-authored UI that can be placed over the Unity-generated SWF if you'd rather use Flash for your UI, create your own preloader, or use a Flash debugger. This works by translating javascript and C# into ActionScript before building to SWF. Not all Unity features (including many .NET libraries) will be supported at launch, but access to Flash's implementation of those features will be provided instead. For example, RakNet will not be supported, but access to Flash networking solutions will be. For a more detailed look at Unity's Flash option, check out design3's recap of Unite 2011's Flash Day.
[size="5"] AAA Initiative
[size="3"]Many upcoming features revolve around Unity's desire to better support AAA game development. The ability to accommodate larger projects with larger teams and higher production standards is a priority in all of the following feature updates. In spite of this AAA focus, accessibility and usefulness for smaller projects remains at the heart of Unity's growth philosophy. Games like Bladeslinger and Shadowgun recently used many of these features to impressive effect.
[size="3"]LOD Support
[size="3"]Automatic LOD scaling will be added, meaning that models will be automatically tessellated at user-defined distance thresholds. LOD modeling has traditionally meant that artists had to create 3D art at varying quality levels to optimize performance of models that were far away from the camera. Auto-tessellation means that the engine handles this at build time and auto-switches between LODs at runtime. Unity's implementation of this uses renderers as well as meshes, meaning a developer could use a cloth renderer up close and switch to a low poly mesh at a distance.
[size="3"]Pathfinding
[size="3"]NPC pathfinding is a pretty advanced AI feature that allows computer-controlled characters to navigate automatically around an environment. Unity's solution voxelizes the game environment and generates a navmesh wherever a character can walk. A developer simply has to set the NPC's destination and the pathfinding system will do the rest of the work. Environment planes at different heights can be manually seamed together into a single navmesh if ladders or teleporters are used, but slope limits and max jump heights can be used to automatically set jumping and climbing paths over ledges and stairs.
[size="3"]Crowd Simulation
[size="3"]Unity's new crowd simulation tool is an extension of the pathfinding system by which crowds of NPCs detect each others' paths and intelligently adjust their own to save energy. This feature is definitely breaking new ground in terms of out-of-the-box game engine features, as this doesn't exist natively in any other engine at the moment.
[size="3"]Team Scaling Tools
[size="3"]Perforce and SVN integration have been added via a built-in editor UI. Perforce and SVN are two of the most popular asset and version control softwares on the market and use sophisticated text merging algorithms to accommodate multiple check-outs of the same piece of code. Unity has changed their scene files to be text-based, meaning they will be able to be successfully merged by these versioning softwares.
[size="3"]A cache server has also been added to allow for a "smart" import of assets to save time. Assets will also be able to be committed directly from within the Unity editor.
[size="3"]Occlusion Culling
[size="3"]Optimizations to the occlusion culling system have been added, making the compilation of occlusion data up to 1600% faster than before. There's also live in-editor feedback as to which models are occluded based on the camera's current position. "Portals" can also be added now, giving developers the ability to change occlusion information based on an open or closed door or window shade. You can view a tutorial of how to use Unity's occlusion culling system here.
[size="3"]Directional Lightmaps
[size="3"]Directional lightmaps allow normal maps to adhere to lightmap data, making specular and bump surfaces live up to their fullest potential in lightmapped environments.
[size="3"]Lightprobes
[size="3"]Lightprobes have been used for years in cinema visual effects and open up huge graphics possibilities for Unity. Previously, if a character was in a lightmapped scene, it would appear to be lit from a totally different light source than the rest of the environment. It wouldn't react to areas of light, shadow, color, or any parts of the environment that didn't use a dynamic light. Lightprobes tetrahedrize the space and encode lighting info from every direction at that point. It can then apply that data to the textures on a moving model. When a model exists between two lightprobe areas, the data is interpolated.
[size="3"]This results in some seriously amazing results. Shadowgun is a first-person shooter that used this tool to achieve 60fps on an iPad 2 with graphics that look absolutely first-class. Dynamic reaction to muzzle flashes, diegetic light sources, and emissive surfaces were all present, and not a single dynamic light was used.
[size="3"]Gamma-correct Rendering
[size="3"]Light calculations can now optionally be performed in linear space and translated into gamma space (what monitors use) later. Specular surfaces will no longer get blown out, and textures look more realistic in general. Halo 3 and Uncharted are performing lighting calculations this way, and it may prove to be the future of video game lighting.
[size="3"]HDR
[size="3"]HDR support will be added, allowing areas of the environment with dramatically different light levels to intelligently coexist in-camera (such as a bright sunny outdoors viewed from the mouth of a dark, torch-lit cave).
[size="3"]GPU Profiler
[size="3"]The new GPU profiler will complement the existing CPU profiler, letting developers see, on a per-object level, how GPU performance is being impacted.
[size="3"]Performance Optimizations
[size="3"]Multithreaded rendering and modified memory allocations in Unity 3.5 will result in an out-of-the box performance improvement of between 10% and 300%.
[size="3"]Particle System Updates
[size="3"]The 3.5 particle system is curve driven, giving developers control over most of the 100+ parameters over the lifespan of a particle. There's also a time scrubber, live editor feedback to changes, and a mesh emitter that allows 3D meshes to be used in addition to the existing 2D plane support. 3D meshes from a particle emitter can even cast shadows, just as any other mesh in the game.
[size="3"]Mic and Webcam Input
[size="3"]Access to a device's microphone and webcam will be natively supported on all platforms, including mobile phones.
[size="3"]Advanced Audio Access
[size="3"]Unity will now allow access to audio buffers, which will allow development of games that rely heavily on audio control and interaction. This will also allow for the creation of custom audio filters.
[size="3"]Find Scene Dependencies
[size="3"]Developers will now have the ability to look at an asset and get a list of scenes that use it, letting them optimize or clean up their projects.
[size="3"]Minor Prefab Updates
[size="3"]You can now add a component to a prefab instance without breaking the connection to a prefab.
[size="3"]GUI Update
[size="3"]There were no demos of a new GUI system as they weren't in a polished enough state to show off. Whether or not a GUI update makes it into 3.5 is anyone's guess, but it is on its way.
[size="5"] Unity's Asset Store
[size="3"]There are almost 2000 asset packages available in the [color="windowtext"]Unity Asset Store[/color], allowing developers to round out their skill set by buying assets from other members of the community. Artists can buy code, coders can buy art, and content creators of all types can make money. The top 15 Asset Store sellers average $5000 per month, with $140,000 in total sales occurring in September 2011 alone. The newest version of the Asset Store allows users to preview assets live in their game before purchasing.
[size="5"] What is Unity?
[size="3"] [color="windowtext"]Unity[/color] is a game engine that integrates many middlewares into a single "unified" software tool. It allows for development in javascript, C#, and Boo, and builds to PC, Mac OS, iOS, Android, XBox 360, PS3, Wii, a proprietary web player, and now Flash. Mainly used for video games, Unity also has applications in architectural visualization, serious games and educational simulations, and web app development.
[size="3"] The central concepts are "game objects" and "components." A game object is a focal point for functionality, and a component is a unity of functionality that can be attached to game objects. Components include Transforms (position and rotation), mesh renderers, colliders, and all custom scripts. By developing with this in mind, a more aspect-oriented approach can be taken rather then the conventional object-oriented/inheritance approach.
[hr]
design3 is celebrating game development this "Dev-ember" (December) by offering 50% Off memberships and giving away prizes worth over $2,500 all month long. Prizes include: Xperia(TM) PLAYs (on the Verizon Network), Kinects for Xbox 360, games, design3 memberships and exclusive design3 T-shirts. Learn more about the month long design3 "Dev-ember" giveaways.