<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel rdf:about="http://feeds.garagegames.com/rss/blogs/developer/49241/">
		<title>Blog for Neo Binedell at GarageGames.com</title>
		<description>Blog feeds for Gamers and Developers in the GarageGames community.</description>
		<link>http://www.garagegames.com/</link>
		<image rdf:resource="http://www.garagegames.com/images/GarageGames_logo_small_w.gif" />
		<dc:date>2008-08-07T23:08:30+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/14392"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/13847"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/13075"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/12798"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/12362"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/11678"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/11100"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/10707"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/10686"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/49241/10457"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/49241/14392">
		<dc:format>text/html</dc:format>
		<dc:date>2008-03-05T15:23:12+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>Iso-phagus</title>
		<link>http://www.garagegames.com/blogs/49241/14392</link>
		<description>I've had a pretty hectic ride for the last 4 months but my life seems to be calming down to a panic again.&lt;br&gt;&lt;br&gt;So I've been away.&lt;br&gt;&lt;br&gt;I'm back.&lt;br&gt;&lt;br&gt;I'm sure there is much rejoicing... (or gnashing of teeth).&lt;br&gt;&lt;br&gt;ISO Pack? - Full steam ahead, specifics in my next blog post to come soon as...</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/13847">
		<dc:format>text/html</dc:format>
		<dc:date>2007-11-12T20:04:38+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>Theora Video Seek, Loop And Callback Support</title>
		<link>http://www.garagegames.com/blogs/49241/13847</link>
		<description>I added a resource for seeking theora videos etc, more &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=13846'&gt;HERE&lt;/a&gt;&lt;br&gt;&lt;br&gt;I will post another plan soon concerning the status of the Iso Builder (yes its still happening, I just need to find time to get back to it soon).</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/13075">
		<dc:format>text/html</dc:format>
		<dc:date>2007-06-17T21:43:39+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>FX Composer 2 - Public Beta Released</title>
		<link>http://www.garagegames.com/blogs/49241/13075</link>
		<description>&lt;blockquote&gt;&lt;font size=1&gt;Quote:&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;br&gt;FX Composer 2 is a powerful integrated development environment for shader authoring. With support for DirectX and OpenGL, HLSL, COLLADA FX, and CgFX, as well as .fbx, .x, .3ds, .obj, and .dae formats, FX Composer provides true cross-platform functionality.&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;a href='http://developer.nvidia.com/object/fx_composer_home.html#downloads' target=_blank&gt;&lt;br&gt;&lt;img src='http://www.nvidia.com/dev_content/blast/img/2007/6/FX_Composer_2.jpg'  align=center alt=&quot;&quot;&gt;&lt;br&gt;&lt;/a&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/12798">
		<dc:format>text/html</dc:format>
		<dc:date>2007-04-27T01:38:41+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>TGB Isometric Add-On Pack - Part 6: nxAnimator!</title>
		<link>http://www.garagegames.com/blogs/49241/12798</link>
		<description>&lt;a href='http://www.neoji.co.za' target=_blank&gt;&lt;img src='http://www.neoji.co.za/neo/gg/logo50x50bc.gif'  align=left border=5 alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;- &lt;b&gt;TGB Iso Builder&lt;/b&gt; -&lt;br&gt;&lt;br&gt;&lt;b&gt;Continued from my &lt;a href='http://www.garagegames.com/blogs/49241/12362'&gt;previous blog post&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;I wanted to support composite visuals for the iso builder from the start for things like character clothing, weapons, items, etc and while prototyping it I realized that it would be useful for core TGB stuff as well (I have seen many a post about the need for overlay sprites or synchronised animations). And so I designed a nice generic system that could be used by both the core stuff as well as the iso builder and &lt;b&gt;nxAnimator&lt;/b&gt; was born.&lt;br&gt;(Perhaps a new pack for core TGB???)&lt;br&gt;&lt;br&gt;First a vid and a screenie to get us into the swing of things:&lt;br&gt;(Rather low quality I'm afraid to keep the size down)&lt;br&gt;&lt;br&gt;&lt;a href='http://www.neoji.co.za/neo/gg/nxAnimator_alpha_wmv.zip' target=_blank&gt;nxAnimator_alpha_wmv.zip&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/nxAnimator.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;The workhorse of the system is the visual. Each visual can contain one or more channels that are overlaid at render time. Each channel can have one or more slots each of which contains an image map and frame list to use. Now while only one slot can be active per channel one can have as many slots as one needs and swap between them at runtime. &lt;br&gt;&lt;br&gt;Each visual maintains animation state and has a base line duration and frame count to which all channels are either stretched or looped to fill. The animation can be played backward or forward, paused, play a specific frame or goto that frame and pause, loop/pingpong/or automatically switch the the next/prev slot when it reaches the first/last frame, etc. Rather similar to the way macromedia flash stuff works e.g:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;br&gt;&lt;li&gt;play();&lt;br&gt;&lt;li&gt;pause();&lt;br&gt;&lt;li&gt;isPlaying();&lt;br&gt;&lt;li&gt;getCurrentFrame();&lt;br&gt;&lt;li&gt;setCurrentFrame();&lt;br&gt;&lt;li&gt;getCurrentTime();&lt;br&gt;&lt;li&gt;setCurrentTime();&lt;br&gt;&lt;li&gt;getPlayDirection()&lt;br&gt;&lt;li&gt;setPlayDirection()&lt;br&gt;&lt;li&gt;togglePlayDirection()&lt;br&gt;&lt;li&gt;gotoAndStop( frame )&lt;br&gt;&lt;li&gt;gotoAndPlay( frame )&lt;br&gt;&lt;li&gt;nextFrame();&lt;br&gt;&lt;li&gt;prevFrame();&lt;br&gt;&lt;li&gt;etc&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;It also has a plethora of callbacks like &lt;i&gt;onFrameChange, onAnimationCycle, onPlayStateChange, onSlotChange&lt;/i&gt;, etc, to allow the user to hook into the play state and update game objects as required. A visual slot does not have to be animated however, it can be used simply as a frame buffer to store graphics and show the correct frame as needed, etc.&lt;br&gt;&lt;br&gt;Something else I'm working on is custom keyframe channels which will allow cool things like per-frame collision polies, animated channel offsets, scale, which effectively provides a timeline animation system similar to flash.&lt;br&gt;&lt;br&gt;Now these are just workhorse classes and to use them you need a container that will let the visual update and render itself at the appropriate time, and so enters our new best friend, wait for it - &lt;b&gt;nxSprite&lt;/b&gt;. Derived from &lt;b&gt;t2dSceneObject&lt;/b&gt; it acts just like its poorer cousins &lt;b&gt;t2dStaticSprite/t2dAnimatedSprite&lt;/b&gt; but with all the visual power underneath.&lt;br&gt;&lt;br&gt;The more I worked on this the more it became clear to me that this was a tremendously powerful way to do things as it could be used in so many different ways, for example:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;br&gt;&lt;li&gt;A visual with e.g. 4 channels, a channel for the base character, a channel for pants, a channel for shirt, a chanel for hat, and each channel contains e.g 3 slots with different colored and shaped versions of each article of clothing. At runtime the character can switch between the slots as it picks up items, or according to user choices, etc.&lt;br&gt;&lt;li&gt;Channels can be active as needed and only shown when state requires it, e.g. you have an open roof tent base channel and hide the tent roof channel when a character enters the tent.&lt;br&gt;&lt;li&gt;It is a convenient way to store all related animations for e.g. a character together, e.g. stand/walk/run slots that can be easily switched as required.&lt;br&gt;&lt;li&gt;Instead of having multiple state graphics for e.g. a truck that can have either some logs, or drums, or people or whatever on the back you simply have a base truck channel and slots containing just the overlay graphics for the stuff on the back of the truck. Saves a ton of texture space as well as allowing mixing overlays, etc.&lt;br&gt;&lt;li&gt;&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;It goes without saying that this all comes integrated with the LevelBuilder with fancy editors, a plethora of custom gui controls e.g. image map- and visual list and preview gui controls, the works. &lt;br&gt;&lt;br&gt;More as the system progresses...&lt;br&gt;&lt;br&gt;As for the iso builder, it got overhauled (again) to use the new visual stuff, a mini-map gui control and I've added element libraries that can be packaged up and shared and also makes things easier to manage. A built-in datablock manager takes care of tracking, reloading and managing datablocks as required as well as saving,loading and anything else datablocks get up to.&lt;br&gt;&lt;br&gt;As I spent most of my time lately working on the iso editors and they are getting up to scratch I can now turn my attentions to fixing and adding features to the engine as well as implementing mini games to test and suggest new features, so the next update should have some more interesting piccies of the engine in action ;p&lt;br&gt;&lt;br&gt;Some other things I have been working on are the sprite builder ( nxSpriteBuilder??? ;) which allows you to import/crop/offset/convert and join images into one image or set of images, automatically create cell or key image maps for them as well as do custom processing like replacing background colors with alpha, removing bad alpha outlines, and converting images with alpha channels to pre-multiplied alpha that can be rendered with additive blending (and so do not require sorting, etc), etc, etc, etc. All things that you could do manually that are just a pain in the butt and that saves time when going back and forth between art creation and utilizing it in TGB.&lt;br&gt;&lt;br&gt;And that as they say, is it, ladies and germs... tune in next time when we watch all of this in action in the next adventure of the iso builder err... adventure...</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/12362">
		<dc:format>text/html</dc:format>
		<dc:date>2007-02-20T02:21:39+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>TGB Isometric Add-On Pack - Part 5</title>
		<link>http://www.garagegames.com/blogs/49241/12362</link>
		<description>&lt;a href='http://www.neoji.co.za' target=_blank&gt;&lt;img src='http://www.neoji.co.za/neo/gg/logo50x50bc.gif'  align=left border=5 alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;- &lt;b&gt;TGB Iso Builder&lt;/b&gt; -&lt;br&gt;&lt;br&gt;&lt;b&gt;Continued from my &lt;a href='http://www.garagegames.com/blogs/49241/11678'&gt;previous blog post&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Something that had bothered me for quite some while was having to constantly switch between the Iso builder GUI and the level editor, and I thought that I should really look into integrating it directly, and when I was asked to participate in the TGB Closed Beta I thought it would make an excellent testing project and it gave me the push I needed to just get it done. The iso builder is now fully integrated with the level builder and I must say it is so much more productive. I will flesh out this plan a bit more later but for now here is a movie and some screenies of the highlights :&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href='http://neoji.co.za/neo/gg/nxIsoBuilder_fmed.wmv' target=_blank&gt;THE MOVIE (9MB)&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Level Builder Integration&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://neoji.co.za/neo/gg/nxib_int.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Pixel Perfect Selection&lt;/b&gt;&lt;br&gt;&lt;br&gt;Selection of map elements are pixel perfect (with an adjustable alpha tolerance, etc):&lt;br&gt;&lt;br&gt;&lt;img src='http://neoji.co.za/neo/gg/nxib_pix.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Texture projection&lt;/b&gt;&lt;br&gt;&lt;br&gt;The engine can project a normal square image map or animation onto a terrain tile which saves all the&lt;br&gt;headaches of converting images and allows one to use existing image maps and animations. Here is an example using the excellent shore animation from the &lt;a href='http://www.garagegames.com/products/90/'&gt;Adventure Kit&lt;/a&gt; from the SickHead lads...&lt;br&gt;&lt;br&gt;&lt;img src='http://neoji.co.za/neo/gg/nxib_tex.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://neoji.co.za/neo/gg/nxib_tex2.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;And lastly a pretty pic of a quick little getaway for kork at the shore...&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://neoji.co.za/neo/gg/nxib_riv.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;I'll update this plan a bit more later in the week, enjoy...</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/11678">
		<dc:format>text/html</dc:format>
		<dc:date>2006-11-23T01:17:27+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>TGB Isometric Add-On Pack - Part 4</title>
		<link>http://www.garagegames.com/blogs/49241/11678</link>
		<description>&lt;a href='http://www.neoji.co.za' target=_blank&gt;&lt;img src='http://www.neoji.co.za/neo/gg/logo50x50bc.gif'  align=left border=5 alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;- &lt;b&gt;TGB Iso Builder&lt;/b&gt; -&lt;br&gt;&lt;br&gt;&lt;b&gt;Continued from my &lt;a href='http://www.garagegames.com/blogs/49241/11100'&gt;previous blog post&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;Well I've been hanging out with my new baby girl after some late nights doing 3 overlapping projects and finally got  some time to get back into the swing of things with the Iso Builder.&lt;br&gt;&lt;br&gt;A thought struck me recently that an iso engine is at its core view dependent and so instead of having the engine figure out what should be drawn when I realized that users did not &lt;i&gt;expect&lt;/i&gt; the engine to know.&lt;br&gt;&lt;br&gt;What I needed to do is give the user the power to specify exactly how things should be ordered instead. &lt;br&gt;&lt;br&gt;So I once again rewrote the map structure to be more intuitive for users and now tiles can be referenced by map column, row and layer. All that layer is there for is to statically order tiles intra-cell, period. A layer does not have implicit elevation, that is set separately. This speeds up render ordering immensely and is also more intuitive to work with, e.g:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;font size=1&gt;Quote:&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;br&gt;    %map.setTile( 0, 0, 0, &amp;quot;grass&amp;quot; );&lt;br&gt;&lt;br&gt;    %map.stackTile( 0, 0, &amp;quot;tree&amp;quot; );&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Another thing I am busy with is micro-collision for each cell. Each map cell is sub divided into 5x5 sub cells which can be set as blocking, etc and is a lot faster to check against that doing ray/box intersections, etc.&lt;br&gt;Each tile can have its own grid as well which is overlaid onto the cells they cover. This allows us to assign blocking per tile as well as directly onto the map. Of course this is layered as well so you can have things like bridges which allow movement both underneath and over.&lt;br&gt;&lt;br&gt;Of course then I rewrote the rendering pipeline as well and added some of the features I was yacking about before, e.g. occluder masking (i.e. static objects fade so we can see dynamic objects that are occluded by them):&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/nxiso/occlude.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;At the moment I am busy getting the editor working again with all the new changes as well as adding tools to make creating and editing world boxes, image offsets, frame aligning, etc for the visuals.&lt;br&gt;&lt;br&gt;( I also figured out a way to auto-create world boxes from the images supplied which are easily editable using sliders)&lt;br&gt;&lt;br&gt;Well I'll get back to work and hopefully update more often...</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/11100">
		<dc:format>text/html</dc:format>
		<dc:date>2006-08-16T19:50:38+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>TGB Isometric Add-On Pack - Part 3</title>
		<link>http://www.garagegames.com/blogs/49241/11100</link>
		<description>&lt;a href='http://www.neoji.co.za' target=_blank&gt;&lt;img src='http://www.neoji.co.za/neo/gg/logo50x50bc.gif'  align=left border=5 alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;- &lt;b&gt;TGB Iso Builder&lt;/b&gt; -&lt;br&gt;&lt;br&gt;&lt;b&gt;Continued from my &lt;a href='http://www.garagegames.com/blogs/49241/10707'&gt;previous blog post&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;Sheesh, it takes me dislocating my hip (don't ask) to find time to blog again.&lt;br&gt;I've been up to my ears in contract work (3 overlapping projects) and so have not had time&lt;br&gt;to update everyone as to the progress of the Iso Builder.&lt;br&gt;&lt;br&gt;Rest assured it is still in the works and I've been sweating over it when ever I could steal some time.&lt;br&gt;&lt;br&gt;I will post a more informative plan soon as I get another gap but in the mean time here is another&lt;br&gt;shot of the editor which has had an overhaul to cut down on the clicking. Everything for an element&lt;br&gt;can now be seen on one screen and I've overhauled the visual/orientation system to have 32 slots,&lt;br&gt;period. Which ones you use is up to you but it allows bypassing all the list crap as well as knowing&lt;br&gt;that the slots are always there if you need them, and 32 should be sufficient (the carrier in the pic&lt;br&gt;has 32 orientations and while been driving it up and down the map it looked super smooth).&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/orientations.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;I've also added element selection and will be adding pixel masks, etc to make it more accurate where&lt;br&gt;needed. Plus a ton of other stuff that I'll get into once I have some visual proof for you ;p&lt;br&gt;&lt;br&gt;More once I dislocated something else to score some time...&lt;br&gt;&lt;br&gt;~neo</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/10707">
		<dc:format>text/html</dc:format>
		<dc:date>2006-06-14T16:09:05+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>TGB Isometric Add-On Pack - Part 2 - Cont.</title>
		<link>http://www.garagegames.com/blogs/49241/10707</link>
		<description>&lt;a href='http://www.neoji.co.za' target=_blank&gt;&lt;img src='http://www.neoji.co.za/neo/gg/logo50x50bc.gif'  align=left border=5 alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;  - &lt;b&gt;TGB Isometric Add-On Pack&lt;/b&gt; -&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Continued from my &lt;a href='http://www.garagegames.com/blogs/49241/10686'&gt;previous plan:&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Added map element &lt;b&gt;Aspects&lt;/b&gt; and &lt;b&gt;Orientations&lt;/b&gt;. &lt;br&gt;&lt;br&gt;An &lt;i&gt;aspect&lt;/i&gt; is somewhat like a state for a &lt;i&gt;map element&lt;/i&gt; (e.g. a building could have a e.g. a default, damaged and destroyed aspect and each aspect would have say two orientations (facing SE and &lt;br&gt;facing SW). &lt;br&gt;&lt;br&gt;So you'd define datablocks for each &lt;i&gt;aspect orientation&lt;/i&gt; visual, and add them to an &lt;i&gt;aspect&lt;/i&gt; &lt;br&gt;datablock that in turn is added to the &lt;i&gt;map element&lt;/i&gt; datablock. &lt;br&gt;(This is all done in the editor for you, but you could add them manually ;p).&lt;br&gt;&lt;br&gt;This simplifies managing related animations and world info for elements and removes the need to&lt;br&gt;handle all this in script.&lt;br&gt;&lt;br&gt;Another example, say you have an character that has two aspects: &lt;i&gt;stand&lt;/i&gt; and &lt;i&gt;walk&lt;/i&gt;, and &lt;br&gt;animations for each aspect in 8 directions. If you wanted to change your player state to e.g &lt;br&gt;walking in a certain direction, you'd just do:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;// setup an entity&lt;br&gt;%this.dude = %this.map.createEntity( &amp;quot;DudeElementDatablock&amp;quot; ); // pass an element db name&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;// later in code when we want the dude to walk&lt;br&gt;%this.dude.setAspect( &amp;quot;dudeWalk&amp;quot; );&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;// and if we want him to face a direction&lt;br&gt;%this.dude.setDirection( 45 ); // 0 -&amp;gt; north in iso space -&amp;gt; top/right diagonal in screen space&lt;br&gt;...&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;The engine will find the closest orientation on the current aspect to the direction passed in&lt;br&gt;and play that animation (or static image) automatically.  So above it would pick the orientation closest &lt;br&gt;to 45 degrees ( NNE on iso map X/Y axis) and play that. &lt;br&gt;&lt;br&gt;Of course if you set a velocity vector for the element it will update the orientation automatically ;p&lt;br&gt;&lt;br&gt;I think this removes a lot of boring movement scripting like doing case statements then setting animations directly, etc, as well as encapsulating everything an element can do visually in one place. It also allows&lt;br&gt;setting world size and bounds for every aspect so that you don't get weird errors when the bounds dont&lt;br&gt;match the animation.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;font size=1&gt;Quote:&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;br&gt;&lt;br&gt;As a side note I noticed that &lt;b&gt;SimObject::addField()&lt;/b&gt; does not work on dynamic arrays so adding&lt;br&gt;more than one visual to an aspect datablock would require having a maximum amount of visuals&lt;br&gt;allowed and then need to keep an array of that size around even if you only used one visual. &lt;br&gt;That adds up to a lot of wasted space (apart from restricting number of visuals) once you have a ton of&lt;br&gt;map element datablocks. &lt;br&gt;&lt;br&gt;I got around this by noting that in &lt;b&gt;SimObject::setDataField()&lt;/b&gt; it checks whether a setter method is &lt;br&gt;defined and if that method returns false does not call Con::setData() on the field address. &lt;br&gt;&lt;br&gt;This allows me to add the field using &lt;b&gt;addProtectedField()&lt;/b&gt; and passing in a dummy var &lt;br&gt;for the offset parameter, and a setter method that can add the value to a dynamic Vector &lt;br&gt;when the field is set. Voila, no waste and an elegant solution.&lt;br&gt;&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href='http://www.neoji.co.za' target=_blank&gt;Neo Binedell&lt;/a&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/10686">
		<dc:format>text/html</dc:format>
		<dc:date>2006-06-12T17:31:53+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>TGB Isometric Add-On Pack - Part 2</title>
		<link>http://www.garagegames.com/blogs/49241/10686</link>
		<description>&lt;a href='http://www.neoji.co.za' target=_blank&gt;&lt;img src='http://www.neoji.co.za/neo/gg/logo50x50bc.gif'  align=left border=5 alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;  - &lt;b&gt;TGB Isometric Add-On Pack&lt;/b&gt; -&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Continued from my &lt;a href='http://www.garagegames.com/index.php?sec=mg&amp;amp;mod=resource&amp;amp;page=view&amp;amp;qid=10457'&gt;previous plan:&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;Editor is coming along nicely, integrates seamlessly with TGB editors and current user project,&lt;br&gt;simply add the editor dir to the games dir and add -mod nxisoedit to the command line. Voila.&lt;br&gt;&lt;br&gt;Start a project, press F9 and add any image maps you need, press F8 (or whatever you want to map it to) to switch back and edit your map and create/edit map elements. I've added a bunch of custom GUI controls to handle things like displaying dynamic lists/grids of all image maps or elements, etc, so theyre really fast.&lt;br&gt;&lt;br&gt;Reworked the engine to use cell sectors which allows quick culling and broad phase search bins.&lt;br&gt;Sectors also allow doing mega-tiles and using one quad with texture transforms to tile and entire sector instead of blitting a ton of quads that use the same texture.&lt;br&gt;&lt;br&gt;Source files number around 80 already so I think I'm going to have to start calling it the &lt;b&gt;nxIso Builder&lt;/b&gt; instead of an Add-on ;p &lt;br&gt;&lt;b&gt;No&lt;/b&gt; TGB source was touched, all custom code so integration will be really easy: add and compile.&lt;br&gt;&lt;br&gt;Multi cell tiles are in and working like a charm.&lt;br&gt;&lt;br&gt;Will post more later, but here's a screenie of the editor to keep the faith:&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/nxiso/isoed0.png'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;More later.&lt;br&gt;&lt;br&gt;&lt;a href='http://www.neoji.co.za' target=_blank&gt;Neo Binedell&lt;/a&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/49241/10457">
		<dc:format>text/html</dc:format>
		<dc:date>2006-05-11T21:28:53+00:00</dc:date>
		<dc:creator>Neo Binedell</dc:creator>
		<title>TGB Isometric Add-On Pack - Part 1</title>
		<link>http://www.garagegames.com/blogs/49241/10457</link>
		<description>&lt;a href='http://www.neoji.co.za' target=_blank&gt;&lt;img src='http://www.neoji.co.za/neo/gg/logo50x50bc.gif'  align=left alt=&quot;&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;  &lt;b&gt;TGB Isometric Add-On Pack&lt;/b&gt;&lt;br&gt;&lt;br&gt;Just to let everyone know that I'm knee deep in isometric code at the moment for a brand new iso pack written in C++. &lt;br&gt;&lt;br&gt;For those that saw the quick and dirty atrocious interleaved rendering example I did, relax, this one's written from the ground up to be as clean and simple as it can possibly be.&lt;br&gt;&lt;br&gt;I have done a lot of research and all the implementations Ive seen are so convoluted not to mention a nightmare to make sense of and mostly just plain suck. They are needlessly complex requiring one to do all calcs in iso space (and some of the ugliest code I've ever seen in my life), etc. &lt;br&gt;&lt;br&gt;So I started from scratch and I think I just might succeed in making it as simple as it could possibly be.&lt;br&gt;&lt;br&gt;In short, all movement, collission, etc takes place in a normal simple 3D space (no weird tile stepping crap to try and remember) and automatically gets translated into iso view space.&lt;br&gt;&lt;br&gt;&lt;b&gt;[push]&lt;/b&gt;&lt;br&gt;&lt;i&gt;&lt;br&gt;I have seen a lot of people arguing that iso tile rendering should be an intrinsic part of TGB.&lt;br&gt;I think perhaps they are not too clued up on the particulars as while it would be quite easy to &lt;br&gt;change t2dTileMap to allow interleaved rendering by allowing custom X offsets per row, etc, it &lt;br&gt;is basically  worthless for anything but tile only stuff.&lt;br&gt;&lt;br&gt;As soon as you start adding moving sprites etc it all falls apart as the sprites will not be correctly&lt;br&gt;sorted intra tile map and to allow that one would have to rewrite TGB as a 2.5D engine. Also &lt;br&gt;movement and collision quickly becomes a nightmare.&lt;br&gt;&lt;/i&gt;&lt;br&gt;&lt;b&gt;[pop]&lt;/b&gt;&lt;br&gt;&lt;br&gt;The more I work with this the more I become excited by the possibilities of a generic iso engine.&lt;br&gt;I am writing it as generic as possible so that it can be used for making anything from one screen puzzle&lt;br&gt;iso view casual games to large RTS or RPG's like Diablo or even things like e.g. chess, tennis or perhaps&lt;br&gt;a Marble Blast 2D ;p.&lt;br&gt;&lt;br&gt;I will break it down some more and list features as soon as I get time and will be updating this plan to &lt;br&gt;keep everyone in the loop as I progress. &lt;br&gt;&lt;br&gt;&lt;i&gt;Features will be fleshed out here as I get time&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;br&gt;&lt;li&gt;Isometric map is basically a scenegraph and contains everything.&lt;br&gt;&lt;li&gt;All movement, collions,etc in simple 3D space, automatically mapped to view&lt;br&gt;&lt;li&gt;Multiple viewports&lt;br&gt;&lt;li&gt;Tiles and items are stackable and items can move between levels&lt;br&gt;&lt;li&gt;Occlussion masking&lt;br&gt;&lt;li&gt;Overlays (non-interactive imagery that just blocks all cells they cover or simple non-world visuals)&lt;br&gt;&lt;li&gt;Basic physics and pluggable physics interface&lt;br&gt;&lt;li&gt;Tile/item datablocks (user extensible)&lt;br&gt;&lt;li&gt;Object mounting, composite tiles/items (allows you to treat it as one object but will still sort/render seperately&lt;br&gt;&lt;li&gt;Tile/item templates and editors, set up a tile/item's info once an apply all over&lt;br&gt;&lt;li&gt;Sloped tiles (and user defined functions for retrieving a surface height, etc)&lt;br&gt;&lt;li&gt;World bounds debug overlay&lt;br&gt;&lt;li&gt;Map and map element editors&lt;br&gt;&lt;li&gt;Generic attribute assignment to tiles/items/elements and templates&lt;br&gt;&lt;li&gt;Bitmap backgrounds with collision overlays&lt;br&gt;&lt;li&gt;Event system&lt;br&gt;&lt;li&gt;Triggers&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Misc ideas&lt;/i&gt;&lt;br&gt;&lt;ul&gt;&lt;br&gt;&lt;li&gt;Projected textures for use as tiles&lt;br&gt;&lt;li&gt;Background map loading for huge maps&lt;br&gt;&lt;li&gt;Full network support&lt;br&gt;&lt;li&gt;Editors and tools to help create or generate isometric tiles&lt;br&gt;&lt;li&gt;Integration of TGB Particle System &lt;br&gt;&lt;li&gt;Integration of TGB Shape 3D to lighten the load for multi directional sprites,etc&lt;br&gt;&lt;/ul&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Some prototype screenies:&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/proto0.jpg'  alt=&quot;&quot;&gt; &lt;img src='http://www.neoji.co.za/neo/gg/proto1.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;[update: 2006-05-13]&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Another quick screenie: items sort correctly (the red cylinder) as I move it through the world&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/proto2.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;[/update]&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;[update: 2006-05-22]&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Another quick screenie: red lines are simple 3D world bounds for all objects&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/proto3.png'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;[/update]&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Object/tile stacking in action&lt;/i&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/isostack0.jpg'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;img src='http://www.neoji.co.za/neo/gg/isostack2.png'  alt=&quot;&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href='http://www.neoji.co.za' target=_blank&gt;~Neo Binedell&lt;/a&gt;</description>
	</item>
</rdf:RDF>
