Microsoft has finally laid out their plans. Silverlight is alive with Silverlight 5 / 3D powered by XNA (any surprise? guess it isn’t dead) and hardware acceleration throughout Internet Explorer for canvas/html5 focus apparently aloongside Silverlight for deeper graphical needs or changes. It was originally outlined back in April at MIX 2011, but it shows their path and answer to WebGL/Canvas and standards for interactive and game development on the web (plus I have been busy on two titles, one for iOS and one for both iOS and Android, gotta say it is nice to see how fast your app gets posted to Android store compared to iOS…).
- Pick it up and try Silverlight 5 with 3D/XNA out
- Silverlight 5 Beta Developer Runtime for Windows
- Silverlight 5 Beta Developer Runtime for Mac
- Silverlight 5 Beta SDK
- WCF RIA Services for Silverlight 5 Beta
We might have to wait a while for Moonlight to catch up on this one, guess that would take an OpenGL rendering layer like WebGL?…:)
Making 2D games in Unity is getting better with products like RageSpline for making vector like splines to create objects (texturable or color), by far one of the best additions to the Unity Asset Store. The Unity Asset store is a great new place for inspiring products that are excellent, RageSpline shows why.
$50 in the Unity Asset Store but worth it, I hope it is expanded to import many vector formats.
The author is Juha Kiili is the author of this awesome piece of tech and it is seemingly doing well. This could be a full fledged 2d toolkit easily with many import/export capabilities.
Features of RageSpline
- Creating 2D meshes and lines with bézier-based splines.
- Outlining with single color, variable width per control point + natural/sharp switch per point.
- Solid one color fills.
- Linear gradient fills with two colors and GUI-adjustable scale, offset position and rotation.
- Emboss styling with two colors and GUI-adjustable adjustable scale, rotation and smoothness variable.
- Texturing support with GUI-adjustable scale, offset and rotation.
- Automatic physics generator.
- Adjustable vertex count for outline, fill, emboss and physics.
- Example game included: RageCar.
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.
Cocos2D is a game engine similar to Flash in that it is a 2d engine but it natively renders to OpenGL ES. Cocos2D-iphone was originally a port of Cocos2D, a python game engine. But the similarities to Flash and DisplayObjects = Nodes, Sprites, Scenes, Layers etc. This helps to port games over fairly quickly or start in productive in cocos2D.
To see a small sample of what is on offer, please check out the demo section.
cocos2d engines are now available on almost all platforms, so if you are building a 2d game and need a 2d engine typically with Box2D physics, cocos2d offers lots of ways to get the game out there with some porting work.
- cocos2d-iphone (mobile)
- cocos2d – original python (desktop)
- cocos2d other
Firefox 4 in beta to be released soon, also joins the WebGL ranks with Chrome 9. Safari has it in nightlies and IE hasn’t even mentioned it.
There really is too much to list as this release is feature packed! Of course the most exciting being WebGL and hardware acceleration from our perspective.
Firefox 4 now has WebGL enabled by default. Based on the original 3-D Canvas work by Vladimir Vukićević, this is being
widely implemented in browsers. The WebGL spec is on the short path to a 1.0 release and we’re very excited to see this be used in the wild.
Hardware acceleration has finally arrived even though it should have been in nearly all platforms for web last decade, but we’ll take it.
Firefox 4 supports full hardware acceleration on Windows 7 and Windows Vista via a combination of D2D, DX9 and DX10. This allows us to accelerate everything from Canvas drawing to video rendering. Windows XP users will also enjoy hardware acceleration for many operations because we’re using our new Layers infrastructure along with DX9. And, of course, OSX users have excellent OpenGL support, so we’ve got that covered as well.
WebConsole looks like they are joining Chrome and Safari with built in inspection tools similar to Firebug, however Firebug still available.
Firefox 4 will include the Web Console. This is a new tool that will let you inspect a web page as it’s running, see network activity, see messages logged with
console.log, see warnings for a page’s CSS, and a number of other things.
Note this that is something that we’ll be including with Firefox 4 directly. It’s not an add-on.
(Also Firebug will be ready for the final Firefox 4 release.)
Firefox 4 has other improvements like layering (in-memory retained layers), caching/scheduling improvements and lots of other performance enhancements.
2011 is looking like the year all this is coming together, at least for Chrome, Firefox, possibly Safari (need WebGL in main release) and IE is still the biggest problem to getting WebGL. At this point WebGL looks like it is still over a year out as it may not come to IE until IE10 or possibly never, the WebGL 1.0 spec is on the fast track though (don’t we all love Khronos? They have been amazing with OpenGL since they took over). html5 is looking like it will be close to mainstream by the end of this year depending on the install rate of IE9 when released.
The world is waiting to see if Microsoft implements WebGL or tries the old DirectX/D2D only ways. Nevertheless, getting a push for hardware acceleration and fast renders in 2d/3d is a very sweet direction.
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!
EaselJS is a new library from Grant Skinner that somewhat mimics the Flash display list/display object heirarchy. It is the result of the game Pirates Love Daisies which demonstrates some great gameplay in html5.
The API is loosely based on Flash’s display list, and should be easy to pick up for both JS and AS3 developers. In our preliminary testing, Easel appears to be fully compatible with iOS, Android, and all major browsers that support the canvas element.
The API contains these familiar classes for Flash/AS3 developers:
Abstract base class for all display elements in Easel. Exposes all of the display properties (ex. x, y, rotation, scaleX, scaleY, alpha, shadow, etc) that are common to all display objects.
The root level display container for display elements. Each time tick() is called on Stage, it will update and render the display list to its associated canvas.
A nestable display container, which lets you aggregate display objects and manipulate them as a group.
Draws an image, video or canvas to the canvas according to its display properties.
Displays animated or dynamic sprite sheets (images with multiple frames on a grid), and provides APIs for managing playback and sequencing.
Renders vector drawing instructions within the context of the display list.