Hello Away3ders!

As some of you may have noticed, things have been getting a bit complex of
late in Away3d development. What with flash 10 and textfield importing, and
speed and stability a priority within the trunk and version releases, the
team have decided to create a number of development branches within which
you can follow certain features as they are created. However, this requires
a little explaining, which i hope this mail will do.

Referring to "branches" basically refers to folders in the branches
directory of the googlecode svn. In version control, a branch means a copy
of the codebase that is developed independently to the main trunk

Branches in svn repositories are the usual way for any new feature to be
developed. There are two advantages to working this way - the feature being
developed in the branch can be done so independently of the main trunk, so
as not to risk the trunk version becoming unstable, and developers wishing
to test the new features can do so by pointing their svn clients to the
branch directory. (in version control-land, this operation is usually called
switching)

When using banches in a project, merging updates becomes a very important
task. trunk fixes need to be merged into the branch code while it's
development continues, and once ready for release, branch code needs to be
merged back into trunk code when it is time to update the trunk with the
completed branch additions.

So I'm sure your all thinking 'this sounds great, but why the hell didn't
things work like this before?!'. The simple reason for this is the
restrictions of the framework. Without a stable framework, branches run into
multiple problems as packages move around, classes get renamed etc. The
merging step is usually where problems manifest themselves, when a
significant amount of movement has gone on and the merging algorithms cannot
automatically resolve updates to files. However, Away3d is at a stage in
development where the framework is quite stable, and unlikly to change much
soon. So branching is possible!

Now to introduce a few branches that currently exist.


*textfields*. This one is probably the one you've heard of - it's a
development branch for adding bezier shape support to Away3d. Currently
textfields are supported (using font information exported from the five3d
library), with plans for svg and ttf importers in the near future.

*3.0.0* - the stable branch for anyone wanting to use Away3d in cs4 and
flex4. This branch will only update with the trunk, so you will still
receive bugfixes to any recent problems if you use this branch.

*flash10* - the development branch for the flash 10 version of Away3d.
Because there are a lot of new features to take advantage of, it was
considered too much work to maintain a stable version in this branch as
well, hence the 3.0.0 branch which developers should use for any production
work. flash10 will have a lot of activity surrounding it over the coming
months and will eventually become version 3.1.0 as stablility is
re-aquired...
*
multiplayer* - a place for development of our multiplayer extensions to be
used in conjuntion with fms. This branch will ultimately become a whole
suite of new classes for anyone wishing to use Away3d as a multiplayer
client for games.

*haxe* - the one i'm currently most excited about :). Haxe can now compile
to flash 10 and has a number of very interesting additions to the language
not available in as3... at present our codebase is being converted to haxe
code for an initial compile - once this is done, optimisation can commence!

*culling* - the newest branch, containing development for advanced nearfield
and farfield culling, and frustum culling of objects in large scenes. There
are also a few modifications to the way you can project into a view, with
the addition of the lenses package inside cameras for added control over
perspective effects. Should be pretty interesting - you can checkout
nearfield culling of triangles right now with the current version


That's about it for branches! i hope you get a chance to check out some of
these developments. As we always say, the code in a branch is obviuosly
under development, and therefore the features you see may not reach the
trunk in the same way they started! As development progresses, changes to
methods and properties can occur, so using branches for production is
probably a bad idea. On the other hand, if you get the chance to experiment
with a code branch and feel like you want to be part of it's development,
please let us know! Branches are a great way of getting more people involved
in the development process, as they allow many different strands of an
engine to be coded independently.

finally, there has been a great deal of minor updates to the trunk since the
initial release of 2.2.0, so we will shortly be versioning an interim update
2.2.5, to be tagged and zipped etc for production use.


cheers y'all


The Away3d Team



-- 

Rob Bateman
Flash Development & Consultancy

[EMAIL PROTECTED]
www.infiniteturtles.co.uk
www.away3d.com

Reply via email to