Archive for the ‘3d’ Category

cocos2d-x is the natural evolution of the cocos2d-iphone engine to C++ and it is stable and producing multiplatform games.

cocos2d-iphone is a great Objective-C game engine (and the first really) that began as a python engine called cocos2d and was ported to Objective-C + iOS early on in the iPhone SDK days. Arguably Unity and cocos2d are the two biggest indie engines on the App store. Cocos2D is a very simple engine and coming from Flash development many of the concepts are similar (i.e. Sprite, Actions/easing, Layers/Scenes (although slightly different), etc). But getting your Objective-C game to Android and other platforms is not a fun task. There are other options like andengine for android from cocos2d port but each port only gets you so far as you still have two codebases for one game on iOS and Android.

cocos2D-x even has a port of cocos to C#/XNA for Windows Phone development using all the classes you know and love from cocos2d. That is actually pretty sweet to have similar logic to reach Windows Phone (Unity and others bypass because there is no native access by developers sadly still, must, use, XNA — strange considering Unity pushes C# development quite heavily but I digress).

drawlogic originally mentioned cocos2d-x over a year ago in a post about cocos2d-javascript just in an ‘other ports’ category but it has really come along and is quite stable as the game lists are showing. Take it for a spin if you need a cross platform 2D game! If I need to work on cocos2D games I would definitely go with the C++/Objective-C++ engine since it is now stable and gets you many platforms, I also still like developing in C++ which is very common in games for performance and multiplatform performance especially.

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).

Khronos is also today announcing the formation of the WebCL™ working group to explore defining a JavaScript binding to the Khronos OpenCL™ standard for heterogeneous parallel computing. WebCL creates the potential to harness GPU and multi-core CPU parallel processing from a Web browser, enabling significant acceleration of applications such as image and video processing and advanced physics for WebGL games.

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).

There is no announcement of a date but Unity is pretty fast to add updates and new platform versions so if they take this on they will ship. Currently they mention using Unity and coding with AS3 within Unity script or using Mono.NET C#/Javascript/Boo as currently used. An intersting option is using Unity to create content and code in C#/Javascript over AS3.

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!)

For people with a Unity background:
Script your content in C# / JavaScript / Boo, like you’re used to, and have Unity automatically translate it to ActionScript when you hit publish.

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.

It’s about time. Here at drawlogic we have been pushing hardwareacceleration 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.

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.

When will developers/designers be able to create 3D content using the “Molehill” APIs, and what tools will they use?

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.

How do the 3D APIs compare to WebGL’s proposal to have the capability be available through browsers and HTML5?

In terms of design, our approach is very similar to the WebGL design. However, we offer a consistent, browser-agnostic solution that will enable advanced 3D experiences on almost every computer and device connected to the Internet. Additionally, GPU-accelerated 3D in Flash Player will build on all the expressiveness features that exist today in Adobe Flash Player.

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.

Besides recently becoming the most popular configuration in the entire iPod lineup, the iPod Touch “has become the most popular portable game player in the world,” Jobs chimed. “The iPod Touch outsells Nintendo and Sony portable game players combined. It has over 50 percent market share for both the U.S. and worldwide.”

Small caveat is that the DS still has the most units but that will only last for a month or two more:

DS = 125m

iOS devices = 120m

PSP = 62m

Game sales

DS = 718m games sold

PSP = 252m

iOS games = 1.5B games and entertainment

But as far as devices Apple will surpass Nintendo this quarter as Apple handily beats them each month currently.

I believe that the Apple TV is also a notch in the future to console gaming, replacing the console with a thin client that can be controlled by handheld devices such as iOS devices. This may or may not happen but I think it will and it may be an Apple TV feature in the next year or two. The Apple TV is an iOS device.

However, as Mike Capps commented to Gamasutra in our interview immediately following the event, “Right now, I can display from my iPad to my Apple TV on a big screen TV. How far away are we from ,’That’s my game console, and it’s displaying wirelessly to my television set?’ It’s not far away.”

…

What will that mean? What form will it take? How soon will it come? All unanswerable. But Sony, Nintendo, and even Microsoft are all officially on notice as of today.

Do consoles anchored to a TV suddenly seem like the old way?

To the argument that the Appstore is full of bad games, it is, but it is also the secret to their success. Apple built a platform and let indies in. Apple was very critisized about their approval process but Playstation, XBOX, Nintendo Wii, Nintendo DS, Sony PSP all have more harsh approval processes and dont’ even let indies begin developing until they approve. The result is higher quality games on the latter devices however it is the same problem the web brought.

I think that was Nintendo and Sony’s downfall in that they didn’t jump on the downloadable store AND allow indies in. There are lots of fart apps that come with allowing almost everything but you also get stuff like Angry Birds, Monster Dash, Real Racing, 2XL, Gameloft etc. I’d rather let everything in and let the charts decide what is best rather than it be a closed market to indies from even trying. But that comes with lower quality games for the most part except those standouts that might have been rejected on Nintendo or Sony platforms. 99% of the Appstore is crap but 1% is awesome, that 1% might be bigger than the quality games that make it to the PSP or DS.

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.

This project is pretty new but there is work to make it web browser capable either in a java applet or a plugin for IE/FF/WebKit/etc but there are also others that are out there using alternative renderers. Most of these are in early development with varying support and do not currently compare to Adobe’s Flash Player versions. However the hardware rendering ones like JITB may beat it fairly quickly once all the other features are added. Complete OpenGL based renderers like Unity or WebGL are fast and can run pretty heavy rendering because of hardware acceleration for all drawing and native support.

Flash Players that use OpenGL as the renderer are nice because cross platform support is easier. The reason why OpenGL is a great idea is it is so cross platform on desktop and on mobile, it is also coming soon in WebGL for the browser hopefully.

Versions of OpenGL and support

OpenGL ES

OpenGL ES 1.1 = OpenGL 1.5 and lower (fixed function)

Android

iOS devices 3rd gen and lessx

OpenGL ES 2.0 = OpenGL 2+ (current version 4.1 – shader capable).

iPhone (3GS or later), iPod Touch (3rd generation and later) and iPad

Android 2.2+

WebGL

OpenGL

Windows

OSX

Linux

There is still a clear open field for an open source player to match something like Moonlight for Silverlight or hardware rendered canvas. WebGL would be great to have in time if it gets support but it is also nice to have a compiled language in the content that works in the player faster than scripting but with the ease of scripting. Plugins are still very relevant if they can address that.

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.

*drawlogic is authored by Ryan Christensen of *drawlabs and *drawcode, both dedicated to taking ideas to ship doing entertainment focused web, mobile and desktop game and interactive development projects.