<?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>JetpackHQ &#187; Tech Demos</title>
	<atom:link href="http://www.jetpackhq.com/blog/category/development-news/tech-demos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jetpackhq.com/blog</link>
	<description>A chronicle of the development of a video game</description>
	<lastBuildDate>Wed, 12 Oct 2011 18:56:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Gameplay Milestone</title>
		<link>http://www.jetpackhq.com/blog/2011/02/09/gameplay-milestone/</link>
		<comments>http://www.jetpackhq.com/blog/2011/02/09/gameplay-milestone/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 15:52:52 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development News]]></category>
		<category><![CDATA[Input Requested]]></category>
		<category><![CDATA[Status Updates]]></category>
		<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/?p=581</guid>
		<description><![CDATA[Jetpack has finally reached an important milestone: gameplay is now &#8220;feature complete!&#8221; This means all features are in place but there&#8217;s still room for tweaking and minor enhancements. The game overall still has quite a bit of work remaining, primarily UI. The graphics definitely need more continuity. I&#8217;d say it&#8217;s 2 months out, but every [...]]]></description>
			<content:encoded><![CDATA[<p>Jetpack has finally reached an important milestone: gameplay is now &#8220;<b>feature complete!</b>&#8221;  This means all features are in place but there&#8217;s still room for tweaking and minor enhancements.  The game overall still has quite a bit of work remaining, primarily UI.  The graphics definitely need more continuity.  I&#8217;d say it&#8217;s 2 months out, but every time I estimate I&#8217;m way off, so I won&#8217;t.  Try out the new release below!</p>
<p>The game is up to <b>755 tiles</b>, compared to 120 in the original.  The source is currently <b>1.8mb</b> (1mb for the project and 800k of library code) of Actionscript, compared to 270k of C for the original Jetpack.  The full package is about 10mb uncompressed, compared to 1.5mb for the original.</p>
<p>So tiles, source, and build size are all roughly 7x larger than the original, but what about the time invested?  The original took me about 4-5 months of 72 hour weeks to complete (est <b>1400 man hours</b>).  If this project has taken 7x that effort, that would be 9800 hours, or 5 years of full time work.  Fortunately for my family and my sanity, this one has taken only 3 years of part time work that I&#8217;d estimate to average 30 hours a week, minus several blank periods (est <b>4000 man hours</b>).  Although this seems like an endless project, judging on code size per hour I&#8217;m coding 2.2x more efficiently than 18 years ago, and creating code that is 45% reusable for future projects.</p>
<p>The big question remains: Is this game 7x better than the original?  Although there are some big improvements (my favorite is the automatic level sharing), I would have to say no, at this point.  However, the project is positioned well and I believe that much more can be added in sequels, and without too much extra effort.  In the future, it may meet that potential.  And I now have an excellent Actionscript game engine for future projects, as long as Flash remains a viable platform.</p>
<h3>Attention Level Contributors</h3>
<p>You can now design levels with a pretty good feel for how they will work in the release.  If you have levels going in the final game please update them now!  There is now a tag called &#8220;finished&#8221;, set that when a level is ready for release.  This will probably be the final editor-focused blog post.</p>
<p>Don&#8217;t forget these level design rules:</p>
<ul>
<li>Need exactly 1 idol per level
<li>Need some treasure, all gettable (this will be an achievement)
<li>Use the extra 2 rows
<li>Don&#8217;t mix themes (much)
<li>For performance, minimize the number of moving objects simultaneously colliding
<li>Please set Theme, Difficulty, &#038; Tags to aid in my sorting &#038; ordering (these are informational only)
<li>Par times should always include getting all treasure + the idol
<li>Set 1-3 custom achievements for your level
<li><b>Set &#8220;finished&#8221; tag when complete</b>
</ul>
<hr />
<b>Updated: Friday May 27th, 11am EST</b></p>
<div style="text-align: center; width:782px; background:black; padding:1px;">
<object height="600" width="780" id="iefix_unique2010_09" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="/r/2010-04_launcher.swf?now=0&#038;launch=/r/2011-02l_editor.swf" /><embed height="600" width="780" src="/r/2010-04_launcher.swf?now=0&#038;launch=/r/2011-02l_editor.swf" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>
</div>
<h3>Controls</h3>
<table width='100%'>
<tr>
<td width='50%'>
	<b>ENTER</b> &#8211; Playtest Level<br />
	<b>SPACE</b> &#8211; Tile Picker (or HOLD to pick from the level)<br />
	Press/hold <b>0-6</b> to edit each grid.<br />
	<b>HOLD CTRL</b> &#8211; Delete from current grid<br />
	<b>HOLD SHIFT</b> &#8211; Free range mode<br />
	<b>CTRL+Z</b> &#8211; undo, <b>CTRL+SHIFT+Z</b> &#8211; redo
</td>
<td>
&nbsp;
</td>
<td>
	<b>&lt; &gt;</b> &#8211; Rotate current tile<br />
	<b>PAGE UP/DOWN</b> &#8211; Switch themes<br />
	<b>SHIFT+T</b> &#8211; Convert level to current theme<br />
	<b>SHIFT+ARROWS</b> &#8211; Shift entire level<br />
	<b>JDGIFBLTS</b> &#8211; Quick select tiles<br />
See the in-game help for more!
</td>
</tr>
</table>
<h3>Usage Notes</h3>
<ul>
<li>Tiles can overlap &#8211; if they are on different grids. You can place any tile off-grid by holding SHIFT
<li>Level settings: choose a background &#038; music for your level, and set par times
<li>All levels are saved to jetpackhq.com, with automatic revisioning.
<li>Some folders are shared, but you can only edit your own levels.
<li>IE doesn&#8217;t support CTRL shortcuts &#8211; use SHIFT instead.
<li>Block cut/paste is coming soon.  Soon is a relative term&#8230;
</ul>
<p>&nbsp;</p>
<hr />
<h1>News</h1>
<h2>What&#8217;s New</h2>
<p>I&#8217;ve had to redesign several internals recently, so there may be some new bugs and repeat bugs in this version.  Let me know if you spot anything.</p>
<p>I&#8217;ve revamped the state system to handle multiple simultaneous effects &#038; effect priority.  Now visual effects can now be combined, ie shield + fuel sapper, and states (like shielded, immobilized, opacity) won&#8217;t be forgotten.  This of course caused a bunch of existing stuff to break.  Hopefully I&#8217;ve caught it all.  This feature was blocking the <b>invincibility suit &#038; stunner tile</b>, so those are both available now.</p>
<p><b>Marble worms</b> now stay together pretty well without breaking apart.  In the original, this took no effort because everything used exact settings.  Since I&#8217;m using a real physics engine now, all sorts of miscellaneous things cause the balls to get out of alignment.  The fix was to add a type of flocking: each ball looks for another ball to track and keep itself aligned with.  This has to work through teleporters, and also if a marble worm gets split.  This was a real pain and took 5x longer than I thought it would &#8211; but its finally out of the way.  A ball will track another ball up to 2 spaces away.</p>
<h3>Changes</h3>
<ul>
<li><b>Trackbot!</b> New abilities: can drift L/R when falling, can drop through ladder cover
<li><b>Suit of Armor (Castle theme)</b> Half the speed of the trackbot, small tracking range
<li>You can now set <b>initial facing/motion</b> for enemies &#038; Jetman.  For enemies with AI, this is only a visual effect.
<li>Placeable <b>invincibility suit</b> &#8211; 10 second shield
<li><b>Stunner</b> works &#8211; 10 second stun
<li>Greatly improved spring behavior
<li>Balls now auto-align
<li>Heavy movable objects now kill jetman &#8211; only on high velocity head impact, ie falling from above
<li>Fixed sludge &#038; ice again
<li>Phase effect now continues while bricks are phased
<li>You can now view level properties on read-only levels
<li>Fixed many bugs, probably created many new bugs
</ul>
<p>&nbsp;<br />
The only gameplay element missing that I can think of at the moment is editable text for info tiles.  Let me know you think there are any other gameplay elements this release really needs.</p>
<h3>Weights &#038; Measures</h3>
<p>I&#8217;ve realized we need some sort of rules defined, so editors can rely on their levels working correctly.  We also need a test level to quickly verify these.  I&#8217;ve come up with a few; do you have any to add?</p>
<ul>
<li>jetman: can push 3 steel boxes
<li>spring: 1 can lift 5+ styrofoam
<li>spring: 2 can lift 1 steel box+jetman
</ul>
<h2>What&#8217;s Coming</h2>
<p>Since Jetpack will be my first web integrated release, I&#8217;m looking into doing a small game as a trial run, to avoid making business mistakes with Jetpack.  Many of the elements for this new project are things that Jetpack still needs, so work on it will not significantly take away time from Jetpack.  In short, I estimate it will take about 4-6 weeks but only 2 of those will be subtracted from Jetpack.</p>
<p>The tasks shared with Jetpack will include:</p>
<ul>
<li>3rd party api integration &#8211; high scores/achievements/ads/social networking
<li>Code improvements &#038; optimization
<li>More UI features
<li>Downloadable build &#038; installer for Win/Mac/Linux
<li>Business operations: distribution &#038; marketing
</ul>
<p>&nbsp;<br />
More info on this small project coming soon.</p>
<h2>Features reserved for sequels</h2>
<p>I&#8217;m saving many new feature ideas for sequels, to avoid slowing down the initial release any more.  If you have a level that could really use one of the following features, please go ahead and update it, but don&#8217;t mark it &#8220;finished&#8221; and I&#8217;ll save it for a sequel.  If you have specific plans or suggestions for a level you can put them in &#8220;Editor Notes&#8221; (notes are visible to other editors, but not to the player).</p>
<ul>
<li>Oversized levels + scrolling, parallax
<li>Themes: space/future, alien planet, jungle
<li>Concealed areas &#8211; parts of a level that are blacked out, fade in/out via switch
<li>Light which reveals hidden passages in a radius around jetman
<li>More physics elements, like trampoline, fan
<li>More enemies
</ul>
<h2>Questions</h2>
<p><b>Q1: When the stunner is activated, should enemies be intangible, pushable, or complete immobile? Should they still hurt you? </b>(original = intangible+harmless, current = same)</p>
<p><b>Q2: When an enemy is trapped in a wall but sticking out, should it be intangible or solid?  Should it still hurt you?</b> (original = not sure, current = intangible+harmless)</p>
<p><b>Q3: When shielded, should jetman be intangible or solid to enemies?  to movable blocks?</b> (current = intangible to enemies, solid to blocks)</p>
<p><b>Q4: Should trackbots push movable blocks?</b>  Currently they are viewed as obstacles.</p>
<p><b>Q5: Should trackbots choose whether to use teleporters or not?</b></p>
<p><b>Q6: Editors, which of these features would you like to see next?</b><br />
#1: info tile with editable text<br />
#2: block copy<br />
#3: gameplay tweaks &#038; fixes<br />
#4: add missing sounds, death sequences, etc</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2011/02/09/gameplay-milestone/feed/</wfw:commentRss>
		<slash:comments>136</slash:comments>
		</item>
		<item>
		<title>Faster, Stronger, More Powerful</title>
		<link>http://www.jetpackhq.com/blog/2010/12/02/faster-stronger-more-powerful/</link>
		<comments>http://www.jetpackhq.com/blog/2010/12/02/faster-stronger-more-powerful/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 08:34:26 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development News]]></category>
		<category><![CDATA[Status Updates]]></category>
		<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/?p=553</guid>
		<description><![CDATA[Finally, a new version of the BETA editor! First the goods, for details page down. UPDATED: Dec 9, 12am EST [this version of the editor is now out of date] Controls ENTER &#8211; Playtest Level SPACE &#8211; Tile Picker (or HOLD to pick from the level) Press/hold 0-6 to edit each grid. HOLD CTRL &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, a new version of the <b>BETA</b> editor!  First the goods, for details page down.<br />
<b>UPDATED: Dec 9, 12am EST</b><br />
<i>[this version of the editor is now out of date]</i></p>
<h3>Controls</h3>
<table width='100%'>
<tr>
<td width='50%'>
	<b>ENTER</b> &#8211; Playtest Level<br />
	<b>SPACE</b> &#8211; Tile Picker (or HOLD to pick from the level)<br />
	Press/hold <b>0-6</b> to edit each grid.<br />
	<b>HOLD CTRL</b> &#8211; Delete from current grid<br />
	<b>HOLD SHIFT</b> &#8211; Free range mode<br />
	<b>CTRL+Z</b> &#8211; undo, <b>CTRL+SHIFT+Z</b> &#8211; redo
</td>
<td>
&nbsp;
</td>
<td>
	<b>&lt; &gt;</b> &#8211; Rotate current tile<br />
	<b>PAGE UP/DOWN</b> &#8211; Switch themes<br />
	<b>SHIFT+T</b> &#8211; Convert level to current theme<br />
	<b>SHIFT+ARROWS</b> &#8211; Shift entire level<br />
	<b>JDGIFBLTS</b> &#8211; Quick select tiles<br />
See the in-game help for more!
</td>
</tr>
</table>
<h3>Usage Notes</h3>
<ul>
<li>Tiles can overlap &#8211; if they are on different grids. You can place any tile off-grid by holding SHIFT
<li>Level settings: choose a background &#038; music for your level, and set par times
<li>All levels are saved to jetpackhq.com, with automatic revisioning.  You can import and retheme old levels.
<li>Some folders are shared, but you can only edit your own levels.
<li><b>Full undo</b> capability! ctrl-z to undo, ctrl-shift-z to redo (note this does not undo level settings).  If you&#8217;re on IE, only shift-Z will work.
<li>Some enemies are just placeholders for now.
<li>Block cut/paste is coming soon.
</ul>
<p>&nbsp;</p>
<hr />
<h1>News</h1>
<h2>Big changes</h2>
<ul>
<li><b>Ladder covers:</b> all enemies now ignore ladders
<li>Many <b>optimizations</b> to reduce slowdowns and increase framerate
<li>Adjusted all physics
<li>Switched to faster Alchemy version of Box2D, rather than the AS3 port
<li><b>Default game speed &#8220;5&#8243; is now 8% slower</b>, to be more beginner-friendly.  Original speed is now speed &#8220;6&#8243;.
<li>I&#8217;ve decided to <b>reverse the contrast for the nature &#038; candy themes</b> &#8211; backgrounds are light and bricks are dark
</ul>
<h2>New features</h2>
<ul>
<li>New enemy motion: <b>Spike Wheel</b> (graphics unfinished)
<li>New enemy motion: <b>Homer</b>.  Behaves more organically (graphics unfinished)
<li>New enemy motion: <b>Bat</b>.  I didn&#8217;t think the original behavior was that useful, so bat now has an AI and completely new motion.  He sees you only when you are nearby and moving.  Let me know how it works out.
<li>New enemy motion: <b>Missile</b>. Turning is a little abrupt for now.
<li><b>Live editing</b>.  Press F2 or shift+E to playtest.  Press again to enable live editing.  Escape returns to the regular editor.
<li>Beta testers, you can now <b>view the physics</b> with HOME+P, and slow-motion with HOME+S
<li>Press shift+number to <b>lock the active grid</b>
<li>You can now <b>jump horizontally</b> by pressing down while jumping
<li>Teleporters now choose a random order each time you touch one
</ul>
<h2>Fixes</h2>
<ul>
<li>Jetman now passes through enemies (but not moving blocks) while shielded
<li>Tweaked the sound volumes &#8211; please report any that still seem off
<li>Tweaked the backgrounds &#8211; please report any that still have issues
<li>Level list scrolling speed now takes framerate into account &#8211; I didn&#8217;t realize scrolling was so slow for some!
<li>Many many bug fixes
</ul>
<h2>Still coming</h2>
<p>Hopefully most of the bugs are now ironed out and I&#8217;ll be able to get to new features soon:</p>
<ul>
<li>spring fixes
<li>initial facing for enemies
<li>enemies stuck in bricks [done]
<li>block copy
<li>moving blocks hurting jetman
<li>trackbot A.I.
</ul>
<h2>Details</h2>
<p>It&#8217;s been 2 months since the last release, for several reasons: we moved across the country, sold and bought a car, and I&#8217;ve been sick _4_ separate times, apart from my usual gut and neck issues.  The neck is improving thanks to an expensive massage chair I got for my birthday, and the gut seems to be slowly improving with probiotics.  I&#8217;m trying energy drinks every day to try and push through the brain fog caused by chronic fatigue and get this project done.</p>
<p>I just spent 3 full days pulling my hair out trying to track down a strange issue I&#8217;ve had for a long time &#8211; <b>after 1-2 minutes, the game would suddenly drop to 1/2 frame rate</b>.  The physics engine was showing increased usage in the profiler, so I practically pulled the whole thing apart trying to find the problem.  I finally got the idea to try it on my laptop, and the problem was gone.  As it turns out&#8230; I&#8217;m running a program called SpeedSwitchXP which <b>cuts the processor rate when the system is idle</b> to save energy and keep the room cool since my CPU is like a space heater.  I disable it when I get cold.  Little did I know, the threshold was set at 50% &#8211; and this is a dual core machine.  When 1 core was running at 99% capacity, speedswitch would see < 50% usage and cut the processor speed by 2/3.  It's hard to see much good in 3 wasted days, but it did push me to upgrade Box2D to the new Alchemy port, make several optimizations that I had (correctly) been putting off, and weed out several memory leaks that were causing slowness after playing a while.  I'm seeing ZERO memory creep or slowdown after playing through several levels now.  The new flash player caps frame rate at 60fps, so I can't be sure of the speed increase - but Pit of Chaos was maxing out so I had to add more balls - a lot more balls.</p>
<p>The physics engine continues to be the biggest pain.  I've tweaked and fixed several physics settings again and I think it's in a good spot now.  I've been struggling with a way to enhance ladder functionality while keeping behavior compatible with the old game.  Finally I have a solution: a new tile, <b>&#8220;ladder cover&#8221;</b> placed on the top of a ladder, makes the top of the ladder tile a one-way platform (solid for downward motion only).  This tile may also be a conveyor belt, which allows upward moving ladders to transfer passengers to moving platforms, so we finally can have a continuous loop of motion.  Ground-based entities, EXCLUDING balls, will automatically latch on to and ride moving ladders.  They will only latch on to ladders when they are moving slowly or stopped.  Without the ladder cover, <b>Jetman no longer runs on ladders</b> &#8211; he always climbs when there&#8217;s no solid tile beneath.  I think it looks much better this way.  Please let me know if there are any problems with this system &#8211; I&#8217;ve spent so much time in the guts of it that&#8217;s all I see when I test, so I&#8217;m not sure how this works for playability right now.  <b>You&#8217;ll probably want to put ladder covers on most of your ladders.</b></p>
<h2>World Map Preview</h2>
<p>This is a low res preview of the freeware edition Zone Map.  The icons will not appear until you complete the previous level.  The nature &#038; castle levels are the beginner path.  There are 2 bonus levels: 1 candy &#038; 1 devilish.</p>
<p><img src='/r/2010-12-08_WorldMap.jpg'></p>
<h2>Q &#038; A</h2>
<p>> when I try to phase blocks off center nothing happens&#8230;it can become kind of annoying if you want to phase through the styrofoam blocks, as they can fall oddly.</p>
<p>Center is required for crates &#038; styrofoam intentionally, to avoid accidentally phasing of puzzle elements which could make a level unsolvable.</p>
<p><b>Question:</b> Mirage bricks don&#8217;t obscure enemies any more.  Is that a big problem?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2010/12/02/faster-stronger-more-powerful/feed/</wfw:commentRss>
		<slash:comments>62</slash:comments>
		</item>
		<item>
		<title>Jetpack Level Editor Update</title>
		<link>http://www.jetpackhq.com/blog/2010/09/04/jetpack-level-editor-update/</link>
		<comments>http://www.jetpackhq.com/blog/2010/09/04/jetpack-level-editor-update/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 02:44:15 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development News]]></category>
		<category><![CDATA[Status Updates]]></category>
		<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/?p=539</guid>
		<description><![CDATA[UPDATED: Tuesday, Sep 7th, 2:30pm The editor is now in pretty good shape and just missing a few features. Feel free to start making levels, you have a headstart on everyone else! This will be the last public release without limitations. As the game nears completion, I need to start limiting the content that is [...]]]></description>
			<content:encoded><![CDATA[<p><b>UPDATED: Tuesday, Sep 7th, 2:30pm</b></p>
<p>The editor is now in pretty good shape and just missing a few features.<br />
Feel free to start making levels, you have a headstart on everyone else!</p>
<p>This will be the last public release without limitations.  As the game nears completion, I need to start limiting the content that is released.  Future public releases will have full editing capability, but there will be graphical limits, and playtesting other people&#8217;s levels will be limited.  If you have levels going in the game, you have beta tester abilities with access to all the features as they are developed.  If you write on a blog or gaming site and would like to be a beta tester, contact me <a href='http://www.adeptsoftware.com/contact/'>here</a>. </p>
<p><i>[this version of the editor is now out of date]</i></p>
<h3>Level Changes Required</h3>
<p>Many of your levels will need minor changes to work properly in the new Jetpack:</p>
<ul>
<li><b>2 new empty rows</b> have been added to the top of all levels.  Suggestions:
<ul>
<li>Ideally, add content matching the level: to the top, or shift the level up (shift+arrows) and add content to the bottom
<li>Otherwise, you can either leave the empty space, or wrap the level in stone
</ul>
<li><b>Ladders are no longer sticky</b> &#8211; jetman &#038; trackbot can choose whether or not to grab a ladder.  Steel ball will roll on top of ladders, but when falling will fall THROUGH them.
<li>Barriers now have a <b>small delay before changing state</b>, to serve as a warning.  This may affect your timing if you&#8217;re using balls to hit touch switches.  Also, barriers are no longer invisible.
<li>Some speeds and timings have changed.
<li>Level Title can now be longer, and is only 1 line not 2
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2010/09/04/jetpack-level-editor-update/feed/</wfw:commentRss>
		<slash:comments>140</slash:comments>
		</item>
		<item>
		<title>Let the Editing Begin</title>
		<link>http://www.jetpackhq.com/blog/2010/08/11/let-the-editing-begin/</link>
		<comments>http://www.jetpackhq.com/blog/2010/08/11/let-the-editing-begin/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 02:38:08 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development News]]></category>
		<category><![CDATA[Input Requested]]></category>
		<category><![CDATA[Status Updates]]></category>
		<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/?p=520</guid>
		<description><![CDATA[Updated: Monday Aug 23, 6:30am EST Since this is my first AS3 project and I have no library built up, I always end up missing parts and underestimating the time to complete a task. If I have future projects, they should go much faster and smoother. Anyway, after what seems like an eternity to me, [...]]]></description>
			<content:encoded><![CDATA[<p><b>Updated: Monday Aug 23, 6:30am EST</b></p>
<p>Since this is my first AS3 project and I have no library built up, I always end up missing parts and underestimating the time to complete a task.  If I have future projects, they should go much faster and smoother.  Anyway, after what seems like an eternity to me, the editor is finally in good enough shape for release!  I didn&#8217;t get the time to polish features as I would have liked, but they will be coming in a future release.  I hope you find editing as fun as (or more than) the original.</p>
<p>For now, the basics should work:</p>
<ul>
<li> Basic editing of all grid layers
<li> New UI: Editor Main Menu, Level Browser, Level Settings, Tile Picker, &#038; Help
<li> Loading &#038; saving to jetpackhq, as well as deleting, moving, &#038; folder management
<li> Automatic thumbnail generation on save.  The server doesn&#8217;t have the tools to generate a screenshot, so the app sends it along with the level data on save.
<li> I&#8217;ve introduced basic organization, you can now organize levels into folders.  You can move levels via &#8220;save here&#8221; currently.  The interface does not allow folders to be nested.
<li> Retheming
<li> Automatic revision tracking via the &#8220;Revisions&#8221; folder &#8211; also holds deleted levels
<li> JET File Import/Export (exports are not backwards-compatible)
</ul>
<h3>What&#8217;s missing</h3>
<ul>
<li> Some entities are just placeholders
<li> Missing a lot of scenery &#038; backgrounds
<li> Undo/Redo
<li> Cut &#038; Paste, clip management
<li> Login &#8211; for now, just login via the web interface
<li> Some gameplay issues still exist &#8211; entities stuck in bricks, &#038; walking on rounded edges
</ul>
<p>&nbsp;<br />
I&#8217;ve also improved the jetman motion, so previously tricky maneuvers are much easier now.  Frustrating interface is a big pet peeve of mine.<br />
If some of your levels were selected to go into the final game, you&#8217;ll find them in a special purple folder.  You can pick music/enhance/retheme in whatever way you feel is appropriate.  Don&#8217;t forget we have 2 extra rows now &#8211; ctrl+arrows is a big help.</p>
<h3>Behold the Editor</h3>
<p>
<i>[this version of the editor is now out of date]</i></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2010/08/11/let-the-editing-begin/feed/</wfw:commentRss>
		<slash:comments>126</slash:comments>
		</item>
		<item>
		<title>Semi-Playable Solo Demo!</title>
		<link>http://www.jetpackhq.com/blog/2010/04/02/semi-playable-solo-demo/</link>
		<comments>http://www.jetpackhq.com/blog/2010/04/02/semi-playable-solo-demo/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 04:20:27 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Development News]]></category>
		<category><![CDATA[Input Requested]]></category>
		<category><![CDATA[Status Updates]]></category>
		<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/?p=431</guid>
		<description><![CDATA[I&#8217;m really excited about this new demo. Finally we have all the pieces of the game starting to come together, with some great new graphics and music we got from the Retrofit Contest, and many of the gameplay elements in place. This demo should really give you a feel for the new Jetpack! Instructions: Move [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really excited about this new demo.  Finally we have all the pieces of the game starting to come together, with some great new graphics and music we got from the Retrofit Contest, and many of the gameplay elements in place.  This demo should really give you a feel for the new Jetpack!</p>
<h3>Instructions:</h3>
<ul>
<li>Move with <b>ARROWS</b>, fly with <b>SHIFT / CTRL</b>, use &#038; phase with <b>SPACE</b>, jump with <b>Z or SLASH</b> (even when you have fuel)
<li>alternate keys: <b>WASD</b> to move, <b>TAB</b> to use, <b>TILDE (~)</b> to jump
</ul>
<h3>What to look for:</h3>
<ul>
<li>New effects when getting items
<li>New physics elements &#8211; slide off tiles, sink into sludge, and all motions now have acceleration
<li>You have to press up or down to &#8220;grab&#8221; ladders.  It was a real pain to make walking on ladders still work with this!
<li>A running jump will go a little farther than a standing jump.  And no more getting stuck on tiles!
<li>Trigger the spear by getting too close or phasing it
<li>New pushable solid object &#8211; for puzzles, blocking enemies
<li>All the new tiles are scattered along the very top of the level.  The thin stone tiles may not be kept, I&#8217;m still evaluating their usefulness.
<li>Footsteps vary depending on the surface you&#8217;re walking on
<li>Jetman grunts and yells in pain &#8211; no death yet.  I was hoping to make the voice gender neutral, but I just can&#8217;t find good neutral sounds.
<li>Environmental sound system adjusts volume &amp; panning as you walk past the teleporter (this is limited to low volume because p.o.s. flash introduces a lot of pops and clicks when changing volume or pan)
<li>Automatic map enhancement level visuals, some examples: applies a 3d look to tiles, gives gems a stand when on solid ground, gives ice/sludge edges, turns stacked columns into a single column
</ul>
<h3>What&#8217;s missing:</h3>
<ul>
<li><b>Enemies, clearly</b>
<li>Not all sounds are final
<li>A phasing tile effect, teleporting effect
<li>Graphics on the GUI
<li>Level transitions
<li>Achievements
<li>A few graphics are still missing, mainly the Jetman.  Yeah that one&#8217;s important.
<li><b>We need a lot more level backgrounds, and tiles for jungle &amp; outdoor themes</b>
<li>A known bug in box2d causes the jetman to &#8220;trip&#8221; on tile edges, even though they are supposed to be flush.  This one is really obnoxious.
<li>Intro &amp; story &#8211; I&#8217;ve never seriously considered adding a story to Jetpack, but in the last few weeks I&#8217;ve been working on a great story idea (with some help from Adam Dobay) that really adds a lot to the game.  And the ending(s) are really going to rock.
<li><b>THIRD PARTY API&#8217;s &#8211; ** Do you have any favorites, like Kongregate&#8217;s achievements, Mindjolt&#8217;s or Mochi&#8217;s high scores, or something on Facebook?</b>
</ul>
<p>Also please note this level may appear a little too &#8220;busy&#8221; because it incorporates test elements for every tile.<br />
<b>Please let me know if you have any problems, criticisms, or suggestions!</b></p>
<hr />
<h3>Updated April 3rd &#8211; Release 2</h3>
<p>I&#8217;ve applied the following changes to the demo:</p>
<ul>
<li><b>changed around the keys &#8211; see new instructions above</b>
<li><b>experimenting with realistic leaning for horizontal flight, better hover, and super-lean when hovering</b>
<li>down+jump while on a ladder releases the ladder
<li>you can now move while phasing
<li>removed the delay between phasing-complete and intangibility
<li>teleporter now freezes you (and breaks box2d occasionally)
<li>pushable blocks are now pushable on the moving floor, and via jetpack
<li>better balanced the sound volumes
<li>made it possible to stand still on the circle block &#8211; this required hacking box2d, as no amount of friction or damping completely stops motion!
<li>found a way to clear up the jitter from the physics engine
</ul>
<p>Tweaks:</p>
<ul>
<li>gems at the bottom have a stand
<li>darkened gem stands
<li>key down states cleared after pause
<li>reduced the amount of smoke
<li>sped up animations
<li>thickened up the ladders, and changed to 4 rungs &#8211; 30 is not divisible by 4, so it was tricky to make it look good (3 was odd looking)
<li>current teleporter flashes on contact
<li>darkened the spike-like look of the teleporter stand
<li>sludge is slower
<li>fixed the slow motion bug TimK found
</ul>
<h3>Release 2</h3>
<p></p>
<div style="text-align: center; width:782px; background:black; padding:1px;">
<object height="600" width="780" id="iefix_unique2010_01" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="/r/2010-04_launcher.swf?now=0&#038;launch=/r/2010-04b_jetpack.swf" /><embed height="600" width="780" src="/r/2010-04_launcher.swf?now=0&#038;launch=/r/2010-04b_jetpack.swf" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>
</div>
<p></p>
<hr />
<h3>Release 1</h3>
<ul>
<li>Move with <strong>ARROWS </strong>or <strong>W / A / S / D</strong>, Fly / Jump with <strong>SHIFT</strong>, Jump with <strong>SPACE </strong>
<li>Use switches &amp; teleporters with <strong>CTRL</strong>, phase with <strong>CTRL</strong>, while pressing <strong>ARROWS</strong>
</ul>
<p></p>
<div style="text-align: center; width:782px; background:black; padding:1px;">
<object height="600" width="780" id="iefix_unique2010_01" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="/r/2010-04_launcher.swf?now=0&#038;launch=/r/2010-04_jetpack.swf" /><embed height="600" width="780" src="/r/2010-04_launcher.swf?now=0&#038;launch=/r/2010-04_jetpack.swf" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>
</div>
<h3>What&#8217;s Next</h3>
<p>There&#8217;s a playable preview in our future!  I hope to progress enough to release a demo with some fully playable levels soon.  The main obstacles to tackle for that are: perfecting enemies, sound effects, and level intro/wrapup.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2010/04/02/semi-playable-solo-demo/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>Control Me</title>
		<link>http://www.jetpackhq.com/blog/2010/01/18/control-me/</link>
		<comments>http://www.jetpackhq.com/blog/2010/01/18/control-me/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 19:58:35 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Input Requested]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Status Updates]]></category>
		<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/?p=171</guid>
		<description><![CDATA[In the good old days of Jetpack 1, things were much simpler. Input from the keyboard or joystick was translated directly into action. It was along the lines of: if(key[right arrow]) speedx += 10; sprite.posx += speedx; Sometimes I miss the old days&#8230; The new path from input to action now looks like: set up [...]]]></description>
			<content:encoded><![CDATA[<p>In the good old days of Jetpack 1, things were much simpler.  Input from the keyboard or joystick was translated directly into action.</p>
<p>It was along the lines of:</p>
<ul>
<li>if(key[right arrow]) speedx += 10;</li>
<li>sprite.posx += speedx;</li>
</ul>
<p>Sometimes I miss the old days&#8230;  The new path from input to action now looks like:</p>
<ul>
<li>set up key bindings from default or configuration data</li>
<li>for each human player, translate input into commands based on bindings table; &#8220;right arrow&#8221; becomes &#8220;move right&#8221;</li>
<li>send commands to each player&#8217;s controlled entity</li>
<li>each entity processes commands through its state machine(s); if we&#8217;re on the ground, &#8220;move right&#8221; becomes &#8220;run right&#8221;</li>
<li>active states run actions &#8211; in this case, the &#8220;run right&#8221; state applies horizontal force to the entity&#8217;s physical body</li>
<li>the graphical representation of the physical body is updated</li>
</ul>
<p>The new process is certainly more powerful, but requires somewhere around 1000x more effort to write.  Below lies the implementation of the above process, the control tech demo.  You can use the arrows to control all the various entities, and [square backets] or the mouse to switch entities.  Your entity&#8217;s active state machines are displayed in the debug line at the bottom.</p>
<div style="text-align: center;">
<object id="iefix_unique2010_01" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="800" height="600" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="/r/launcher.swf?launch=/r/2010-01_control.swf" /><embed type="application/x-shockwave-flash" width="800" height="600" src="/r/launcher.swf?launch=/r/2010-01_control.swf"></embed></object></div>
<p>One of the nice things about this newfangled control system is that it meshes very well with the AI, which only needs to supply a command list to an entity, and not worry about the implementation details.  You can see this in action when you launch a guided missile &#8211; it will follow the mouse cursor using a generic AI &#8220;chase&#8221; algorithm.  This release also incorporates various other enhancements, including the <a href="/blog/2009/11/17/using-a-launcher-swf/">launcher from a previous post</a>.</p>
<h2>Jetpack 2 Engine Status</h2>
<p>I meant to have this demo out a month ago, but I opened up the Pandora&#8217;s Box of AS3 code optimization and fell in.  This had to be done at some point, so I&#8217;m glad its mostly out of the way.  On the plus side, I found several optimizations that doubled the frame rate of the game engine &#8211; there will be a big post on this later.  The engine is pretty close to basic playability now, and I&#8217;ll be releasing a special retro version of Jetpack in March.</p>
<h2>Personal Stuff</h2>
<p>My gallbladder surgery was successful, but I&#8217;m only feeling about 25% better.  I think it was worth it, but it looks like that wasn&#8217;t the cure-all I was hoping for.  Thanks to all the well-wishers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2010/01/18/control-me/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Jetpack Physics Test</title>
		<link>http://www.jetpackhq.com/blog/2009/07/16/jetpack-physics-test/</link>
		<comments>http://www.jetpackhq.com/blog/2009/07/16/jetpack-physics-test/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 14:50:35 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/?p=87</guid>
		<description><![CDATA[Finally it&#8217;s time to show some progress with a new tech demo. This demonstrates the integration of physics into the Jetpack game engine, along with some live-cached graphical effects and Thing grouping (the moving platform). Note this is just a test of the physics engine and does not reflect what the final game will look [...]]]></description>
			<content:encoded><![CDATA[<p>Finally it&#8217;s time to show some progress with a new tech demo.  This demonstrates the integration of physics into the Jetpack game engine, along with some live-cached graphical effects and Thing grouping (the moving platform).  Note this is just a test of the physics engine and does not reflect what the final game will look like.  Please report any problems you experience, and if you like the progress, please digg this post!</p>
<div style="text-align: center;"><object height="600" width="800" id="iefix_2009_07" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param value="/r/2009-07_physics.swf" name="movie" /><embed height="600" width="800" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" src="/r/2009-07_physics.swf"></embed></object></div>
<p>Earlier in the project I put some time into writing my own physics engine, but I decided to try a 3rd party library for physics and I&#8217;ve been very happy with the result.  I am reluctant to use 3rd party code because when I&#8217;ve tried in the past I spend more time working around limitations, bugs, and poor documentation, than if I had simply written it myself.  But in this case, using the 3rd party physics engine <a href="http://box2dflash.sourceforge.net/">box2dflash</a> has turned out to be excellent. The API was much better than I expected, the docs have some quirks but are substantial, and the community is large. The result is way more functionality than I would have ever achieved, with a lot less work on my end.</p>
<p>While doing some minor optimization checks by selectively disabling certain features, I noticed a significant slowdown was being caused by alpha changes (translucency).  Strangely, if the graphic contains translucency but you don&#8217;t alter the alpha, there is no slowdown.  So I implemented a smart per-object cacheing system &#8211; in this case, alpha is applied and the graphic is drawn to a cache, and future changes in alpha trigger a cache refresh.  This is useful for any property that doesn&#8217;t change too often, like a rotated object at rest &#8211; render the rotated version to the cache, then all future frames will render the cache without rotation.  Using this technique and the box2dflash physics engine, on a typical machine I&#8217;m able to get 100 balls interacting (each with 2 translucent graphical objects), plus all the level blocks, and maintain an average 40fps.  Using Flash as a platform will not be a problem.</p>
<p>The next tech demo will be a control test &#8211; binding user input to commands, passing those commands to a Thing&#8217;s state machine, applying forces/motion based on the current states, and activating graphical representations of those states.  In other words, running around.  To be updated on future Jetpack developments, please register on JetpackHQ!</p>
<p><u><strong>Update</strong><br />
</u></p>
<p>This is a little jerky at times mainly because the code that lowers the frame rate under high load isn&#8217;t currently functional.&nbsp; It&#8217;s trying to hog the processor and the browser isn&#8217;t having it.&nbsp; This will be fixed in a later release.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2009/07/16/jetpack-physics-test/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Particle Effects</title>
		<link>http://www.jetpackhq.com/blog/2008/06/23/particle-effects/</link>
		<comments>http://www.jetpackhq.com/blog/2008/06/23/particle-effects/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 16:46:50 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/?p=6</guid>
		<description><![CDATA[Here&#8217;s a test of the new particle smoke system I&#8217;ve been working on for the Jetpack exhaust. This one uses 400+ separate smoke particles, but in the game this number will have to be reduced for speed. I would also like the smoke to flow along the floor, but this might be too taxing on [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a test of the new particle smoke system I&#8217;ve been working on for the Jetpack exhaust.  This one uses <strong>400+</strong> separate smoke particles, but in the game this number will have to be reduced for speed.  I would also like the smoke to flow along the floor, but this might be too taxing on the collision system, and I might have to just make the particles disappear when they hit the floor.  Whatever we end up with, I think it will look pretty cool.</p>
<div style='text-align:center;'>
<OBJECT id="iefix_unique_2008_06" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" WIDTH="300" HEIGHT="300"><br />
<PARAM NAME=movie VALUE="/blog/r/swflauncher.swf?run=particle-test.swf"><br />
<EMBED src="/blog/r/swflauncher.swf?run=particle-test.swf" WIDTH="300" HEIGHT="300" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED></OBJECT>
</div>
<p>This requires Flash 9 &#8211; please let me know if you have any problems getting the example to run!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2008/06/23/particle-effects/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>3D Tile Test</title>
		<link>http://www.jetpackhq.com/blog/2008/02/16/3d-tile-test/</link>
		<comments>http://www.jetpackhq.com/blog/2008/02/16/3d-tile-test/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 19:35:51 +0000</pubDate>
		<dc:creator>Adam</dc:creator>
				<category><![CDATA[Tech Demos]]></category>

		<guid isPermaLink="false">http://www.jetpackhq.com/blog/2008/02/16/3d-tile-test/</guid>
		<description><![CDATA[One of the big changes for Jetpack 2 is a 3D look. I don&#8217;t want to go full 3D &#8211; 3D has its place but it often hurts playability. A good example is Civilization 4 &#8211; IMHO it got a lot uglier and less fun when they made the switch to 3D graphics. Jetpack will [...]]]></description>
			<content:encoded><![CDATA[<p>One of the big changes for Jetpack 2 is a 3D look.  I don&#8217;t want to go full 3D &#8211; 3D has its place but it often hurts playability.  A good example is Civilization 4 &#8211; IMHO it got a lot uglier and less fun when they made the switch to 3D graphics.  Jetpack will have a form of faux-3D, similar to isometric but at a slightly different angle.</p>
<p>I created a level importer for the old Jetpack levels, and also imported all the old graphics to use as placeholders until I get new art.  I decided to have all tile pieces be square, and create angled versions for walls &amp; floors on the fly.  This creates a strange effect when using the old graphics.  The screenshot below looks really low res and blurry &#8211; don&#8217;t worry, that will change once I get an artist.  But this is (probably) the resolution and faux-3D look the game will have.  It will fit in 800&#215;600 in full screen mode.</p>
<p align="center"><img src="/blog/r/3d-tiles.png" style="border: 1px solid black" height="468" width="742" /></p>
<p align="center"><strong>Old-school low res graphics being manhandled into a faux-3D environment</strong></p>
<p align="left">The tiles in the old Jetpack were 12&#215;12.  These are 28&#215;28, or if you measure the whole cube with wall &amp; floor, 36&#215;36.  The new levels/maps/rooms will be a couple tiles bigger in each direction.  The faux 3D tiles are presenting a problem that I didn&#8217;t anticipate being so tricky, when doing depth ordering.  I&#8217;m going to put that off until later.</p>
<p align="left">The issue I&#8217;m dealing with now is collision detection.  In the old jetpack, the tiles were fixed in place, and collision detection could be done based on a simple grid.  For Jetpack 2, I may want the tiles to be movable, and I also want semi-realistic physics, so more complex collision detection is required.  I&#8217;m not planning on doing any special polygon handling or rotating &#8211; this will be strictly circle &amp; rectangle simulation.  The method I&#8217;m planning on using is: when a collision is imminent, step each object forward until right before the collision, then store that collision in a list sorted by time of impact.  The collisions are processed in order by time.  I&#8217;m hoping this method will be fast and accurate enough to handle something like 50 ping pong balls bouncing off eachother.  That may be too optimistic.   We&#8217;ll see how it works.</p>
<p align="left">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jetpackhq.com/blog/2008/02/16/3d-tile-test/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

