<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>*drawlogic &#187; STANDARDS</title>
	<atom:link href="http://drawlogic.com/category/standards/feed/" rel="self" type="application/rss+xml" />
	<link>http://drawlogic.com</link>
	<description>interactive and game development technologies for the web - flash, flex, unity3d, silverlight, javascript</description>
	<lastBuildDate>Tue, 09 Mar 2010 18:39:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>WebGL Announced, Javascript Controlled OpenGL Standard, is Now Official at Khronos Group, Who Runs OpenGL, OpenVG, OpenGL ES</title>
		<link>http://drawlogic.com/2009/08/08/webgl-announced-javascript-controlled-opengl-standard-is-now-official-at-khronos-group-who-runs-opengl-openvg-opengl-es/</link>
		<comments>http://drawlogic.com/2009/08/08/webgl-announced-javascript-controlled-opengl-standard-is-now-official-at-khronos-group-who-runs-opengl-openvg-opengl-es/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 21:55:11 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[AWAY3D]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[COMPANIES]]></category>
		<category><![CDATA[CONFERENCE]]></category>
		<category><![CDATA[EFFECTS]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[HAXE]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[NEWS]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[OPENGL]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[TORQUE 3D]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[unity3d]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[group]]></category>
		<category><![CDATA[khronos]]></category>
		<category><![CDATA[opengles]]></category>
		<category><![CDATA[standard]]></category>
		<category><![CDATA[webgl]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=622</guid>
		<description><![CDATA[So many cool and useful technologies are unveiled at SIGGRAPH every year, this year at SIGGRAPH 2009 was no different.  Khronos Group, behind the new guidance of OpenGL, OpenGL ES, OpenCL, OpenVG, COLLADA etc, came another big announcement about hardware rendering within the browser.  WebGL is now an official standard being developed at Khronos Group [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="OpenGL" src="http://i81.photobucket.com/albums/j223/drawkbox/opengl-logo-1-1.png" alt="" width="239" height="123" />So many cool and useful technologies are unveiled at SIGGRAPH every year, this year at SIGGRAPH 2009 was no different.  Khronos Group, behind the new guidance of OpenGL, OpenGL ES, OpenCL, OpenVG, COLLADA etc, came another big announcement about hardware rendering within the browser.  <a href="http://www.khronos.org/news/press/releases/khronos-webgl-initiative-hardware-accelerated-3d-graphics-internet/" target="_blank">WebGL is now an official standard being developed</a> at Khronos Group to bring javascript control of OpenGL to browsers&#8230; Wow!</p>
<p>Ok so this was officially announced at the GDC in March but limited information, but now it has been slated for an <strong>official public standard </strong><strong>in early 2010</strong>. Shortly after the announcement at the GDC we saw <a href="http://code.google.com/apis/o3d/" target="_blank">Google o3D</a> appear doing exactly that, controlling OpenGL through Javascript in the browser <a href="http://o3d.blogspot.com/2009/07/improving-o3ds-hardware-compatibility.html" target="_blank">but it was still largely software/harward hybrid rendered</a>. Google, Mozilla, Opera are part of the companies supporting WebGL which is great for browser support, also NVIDIA, AMD and Ericsson are in on it.</p>
<blockquote>
<h3><img class="alignright" title="Khronos Group" src="http://i81.photobucket.com/albums/j223/drawkbox/khronos_logo.gif" alt="" width="195" height="57" />Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet</h3>
<p><em>JavaScript Binding to OpenGL ES 2.0 for Rich 3D Web Graphics without Browser Plugins; Wide industry Support from Major Browser Vendors including Google, Mozilla and Opera; Specification will be Available Royalty-free to all Developers</em></p>
<p><strong>4th August, 2009 – New Orleans, SIGGRAPH 2009 – The Khronos™ Group, today announced more details on its new WebGL™ working group</strong> for enabling hardware-accelerated 3D graphics in Web pages without the need for browser plug-ins.  First announced at the Game Developers Conference in March of 2009, the WebGL working group includes many industry leaders such as <strong>AMD, Ericsson, Google, Mozilla, NVIDIA and Opera</strong>.  The WebGL working group is defining a JavaScript binding to OpenGL® ES 2.0 to enable rich 3D graphics within a browser on any platform supporting the OpenGL or OpenGL ES graphics standards.  The working group is developing the specification to provide content portability across diverse browsers and platforms, including the capability of portable, secure shader programs.  <strong>WebGL will be a royalty-free standard developed under the proven Khronos development process, with the target of a first public release in first half of 2010.</strong> Khronos warmly welcomes any interested company to become a member and participate in the development of the WebGL specification.</p></blockquote>
<p><a href="http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/" target="_blank">Google released O3D</a> this year and there are great strides in 3d within the browser from game engine wrapper technologies such as <a href="http://technology.instantaction.com/" target="_blank">instant action technology</a>, gaim theory engine (now owned by id Software and runs <a href="http://www.quakelive.com/" target="_blank">Quake  Live</a>, hardware rendered <a href="http://unity3d.com/" target="_blank">Unity 3D</a> (and <a href="http://www.garagegames.com/products/torque-3d" target="_blank">Torque 3D</a> coming soon), and Flash software rendered  3d engines <a href="http://blog.papervision3d.org/" target="_blank">Papervision 3D</a>, <a href="http://away3d.com/" target="_blank">Away 3D</a>, <a href="http://www.flashsandy.org/" target="_blank">Sandy </a>(<a href="http://drawlogic.com/2009/07/16/haxe-sandy-able-to-generate-a-3d-javascript-engine-port-of-sandy-for-canvas/" target="_blank">Sandy also released a haXe version that exports a javascript version</a>) and others.  But it looks like the movement is to bring OpenGL to the web as a standard under the name WebGL, this would be great!  There would still be lots of times where plugins are better now and in the near future but the path is a good one. Having a software/hardware rendering hybrid like Google O3D for broad video card support (some of the painful older intel cards), or using a plugin like Unity3D, Torque 3D or wrapper technology for bigger engines is a good idea for the time being. But the future is grand in this area.</p>
<p>I think that Google O3D and OpenGL ES success on iPhone games probably combined to get this in motion.  OpenGL and very basic video cards are now standard in most machines out there.  <a href="http://unity3d.com/webplayer/hwstats/" target="_blank">Unity3D actually published hardware statistics on casual gamers</a> (web-based games) ever so kindly and shows that even though there are some older Intel cards out there, for the most part machines nowadays have a video card capable of supporting at least low-poly 3d and hardware supported 2d rendering in real-time for games, user interfaces and more.</p>
<p>This is exciting news, it appears the movement of the web gaming market is getting much more capable and is accelerating the innovation of hardware accelerating the web.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/08/08/webgl-announced-javascript-controlled-opengl-standard-is-now-official-at-khronos-group-who-runs-opengl-openvg-opengl-es/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Haxe Sandy Ability to Generate a 3D Javascript Engine Port of Sandy for Canvas</title>
		<link>http://drawlogic.com/2009/07/16/haxe-sandy-able-to-generate-a-3d-javascript-engine-port-of-sandy-for-canvas/</link>
		<comments>http://drawlogic.com/2009/07/16/haxe-sandy-able-to-generate-a-3d-javascript-engine-port-of-sandy-for-canvas/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 17:32:36 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[HAXE]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[SANDY]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[hx]]></category>
		<category><![CDATA[motor2]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=604</guid>
		<description><![CDATA[Haxe Sandy is a version of Sandy that can export to an experimental Javascript 3D engine taking advantage of the &#60;canvas&#62; element. There are some great demos that run smoothly in canvas capable browsers and very smooth in Chrome.

Demos of Haxe Sandy:

Displaying  		a model
 Getting Started
 Model Loading
Physics
Shading
Tweening
Skybox
Primitives

Sandy was actually the first open source [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flashsandy.org/haxe" target="_blank">Haxe Sandy </a>is a version of Sandy that can export to an experimental Javascript 3D engine taking advantage of the &lt;canvas&gt; element. There are some <a href="http://webdemos.sourceforge.net/haxesandy/gettingstarted-js.html" target="_blank">great demos that run smoothly</a> in canvas capable browsers and very smooth in Chrome.</p>
<p><a href="http://webdemos.sourceforge.net/haxesandy/gettingstarted-js.html" target="_blank"><img class="alignright" title="Sandy Haxe" src="http://i81.photobucket.com/albums/j223/drawkbox/sandyhx.png" alt="" width="341" height="292" /></a></p>
<p><strong>Demos of Haxe Sandy:</strong></p>
<ul>
<li><a href="http://webdemos.sourceforge.net/haxesandy/" target="_blank">Displaying  		a model</a></li>
<li> <a href="http://webdemos.sourceforge.net/haxesandy/gettingstarted-js.html" target="_blank">Getting Started</a></li>
<li> <a href="http://webdemos.sourceforge.net/haxesandy/modelloading-js.html" target="_blank">Model Loading</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/physics-js.html" target="_blank">Physics</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/shading-js.html" target="_blank">Shading</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/tweening-js.html" target="_blank">Tweening</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/skybox-js.html" target="_blank">Skybox</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/primitives-js.html" target="_blank">Primitives</a></li>
</ul>
<p>Sandy was actually the first open source 3d engine in flash, maybe this will be a trend building in <a href="http://haxe.org/" target="_blank">haXe </a>for export to flash and javascript?  It certainly looks like a great start and would make a very nice platform for 3d on the web allowing Sandy or other flash libraries to run in Flash and Javascript by writing in an abstraction platform like haXe. Other libraries like <a href="http://www.motorphysics.de/" target="_blank">Motor2</a>, <a href="http://code.google.com/p/physaxe/" target="_blank">Physaxe</a>, <a href="http://code.google.com/p/haxe3d/" target="_blank">haxe3D</a>, <a href="http://forums.puremvc.org/index.php?topic=636.0" target="_blank">PureMVC </a>and more have haXe versions. Still very experimental but a possible need when Flash and canvas are both in the market in the future.  Right now it is still all Flash.</p>
<ul>
<li><a href="http://www.flashsandy.org/haxe" target="_blank">Haxe Sandy</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/gettingstarted-js.html">Haxe Sandy Demos</a></li>
<li><a href="http://www.brighthub.com/hubfolio/matthew-casperson/blog/archive/2009/07/08/flash-and-javascript-3d-with-sandy-hx.aspx" target="_blank">Haxe Sandy Tutorials by Matthew Casperson</a></li>
<li><a href="http://www.flashsandy.org/download" target="_blank">Haxe Sandy Download</a>
<ul>
<li><a title="http://sandy.googlecode.com/files/sandy-hx-src-3.1.1.tar.gz" rel="nofollow" href="http://sandy.googlecode.com/files/sandy-hx-src-3.1.1.tar.gz">Download sources</a></li>
<li><a title="http://sandy.googlecode.com/files/sandy-hx-docs-3.1.1.tar.gz" rel="nofollow" href="http://sandy.googlecode.com/files/sandy-hx-docs-3.1.1.tar.gz">Download API documentation</a></li>
<li><a title="http://sandy.googlecode.com/files/sandy-hx-tutos-3.1.1.tar.gz" rel="nofollow" href="http://sandy.googlecode.com/files/sandy-hx-tutos-3.1.1.tar.gz">Download all examples to get started</a></li>
</ul>
</li>
</ul>
<p>[ <a href="http://www.devmaster.net/news/index.php?storyid=2296" target="_blank">via Matthew Casperson at devmaster.net</a> ]</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/07/16/haxe-sandy-able-to-generate-a-3d-javascript-engine-port-of-sandy-for-canvas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 Library for OAuth with Twitter for AIR Apps</title>
		<link>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/</link>
		<comments>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 12:01:49 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[SYNDICATION]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=592</guid>
		<description><![CDATA[AIR is very popular for creating twitter clients, Sönke Rohde just made it much easier to make AIR apps for twitter with an AS3 library for Twitter. This library is built on top of core oauth as3 library by iotashin.  Core OAuth as3 library is a standard OAuth library this can be used for your [...]]]></description>
			<content:encoded><![CDATA[<p>AIR is very popular for creating twitter clients, <a href="http://soenkerohde.com/2009/07/high-level-as3flex-library-for-oauth-with-twitter-from-air/" target="_blank">Sönke Rohde just made it much easier to make AIR apps for twitter</a> with an <a href="http://github.com/srohde/OAuth/tree/master" target="_blank">AS3 library for Twitter</a>. This library is built on top of <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/" target="_blank">core oauth as3 library</a> <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/" target="_blank">by iotashin</a>.  Core <a href="http://oauth.net/" target="_blank">OAuth</a> as3 library is a standard OAuth library this can be used for your own OAuth backends or connecting to other OAuth services as well.</p>
<p>A very nice feature of this library, in addition to being coded cleanly and as3 style, is the ability to have the Twitter OAuth page render inside of Flash.</p>
<p style="padding-left: 30px;">Instead of opening the Twitter authorization page in the browser the library also contains OAuthLoader which is a wrapper around HTMLLoader which enables to directly show the authorization page within an AIR window:</p>
<pre lang="actionscript">// use this in the requestTokenHandler instead of navigateToURL
var loader:OAuthLoader = new OAuthLoader();
loader.load(request);
loader.percentWidth = 100;
loader.percentHeight = 100;
var w:Window = new Window();
w.width = 800;
w.height = 400;
w.title = req.url;
w.addChild(loader);
w.open();</pre>
<ul>
<li><a href="http://www.iotashan.com/">Shannon Hicks</a> <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/">core oauth as3 library</a></li>
<li><a href="http://github.com/srohde/OAuth/tree/master">High level AS3/Flex library for OAuth</a></li>
<li><a href="http://code.google.com/p/oauth-as3/" target="_blank">oauth-as3 Google Code page</a></li>
<li><a href="http://oauth.net/">OAuth</a></li>
<li><a href="http://apiwiki.twitter.com/OAuth-FAQ">Twitter OAuth FAQ</a></li>
<li><a href="http://apiwiki.twitter.com/Twitter-API-Documentation">Twitter API Documentation</a></li>
<li><a href="http://www.hueniverse.com/hueniverse/2007/10/beginners-gui-1.html">Getting Started with OAuth</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>V8-GL, Hardware Accelerated Desktop Apps with OpenGL in Javascript</title>
		<link>http://drawlogic.com/2009/06/21/v8-gl-hardware-accelerated-desktop-apps-with-opengl-in-javascript/</link>
		<comments>http://drawlogic.com/2009/06/21/v8-gl-hardware-accelerated-desktop-apps-with-opengl-in-javascript/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 00:52:41 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[DESKTOP]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[MARKET]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[OPENGL]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[v8]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=583</guid>
		<description><![CDATA[This is a very cool project called V8-GL.  It is an OpenGL engine with 80% of the API converted to run on the V8 Javascript engine, the same engine that runs Google Chrome.

This is exciting as more productive languages like Javascript get speed boosts from engines like V8 and are capable of manipulating more complex [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very cool project called <a href="http://github.com/philogb/v8-gl/tree/master#readme" target="_blank">V8-GL</a>.  It is <a href="http://blog.thejit.org/2009/06/21/v8-gl/">an OpenGL engine with 80% of the API converted to run on the V8 Javascript engine</a>, the <a href="http://code.google.com/p/v8/" target="_blank">same engine that runs Google Chrome</a>.</p>
<p><a href="http://blog.thejit.org/2009/06/21/v8-gl/" target="_blank"><img class="alignnone" title="V8-GL" src="http://i81.photobucket.com/albums/j223/drawkbox/v8gl2.png" alt="" width="658" height="500" /></a></p>
<p>This is exciting as more productive languages like Javascript get speed boosts from engines like V8 and are capable of manipulating more complex systems like OpenGL.  <a href="http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/" target="_blank">Google is also pursing this in the browser with O3D with javascript manipulation of hardware rendering</a>.  Also, a Google funded project called <a href="http://code.google.com/p/unladen-swallow/" target="_blank">Unladen Swallow is converting Python to the LLVM virtual machine</a>, so that it can have increasing speeds to compete with gcc speeds.</p>
<p>Making things easier to produce and control with more simplified and minimal languages like Javascript, Python and Actionscript etc that control more complex systems, that typically you would need to invest more time in such as a platform on C++ is the goal. V8-GL has this goal in mind.</p>
<p><em>V8-GL from the author states:</em></p>
<blockquote><p><a href="http://github.com/philogb/v8-gl/tree/master#readme">V8-GL</a> intends to provide a high-level JavaScript API for creating 2D/3D hardware accelerated desktop graphics.</p>
<p>In other words, you can hack some JavaScript code that opens a desktop window and renders some 3D hardware accelerated graphics. Bindings are made using the <a href="http://code.google.com/p/v8/">V8 JavaScript engine</a>.</p></blockquote>
<ul>
<li><a href="http://blog.thejit.org/2009/06/21/v8-gl/" target="_blank">V8-GL blog post</a></li>
<li><a href="http://github.com/philogb/v8-gl/tree/master#readme" target="_blank">V8-GL source on Github</a></li>
<li>Also <a href="http://code.google.com/p/jslibs/" target="_blank">check out the SpiderMonkey jslibs project</a> with other javascript wrappers for libraries like ode, sdl and more using the engine by Mozilla.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/06/21/v8-gl-hardware-accelerated-desktop-apps-with-opengl-in-javascript/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Releases O3D Plugin for 3D in Browser Controlled with Javascript</title>
		<link>http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/</link>
		<comments>http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 23:31:04 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[formats]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[o3d]]></category>
		<category><![CDATA[sketchup]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=524</guid>
		<description><![CDATA[Google has a few things going for 3d in the browser, not just 3d but hardware rendering in the browser.  They previously had native client which allows you to run code via a plugin proxy with a sample running Quake.  They also had Lively which was a virtual world plugin that was shut down a [...]]]></description>
			<content:encoded><![CDATA[<p>Google has a few things going for 3d in the browser, not just 3d but hardware rendering in the browser.  They previously had <a href="http://code.google.com/p/nativeclient/" target="_blank">native client</a> which allows you to run code via a plugin proxy with a sample running Quake.  They also had <a href="http://www.lively.com/goodbye.html" target="_blank">Lively which was a virtual world plugin</a> that was shut down a few month after it started.</p>
<p><a href="http://google-code-updates.blogspot.com/2009/04/toward-open-web-standard-for-3d.html" target="_blank"><img class="alignnone" title="o3d" src="http://i81.photobucket.com/albums/j223/drawkbox/o3d.png" alt="" width="560" height="316" /></a></p>
<p>Now they are also <a href="http://code.google.com/apis/o3d/" target="_blank">making and releasing an O3D plugin that looks to be another way to do web 3d</a> scenes and games although it is a very early stage. They appear to <a href="http://google-code-updates.blogspot.com/2009/04/toward-open-web-standard-for-3d.html" target="_blank">want to have an open discussion about how best to add hardware rendering to the web</a>.  Their approach uses a javascript api to control the browser plugin and the <a href="http://code.google.com/apis/o3d/" target="_blank">O3D control</a> is essentially just a renderer.</p>
<p>This won&#8217;t change anything now as Unity3D, Flash 3D pseudo engines, even Director 3D still are the top choices for games, apps, and interactives that need effects and possibly hardware rendering. But it is interesting that Google is essentially re-entering this debate after ditching on Lively and they must see some benefit to having a discussion about 3d on the web and 3d standards in general.  I know they have lots of models and tools with <a href="http://sketchup.google.com/" target="_blank">SketchUp</a> and <a href="http://sketchup.google.com/3dwarehouse/" target="_blank">Google 3D warehouse</a> so who knows maybe they will take it over by being standards, open and information based.</p>
<blockquote>
<h3>What is O3D?</h3>
<p>O3D is an open-source web API for creating rich, interactive 3D applications in the browser. This API is shared at an early stage as part of a conversation with the broader developer community about establishing an open web standard for 3D graphics.</p>
<h3>Get involved</h3>
<ul>
<li>Download the plug-in (<a href="http://tools.google.com/dlpage/o3d/eula.html">Windows</a> and <a href="http://tools.google.com/dlpage/o3d/eula.html">Mac</a>) and explore the <a href="http://code.google.com/apis/o3d/docs/samplesdirectory.html">samples</a> to see O3D&#8217;s capabilities. Linux users, see these <a href="http://code.google.com/p/o3d/wiki/HowToBuild">instructions</a>.</li>
<li>Read the <a href="http://code.google.com/apis/o3d/docs/techoverview.html">Technical Overview</a> and <a href="http://code.google.com/apis/o3d/docs/devguideintro.html">Developer&#8217;s Guide</a> to learn how to get started.</li>
<li>Join the O3D <a href="http://code.google.com/apis/o3d/docs/groups.html">developer groups</a> to provide feedback.</li>
</ul>
</blockquote>
<p><object width="560" height="340" data="http://www.youtube.com/v/uofWfXOzX-g&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/uofWfXOzX-g&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>One thing is for sure, 3d development is still old school proprietary lock in in most cases.  Working with 3d and tools like Maya, 3dsmax and others they have always been very non standard.  From file formats to interfaces to even basic movements, all different.  The general maths of 3d are the same and so should 3d pipelines.  Formats like <a href="http://en.wikipedia.org/wiki/COLLADA" target="_blank">COLLADA </a>are nice because they are starting to open up 3d pipelines and content creation but COLLADA still has many porting issues.  <a href="http://en.wikipedia.org/wiki/FBX" target="_blank">FBX file format</a> is another that is really useful and common making pipelines in Unity 3D, for instance, very nice. But it is owned and run by Autodesk who owns all the 3d apps (Maya, 3dsmax, SGI) and I am a bit leary of that method.  But in the end 3d pipelines and rendering will be somewhat standardized and maybe the web will be hardware rendered one day.  In most cases it is not needed, but for gaming, immersion, demos and other entertainment it could benefit heavily from a more standardized 3d pipeline and methods.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Silverlight 3 Mix09 Demos Video of Pixel Shaders (HLSL Authored), 3D Planes, SaveDialog, Local Connections, Out of Browser</title>
		<link>http://drawlogic.com/2009/03/22/silverlight-3-mix09-demos-video-of-pixel-shaders-hlsl-authored-3d-planes-savedialog-local-connections-out-of-browser/</link>
		<comments>http://drawlogic.com/2009/03/22/silverlight-3-mix09-demos-video-of-pixel-shaders-hlsl-authored-3d-planes-savedialog-local-connections-out-of-browser/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 22:31:13 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[DESKTOP]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[EFFECTS]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[EXPRESSION]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[INTERACTIVE]]></category>
		<category><![CDATA[INTERFACE]]></category>
		<category><![CDATA[MARKET]]></category>
		<category><![CDATA[MICROSOFT]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PIXEL]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[SILVERLIGHT]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[XAML]]></category>
		<category><![CDATA[moonlight]]></category>
		<category><![CDATA[unity3d]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[savedialog]]></category>
		<category><![CDATA[shaders]]></category>
		<category><![CDATA[silverlight 3]]></category>
		<category><![CDATA[sl3]]></category>
		<category><![CDATA[VIDEO]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=458</guid>
		<description><![CDATA[Here is a video with more information on Silverlight 3 Beta features that are matches of the latest Flash killer features in pixel shaders, 3d planes (ability to create pseudo-3d engines like papervision3d), local saving, pixel operations/bitmap handling, local messaging (silverlight to silverlight &#8211; like localconnection), out of browser desktop running ability of SL3, SEO [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a <a href="http://videos.visitmix.com/MIX09/T14F" target="_blank">video with more information on Silverlight 3 Beta features</a> that are matches of the latest Flash killer features in pixel shaders, 3d planes (ability to create pseudo-3d engines like papervision3d), local saving, pixel operations/bitmap handling, local messaging (silverlight to silverlight &#8211; like localconnection), out of browser desktop running ability of SL3, SEO and search indexing capabilities / deep linking navigation and more.</p>
<p><strong>Video of the features of SL3 Beta, Demos, at a Slow Pace from #mix09</strong><br />
<!--start_raw--><br />
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="760" height="420"><param name="source" value="http://videos.visitmix.com/Skins/mixvideos/Styles/players/VideoPlayer2009_02_11.xap" /><param name="initParams" value="m=http://mschannel9.vo.msecnd.net/o9/mix/09/wmv-hq/t14f.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://videos.visitmix.com/Skins/mixvideos/Styles/players/VideoPlayer2009_02_11.xap, postid=0" /><param name="background" value="#00FFFFFF" /><a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"><br />
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/><br />
</a><br />
</object><br />
<!--end_raw--></p>
<p><strong>A few points after the video and taking a tour of the features. </strong></p>
<p><strong>The pixel shaders are written in HLSL (shader 2), however they are compiled to byte code and do not currently use the gpu </strong>for rendering. While the pixel shaders are very cool and the language to write them is standard pretty much for shaders in HLSL shader model 2 DirectX-based (the other is GLSL OpenGL based) they have not allowed this byte code to run on the GPU&#8230; yet.  Here Flash and Pixel Bender actually are ahead there.</p>
<p><strong>Although there are 3d planes which is very exciting, no good pseudo 3d engine exists yet matching the 3 in flash (papervision3d, away3d, sandy). </strong> When SL3 comes out I am sure we will see a few emerge or build them ourselves because this iteration of SL3 looks pretty fun.</p>
<p><strong>Pixel based operations will be a huge advancement </strong>much like it was in earlier flash versions as it adds some demo scene type abilities and experiments with pixels that are fun.  This also lends to doing cool things like shaders, effects, AR, face recognition, motion detection etc.</p>
<p>Effects like Blur and Drop shadow are good and the ability to add custom ones, great. However currently they are pretty performance intensive.  They are also in Flash but there needs to be some refinement in SL3 effects before launch.</p>
<p>Desktop runnable apps in out of browser will be nice and this is a direct compete with Adobe AIR which was a surprise.</p>
<p>Local Communication supports desktop to browser communication.</p>
<p>Isolated storage (similar to shared objects) supports 1MB in browser, 25MB out of browser defaults.</p>
<p>This version of silverlight is really a 1.0 version as typical with most software.  Version 2 or version 3 is usually what the initial design goals pan out.  Much like<a href="http://drawlogic.com/2009/03/18/unity-3d-25-released-includes-windows-build-environment-ide/" target="_blank"> the latest unity3d version (2.5) that has windows support</a> and the <a href="http://developer.apple.com/iphone/program/sdk.html" target="_blank">iPhone SDK 3.0</a> that both came out this week, even <a href="http://livedocs.adobe.com/flex/2/langref/migration.html" target="_blank">actionscript 3 compared to earlier versions</a>, these toolkits are finally iterated enough that they are really solid platforms for building cool stuff on and become platforms.  The next version of all these could be very, very dangerous.</p>
<p><strong>Huge missing features:</strong></p>
<p>Although there are some great features in SL3 beta, it is still not done and it is still missing some key components that Flash has which make it very attractive in the interactive space.</p>
<ul>
<li><strong>Camera and Microphone support </strong>- Macromedia hired one of the smartest dudes around in Jeremy Allaire back in flash 6 days to help add support for Flash Communication Server (Flash Media Server now) Camer and Microphone support.  One of the best R&amp;D periods at Macromedia. SL needs this soon.</li>
<li><strong>Printing support</strong> &#8211; what was long a problem in Flash is so in SL, there is no good printing support</li>
<li><strong><strike>No GPU usage for Pixel Effects/Shaders</strike></strong> &#8211; (neither flash nor silverlight support hardware accelerated shaders in PixelEffects/Pixelbender &#8211; Pixel Effects/Shaders need GPU support (see <a href="http://blogs.adobe.com/kevin.goldsmith/2008/09/cpu_gpu_multico.html">Kevin Goldsmith&#8217;s article on GPU mixed with CPU</a> and how this may or may not be good. However processors are speeding up and multi-core helps software rendering, the quality of GPU is well beyond what software rendering can deliver for a few years to come at least while architecture advances, probably more like 5-10 years.  </li>
<li><strong>No UDP plans yet </strong>- Adobe has RTMFP, SL sockets has no public plans for adding UDP that I have seen</li>
<li><strong>No Alpha Channel in Video </strong>- You can do this with a shader though but not supported by default.</li>
</ul>
<p><strong>Silverlight 3 Video</strong></p>
<p>Flash has the upperhand in video and probably will still even though SL3 has H.264.  Flash added this at the same time and though they still have FLV which revolutionized web video they are now much broader in support in video than SL3.  Silverlight has H.264 and VC1 support (their own FLV like codec).  Still pretty cool a couple years ago there was no HD on the web now everyone has it in H.264 video support.</p>
<p><strong>Currently nothing innovative, mainly catchup still, but here are some options</strong></p>
<p>Silverlight 3 beta and the video below the features and highlights will look very similar to flash and flash community advancements over the last couple years.  There is no innovation just yet.</p>
<p><strong>But where that could happen is in socket support with UDP.</strong> Flash has moved on this in <a href="http://drawlogic.com/2008/12/12/adobe-stratus-client-to-client-flash-communication-p2p-with-rtmfp/" target="_blank">RTMFP and the beginning of larger scale networking support with UDP with samples like stratus</a>.  This is a huge differentiating feature for what I think will be game changer on the web (it already is on desktop mmos) in real-time or closer to real-time support for larger sets of users in online games like MMOs or virtual communities, even tools to make request based real-time sites like micro-blogging faster and able to handle more users (right now it is very linear if users get many followers, UDP will allow a better distributed framework for messaging).</p>
<p><strong>Local Storage</strong></p>
<p>Silverlight and Unity3D all need this, Flash could use better support for this.  Local saving of a files for cache beyond the internet cache and greater than the 1MB/25MB limits of SL3 IsolatedStorage.  This is an issue when you are making large scale games in that you need to save lots of assets to a client but to make it economical you want ot save more than the default internet cache amount. Flash Shared Object (Local) allow you to do this somewhat but it would be great to have a way to just download files for cache (upon user agreement) to store assets in bulk of allowable types (images, video, models, bundles) to the file system.</p>
<p>Hardware rendering for 3d support and UDP support will put Flash and SL3 on par with the killer Unity3D kit for making online web games and other activex/plugins like <a href="http://technology.instantaction.com/" target="_blank">instantaction</a> that allow you to do these things already.</p>
<p><strong>The one thing SL has over Flash</strong></p>
<p>Flash and Flex are great.  But there is this massive division in the community and marketing of Flash.  Silverlight is entirely unified and this has much to do with starting clean at a time that interactive development is heading more into a technology and developers control.  Flash and Flex need to bring it together.  AS3 has been out long enough that the people with skills have hopped on and taken it to a new level, mainly from programmers.  If Adobe created a version of Flash that was a new IDE and consolidated Flex and Flash into just Flash, made the IDE as powerful as FDT or FlashDevelop3 there could be hope to bring the platform together.  I understand they had to work it in slowly because it was a designers platform really (even though coders still pushed the limits in games and apps built on it) so they had to tip toe carefully on this to not alienate people.  But now I think the division is a serious problem with the platform and must be addressed, noone expected Silverlight to be this quick on at least SL3 features.  And even though the initial approach might have been bad as SL1 was a huge letdown, Microsoft does not give up and you can see in the XBOX360 and DirectX that they are very pursuant.  DirectX really didn&#8217;t become huge until version 7 so these guys won&#8217;t relent.</p>
<p>I am not a huge fan of using the proprietary tools.  Even in Flash I use as much open source as I can even though the player is locked, but Moonlight is something that trails Silverlight development and is a very unique thing in both open source and cross platform/multiplatform development.  It is a clear relationship and aims to make Silverlight run on multiplatform mono including Linux.  This could win out in the end who knows.  </p>
<p><strong>Futures</strong></p>
<p>Great iterations of software happened this week in <a href="http://drawlogic.com/2009/03/18/unity-3d-25-released-includes-windows-build-environment-ide/" target="_blank">the latest unity3d version (2.5) that has windows support</a> and the <a href="http://developer.apple.com/iphone/program/sdk.html" target="_blank">iPhone SDK 3.0</a> and now SL3 is quite a surprise in feature set.  </p>
<p>I have been really busy this week just delving into all them and hope to start making more cool and useful projects in them.  The best part is right now is great to be an interactive or game developer as all major software companies and markets are focused on retaining good developers.  I don&#8217;t&#8217; recall a time other than the beginning the the web virtual land rush that has so many options and markets that skilled developers and designers can choose from.  Good times.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/03/22/silverlight-3-mix09-demos-video-of-pixel-shaders-hlsl-authored-3d-planes-savedialog-local-connections-out-of-browser/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
<enclosure url="http://mschannel9.vo.msecnd.net/o9/mix/09/wmv-hq/t14f.wmv" length="268979736" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>AS3 Data Structures for Game Developers Ported to haXe as hx3ds Which Performs Faster</title>
		<link>http://drawlogic.com/2009/03/13/as3-data-structures-for-game-developers-ported-to-haxe-as-hx3ds-which-performs-faster/</link>
		<comments>http://drawlogic.com/2009/03/13/as3-data-structures-for-game-developers-ported-to-haxe-as-hx3ds-which-performs-faster/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 04:27:56 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[HAXE]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[array2]]></category>
		<category><![CDATA[array3]]></category>
		<category><![CDATA[bitvector]]></category>
		<category><![CDATA[DATA]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[queue]]></category>
		<category><![CDATA[structures]]></category>
		<category><![CDATA[VECTOR]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=419</guid>
		<description><![CDATA[Polygonal labs, maker of some of the best demos, information and tools for AS3 since inception updated the killer AS3 Data Structures for Game Developers and ported it to haXe.
Of course along the way making many improvements and showing great information on how and why the haXe version is faster which mainly boils down to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lab.polygonal.de/ds/" target="_blank"><img class="alignright" title="Data Structures for Game Developers" src="http://i81.photobucket.com/albums/j223/drawkbox/ds_logo-1.gif" alt="" width="140" height="100" /></a>Polygonal labs, maker of some of the best demos, information and tools for AS3 since inception <a href="http://lab.polygonal.de/2009/03/12/hx3ds/" target="_blank">updated the killer AS3 Data Structures for Game Developers and ported it to haXe</a>.</p>
<p>Of course along the way making many improvements and showing great information on how and why the haXe version is faster which mainly boils down to a more strict virtual machine but flexible still with generics.</p>
<p><a href="http://haxe.org/" target="_blank">haXe </a>is fast because it is a very highly optimized <span style="text-decoration: line-through;">virtual machine</span> language with compiler (and could be called a virtual machine to target other VMs similar to LLVM with the ability to target the Neko VM, AVM2 or Javascript, it is more than just a language) by <a href="http://ncannasse.fr/" target="_blank">Nicolas Cannasse</a> that may one day overtake directly coding for the AVM2 or maybe we will even see haXe have more influence on flash soon for performance gains.  Some of the Alchemy LLVM virtual machine work is similar in nature to what haXe does and helps the language become an abstraction and translates into highly optimized code from very powerful and productive language syntax.</p>
<p>Anyways, I ramble, be sure to check out <a href="http://lab.polygonal.de/ds/" target="_blank">Data Structures for Game Developers by Polygonal Labs </a>now ported for<a href="http://lib.haxe.org/p/hx3ds" target="_blank"> haXe as hx3ds</a> if you are doing any sort of work in AS3 or haXe for AS3 it will be worth your while and provide a very common and useful data structures capabilities into your production that is highly optimized from one of the best AS3 developers.</p>
<blockquote><p>As the name suggests, <strong>hx3ds</strong> is a port of <strong>as3ds</strong> for haXe and is now available at <a href="http://lib.haxe.org/p/hx3ds">lib.haxe.org</a>. hx3ds only supports the flash player 10 target, as it makes extensive use of the Vector class. If you need data structures that compile across all platforms, take a look at <a href="http://lib.haxe.org/p/colhx">colhx</a> instead.</p>
<p><strong>Here’s a list of new features:</strong></p>
<ul>
<li>orders of magnitude faster</li>
<li>collections now support clone() and shuffle() operations</li>
<li>object pooling framework</li>
<li>revised graph, tree and linked list classes</li>
<li>memory manager for the virtual memory API (more on this soon)</li>
</ul>
</blockquote>
<blockquote>
<h3>The Structures Included</h3>
<h4>Multi-Dimensional Arrays</h4>
<p>The library contains a two-dimensional and three-dimensional array. They are both implemented by a single linear array rather than nested arrays. This is the fastest method in flash to simulate multi-dimensional arrays and outperforms the nested array method because multiple array lookups are slower compared to one lookup combined with a simple arithmetic expression (which you can also often precompute in the outer loop). The most obvious application would be a tilemap in 2d or a layered tilemap in 3d.</p>
<h4>Queue</h4>
<p>This is also called a FIFO structure (First In &#8211; First Out). The queue comes in two variations, which have the same methods, but differ in their implementations: There is the arrayed queue, which obviously uses an array internally, and the linked queue, which is build upon a linked list. They are both very similar, except that the arrayed version has a fixed size and is faster.<br />
A common application would be a command queue &#8211; imagine you have a unit in a strategy game and apply many commands which the unit should follow. All commands are enqueued and afterwards dequeued and processed in order.</p>
<h4>Stack</h4>
<p>Also commonly know as a FILO structure (First In &#8211; Last Out). Like the queue, this comes in two flavors: arrayed and linked. A stack is often not used directly, but a very important concept in programming. Please note, that a queue and a stack are not real structures, because they just define how data is accessed rather then stored.</p>
<h4>Tree</h4>
<p>A node-based structure. Every tree starts from a single node, called the root node. The root node can contain any number of child nodes, and every child node can again contain children. A tree node with no children is called a leaf node. In fact if you draw the nodes of a tree it looking like a real tree with branches. The AS3 display architecture is also a tree structure, so you could use this to manage your display objects and update them by traversing through the tree. Also, this is useful for decision trees, BVHs, storing a plot line or storing data recursively by applying the composite pattern.</p>
<h4>Binary Tree</h4>
<p>This is just a specialized kind of tree where each node is only allowed to have up to two children, called the left and right node. Binary trees are very often used for parsing input data, for example arithmetic expressions or when building a scripting system.</p>
<h4>Binary Search Tree (BST) and Hash Table</h4>
<p>Both structures store data that can be retrieved quickly by using a key. The method however differers greatly: The BST uses a recursive approach to split up large amounts of data into smaller sets. A hash table stores sparse key-based data using a hash-key in a small amount of space.</p>
<h4>Linked Lists</h4>
<p>A linked list is similar to an array. The main difference is that in an array, each cell contains just the data and is accessed by an index. A linked list consists of several node objects, which in addition to storing the data, manage a reference to the next node (singly linked) or to the next and previous node (doubly linked) in the list. Think of it as a more natural approach to work with sequential data.<br />
Other benefits are that you can insert and remove data quickly by just calling the appropriate method on the node itself &#8211; you don’t have to manage array indexes. Also in AS3 object access is faster than array access, so it competes very well in terms of performance when iterating over the list.</p>
<h4>Heap and Priority Queue</h4>
<p>A Heap is a special kind of binary tree in which every node is bigger than its child nodes. Whatever you throw into a heap, it’s automatically sorted so the item with the ‘most significant’ value (depending on the comparison function) is always the front item. A priority queue is build upon the heap structure, and can manage prioritized data &#8211; which can be used in limitless ways.</p>
<h4>Graph</h4>
<p>A graph is a loose node-based structure. Nodes are connected with arcs, and every node can point to any other node. They can also point to each other creating a bi-directional connection. It is essential for path finding, AI, soft-body dynamics with mass-springs systems and a lot more.</p>
<h4>Bit Vector</h4>
<p>A bit vector is some kind of array in which you can store boolean values (true/false &#8211; 1/0) as close as possible without wasting memory. I currently can’t think of a reasonable application, because usually you should have enough memory &#8211; but it’s nice to have because it shows basic bit masking operations.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/03/13/as3-data-structures-for-game-developers-ported-to-haxe-as-hx3ds-which-performs-faster/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adobe to Publish and Open RTMP Specification (Real Time Messaging Protocol)</title>
		<link>http://drawlogic.com/2009/01/20/adobe-to-publish-and-open-rtmp-specification-real-time-messaging-protocol/</link>
		<comments>http://drawlogic.com/2009/01/20/adobe-to-publish-and-open-rtmp-specification-real-time-messaging-protocol/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 04:58:43 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ADOBE]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[MULTI-USER]]></category>
		<category><![CDATA[NEWS]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RED5]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[fms]]></category>
		<category><![CDATA[multiuser]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[RTMFP]]></category>
		<category><![CDATA[rtmp]]></category>
		<category><![CDATA[VIDEO]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=362</guid>
		<description><![CDATA[Adobe will essentially open up the RTMP protocol officially. RTMP has been used in other tools such as Red5 and haXe video for some time now.  But officially having it open will make it possible for more products built on it.  I am sure that most of this is to combat silverlight and to gain [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200901/012009RTMP.html" target="_blank">Adobe will essentially open up the RTMP protocol </a>officially. <a href="http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol" target="_blank">RTMP </a>has been used in other tools such as Red5 and haXe video for some time now.  But officially having it open will make it possible for more products built on it.  I am sure that most of this is to combat silverlight and to gain more video users that can play flash formats. RTMP spec will be <a href="http://www.adobe.com/devnet/rtmp/" target="_blank">posted here</a> when ready.</p>
<blockquote><p>RTMP provides an enhanced and efficient way to deliver rich content. Developers and companies will have free and open access to the documented RTMP specification to help enable unparalleled delivery of video, audio and data in the open AMF, SWF, FLV and F4V formats compatible with Adobe Flash Player.</p></blockquote>
<p>Adobe has also been working on more real-time protocol tools based on UDP instead of TCP (which RTMP is based) that fall under <a href="http://en.wikipedia.org/wiki/Real_Time_Media_Flow_Protocol" target="_blank">RTMFP using ordered UDP </a>that will be interesting to watch evolve.  <a href="http://drawlogic.com/2008/12/12/adobe-stratus-client-to-client-flash-communication-p2p-with-rtmfp/" target="_blank">Stratus </a>is so far a sample of what is to come there.The UDP based real-time tools will be able to beat the capabilities of TCP based real-time  tools when using authoritative servers.</p>
<p>But with the RTMP announcement, multiuser and video applications should thrive even more with an open RTMP spec.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/01/20/adobe-to-publish-and-open-rtmp-specification-real-time-messaging-protocol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Stratus, Client to Client Flash Communication (P2P) with RTMFP</title>
		<link>http://drawlogic.com/2008/12/12/adobe-stratus-client-to-client-flash-communication-p2p-with-rtmfp/</link>
		<comments>http://drawlogic.com/2008/12/12/adobe-stratus-client-to-client-flash-communication-p2p-with-rtmfp/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 10:58:56 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ADOBE]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[MULTI-USER]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[real-time]]></category>
		<category><![CDATA[RTMFP]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[virtual]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=306</guid>
		<description><![CDATA[Adobe stratus sounds pretty interesting for flash client to client communication much like peer to peer networks for small numbers of people.
Want to build a video chat application, multi-player games or voice-over-ip applications for the Flash Player or AIR without worrying about setting up a server infrastructure? Stratus (which we showcased at MAX) is your [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Stratus" src="http://farm4.static.flickr.com/3121/3102472294_042ff55e03_o.jpg" alt="" width="215" height="215" /><a href="http://labs.adobe.com/technologies/stratus/" target="_blank">Adobe stratus</a> sounds pretty interesting for <a href="http://www.webkitchen.be/2008/12/12/start-playing-with-adobe-stratus-client-to-client-communication/" target="_blank">flash client to client communication</a> much like peer to peer networks for small numbers of people.</p>
<blockquote><p>Want to build a video chat application, multi-player games or voice-over-ip applications for the Flash Player or AIR without worrying about setting up a server infrastructure? Stratus (which we showcased at MAX) is your new best friend.</p></blockquote>
<blockquote><p>Stratus is a beta hosted rendezvous service that <strong>helps establish communication between Flash Player or AIR clients. Once two clients are connected to Stratus</strong>, <strong>they can send data directly client to client.</strong> The APIs in Flash Player 10 and Adobe AIR 1.5 allow for <strong>point-to-point communication between a small number of subscribers</strong>. Publishers have to send data to all subscribing clients, so the number of subscribers is limited to the available bandwidth on the publisher end.</p></blockquote>
<p>This must be one of the first Real-Time Media Flow Protocol (RTMFP) protocol usage programs from Adobe?  Basically this protocol is adding better UDP or broadcast support which allows for larger sets of users and is common in large scale real-time games.  Here it seems to be more of a peer to peer usage rather than authoratative approach (maybe flash media server will have large user set support with this) which limits to about 15 users or the lowest latency in the group with anything close to real-time syncing. Stratus seems like more of a matchmaking middle man to help with nat punchthrough and then it relies on peer to peer.  But more fun in store checking it out.</p>
<p>P2P like this can&#8217;t really be used for games due to cheating unless one client is the independent server but this works great for small file sharing apps, whiteboards, chats, watching videos at the same time, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2008/12/12/adobe-stratus-client-to-client-flash-communication-p2p-with-rtmfp/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Adobe Opens Flash Format Specifications for SWF, AMF and Flash Video FLV (Open Screen Project)</title>
		<link>http://drawlogic.com/2008/05/01/adobe-opens-flash-format-specifications-for-swf-amf-and-flash-video-flv-open-screen-project/</link>
		<comments>http://drawlogic.com/2008/05/01/adobe-opens-flash-format-specifications-for-swf-amf-and-flash-video-flv-open-screen-project/#comments</comments>
		<pubDate>Thu, 01 May 2008 12:54:01 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ADOBE]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[COMPANIES]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[MARKET]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[flash player]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[open screen project]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[XFL]]></category>

		<guid isPermaLink="false">http://drawk.wordpress.com/?p=202</guid>
		<description><![CDATA[Adobe is taking the inside lane in the industry it seems with the Open Screen Project.  What does this mean? It seems like SWF and FLV formats are now largely open and licenses removed.  With the XFL format possibly on its way (probably based on mxml) to replace closed .FLA files it is [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe is taking the inside lane in the industry it seems with the <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200804/050108AdobeOSP.html" target="_blank">Open Screen Project</a>.  What does this mean? It seems like <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200804/050108AdobeOSP.html" target="_blank">SWF and FLV formats are now largely open and licenses removed</a>.  With the <a href="http://drawlogic.com/2008/03/09/moock-mentions-xfl-for-open-flash/" target="_blank">XFL format possibly on its way</a> (probably based on mxml) to replace closed .FLA files it is pretty clear that Adobe and Flash will see a large uptick in the mindshare. As well as looking to create a broader mobile platform for the flash player.</p>
<blockquote><p><strong>The Open Screen Project will address potential technology fragmentation by enabling the runtime technology to be updated seamlessly over the air on mobile devices. </strong>The consistent runtime environment is intended to provide optimal performance across a variety of operating systems and devices, and ultimately provide the best experience to consumers.</p>
<p>To support this mission, and as part of Adobe’s ongoing commitment to enable Web innovation, Adobe will continue to open access to Adobe Flash technology, accelerating the deployment of content and rich Internet applications (RIAs). This work will include:</p>
<ul>
<li>Removing restrictions on use of the SWF and FLV/F4V specifications</li>
<li>Publishing the device porting layer APIs for Adobe Flash Player</li>
<li>Publishing the Adobe Flash® Cast™ protocol and the <strong>AMF protocol for robust data services</strong></li>
<li>Removing licensing fees &#8211; making next major releases of Adobe Flash Player and Adobe AIR for devices free</li>
</ul>
</blockquote>
<p><strong>This is big.  It has mutiple prongs.</strong> Adobe would like to make <strong>Flash a common mobile standard</strong>, hrm no Apple on this list (it is probably a slight move there against that).</p>
<p>Adobe would also like to <strong>continue their lead of web video</strong>.  And they finally are recognizing the closed format of SWF is not as desirable as an open one, there is still considerable control for Adobe over the player.  But they get insights and contributions from many large companies to help make it work on their platform, engraining the format further.  The providers, especially mobile and internet tv, will want to provide good user experiences to compete with the iPhone and regular T.V. respectively.  Flash being open helps both of those markets.</p>
<p>Adobe is also moving further to open source key formats and technologies like the recent Flex 3 SDK and now the AMF format which was a roadblock.  This is probably good news for servers like Red5 and also many other media servers and remoting services in many more place.  <strong>AMF is particularly nice because it is a binary, extremely compact and limited bloat format. </strong> Without it being open it loses much of its benefit as a standard.  Being open and a further crunching from the XML bloat services, this can be very good for many reasons such as throughput and faster services, apps and games with remote data.</p>
<p><strong>Another reason is the desktop market. </strong> They want Flash to work flawlessly on Linux but they don&#8217;t&#8217; have the manpower for a 2% market share.  So this is a very smart move for the desktop players (AIR, and Linux Flash).</p>
<p>The only thing that partially makes it scary is the line up, Sony, Verizon, etc.  <strong>As long as these are contributors and not partners in DRM crime then we have something. </strong>Hopefully they are in it to make better entertainment and mobile platforms cheaper.<strong><br />
</strong></p>
<p>Being able to peer into the code and a move to allow better open integration makes it a better platform, where better stuff can be built on top of that.  Let&#8217;s hope it is done right. Everyone is making Apple look really closed and locked down lately.</p>
<ul>
<li><a href="http://www.adobe.com/openscreenproject/" target="_blank">Open Screen Project</a></li>
<li><a href="http://www.adobe.com/openscreenproject/developers/" target="_blank">Open Screen Project for Developers</a></li>
<li><a href="http://www.adobe.com/devnet/swf/" target="_blank">SWF Specification</a></li>
<li><a href="http://www.adobe.com/devnet/flv/" target="_blank">FLV Specification</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2008/05/01/adobe-opens-flash-format-specifications-for-swf-amf-and-flash-video-flv-open-screen-project/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
