Away3D TypeScript Dev 3
After some weeks now, Karim and myself are fast approaching the first major milestone of Away3D TypeScript development. When we originally scoped this project, I gave myself some very steep learning goals. I had never written TypeScript before and had little time to get rolling with arguably some of the most cutting edge and complex HTML5 features.
Fortunately, coming from AS3, TypeScript was very intuitive and I felt pretty fluent after day two. Karim, on the other hand, is a whiz with JS, TypeScript and general HTML5-ness so between us, we found that our skill sets were very complimentary. Development moved quickly and it has been thoroughly enjoyable. I especially loved the challenge of that steep learning curve.
During this development phase, my main areas of focus has been the integration of WebGL, GLSL Shaders, AGLSL, Stage3D/Context3D, ByteArray etc. A lot of focus has been on ensuring that current uses of the Away3D library can easily switch to the TypeScript library and help aid the porting process of existing projects whilst developers can continue to use their tried and tested workflows.
Hardware accelerated graphics enables the rasterization of millions of textured and lit polygons. WebGL is a graphic API that allows your web browser to access the 3D hardware of your PC, mobile or tablet.
Many browsers already have great support for the WebGL API and this provides blisteringly fast access and render speed commonly associated with hardcore 3D gaming. The result is that games that run within your Web Browser can now benefit from the same graphical performance as your 3D accelerated PC/Console games.
Here are some WebGL capable browsers:
To allow developers to reuse existing Away3D shader code, I incorporated a utility package called AGLSL. This package enables you to take AGAL shader code and convert it directly into GLSL shader code. This means that developers that are already familiar with AGAL have the choice of writing their shaders in either AGAL or GLSL shader languages, as well as the additional ability of reusing preexisting AGAL code.
The Display3D package has additional API support for GLSL, which is not available in Flash.
It’s probably important to note that things are still under development. The current source code would not be considered a fully featured or stable release but there should be enough to get started. If you find an issue and you would like to raise a bug report, please do so on GitHub’s issue tracking system.
We are already seeing some exciting Away3D TypeScript demos and many people are following the development progress and dabbling with the codebase. If you build something, we’d really like to hear your feedback and I’d also like to compile a list of your examples for another blog entry so please leave a link to your demos/examples below:
Here are some of our own tests/demos to take a look at: