Archive for the ‘3d’ Category

Thursday, May 17th, 2012

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.

Unity obviously can open up platforms for you but cocos2D-x can also do that for 2D games across iOS, Android, Blackberry Playbook, Windows, Linux and more! This is possible because like oolong engine and other custom multiplatform engines for mobile the core is in C++ with presentation view wrappers/stubs in Objective-C++/C for iOS, Java/C++/NDK for Android, etc. The list of games shows that it is stable and a well treaded engine including games like Hero Academy from Robot Entertainment.

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.

Other mentions

Friday, March 4th, 2011

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.

WebGL already sees great support in numerous engines including my favorite Three.js from the infamous mr. doob.

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.

Sunday, February 27th, 2011

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:

 

Sunday, February 27th, 2011

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

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.

Unity addresses these issues here:

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:

  1. For people with a Flash background:
    Target our ActionScript API directly from Flash. Think:
    var go:GameObject = new GameObject(“Just normal ActionScript 3 code”);
  2. 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.

Tuesday, October 26th, 2010

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.

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

Tuesday, September 28th, 2010

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

Unity 3 Feature – Occlusion Culling with Umbra from Unity3D on Vimeo.

Wednesday, September 1st, 2010
Apple and other mobile platforms like Android might change the big three in gaming consoles faster than people think.  Gamasutra has an article about Apple’s assault on the gaming industry.
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.

Friday, August 27th, 2010

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.

Saturday, August 21st, 2010

Here’s a look at another interesting flash player implementation by Joa Ebert using Java with OpenGL rendering support. It is at an early stage but has the right idea in hardware rendering to OpenGL which is easily cross platform and mobile capable with speed.


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.

Other Flash Player implementations:

  • Lightspark
    • AS3 script via LLVM
    • Written in C++ (very portable for native)
    • OpenGL accelerated rendering
  • Smokescreen
    • runs in Javascript/Canvas/html5
    • limited support
  • Swfdec
    • Firefox plugin
    • Early development
  • Gnash
    • flash 7-9 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.


Thursday, July 29th, 2010

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.