Away Foundation roadmap 2014

Welcome to another roadmap post, a condensed report outlining some of the areas we will be focussing on over the next few months. This year, we are looking to dedicate time to several new development platforms, extending the Away3D engine’s reach and offering more publishing options to our user base. We also have planned upgrades to existing libraries and tools.

Away3D Typescript and WebGL

Late last year, we made an initial exploration of the WebGL world with our Alpha release of Away3D Typescript. The community response has been incredibly positive, and thanks go to everyone who has been involved so far in creating demos, writing articles and assisting with development. Our appearances at Mozfest and Devgamm gave us an opportunity to collect even more feedback from developers. This has led to expanded thinking around future work and the potential application of the library, based on the requirements we see in the Typescript & Javascript world.

One action we have taken early this year is to split the existing Typescript library in two – a core library for Stage3D and displaylist-related APIs, and a separate library for the existing Away3D TS implementation. We will be publishing more details on the former in the next week or so, but the general idea is to assist the proliferation of graphics libraries on the web by creating a simple WebGL-enabled API for developers to use as a base for custom rich media frameworks. In the meantime, we will be continuing work on the latter, looking to publish a beta with a completed port sometime in March.

An exciting development in this area is a new collaboration between The Away Foundation and Gamua. The creators of the 2D Actionscript library Starling have been working on a Typescript / WebGL port (codenamed StarlingJS) that due to recent scoping priority changes was looking at an uncertain future. After discussing options with Starling author and Gamua co-founder Daniel Sperl, we are pleased to announce that as of today we will be taking over the development of StarlingJS, working with Gamua to integrate the conversion with our newly separated Stage3D layer in Typescript. This brand new project will be managed under The Away Foundation, and we look forward to revealing more about the library in the very near future. You can read more about the motivations for the switch over at the Gamua blog.

Away3D 4.2 & Away3D Flash

Our commitment to the development of Away3D in Flash will continue this year with a planned update for the Away3D codebase to version 4.2. Details of the featureset are still being finalised, but some prominant features taking priority include:

Deferred lighting renderer

Dynamic 3D Text & Vector tesselation

Animation system extensions

Material enhancements & gamma correction

The focus of 4.2 development will be heavily biased towards rendering and speed improvements, while retaining an emphasis on simplified internal APIs for easy extensibility. Further details, including estimates on timelines and release dates, will be revealed later this month.

Away3D OpenFL

Now for an entirely new area of development. We have for the first time been experimenting with code for a Haxe port of Away3D 4.1. For those new to the project, Haxe is an open source language designed to be used in the creation of multi-platform content. You can find out more on Haxe and the Haxe Foundation by going to http://haxe.org/.

While Haxe is a familiar platform to older Away3D versions, previous reasearch into a compatible implementation of Stage3D for cross-platform development left us will a few stumbling blocks. Several recent updates have changed all that, with the introduction of OpenFL being the most significant milestone for improving both the compatibility and reach of native Haxe applications. We’ve now had quite a bit of success with an experimental branch of the Away3D 4.1 codebase written in Haxe, compiling to cpp, HTML5 and Flash targets. For a demonstration of the current capabilities of Away3D OpenFL, watch this video by core team member Greg Caldwell.

Development is still very much ongoing and currently only a few examples are up and running with the system, but early successes have been very encouraging. You can download a preview version of the source from the official github repo at https://github.com/away3d/away3d-core-openfl. A video of experiments with some of the OpenFL-compatible platforms derived from the cpp target can be viewed here.

We love the direction OpenFL is taking the Haxe platform, and look forward to making a full port of the Away3D engine available for this vibrant community of developers. The flexible approach to multiple platform targets that OpenFL offers is still in its early stages, but we highly recommend anyone with a passing interest in open-source, multi-platform authoring to check out its capabilties at http://www.openfl.org/

Away Builder

The official Away3D workflow tool Away Builder is also in line for significant improvements this year, including additional UI elements for editing and previewing animations, materials and AWD output options. We are expecting new features to focus around data processing tools, designed to simplify the creation and management of 3D scenes, such as:

Procedural terrain generation

Cell partition generation

Pre-baked lightmap handling

Mesh tools for vertex manipulation

Away Builder updates will be tied-in with ongoing updates to the AWD format, the official file format for Away3D. Last year saw the move from AWD 2.0 to AWD 2.1 with many useful additions to the data storage capablities of an AWD file. To maintain a cross-platform workflow, we will continue the development of the AWD format across all Away3D codebases, ensuring Away Builder is capable of integrating a workflow into any platform utilising the Away3D engine. Parallel to this work, we will be continuing the creation of support material for Away Builder, with more video tutorials, steo-by-step guides and documentation.

Contribute!

We always welcome community contributions, so if any of the plans outlined above sound like something you’d be interested in getting involved with, don’t be shy! There are many ways you can help out – on Github through our issues tracker, on the forums with answers and advice on technical issues, on Twitter and Facebook with info about your latest experiments and projects. If you have an idea for a specific feature not mentioned here (and the items above are by no means an exhaustive list), or you are working on a project that may result in extensions you’d be willing to donate back to the community, you can get in contact directly through the comments section below.