<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
	<channel>
<title>Pixelverse</title><link>http://pixelverse.org/index.html</link><description>Josh&#x27;s Blog</description><dc:language>en</dc:language><dc:creator>blog@pixelverse.org</dc:creator><dc:rights>Copyright 2012 Joshua Minor</dc:rights><dc:date>2014-06-14T23:15:15-07:00</dc:date><admin:generatorAgent rdf:resource="http://www.realmacsoftware.com/" />
<admin:errorReportsTo rdf:resource="mailto:blog@pixelverse.org" /><sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<lastBuildDate>Sun, 15 Jun 2014 10:01:03 -0700</lastBuildDate><item><title>The Master Criminal</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2014-06-14T23:15:15-07:00</dc:date><link>http://pixelverse.org/files/59f4ee797543e0ef1cb00512988cbffc-11.html#unique-entry-id-11</link><guid isPermaLink="true">http://pixelverse.org/files/59f4ee797543e0ef1cb00512988cbffc-11.html#unique-entry-id-11</guid><content:encoded><![CDATA[I am in the process of developing a card game, called <a href="tabletop/criminal/" rel="self" title="The Master Criminal">The Master Criminal</a>.  In the game you get to steal hundreds of millions of dollars worth of famous treasures from your friends. Here is a snapshot of the cards so far.  <br /><p style="text-align:center;"><br /><a href="tabletop/criminal/" rel="self" title="The Master Criminal"><img class="imageStyle" alt="Master Criminal Photo" src="http://pixelverse.org/files/master-criminal-photo.jpg" width="526" height="392" /></a><br /><br /></p><p style="text-align:left;">I was inspired by my friend Jason&rsquo;s board game, <a href="https://www.kickstarter.com/projects/524152046/camp-grizzly-lights-out-campers" rel="external">Camp Grizzly</a>. My friend <a href="http://grantalexander.blogspot.com" rel="external">Grant Alexander</a> is doing the artwork. It turns out that there are some very inexpensive print-on-demand services for printing playing cards, game boards and even entire board games. The cards in the photo above were printed via <a href="https://www.thegamecrafter.com" rel="external">The Game Crafter</a>.<br /><br /></p>]]></content:encoded></item><item><title>The Legend of Zokoban</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2013-10-28T23:12:00-07:00</dc:date><link>http://pixelverse.org/files/06c9d85eae32d864c4788e40a1882614-10.html#unique-entry-id-10</link><guid isPermaLink="true">http://pixelverse.org/files/06c9d85eae32d864c4788e40a1882614-10.html#unique-entry-id-10</guid><content:encoded><![CDATA[Recently, Stephen Lavelle (aka <a href="https://twitter.com/increpare" rel="external">@increpare</a>) released this awesome puzzle game creator called <a href="http://www.puzzlescript.net" rel="external">PuzzleScript</a>.  I spent a while making a little game with it called <a href="http://www.puzzlescript.net/play.html?p=7209750" rel="external">The Legend of Zokoban</a>.<br /><p style="text-align:center;"><br /><a href="http://www.puzzlescript.net/play.html?p=7209750" rel="external"><img class="imageStyle" alt="Zokoban_v4a" src="http://pixelverse.org/files/zokoban_v4a.gif" width="450" height="350" /></a><br />Click to play!<br /><br /></p><p style="text-align:left;">My inspiration is clearly everyone&rsquo;s favorite <a href="http://en.wikipedia.org/wiki/The_Legend_of_Zelda" rel="external">NES game from 1986</a>, but I wanted to not just clone the game, but to answer a long-standing question &ldquo;Why can&rsquo;t I push that block out of this room?&rdquo;  So many block-pushing puzzles in video games limit the area in which you can push the blocks.  I always wanted to try puzzles that span larger areas.  So here&rsquo;s my attempt to answer that.<br /><br />The game features most of the clich&eacute;s you&rsquo;ve come to expect and enjoy: blocks you can push, pots to smash, a sword, a shield, a grappling hook, traps, monsters, gems, hearts, secret areas, a dungeon and an old lady with some helpful advice.  Not bad for 500 lines of code!<br /><br />If you die, just hold Z to rewind a bit and try again.<br /></p>]]></content:encoded></item><item><title>Rotary Dialer Updated</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2012-10-26T23:58:35-07:00</dc:date><link>http://pixelverse.org/files/dba37fb0ee655b414f7a7f0b5f35eab7-9.html#unique-entry-id-9</link><guid isPermaLink="true">http://pixelverse.org/files/dba37fb0ee655b414f7a7f0b5f35eab7-9.html#unique-entry-id-9</guid><content:encoded><![CDATA[After a very long hiatus, I finally found some time to update a few of my iOS apps.  As of today, an update to <a href="iphone/rotarydialer/" rel="self" title="Rotary Dialer">Rotary Dialer</a> has been released that addresses some iOS 6 glitches.  The others are still in Apple&rsquo;s review queue.  My fingers are crossed that everything goes smoothly.]]></content:encoded></item><item><title>Video Tennis Released in the Mac App Store</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2011-01-06T09:56:15-08:00</dc:date><link>http://pixelverse.org/files/aaa94c92b9e473d42ebfc6416d7ae045-6.html#unique-entry-id-6</link><guid isPermaLink="true">http://pixelverse.org/files/aaa94c92b9e473d42ebfc6416d7ae045-6.html#unique-entry-id-6</guid><content:encoded><![CDATA[My game, <a href="http://itunes.apple.com/us/app/video-tennis/id404454774?mt=12" rel="self">Video Tennis</a>, was released in the <a href="http://itunes.apple.com/us/app/video-tennis/id404454774?mt=12" rel="self">Mac App Store</a> this morning.  It is already #25 in the Top Free Apps and #8 in Top Free Games.  We&rsquo;ll see how long that lasts :)<br /><p style="text-align:center;"><br />Get it while it is free!   Tell a friend!<br />(also if you have a nicer screenshot or a video, send it my way :)<br /><br /><a href="http://itunes.apple.com/us/app/video-tennis/id404454774?mt=12" rel="self"><img class="imageStyle" alt="" src="http://pixelverse.org/files/me_solo_1.jpg" width="368" height="233" /></a></p>]]></content:encoded></item><item><title>Chess+More Released&#x21;</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2010-03-25T20:47:32-07:00</dc:date><link>http://pixelverse.org/files/7189c62d5354400342c0a7ca839cfca8-5.html#unique-entry-id-5</link><guid isPermaLink="true">http://pixelverse.org/files/7189c62d5354400342c0a7ca839cfca8-5.html#unique-entry-id-5</guid><content:encoded><![CDATA[Yay!  My new iPhone Chess game called <a href="iphone/chess/" rel="self" title="Chess+More">Chess+More</a> has been released!<br /><br />You can play Chess and 9 variants, both classic and modern.<br /><br />Here&rsquo;s a video of the game in action:<br /><br /><p style="text-align:center;"><center><span style="font:10px Verdana, serif; color:#504D4C;"><object width="640" height="480"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10435290&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=10435290&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object></span><span style="font:10px Arial, Verdana, Helvetica, sans-serif; "></center><br /></span><br /><a href="iphone/chess/" rel="self" title="Chess+More">Click here to find out more</a>.<br /></p>]]></content:encoded></item><item><title>Flixel ported to Unity</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2010-03-14T00:36:35-08:00</dc:date><link>http://pixelverse.org/files/39abbddc81f058976519bcfe4e0fc017-4.html#unique-entry-id-4</link><guid isPermaLink="true">http://pixelverse.org/files/39abbddc81f058976519bcfe4e0fc017-4.html#unique-entry-id-4</guid><content:encoded><![CDATA[This weekend at GDC I was lucky enough to show my port of Flixel into Unity to Adam &ldquo;Atomic&rdquo; Saltsman (creator of Flixel and Canabalt).  He was excited about it and encouraged me to post it online - <a href="experiments/flixeldemo/" rel="external" title="Flixel+Unity Demo">so here it is</a>.  I did the port as a way of learning both <a href="http://flixel.org/" rel="self">Flixel</a> and <a href="http://unity3d.com/" rel="self">Unity</a> and as potential platforms for a 2D platformer that runs on the iPhone.  Yes, that&rsquo;s right, this is a way to get your Flixel game on the iPhone, Wii or soon <a href="http://blogs.unity3d.com/2010/03/09/unity-3-coming-soon/" rel="external">iPad, Android, Xbox 360, and PS3</a> :)<br /><br /><br /><p style="text-align:center;"><img class="imageStyle" alt="" src="http://pixelverse.org/files/flixel-in-iphone.png" width="371" height="193" /><img class="imageStyle" alt="" src="http://pixelverse.org/files/flixel-in-unity-with-stats-1.png" width="360" height="225" /><br /></p><p style="text-align:left;"><br />Before you get your hopes up though, lets talk about how I did the port and what works and what doesn&rsquo;t work.<br /><br />Flixel is written in ActionScript, which is a variant of Javascript.  Unity uses a slightly different variant of Javascript for its game logic (you can also use C# or Boo).  Porting Flixel&rsquo;s source code to run in Unity was a matter of changing some syntax, adding type declarations in a bunch of places, and swapping out Flash API for Unity API calls.  Since Unity doesn&rsquo;t really have native 2D sprites I used Brady Wright&rsquo;s <a href="http://www.unifycommunity.com/wiki/index.php?title=SpriteManager" rel="self">SpriteManager</a> with a few modifications to stand in for Flash sprites.  The end result is that the whole thing runs with a single texture, 1 draw call and about 500 polygons.<br /><br /><strong>What Works</strong><br /><br />The Flixel demo game, Mode, is playable.  I implemented some slightly odd iPhone controls: tilt to move, tap the left side of the screen to jump and the right side to fire.  You can try it with normal keyboard controls <a href="experiments/flixeldemo/" rel="external" title="Flixel+Unity Demo">right now in your web browser by clicking here</a>.  The scoring/death logic is disabled for testing purposes.  You can compare to the <a href="http://www.adamatomic.com/mode/" rel="external">original Flash version here</a>.<br /><br /><strong>What Doesn&rsquo;t Work</strong><br /><br />In order to get it up and running quickly I chopped out big chunks of code for audio, text, menus, intro logo, shaking the screen, etc.  In order to get the polygon count low I pre-composite the whole level into the texture atlas (it all fits into a 1024x1024 texture).  This means that the start up time is quite slow and dynamic levels would be awkward.  The most glaring issue is speed, so lets talk about that next.<br /><br /><strong>Performance</strong><br /><br />When I initially got the port working (over a weekend in October 2009) it ran pretty slowly.  I did a bunch of work to put everything into a single texture atlas which helped, but it still felt sluggish, so I set it aside and waited for computers to get faster.  Now in the latest version of Unity iPhone 1.6 it runs much faster.  It currently runs at about 25-30 fps on an iPhone 3GS.  This is certainly playable, but way slower than it should be given the low level of complexity.  I don&rsquo;t have the Pro version of Unity which includes a real profiler, so I&rsquo;m stuck with this internal profiler report:<br /><br /><strong>iPod Touch Profile</strong><br /><code><br /><span style="font:12px Courier, mono; font-weight:bold; font-weight:bold; ">iPhone Unity internal profiler stats:<br />cpu-player>    min: 42.1   max: 63.0   avg: 48.2<br />cpu-ogles-drv> min:  0.4   max:  2.0   avg:  0.5<br />cpu-present>   min:  0.9   max:  3.0   avg:  1.1<br />frametime>     min: 44.0   max: 69.3   avg: 51.4<br />draw-call #>   min:   1    max:   1    avg:   1     | batched:     0<br />tris #>        min:   400  max:   400  avg:   400   | batched:     0<br />verts #>       min:   800  max:   800  avg:   800   | batched:     0<br />player-detail> physx:  0.8 animation:  0.0 culling  0.2 skinning:  0.0 batching:  0.0 render:  0.8 fixed-update-count: 2 .. 4<br />mono-scripts>  update: 46.2   fixedUpdate:  0.0 coroutines:  0.0 <br />mono-memory>   used heap: 1130496 allocated heap: 7524352  max number of collections: 0 collection total duration:  0.0<br /></span></code><br /><br /><strong>iPhone 3GS Profile<br /></strong><code><br /><span style="font:12px Courier, mono; font-weight:bold; font-weight:bold; ">iPhone Unity internal profiler stats:<br />cpu-player>    min: 18.0   max: 21.3   avg: 20.5<br />cpu-ogles-drv> min:  0.4   max:  1.0   avg:  0.5<br />cpu-present>   min:  1.4   max:  4.6   avg:  1.9<br />frametime>     min: 30.3   max: 36.2   avg: 33.3<br />draw-call #>   min:   1    max:   1    avg:   1     | batched:     0<br />tris #>        min:   440  max:   440  avg:   440   | batched:     0<br />verts #>       min:   880  max:   880  avg:   880   | batched:     0<br />player-detail> physx:  0.3 animation:  0.0 culling  0.1 skinning:  0.0 batching:  0.0 render:  0.7 fixed-update-count: 1 .. 2<br />mono-scripts>  update: 19.1   fixedUpdate:  0.0 coroutines:  0.0 <br />mono-memory>   used heap: 684032 allocated heap: 7524352  max number of collections: 0 collection total duration:  0.0<br /></span></code><br /><br />As you can see graphics are not the problem.  The vast majority of time is spent in the mono-scripts update phase.  This makes sense because I have just one Unity GameObject with a single Update function that deals with all of the Flixel sprites.  (I hacked SpriteManager so it doesn&rsquo;t create a separate GameObject for each sprite.)<br /><br />Without a real source-level profiler I&rsquo;m stuck doing divide-and-conquer or manual profiling.  I have not spent the time to hunker down and do this and I&rsquo;m not sure I have the Unity-specific expertise to do it well.  What I&rsquo;d rather do, is post the source for this online and get some help from the community - especially from someone with more experience with Unity performance optimization.  That&rsquo;s where you, Dear Reader, come into this story as a hero :)<br /><br />You can <a href="http://github.com/jminor/flixel4unity/archives/master" rel="self">download the source to Flixel ported to Unity iPhone from Github</a>.<br /><br />If you manage to make any improvements let me know.  I&rsquo;m sure there are plenty of folks who would love to port their Flixel games to the iPhone this way.<br /><br />Cheers,<br />-josh<br /></p>]]></content:encoded></item><item><title>Chess+More</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2010-02-24T23:32:24-08:00</dc:date><link>http://pixelverse.org/files/16326a1325657fcdbf8825a0ff66e2fc-3.html#unique-entry-id-3</link><guid isPermaLink="true">http://pixelverse.org/files/16326a1325657fcdbf8825a0ff66e2fc-3.html#unique-entry-id-3</guid><content:encoded><![CDATA[I am proud to announce that I have nearly completed a new iPhone game called <a href="iphone/chess/" rel="self" title="Chess+More">Chess+More</a>.<br /><br />I will submit it to the App Store review process as soon as I finish the last bits of polish.<br /><br />Here is a sneak peek:<br /><br /><p style="text-align:center;"><a href="iphone/chess/" rel="self" title="Chess+More"><img class="imageStyle" alt="" src="http://pixelverse.org/files/chess-modern.png" width="200" height="400" /></a><a href="iphone/chess/" rel="self" title="Chess+More"><img class="imageStyle" alt="" src="http://pixelverse.org/files/chess-maharajah.png" width="200" height="400" /></a><a href="iphone/chess/" rel="self" title="Chess+More"><img class="imageStyle" alt="" src="http://pixelverse.org/files/chess-dunsanys.png" width="200" height="400" /></a></p>]]></content:encoded></item><item><title>Quixote</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2009-11-22T23:00:16-08:00</dc:date><link>http://pixelverse.org/files/c51c5834b48b1c1d9a316284f18eeee2-2.html#unique-entry-id-2</link><guid isPermaLink="true">http://pixelverse.org/files/c51c5834b48b1c1d9a316284f18eeee2-2.html#unique-entry-id-2</guid><content:encoded><![CDATA[Last weekend I participated in a 48-hour game making contest called Ludum Dare (it was  <a href="http://www.ludumdare.com/compo/minild-14/?action=preview" rel="self">Mini LD #14</a>).<br />My collaborator Matt Webb had the excellent idea of making a game based on <a href="http://en.wikipedia.org/wiki/Don_Quixote" rel="self">Don Quixote</a>.  Here it is...<br /><br /><span style="font:10px Verdana, serif; color:#504D4C;"><center><object width="640" height="480"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="portfolio/quixote/assets/Quixote.swf" /><embed src="portfolio/quixote/assets/Quixote.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object></center></span><br /><br /><p style="text-align:center;">Use the arrow keys to move and X to jump.<br /><br /></p><p style="text-align:left;">Read more about <a href="portfolio/quixote/" rel="self" title="Quixote">how I made it here</a>.</p>]]></content:encoded></item><item><title>Fun with Video</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2009-11-02T23:03:26-08:00</dc:date><link>http://pixelverse.org/files/10cf7d0e3a54d6e105c5b62956379262-1.html#unique-entry-id-1</link><guid isPermaLink="true">http://pixelverse.org/files/10cf7d0e3a54d6e105c5b62956379262-1.html#unique-entry-id-1</guid><content:encoded><![CDATA[I added a couple of old video camera projects to my <a href="portfolio/" rel="self" title="Portfolio">portfolio page</a>.  Check out <a href="portfolio/shadowcamera/" rel="self" title="Shadow Camera">Shadow Camera</a> and <a href="retired/videopong/" rel="self" title="Video Pong">Video Pong</a>.<br /><p style="text-align:center;"><a href="portfolio/shadowcamera/" rel="self" title="Shadow Camera"><img class="imageStyle" alt="" src="http://pixelverse.org/files/pasted-graphic-4.jpg" width="208" height="208" /></a><a href="retired/videopong/" rel="self" title="Video Pong"><img class="imageStyle" alt="" src="http://pixelverse.org/files/pasted-graphic-3.jpg" width="208" height="208" /></a></p>]]></content:encoded></item><item><title>Welcome&#x21;</title><dc:creator>blog@pixelverse.org</dc:creator><dc:subject>Blog</dc:subject><dc:date>2009-08-31T21:09:15-07:00</dc:date><link>http://pixelverse.org/files/3cb19af829167e4e5089b400080bd01d-0.html#unique-entry-id-0</link><guid isPermaLink="true">http://pixelverse.org/files/3cb19af829167e4e5089b400080bd01d-0.html#unique-entry-id-0</guid><content:encoded><![CDATA[Welcome to my new web site.  It is way better than the old one.<br /><br />Check out my <a href="iphone/" rel="self" title="iPhone">iPhone Apps</a>:<br /><br /><p style="text-align:center;"><a href="iphone/rotarydialer/" rel="self" title="Rotary Dialer"><img class="imageStyle" alt="" src="http://pixelverse.org/files/rotarydialer-iphone-original.png" width="200" height="400" /></a><a href="iphone/oscemote/" rel="self" title="OSCemote"><img class="imageStyle" alt="" src="http://pixelverse.org/files/oscemote-iphone-multitouch-2.png" width="200" height="400" /></a><a href="iphone/gohome/" rel="self" title="Go Home"><img class="imageStyle" alt="" src="http://pixelverse.org/files/gohome-iphone-settings.png" width="200" height="400" /></a><br /><br />or my <a href="portfolio/" rel="self" title="Portfolio">Portfolio</a>:<br /><br /><a href="portfolio/multitouchtable/" rel="self" title="Multi-touch Table at Maker Faire 2008"><img class="imageStyle" alt="" src="http://pixelverse.org/files/pasted-graphic.jpg" width="208" height="208" /></a><a href="portfolio/olpc/speak.html" rel="self" title="OLPC Speak"><img class="imageStyle" alt="" src="http://pixelverse.org/files/pasted-graphic-1.jpg" width="208" height="208" /></a><a href="portfolio/processing/coral.html" rel="self" title="Coral"><img class="imageStyle" alt="" src="http://pixelverse.org/files/coral_full-2.gif" width="208" height="208" /></a><a href="portfolio/physix/" rel="self" title="Physix"><img class="imageStyle" alt="" src="http://pixelverse.org/files/pasted-graphic-3-2.jpg" width="208" height="208" /></a><a href="portfolio/olpc/maze.html" rel="self" title="OLPC Maze"><img class="imageStyle" alt="" src="http://pixelverse.org/files/pasted-graphic-2.jpg" width="208" height="208" /></a><a href="portfolio/processing/seedling.html" rel="self" title="Seedling"><img class="imageStyle" alt="" src="http://pixelverse.org/files/seedling_full-2.jpg" width="208" height="208" /></a><br /><br /></p>]]></content:encoded></item></channel>
</rss>