Archive for the ‘3D ENGINES’ Category
cocos2d is a great objective-c engine for iOS development (and Mac development). It has it’s limitations but for small 2d based games with physics or platformers with sprites it rocks. It has made it to 1.0 and many games are made with it on the Appstore. Unity and Cocos2D make up a good portion of the games in terms of engines used on the Apple Appstore for small to midsize game studios and indies (2500+ games are made with cocos2d).
cocos2d is getting a 3d extension in cocos3d for using 3d mesh/models etc. Currently it only imports POD models but this could be good for smaller isometric 3d games or 2d using 3d models. It is early so this will take some time to mature but good news for improving engine performance needed to handle 3d.
This could easily become the most popular/used 3d engine made with objective-c as cocos2d has done with 2d… there aren’t many pure objective-c game engines. The one downfall is multi-platform even though Objective-C is fun. Unless it is solely a iOS or Mac title then going with a multi-platform engine or a custom C++ engine and using Android NDK and an Objective-C wrapper on iOS is best for port economics and performance. That can also be used as desktop and other platforms this way. But for iOS development cocos2D is great.
Some of the key features of cocos3d are highlighted in the following list:
- Seamless integration with cocos2d. Rendering of all 3D model objects occurs within a special cocos2d layer, which fits seamlessly into the cocos2d node hierarchy, allowing 2D nodes such as controls, labels, and health bars to be drawn under, over, or beside 3D model objects.
- Pluggable loading framework for 3D models exported from familiar 3D editors such as Blender, 3ds Max orCheetah3D, or through industry standard 3D object files such as Collada or PowerVR POD, or even from your own customized object file formats.
- Imported 3D models can include animation sequences.
- 3D model objects can be arranged in sophisticated structural assemblies, allowing child objects to be moved and oriented relative to their parent structure.
- 3D models, cameras, and lighting can be manipulated and animated using familiar cocos2d
CCActions, allowing you to quickly and easily control the dynamics of your 3D world, in a familiar, and easy-to-use programming paradigm.
- 3D objects can be covered with dynamic materials and textures to create rich, realistic imagery.
- Mesh data can be shared between 3D objects, thereby saving precious device memory.
- Mesh data can freely, and automatically, use OpenGL vertex buffer objects to improve performance and memory management.
- Culling of 3D objects outside of the camera frustum is automatic, based on pluggable, customizable object bounding volumes.
- Automatic ordering and grouping of 3D objects minimizes OpenGL state changes and improves rendering performance. Pluggable sorters allow easy customization of object sorting, ordering, and grouping for optimal application performance.
- Automatic OpenGL state machine shadowing means that the OpenGL functions are invoked only when a state really has changed, thereby reducing OpenGL engine calls, and increasing OpenGL throughput.
- Sophisticated math library eliminates the need to use OpenGL ES function calls for matrix mathematics.
- Fully documented API written entirely in familiar Objective-C. No need to switch to C or C++ to work with 3D artifacts.
- Extensive logging framework to trace program execution, including all OpenGL ES function calls.
- Includes demo applications and
Xcodetemplates to get you up and running quickly.
You can learn more about writing 3D iOS applications using cocos3d, by referring to:
Khronos announced today that WebGL, the great OpenGL web hope, is now officially final for the 1.0 version. Khronos announced this today via the GDC and their website, it was also mentioned at Gamasutra.
There is already a thriving middleware ecosystem around WebGL to provide a wide diversity of Web developers the ability to easily create compelling 3D content for WebGL-enabled browsers. These tools include: C3DL, CopperLicht , EnergizeGL, GammaJS, GLGE, GTW, O3D, OSG.JS, SceneJS, SpiderGL, TDL, Three.js and X3DOM. Links to these authoring tools and WebGL demos can be found at www.khronos.org/webgl/wiki/Main_Page.
It will take some time for WebGL to propagate. It is ready and on in Chrome and Firefox by default in betas. Safari it can be enabled via app parameter. IE and MIcrosoft have yet to chime in, will we see DirectX for the web or adoption of WebGL. Time will tell… Until then Unity and Flash with the 3d api Molehill are forging ahead. I am sure we will see an export to WebGL for Unity down the line but there are still some interesting script execution speed issues that compiled code in Flash and Unity Web Player will still be faster on.
So Khronos isn’t stopping at WebGL, they are now tackling WebCL or OpenCL for the web just like WebGL is OpenGL for the web (currently at the OpenGL ES 2.0 level which is nice because that is big on mobile — mobile and web games are at about the same level).
At the Flash Games Summit today there was good news from Unity and Adobe about the Flash 3D API called Molehill. Adobe’s Flash 3D API Molehill public preview was released and Unity announced they will be adding export support for it.
New features available in the current Incubator build include:
- “Molehill” 3D APIs for Flash Player and AIR — A new set of low-level, GPU-accelerated 3D APIs that enable advanced 3D experiences across devices through the Adobe Flash Platform runtimes.
- Cubic Bezier Curves — Using the cubicCurveTo drawing API, developers can easily create cubic Beziers without requiring custom ActionScript code.
This is really a new era of browser based game development support that is going to be very exciting. It was announced at the Flash Games Summit by Thibault Imbert (Adobe Product Manager) and Lee Brimelow (Adobe Platform Evangelist) after they explained and showed examples to the audience of what “Molehill” could do for flash games.
Thibault has a list of available Molehill enabled 3D engines already:
Also a test of hardware accelerated molehill vs software rendered flash:
- Check 2D animation with the display list (check your CPU usage)
- Check 2D animation with Molehill (check your CPU usage)
Flash Molehill is coming and Unity will be targeting it for export. Unity states that they will allow it as an export option just like there are mobile options for iOS and Android.
These are exciting times. Today, at the Flash Gaming Summit in San Francisco (of which we’re proud Gold Sponsors), Adobe has announced the public availability of a beta version of the Flash Player, codenamed Molehill, that has a very interesting new feature: hardware accelerated 3D support.
Molehill exposes a very low-level shader-based interface to the graphics hardware. Adobe has decided to focus on that low-level part, and do that really well. The molehill pre-release will not be shipping with a 3D engine, scene building tools, model and animation importers / exporters, physics, lighting or lightmap creation tools, etc.
The article states that Unity will be keeping the Unity Player and the developer will decide when to target Flash or Unity Players or other platforms like desktop, mobile that are currently available and use the rendering platforms that work best with each (DirectX/OpenGL/OpenGL ES/Molehill… maybe WebGL in the future).
Q. Is this the end of the Unity’s own Web Player?
Absolutely not. The Flash and Unity Web Players both have their strengths. We’re excited by the opportunity to target the Flash Player and all of its features with Unity, but there will be plenty of experiences that the Unity plugin is better suited for. It will be up to developers in the end, to decide whether they want to target only the Flash Player, only the Unity Web Player, or some combination of the two (now things are getting interesting!)
Q. What programming language will I use?
You’ll have two options:
- For people with a Flash background:
Target our ActionScript API directly from Flash. Think:
var go:GameObject = new GameObject(“Just normal ActionScript 3 code”);
- For people with a Unity background:
Adobe is good to move to a model where hardware acceleration is part of the platform. Since Molehill is low level and competing products like Unity, WebGL, and others would take that in time, opening it so others can build tools on their platform will attract interesting new developments like this.
There is an article at gamasutra about Flash vs. Unity for the future of web 3d games. But it really is the future of true, hardware accelerated gaming, applications and interactives, not just 3d but massive, immersive 2d+3d works/projects on the web and available via browser.
Adobe, or Macromedia previously, owned 3d games with Director (8.5 with Shockwave3d) for a time, but that was really before mainstream was ready (2000-2001-ish). There was a lack of computers with dedicated video cards and GPUs. Today, even the bottom line computers have a decent video card. Also, the surge in mobile and the need for native level access to graphics hardware has spawned this new battle (Thanks Apple!).
Unity has the pipeline, 3d and has been doing that well since 2005/6. They emerged from Director and even have some members of the Director team working at Unity. Adobe is just getting back into this, they dropped Director (or left it wavering) and are now going to attack on the Flash level not just against Unity but to hardware accelerate it for mobile and better video playback hopefully (they currently hardware accelerate scaled video to full screen).
Like the Silverlight vs. Flash product competition, Unity vs. Flash is actually a good thing for developers and both platforms. With Torque3d wavering, html5 and WebGL more than a year out (and WebGL maybe 2-3) for broad mainstream support (I am looking at you IE), this is the time for Flash to move on this and Unity to keep going they way they have. Hardware acceleration makes these plugins relevant and ahead of the current standards emerging in html5 and WebGL.
I love using both tools and they have come a long way since painful Director lingo/w3d/plugin hell for hardware accelerated gaming, apps and interactives. The gaming industry and web are merging, these two products should get a good portion of that projected $87-billion total game market’s annual revenue in five years, as investment advisor Digi-Capital predicts.
It is also a great time to be a developer having these companies vie for developer support. It is exciting that hardware acceleration, 3d games, and widening game industry are all emerging and will be a big thing for the next few years at a minimum.
It is finally time to kick it up a notch. Game on!
It’s about time. Here at drawlogic we have been pushing hardware acceleration in Flash as it died in Adobe’s Director product that is all but history. Director was horribly not useful as a programming tool but Flash and AS3 have become a great environment, the only thing missing was getting past software rendering limitations to use hardware acceleration that have been made more apparent by mobile devices which are like late 90′s early 00′s computers.
With Flash gaming being so huge and competitors like Unity it is surprising it took this long but it seems Flash and AIR development will be kicking up a notch in 2011 with hardware acceleration.
Adobe has finally delivered or will so in 2011 on this pressing need.
It’s a good thing ByteArray (Thibault Imbert – the man inside) got in there at Adobe he has been there delivering killer stuff and presents a video on Molehill on Adobe Labs showing this new tech.
“Molehill” is the code name for a new set of low-level, GPU-accelerated 3D APIs that will enable advanced 3D experiences across screens through the Adobe® Flash® Platform runtimes. These new low-level APIs will provide advanced 3D and 3D engine developers the flexibility to leverage GPU hardware acceleration for significant performance gains. Today, Adobe Flash Player 10.1, renders thousands of non z-buffered triangles at approximately 30 Hz. With the new 3D APIs, developers can expect hundreds of thousands of z-buffered triangles to be rendered at HD resolution in full screen at around 60 Hz. Using the new 3D APIs in Flash Player and AIR will make it possible to deliver sophisticated 3D experiences across almost every computer and device connected to the Internet.
Developers will be able to create content through the upcoming Flash Player beta program starting in the first half of 2011. To leverage the 3D features exposed in Flash Player during the beta period, developers will use Adobe Flash Builder™ or the Adobe Flex® SDK with an updated SWC exposing the required APIs.
More on the capabilities and rendering tech:
Developers were told to expect “hundreds of thousands of z-buffered triangles to be rendered at HD resolution in full screen at around 60 Hz” under the new APIs, compared to “thousands” of un-z-buffered, 30Hz triangles under the current Flash Player 10.1.
The acceleration will rely on DirectX 9 standards on Windows, OpenGL ES 1.3 on Macs and OpenGL ES 2.0 on mobile platforms, and potentially puts Flash more directly into competition with 3D-centric web game engines such as Unity.
We are very excited about this development and what it means to Unity, WebGL and other technologies that have filled the gap. With Adobe making this change and recent tool support for html5 it seems the old Macromedia innovative spirit has been awoken. I only wish it could have kicked into high gear in 2007-2008 when mobile made native and hardware acceleration necessary again and probably for good.
As we learn more and get our hands on it we will be posting much more on ‘Molehill’.
Unity 3 has been released. It was released to the world late yesterday. I have been using it for a few beta releases and it is very nice and many great improvements. One awesome improvement is the occlusion culling was ported from iPhone to all Unity builds. Other notable features are a unified editor for all platforms, deferrered rendering and more.
Grab Unity 3 and take a spin.
Occlusion Culling Demo
Chromium is moving to GPU hardware accelerate rendering all types of web content as much as possibly with their latest efforts.
For some time now, there’s been a lot of work going on to overhaul Chromium’s graphics system. New APIs and markup like WebGL and 3D CSS transforms are a major motivation for this work, but it also lets Chromium begin to take advantage of the GPU to speed up its entire drawing model, including many common 2D operations such as compositing and image scaling. As a lot of that work has been landing in tip-of-tree Chromium lately, we figured it was time for a primer.
The primer they are looking at is not just rendering the content made in WebGL, CSS3 3d transformations and more but the entire final pass of the output. This leads to some very interesting years ahead in browsers. With Chromium, IE9, Firefox and Safari all now with aspects of hardware rendering and acceleration via the GPU, anyone not doing GPU acceleration is seemingly behind the curve that seemed to start in 2007ish to a culmination of today’s latest browsers.
After these layers are rendered, there’s still a crucial last step to blend them all onto a single page as quickly as possible. Performing this last step on the CPU would have erased most of the performance gains achieved by accelerating individual layers, so Chromium now composites layers on the GPU when run with the –enable-accelerated-compositing flag.
Web content will get really interesting over the next couple years. Even basic computers now have a GPU and bottom of 32MB video memory. Why aren’t we using those GPUs as much as possible for web content and web games. The time of software rendering might be coming to an end now that processors seem to have topped out and the bottom level computer is capable of handling a decent amount of video memory. It will be easier to justify useful graphics acceleration with a better user experience when we can take advantage of all the computer/device has to offer.
Pretty sweet web racing advergame for Disney’s The Sorcerer’s Apprentice by C4RL05, made with Unity. Carlos Ulloa is of course the same dude that made the Unity HelloRacer. He is also famous for starting Papervision3D for Flash but has been doing some amazing work in Unity for more immersive 3D experiences.
The game is another example of how when you need really immersive experiences for advergames or brands, Unity is looking like a great choice. Unity isn’t perfect for many things that Flash is such as video, 2d games, mixing media, mic/cam apps, and data, but for games where 3d is required it seems to be the way to go.
On the web based gaming front…
Google looks to be making a gaming site to compete with Facebook only kicking the gaming up a notch? By the comment from Mark DeLoura, head of developer advocate for Google gaming, it appears they/he also favor going 3d or native client with WebGL or Unity wrapped in the native client.
Check the comment by Mark DeLoura on the gamasutra post regarding the rumored Google Me Facebook like gaming/social site:
I think Flash will continue to be a very viable platform. The Flash toolset is pretty frickin’ amazing, and there are a ton of happy Flash developers out there, and great games galore.
I would like to see higher-fidelity 3D content on the web though. It’s been a dream of many people going back to VRML days. WebGL and Native Client are two solutions to this that will be integrated into the Chrome browser. At Google I/O we talked about Unity running inside of Native Client, which combines the hardware acceleration and security of Native Client with the fantastic toolset and runtime from Unity. It’s peanut butter and chocolate (well, for me). This is a platform I’m really excited about for 3D web games.
Indeed peanut butter and chocolate is mighty tasty.