<?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"
	>

<channel>
	<title>FFilmation</title>
	<atom:link href="http://www.ffilmation.org/website/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ffilmation.org/website</link>
	<description>Opensource AS3 Isometric Engine</description>
	<pubDate>Mon, 07 Jul 2008 15:38:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>FFilmation 1.2 released !</title>
		<link>http://www.ffilmation.org/website/2008/07/06/ffilmation-12-released/</link>
		<comments>http://www.ffilmation.org/website/2008/07/06/ffilmation-12-released/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 22:19:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=51</guid>
		<description><![CDATA[I&#8217;m going on a 2 week vacation so there&#8217;s no point in delaying this. Therefore, here&#8217;s a new release. This one is big and includes lots of improvements and some additions everybody was asking for ( at least everybody that wrote to me ):
Also I have updated &#8220;My Name is Poncho&#8221; the Demo. Now it [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going on a 2 week vacation so there&#8217;s no point in delaying this. Therefore, here&#8217;s a new release. This one is big and includes lots of improvements and some additions everybody was asking for ( at least everybody that wrote to me ):</p>
<p>Also I have updated &#8220;My Name is Poncho&#8221; the Demo. Now it includes 3 scenes, mouse navigation ( showing the new A* pathfind method ) and keyboard navigation. You can download its sources from the download area and use them as tutorials.</p>
<p>You can also browse the new API reference from the link in the sidebar.</p>
<p>So what&#8217;s new ?</p>
<h2>NEW</h2>
<ul>
<li>Nicer object shadows, that fade away as the object moves away from the plane. Try jumping in the demo to see it in action.</li>
<li>The Grid is now generated on-demand, only used cells are generated. No longer we create a huge array that covers the whole scene. This has a huge impact in both initialization time and memory usage, and makes possible to have much bigger scenes. Overall a great improvement in my opinion.</li>
<li>Added Mouse translation coordinates and an A* pathfinding: all you need to program point-and-click  adventuring and Diablo clones.</li>
<li>Added shadowQuality settings. Shadows are the main bottleneck of the engine, therefore there is a need to have quality options to adjust them to your requirements.</li>
<li>Added the fMaterialTypes class, where you can find info on the available materials and how to use them</li>
<li>Added the &#8220;fence&#8221; material</li>
<li>New zSort algorythm. It is cleaner and faster, and I hope this one will work properly.</li>
<li>You can now destroy unused scenes via fEngine.destroyScene(). This will allow you to free system resources.</li>
<li>Added the &#8220;xmlObj&#8221; property to elements</li>
<li>Added the &#8220;window&#8221; material.</li>
<li>Added the &#8220;animated&#8221; property to fObjects, which allows some optimization.</li>
<li>Added the fHole class, which gives control over holes in fPlanes. Now holes can be opened and closed.</li>
<li>Added a Building Generator</li>
<li>Moved generators to new package &#8220;helpful&#8221; outside the engine, as they really do not belong there.</li>
<li>Sprite hierarchy is properly setup so you can add Mouse Events to fElements and the appropiate element receives the event.</li>
<li>Materials now tile seamlessly along adjacent surfaces.</li>
</ul>
<h2>FIXES</h2>
<ul>
<li>Fixed: The engine now assigns an internal unique ID to each element, and uses that id in internal hashtables instead of relying on the IDs you assign. This was causing lots of trouble.</li>
<li>Fixed: &#8220;BOX Tag&#8221; from generators were ignored</li>
<li>Fixed: Exception caused by shadow projection trying to calculate intersection between paralel lines.</li>
<li>Fixed: Several shadow projection bugs.</li>
<li>Fixed: Some collisions between objects were missed.</li>
<li>Fixed: mathUtils.getAngle now returns values consisten with the engine&#8217;s coordinate system.</li>
</ul>
<p>On an unrelated note, development of the engine ( and my personal life in general ) is being treatened by an insane addiction to La Mulana. Stay away while you stll can&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/07/06/ffilmation-12-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Finally I&#8217;m moving on</title>
		<link>http://www.ffilmation.org/website/2008/06/25/finally-im-moving-on/</link>
		<comments>http://www.ffilmation.org/website/2008/06/25/finally-im-moving-on/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 21:55:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=50</guid>
		<description><![CDATA[Pfff it&#8217;s been a crappy month. I&#8217;ve rebuilt the zSort algorythm twice and smashed my head againt the keyboard many times, but finally this one does work and does perform. How frustrated I felt during the process is something I&#8217;ll never forget.
Also, I received feedback from several people trying to have big maps and complaining [...]]]></description>
			<content:encoded><![CDATA[<p>Pfff it&#8217;s been a crappy month. I&#8217;ve rebuilt the zSort algorythm twice and smashed my head againt the keyboard many times, but finally this one does work and does perform. How frustrated I felt during the process is something I&#8217;ll never forget.</p>
<p>Also, I received feedback from several people trying to have big maps and complaining about the grid initialization times and memory usage. This got me thinking: generating a  grid at initialization is very inneficient (stupid) and makes impossible to have  big maps. So, why don&#8217;t we make it work as a real cache, and cells are  generated on-demand ?</p>
<p>So I have done it. Now a cell is only created  when it is needed. I think this is a big improvement. You can extract  the latest code via SVN and tell me how it works.</p>
<p>So after a few weeks of desperation It seems that everything stays the same, but I think I have more solid foundations now. Next: pathfinding (at last !! ), character-character collision and bullets. Sounds easy after all I&#8217;ve gone through lately.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/06/25/finally-im-moving-on/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Demo update</title>
		<link>http://www.ffilmation.org/website/2008/06/11/demo-update/</link>
		<comments>http://www.ffilmation.org/website/2008/06/11/demo-update/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 00:20:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=49</guid>
		<description><![CDATA[I have updated My Name is Poncho with a new Village scene. The scene is very complex and was meant to be a stress test for the engine. I don&#8217;t expect it to run smooth on any machine: there are lots of doors, windows and shadows.
Also the new zSort algorythm is slow when the scenes [...]]]></description>
			<content:encoded><![CDATA[<p>I have updated <strong>My Name is Poncho</strong> with a new Village scene. The scene is very complex and was meant to be a <strong>stress test</strong> for the engine. I don&#8217;t expect it to run smooth on any machine: there are lots of doors, windows and shadows.</p>
<p>Also the new zSort algorythm is slow when the scenes have this level of complexity: sorting all planes in 3D becomes a non-trivial operation that involves lots of calculations. I plan to work on optimizing it or at least provide a way to <strong>include the sort result into the scene&#8217;s XML</strong> so it doesn&#8217;t have to be recalculated every time you load it. But at least it works now.</p>
<p>Here&#8217;s a list of the engine&#8217;s changes that are shown in this demo. They are not available as a release, but you can always checkout the latest sources via SVN.</p>
<h3>Changelog</h3>
<ul>
<li>Added the fMaterialTypes class, where you can find info on the available materials and how to use them</li>
<li>Added the &#8220;fence&#8221; material</li>
<li>New zSort algorythm. It is cleaner and faster (it really is, but this particular demo is very tricky to sort), and I hope this one will work properly.</li>
<li>Added the &#8220;xmlObj&#8221; property to elements</li>
<li>Added the &#8220;window&#8221; material.</li>
<li>Added the &#8220;animated&#8221; property to fObjects, which allows some optimization.</li>
<li>Added the fHole class, which gives control over holes in fPlanes. Now holes can be opened and closed.</li>
<li>Added a Building Generator</li>
<li>Moved generators to new package &#8220;helpful&#8221; outside the engine, as they really do not belong there. Thnx to Jason Booth for the wisdom.</li>
<li>Sprite hierarchy is properly setup so you can add Mouse Events to fElements and the appropiate element receives the event.</li>
<li>Materials now tile seamlessly along adjacent surfaces.</li>
<li>Fixed: The engine now assigns an internal unique ID to each element, and uses that id in internal hashtables instead of relying on the IDs you assign. This was causing lots of trouble.</li>
<li>Fixed: &#8220;BOX Tag&#8221; from generators were ignored</li>
<li>Fixed: Exception caused by shadow projection trying to calculate intersection between paralel lines.</li>
<li>Fixed: Several shadow projection bugs</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/06/11/demo-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>On simplicity</title>
		<link>http://www.ffilmation.org/website/2008/06/03/on-simplicity/</link>
		<comments>http://www.ffilmation.org/website/2008/06/03/on-simplicity/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 15:12:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=48</guid>
		<description><![CDATA[If there was one single advise I could give to rookie programmers of any language, It would be: if putting your idea into code turns into something obscure and complex, you are using the wrong approach. I&#8217;m not saying anything can be resolved in two lines of code. However, the method itself should be easy [...]]]></description>
			<content:encoded><![CDATA[<p>If there was one single advise I could give to rookie programmers of any language, It would be: if putting your idea into code turns into something obscure and complex, you are using the wrong approach. I&#8217;m not saying anything can be resolved in two lines of code. However, the method itself should be easy to write down, explain and follow. Some of the steps would involve advanced matrix calculations, for example, but still these calculations could be easily wraped into something like &#8220;rotate object to face camera&#8221;.</p>
<p>It has happened to me countless times during the years: you start with a given algorythm to solve your objective, see how it turns out to be more difficult than you expected, add a lot of obscure if clauses here and there to cover tricky cases when this is parallel to that and you divide by 0, just to end up with three hundred lines of cryptic garbage and nested functions even you don&#8217;t fully understand. You exhale in satisfaction, think to yourself &#8220;wow, that was more difficult than expected but I am so good I solved it&#8221;. Two days later you emerge from the shower feeling an idiot, delete the work from the last two weeks and write it again in one hour unsing two nested loops and one helper function.</p>
<p>This is what has happened to me ( yet again ) last week. Originally, way before I made it public, the FFilmation engine was two dimensional, you had a floor and walls and you moved things along the X and Y axis. Perfect for Diablo clones an Habbohotel look-alikes. So I programmed the zSorting algorythm in 2d. More precisely, I thought it in 2D. And it was clear, not easy, not trivial, but clear. Then, one day, I realized It wouldn&#8217;t take much to transform the engine to be fully 3d. Still isometrically rendered, but with freedom to place and move stuff at different heights. Instead of rethinking the zSort in 3D, I patched what I already had, adding more conditionals, functions, loops and whatever I needed to solve every new situation I encountered when testing my own examples.</p>
<p>It worked. At least I thought It did. I&#8217;m sure 90% of the people playing with the engine will be building &#8220;flat&#8221; scenes, without much vertical complexity. But I am not. I am building a complex town scene with tall buildings, similar to the environment in Assassin&#8217;s Creed. Ok, not even remotely similar due to obvious technological limitations, but you get the idea. Such scenes need real 3d zSorting of all planes and cells inbetween, and I have painfully discovered that the engine does not provide that. Even more painful is trying to figure out what is not working, tracking obscure variables and method calls I no longer understand. To put it short: currently we have a crappy 3D implementation of a 2D algorythm that doesn&#8217;t work well. If you stick to 2d spaces you&#8217;ll be fine, but you can&#8217;t go very far beyond that.</p>
<p>I&#8217;m already in the process of rewritting the zSort algorythm. Several classes are gone (the API doesn&#8217;t change, no worries), as they added a lot of bloat and little help, and the result is way smaller, way cleaner and way more understandable. And works well. The repository is already updated.</p>
<p>I hope next time I take my own advise.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/06/03/on-simplicity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>About me</title>
		<link>http://www.ffilmation.org/website/2008/05/14/about-me/</link>
		<comments>http://www.ffilmation.org/website/2008/05/14/about-me/#comments</comments>
		<pubDate>Wed, 14 May 2008 10:41:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=47</guid>
		<description><![CDATA[Originally I didn&#8217;t pretend to write about me. However, as I get asked these questions a lot, I have added an &#8220;About me&#8221; page to the sidebar contents. But really, I&#8217;d rather keep the mask on, as those Daft Punk guys.
]]></description>
			<content:encoded><![CDATA[<p>Originally I didn&#8217;t pretend to write about me. However, as I get asked these questions a lot, I have added an &#8220;About me&#8221; page to the sidebar contents. But really, I&#8217;d rather keep the mask on, as those Daft Punk guys.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/05/14/about-me/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mouse Events update</title>
		<link>http://www.ffilmation.org/website/2008/05/13/mouse-events-update/</link>
		<comments>http://www.ffilmation.org/website/2008/05/13/mouse-events-update/#comments</comments>
		<pubDate>Mon, 12 May 2008 23:06:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=44</guid>
		<description><![CDATA[This time only a small post regarding Mouse Events. The AS3 Event model is way more complex than the old one. You have to carefully enable/disable events for every DisplayObject in your hierarchy if you want your listeners to receive the events.
In the FFilmation engine there&#8217;s an added complexity, as occluded elements ( those that [...]]]></description>
			<content:encoded><![CDATA[<p>This time only a small post regarding <strong>Mouse Events</strong>. The AS3 Event model is way more complex than the old one. You have to <strong>carefully enable/disable events for every DisplayObject in your hierarchy</strong> if you want your <strong>listeners </strong>to receive the events.</p>
<p>In the FFilmation engine there&#8217;s an added complexity, as <strong>occluded </strong>elements ( those that were made transparent so you could see behind ) should also be<strong> transparent to mouse events</strong>, but If one alement inside that occluded element had a Mouse event (a door in an occluded wall) , that particular event should be accessible.</p>
<p>It took me more than expected, but finally sprite <strong>hierarchy </strong>is properly <strong>setup </strong>so you can <strong>add Mouse Events to fElements</strong> and the appropiate element receives the event. Also I added the <strong>fHole class</strong>, which gives control over holes in fPlanes. Now <strong>holes </strong>can be <strong>opened </strong>and <strong>closed</strong>.</p>
<p>I have updated the <strong>demo </strong>to reflect this <strong>new developments</strong>, try approaching a door and clicking on it to open it. You can checkout the code from Googlecode.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/05/13/mouse-events-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FFilmation 1.1 released + SVN Support</title>
		<link>http://www.ffilmation.org/website/2008/05/01/ffilmation-11-released-svn-support/</link>
		<comments>http://www.ffilmation.org/website/2008/05/01/ffilmation-11-released-svn-support/#comments</comments>
		<pubDate>Thu, 01 May 2008 17:59:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=43</guid>
		<description><![CDATA[The FFilmation team (me) is proud to announce FFilmation 1.1 !!
I am very happy with the response I have received so far, and this has encouraged me to continue my work on this. My previous post contains detailed info on what I have been working on. Here&#8217;s a summary of what&#8217;s new.
NEW
Added coordinate-translation methods to [...]]]></description>
			<content:encoded><![CDATA[<p>The FFilmation team (me) is proud to announce <strong>FFilmation 1.1</strong> !!</p>
<p>I am very <strong>happy </strong>with the <strong>response </strong>I have received so far, and this has encouraged me to continue my work on this. My <strong>previous post</strong> contains detailed <strong>info </strong>on what I have been working on. Here&#8217;s a <strong>summary </strong>of what&#8217;s new.</p>
<p><strong>NEW</strong></p>
<p>Added coordinate-translation methods to fScene, so you can easily map Stage coordinates into game coordinates, or viceversa<br />
Added camera occlusion<br />
Added Scene controllers<br />
Added enable/disable methods to the scene<br />
Added Element controllers<br />
Added Perlin Material<br />
Added Door Material<br />
Added Generator interface + SCATTER Generator<br />
Implemented fScene.removeOmniLight</p>
<p><strong>FIXES</strong></p>
<p>Fixed fObject.hide() causing a zSort exception<br />
Fixed createCharacter()<br />
Fixed false shadows from floors to higher walls<br />
Fixed a big performance botteneck that affected character movement</p>
<p><strong>TODO</strong><br />
. Finish fObject shadowing models<br />
. AI helpers: isElementVisibleFrom(), findPathTo(), findAmbushPathTo()</p>
<p>I have updated the <a href="http://www.ffilmation.org/website/downloads/">download </a>page with the new release and the sources for the My Name in Poncho demo, where you will find examples and explanations on how to use the new features. Also, the new <a href="http://www.ffilmation.org/website/documentation/api/">API reference</a> is up. The new release should be backwards-compatible.</p>
<h2>SVN</h2>
<p>Yep, everybody was asking for this, so I have put the project on <strong>Google Code</strong>. You can checkout the latest source there and do all kinds of cool SVN stuff. To be honest I have no idea how this works. I managed to get this <strong>TortoiseSVN </strong>working after three different tutorials and I&#8217;m still not sure I didn&#8217;t screw.</p>
<p>Here&#8217;s the link: <a href="http://code.google.com/p/ffilmation/">http://code.google.com/p/ffilmation/</a></p>
<p><strong>Have fun !</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/05/01/ffilmation-11-released-svn-support/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New FFilmation demo</title>
		<link>http://www.ffilmation.org/website/2008/04/27/new-ffilmation-demo/</link>
		<comments>http://www.ffilmation.org/website/2008/04/27/new-ffilmation-demo/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 12:07:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=42</guid>
		<description><![CDATA[Edit: Firefox users please update to the latest player version (9.0.124.0 ) for a big performance increase.
I have been working on a new demo for the FFilmation engine. I thought that the best way to decide which features were most important was to simulate making a &#8220;game&#8221; and see what was I missing the most [...]]]></description>
			<content:encoded><![CDATA[<p>Edit: Firefox users please <strong>update </strong>to the <strong>latest player</strong> version (9.0.124.0 ) for a big <strong>performance increase</strong>.</p>
<p>I have been working on a <strong>new demo</strong> for the FFilmation engine. I thought that the best way to decide which features were most important was to <strong>simulate </strong>making a &#8220;game&#8221; and see what was I <strong>missing </strong>the most along the way.</p>
<p>The demo will be <strong>updated </strong>continuously with the new features so I can see how <strong>everything works together</strong>. Besides, more <strong>complex scenes</strong> push the engine and the processor to  its <strong>limits</strong>, and makes it easier to find <strong>performance </strong>bottlenecks.</p>
<p>The demo can be accessed <a href="http://www.ffilmation.org/mynameisponcho">here</a>. Please note that It uses <strong>heavy lighting</strong> and a big scene. <strong>Slowdowns </strong>are to be expected in older machines. Here is a list of the new features showcased.</p>
<h2>Materials</h2>
<h3>Perlin Material</h3>
<p>Perlin materials are <strong>procedural materials</strong> formed by a base material and unlimited layers of other materials, each one rendered from a perlin noise definition. The <strong>perlin noise</strong> for each layer is used as the alpha-mask for that layer. With perlin materials, you can create more natural-looking environments without extra effort.</p>
<p>In this case, a 2-layer perlin material is used as ground for the forest scene.</p>
<h3>Door material</h3>
<p>The door material is not a big deal, but It has made my life a lot easier. It works as an <strong>standard </strong>tile material, but it <strong>draws a door </strong>of given dimensions in the middle of it. You can specify a base material, a material for the door itself and a material for the frame. The doors in the demo are defined like this:</p>
<pre>&lt;materialDefinition name="MNIP_ForestMaterials_Door" type="door"&gt;

&lt;!-- Base "tile" material for the wall --&gt;
&lt;base&gt;FFMaterials_woods2_Wood2_13&lt;/base&gt;
&lt;!-- Frame material --&gt;
&lt;frame&gt;FFMaterials_woods2_Wood2_11&lt;/frame&gt;
&lt;!-- Door material --&gt;
&lt;door&gt;FFMaterials_woods2_Wood2_13&lt;/door&gt;
&lt;!-- Door position, as percent of wall size, from -100 to 100.
The default 0 value centers the door in the wall --&gt;
&lt;position&gt;0&lt;/position&gt;
&lt;!-- Door size, without frame --&gt;
&lt;width&gt;150&lt;/width&gt;
&lt;height&gt;200&lt;/height&gt;
&lt;!-- Frame size --&gt;
&lt;framesize&gt;15&lt;/framesize&gt;

&lt;/materialDefinition&gt;</pre>
<p>A subtle <strong>dropShadow filter</strong> is used to give the frame a bit of thickness, making the result less flat and quite convincing.</p>
<h2>Controllers</h2>
<p>Both <strong>elements </strong>and <strong>scenes </strong>can be assigned a <strong>controller </strong>object. Controllers are an elegant and scalable way of adding <strong>behaviours </strong>to your applications.</p>
<p>A typical <strong>element controller</strong> can be one that reads mouse input and moves a character, or the AI for the enemies in you game. For scenes, the controllers can control daylight or program specific behaviours such as the train arriving to the station every X minutes.</p>
<p><strong>Controllers </strong>have an <strong>enabling/disabling</strong> methods. Disabling an scene disables its controller and controllers of all elements in that scene. This is useful to <strong>pause you game</strong>, bring in an options screen, launch a cutscene, load another scene, etc etc</p>
<p>An piece of the controller for the forest:</p>
<pre>public function assignScene(scene:fScene):void {</pre>
<pre>   this.scene = scene</pre>
<pre>   // Follow Poncho
   var p:fCharacter = this.scene.all["Poncho"]
   this.scene.createOmniLight(&#8221;light_poncho&#8221;,p.x-20,p.y-20,p.z+10,200,&#8221;#ddffdd&#8221;,50,00,true)
   this.scene.all["light_poncho"].follow(p)</pre>
<pre>   // Look for all Money Bags and add a light above each of them
   for(var i:Number=0;i&lt;this.scene.objects.length;i++) {
     var obj:fObject = this.scene.objects[i]
     if(obj.definitionID==&#8221;MNIP_MoneyBag&#8221;) {
        this.scene.createOmniLight(&#8221;light_&#8221;+obj.id,obj.x,obj.y,obj.z+25,300,&#8221;#ffffff&#8221;,100,0,true)
        obj.addEventListener(fRenderableElement.HIDE,this.hideListener)
     }
  }</pre>
<pre>}</pre>
<pre>private function hideListener(evt:Event):void {
    // Delete corresponding light
    this.scene.removeOmniLight(this.scene.all["light_"+evt.target.id])
}</pre>
<p>A light is created and attached to the main character. For each money bag in the scene another light is added on top of it. When the money bag dissapears, the light is removed.</p>
<p>I could program this behaviour in my main game class, but what if I only want it to happen in this scene ? Instead of ugly conditionals, I use an scene controller. The generic Money Bag retrieve event is in my main game class, because I want my character to pick up money bags in all scenes where they appear. But I only want the lights on top of them in this scene.</p>
<h2>Generators</h2>
<p>A generator is a <strong>class </strong>that given some data from an scene XML, <strong>returns extra xml elements</strong> that are added to that XML at load time. This allows to use procedural methods to generate more complex scenes effortlessly. The scene <strong>looks for generators</strong> in the XML and calls the appropiate class to retrieve the extra elements.</p>
<p>In the demo, I use a scatter generator. The <strong>scatter generator</strong> is used to <strong>randomly fill an area with objects</strong>. You specify the area to cover and a list of candidate object definitions. Elements from these definitions are randomly selected and placed  along the surface.</p>
<p>Optionally, a <strong>noise definition</strong> can be used. If so, the element&#8217;s positions are restricted to the area covered by the noise. This is useful for example if you have a Perlin ground and want to distribute trees only in the green areas of the material.</p>
<p>Here&#8217;s an example:</p>
<pre>&lt;generator&gt;

    &lt;classname&gt;org.ffilmation.engine.generators.fScatterGenerator&lt;/classname&gt;

     &lt;data amount="8" minDistance="200" randomizeOrientation="true" noise="Ground_noise_1"&gt;

         &lt;!-- Area covered by the objects --&gt;
         &lt;area&gt;
            &lt;origin x="0" y="1400" z="0"/&gt;
            &lt;end x="1000" y="4000" z="0"/&gt;
         &lt;/area&gt;

         &lt;!-- A Weighed list of candidates, so you can define which types appear more --&gt;
         &lt;candidate definition="FFTrees_misc_tree5" weight="4"/&gt;
         &lt;candidate definition="FFTrees_misc_tree8" weight="2"/&gt;
         &lt;candidate definition="MNIP_MoneyBag" weight="1"/&gt;

     &lt;/data&gt;

&lt;/generator&gt;</pre>
<h2>Camera occlusion</h2>
<p>You can now specify an <strong>alpha </strong>value for <strong>elements </strong>in <strong>front </strong>of the <strong>camera</strong>. This will make walls and objects transparent as you walk behind them, and you will be able to see what you are doing. I found out that for walls and floors, using the OVERLAY blending mode gave the nicer results. This can be changed using the API of the fCamera object.</p>
<h2>Finally&#8230;</h2>
<p>Also, a several <strong>bugs </strong>have been <strong>fixed </strong>and I have <strong>optimized </strong>some of the <strong>algorythms</strong>. Adding new features has been less painful than I thought: the <strong>core </strong>of the engine is <strong>responding </strong>quite <strong>well</strong>. I hope I can <strong>release </strong>a 1.1 version with all these <strong>soon</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/04/27/new-ffilmation-demo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Current developments</title>
		<link>http://www.ffilmation.org/website/2008/04/15/current-developments/</link>
		<comments>http://www.ffilmation.org/website/2008/04/15/current-developments/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 15:09:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=41</guid>
		<description><![CDATA[First off all I&#8217;d like to thank everybody ( yet again ) that has showed appreciation for this project. Here&#8217;s a brief status report:
There are a couple of key features I haven&#8217;t finished yet, and this is why I&#8217;m not putting the source on google code (many people has asked for this) or sourceforge yet: [...]]]></description>
			<content:encoded><![CDATA[<p>First off all I&#8217;d like to thank everybody ( yet again ) that has showed appreciation for this project. Here&#8217;s a brief status report:</p>
<p>There are a couple of key features I haven&#8217;t finished yet, and this is why I&#8217;m not putting the source on google code (many people has asked for this) or sourceforge yet: I have a very clear idea of how they should be done and I prefer to wait until I finish these key features. Then I&#8217;ll setup a svn repository for the engine.</p>
<p>One of these features is an abstract controller interface that assigns a controller class to any element on the scene: controlllers can be anything: AI controllers, keyboard controlled or network-controlled for example, allowing easy multiplayer applications. This should make integration with any server-side technology reasonabily easy. This is already done.</p>
<p>Another recent obsession I have is procedural scene generation: I was creating some test scenes to evaluate how the engine performed with big scenarios and found out that creating even the most pathetic and unnatural forest took me hours of copy-pasting XML lines. And I though that anyone that doesn&#8217;t have an army of level designers behind would drop its project simply because creating all the gfx and scenarios would take way too much time.</p>
<p>So I have added a procedural terrain generator that uses perlin noise to simulate natural textures and uses similar noise functions to place trees along the surface, or objects in the scenario. This allowed me to gererate realistic-looking forests of any size withous any effort. Adjusting the parameters of the perlin noise you can create very diffeerent scenarios. I&#8217;ll update the site with an example soon.</p>
<p>Also these big scenes have shown several performance bottlenecks that I didn&#8217;t notice with the smaller examples. These have already been solved so the next release will perform way better, specially with bigger scenes.</p>
<p>My next step will be a xml-based procedural &#8220;dungeon&#8221; generator (something like <a href="http://www.aarg.net/%7Eminam/dungeon.cgi">http://www.aarg.net/~minam/dungeon.cgi</a>). Once both parametric exterior and interior generators are done I think the engine will cover a wide range of games/applications.</p>
<p>Stay tuned. If real life is kind to me all these will happen soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/04/15/current-developments/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The FFilmation Forum is open</title>
		<link>http://www.ffilmation.org/website/2008/04/08/the-ffilmation-forum-is-open/</link>
		<comments>http://www.ffilmation.org/website/2008/04/08/the-ffilmation-forum-is-open/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 22:00:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ffilmation.org/website/?p=40</guid>
		<description><![CDATA[Hello,
I have setup a forum for all FFilmation users to use. You can access it from the sidebar links. Just be kind to each other, I&#8217;d rather be spending my time programming than moderating.
Bye
]]></description>
			<content:encoded><![CDATA[<p>Hello,</p>
<p>I have setup a forum for all FFilmation users to use. You can access it from the sidebar links. Just be kind to each other, I&#8217;d rather be spending my time programming than moderating.</p>
<p>Bye</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ffilmation.org/website/2008/04/08/the-ffilmation-forum-is-open/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
