<?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>jet.ro &#187; Visuals</title>
	<atom:link href="http://jet.ro/category/visuals/feed/" rel="self" type="application/rss+xml" />
	<link>http://jet.ro</link>
	<description>designer/programmer tidbits</description>
	<lastBuildDate>Thu, 03 May 2012 14:41:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Scanline</title>
		<link>http://jet.ro/2011/12/16/scanline/</link>
		<comments>http://jet.ro/2011/12/16/scanline/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 20:24:42 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=1058</guid>
		<description><![CDATA[Scanline - 1D demo for AltParty 2011.]]></description>
			<content:encoded><![CDATA[<p>Back in October, we wanted to attend the forthcoming <a href="http://www.altparty.org/2011/" title="AltParty2011" target="_blank">Alternative Party</a> event. I think one could say it is a <a href="http://en.wikipedia.org/wiki/Demoscene" target="_blank">demoscene</a> event, but with a broader or different scope or goals &#8211; for example, encouraging or embracing artistic expression with niche platforms (either niche by being rare, or niche by being so old).</p>
<p>So, we thought about taking part in the alternative demo competition. The platform is mostly free choice there, but the compo name itself directs you to think about something different. I thought that maybe it could be interesting to make a demo which would consist of only a single static line with changing colors, and try to take most of that limitation. That is, to make a &#8220;1-Dimensional Demo&#8221; (at least by my definition).<br />
<span id="more-1058"></span></p>
<p>Early on I decided there is no need to try showing technical mastery with such a hard limitation, and decided that it is enough to just make a vertically big image and small amount code which shows that image one line at a time, until the image ends. I made a few effect prototypes with Photoshop, synced to music by checking music positions in milliseconds and converting those to Y-pixel coordinates in the image, after deciding on a frame rate.</p>
<p>It became clear that there should be a good piece of music to go with the effects, because good audio can add so much more to the experience. I asked my friend <a href="http://iki.fi/cube/" title="!Cube" target="_blank">!Cube</a> if he could make up a composition starting with some piano playing, since I thought it could make a nice start to show just white bars on black background, flashing with colors synced to the piano.</p>
<p>To get beyond my tests (still accompanied by my own music), I asked <a href="http://iki.fi/ase/" title="stRana" target="_blank">stRana</a> to help me with the actual production and design. That and just a few days later, most of the pieces started coming together, and we ended up finishing it nicely in time, a day or two before the event started.</p>
<p>For the tech part, I actually just expanded on my first proto tests a bit more. The production is built with <a href="http://processing.org" title="Processing" target="_blank">Processing</a>. It was mostly fine for the task, except that using the accompanying &#8220;minim&#8221; library for audio playing didn&#8217;t seem to be a perfect choice. I&#8217;m not sure of the contributing factors, but it seems the audio latency varies by computer and maybe even some times on the same computer. It didn&#8217;t seem to help much to ask for playing position from the audio system, since that seemed to be a too granular value not really telling where the actual audio play &#8220;head&#8221; is going. But, I didn&#8217;t want to rewrite the whole production just to fix this thing since it worked fine otherwise.</p>
<p>In the end we did really fine; <em>Scanline</em> by Rustbloom ended up winning the Alternative Demo competition. The weird thing is that the prizes in Alternative Party are usually strange obsolete leftover stuff donated by companies; we got two huge rack-mountable servers which were probably really good in their heyday, back in 2003. :) But we also got a bit of actual money on top of that (yay!).</p>
<p>You can download the executable version here: (.zip)<br />
<a href="http://jet.ro/files/Scanline_Demo1D.zip"><b>Download for Windows &amp; Mac OS X</b></a> (hint: source code is also there if you look for a source/ folder)</p>
<p>Or just watch it from the YouTube right here:<br />
<iframe width="640" height="360" src="http://www.youtube.com/embed/1TTxO-WEnak" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2011/12/16/scanline/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Assembly and Evoke 2011</title>
		<link>http://jet.ro/2011/10/04/assembly-and-evoke-2011/</link>
		<comments>http://jet.ro/2011/10/04/assembly-and-evoke-2011/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 15:56:42 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=1028</guid>
		<description><![CDATA[Demo and two 4 KB intros for demoscene events held in August 2011.]]></description>
			<content:encoded><![CDATA[<p>Writing a bit late about this, but in August I attended the <a href="http://www.assembly.org/summer11/" target="_new">Assembly 2011</a> event, as well as had the chance to visit <a href="http://www.evoke.eu/2011/" target="_new">Evoke 2011</a> in Cologne soon after that. I was actually going to GDC Europe and Gamescom events, but the Evoke luckily happened to be held just on the previous weekend in the same city.</p>
<p>As usual, I spent a little bit of time to make some entries to the event competitions. Read on for videos and a bit of info.<br />
<span id="more-1028"></span></p>
<p>&#8211;<br />
Together with <a href="http://iki.fi/ase/" target="_new">stRana</a> we created <em>Grandma</em> by Rustbloom, for the Assembly 2011 event&#8217;s demo competition. It is an experiment of using Autodesk <a href="http://labs.autodesk.com/utilities/photo_scene_editor/" target="_new">Photo Scene Editor</a> to author content for real-time use, with only a minimal amount of tech to get the thing up and running. I made a simple custom editor which made it possible to move and orient the objects, and create &#038; synchronize camera tracks to put together the demo. For music we used an antique phonograph recording from 1910&#8242;s, now in public domain, featuring Adele Rowland singing about Granny.<br />
Grandma even ended up taking the 5th place in the demo competition, which was a very nice surprise. I guess it had unique enough style to stand out from the other entries.<br />
<a href="http://jet.ro/files/Grandma.zip">Click here to download</a> the executable version for Windows, or watch the video below.<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/s6CRKKdLP94" frameborder="0" allowfullscreen></iframe></p>
<p>&#8211;<br />
I also helped out <a href="http://xmunkki.org" target="_new">XMunkki</a> to create a little humorous entry for the Assembly event&#8217;s 4 KB intro competition, <em>Nelej&auml;n Kilon Nakki</em> by XZM &amp; tAAt. Technology-wise it interestingly the 2D effects in the production are actually running inside a complex pixel shader written by XMunkki. I mostly tweaked some of the visuals/movements and created the audio track using <a href="http://4klang.untergrund.net/" target="_new">4klang</a>.<br />
<a href="http://jet.ro/files/4kNakki.zip">Click here to download</a> the executable version for Windows, or watch the video below.<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/z9fyaic_alY" frameborder="0" allowfullscreen></iframe></p>
<p>&#8211;<br />
For the Evoke 2011 event I also took part in the 4 KB intro compo, with <em>Excess Geometry &#8211; Ylij&auml;&auml;m&auml;geometria</em> by <a href="http://tAAt.fi" target="_new">tAAt</a> 2011. This production was an experiment which started with the thought &#8220;what if I precalculate a big static bunch of vertex positions, and make a production which only shows a sliding window of those vertices&#8221;. That is, the effect code basically boils down to: <tt>glDrawArrays(GL_POINTS, array_pos_in_time, 50000);</tt>. Since the demo features a planar ground as a context to show other objects, it actually has to be &#8220;refreshed&#8221; all the time by re-inserting more vertices to the plane. So, the silly design choices largely dictate what kind of things are featured.<br />
<a href="http://jet.ro/files/excessgeometry.zip">Click here to download</a> the executable version for Windows, or watch the video below.<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/Y-qvx0Ru_Gc" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2011/10/04/assembly-and-evoke-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better looking anti-aliased lines with simple trick</title>
		<link>http://jet.ro/2011/06/04/better-looking-anti-aliased-lines-with-simple-trick/</link>
		<comments>http://jet.ro/2011/06/04/better-looking-anti-aliased-lines-with-simple-trick/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 11:00:45 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=999</guid>
		<description><![CDATA[Low-tech and simple solution for rendering hardware accelerated gamma-correct anti-aliased lines.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s some notes about anti-aliased lines.<br />
For these tests of rendering anti-aliased lines my goals were roughly as follows:</p>
<ul>
<li>relatively high-quality anti-aliased lines (better than subsampling or postprocessing)</li>
<li>simple low-tech solution extendable to wide range of platforms (e.g. not relying on availability  of shaders)</li>
<li>visually better consistency than what you get if you just ask graphics API to anti-alias lines for you, and you might not even get any if the hardware is lacking</li>
<li>try to solve issue of anti-aliased lines showing a &#8220;roping&#8221; effect</li>
<li>concentrate on case of single lines without yet going to additional complexities such as line caps or joins between multiple lines</li>
</ul>
<p><span id="more-999"></span><br />
I set to test out stuff with <a href="http://www.processing.org" target="_new">Processing</a>, and decided first to do a comparison of what anti-aliased lines look by default in it. Here&#8217;s an animation showing my simple test pattern with P2D, P3D and JAVA2D renderers:<br />
<img src="http://jet.ro/wp-content/uploads/2011/06/AA_comparison_anim.gif" alt="" title="AA comparison anim, defaults from Processing" width="220" height="130" class="alignnone size-full wp-image-1003" /><br />
As you can see, the results vary a bit, which is no surprise since those different renderers surely have differing precision/performance goals or just a different way to render the lines. For lines close to perfectly horizontal/vertical lines they&#8217;re pretty similar, showing clearly the &#8220;roping&#8221; effect I mentioned above. For lines close to 45 degree angles the JAVA2D renderer seems to look a bit better.</p>
<p>So, to move forward, here&#8217;s a magnified illustration of the technique how I&#8217;m drawing lines using two quads having a gradient going from 100% in center to 0% towards edge. In actual rendering that gradient ramp is done in alpha channel, but for these example images I&#8217;m using green background and a ramp from white to black to show more clearly what&#8217;s being done.<br />
<img src="http://jet.ro/wp-content/uploads/2011/06/quads_illustration_1pix_fins.png" alt="" title="quads_illustration_1pix_fins" width="340" height="170" class="alignnone size-full wp-image-1001" /><br />
I&#8217;m basically just building on top of somebody else&#8217;s basic idea about how to render hardware accelerated lines by constructing polygons with gradient fins yourself instead of using a call to draw line primitives. I don&#8217;t know whose idea this is originally, having heard this a few times from different sources, but to fully research this subject you&#8217;d need to go back 30 years or so (check the short list of related links at end of this post).</p>
<p>When you use this technique to draw a line with &#8220;1 pix&#8221; thickness (although the fins cover total of 2 pixels), it yields pretty identical result with what you see in the above examples from Processing&#8217;s P2D/P3D/JAVA2D renderers. Well, not quite &#8211; for some reason, it actually depends a bit on the hardware. On low-end Intel GMA950 that statement of looking the same holds true. When I try that on my desktop PC with nVidia video card, the lines actually look much better (slightly fatter but without the roping). I found this out only later though, since I did all of my initial tests about this on a mini laptop which has the GMA950. :)</p>
<p>When the roping issue of anti-aliased lines is discussed, I have noticed that often somebody knowledgeable enough says it&#8217;s actually a gamma issue. The problem here being of course the fact that there are many ways to tackle the gamma thing, where none of them are a silver bullet solution which wouldn&#8217;t bring a host of other problems with it.</p>
<p>I got the idea that I could modify the above technique to draw two 0.5 unit wide fins per side, and apply gamma correction at the halfway. This would be still very simple and low-tech way to draw gamma corrected lines.</p>
<p>So here&#8217;s an illustration of what&#8217;s modified compared to the previous example:<br />
<img src="http://jet.ro/wp-content/uploads/2011/06/quads_illustration_halfpix_gamma.png" alt="" title="AA lines with half-way gamma corrected gradient fins" width="340" height="170" class="alignnone size-full wp-image-1005" /></p>
<p>The magic value of 0.72974 comes from 0.5^(1/2.2), assuming that your display gamma is 2.2. I also tried 0.707107 which comes from 0.5^(1/2), which is equal to sqrt(0.5), i.e. a good approximation which is &#8220;close enough&#8221; if you want to simplify the equation. Here is an animation showing the differences with no gamma correction, and then gamma correction with values of 2 and 2.2:<br />
<img src="http://jet.ro/wp-content/uploads/2011/06/AA_comparison_custom_lines_anim.gif" alt="" title="AA gamma comparison anim, half-way gamma corrected fins" width="220" height="130" class="alignnone size-full wp-image-1007" /></p>
<p>As I said above, the &#8220;no gamma&#8221; case looks very close to the gamma corrected one on different hardware, but the gamma 2.2 corrected case looks identical on the few machines I tried this on. I&#8217;m not sure what&#8217;s going on with that, hopefully somebody can explain it to me. I don&#8217;t have any explicitly enabled &#8220;gamma correction&#8221; features from drivers.</p>
<p>A few observations from the images. With the above technique even the perfectly horizontal and vertical lines get a small halo to nearby pixels. What&#8217;s good though is that the perceived brightness stays same very well regardless of line angle.</p>
<p>Perhaps one of the most annoying side effects of this technique is the fact that now the lines look fatter than normal 1 pix wide lines. I have done a few tests of reducing the fin width and/or decreasing the brightness. You can&#8217;t reduce the fin width much without the result quickly getting ugly, but decreasing just the brightness doesn&#8217;t really make the line look much thinner, it looks just darker. I don&#8217;t know what would be the optimal way, but I think maybe it involves a combination of both to some extent. Here&#8217;s one test image where I have reduced the fin width slightly as well as the brightness:<br />
<img src="http://jet.ro/wp-content/uploads/2011/06/ogl_custom_aa_lines_CUSTOM_GAMMA22_darker.png" alt="" title="example of trying to reduce line width with the gamma correction" width="220" height="130" class="alignnone size-full wp-image-1008" /><br />
I think a bit of the roping effect has crawled back in, but the perceived brightness between angles is pretty much ok.</p>
<p><a href="http://jet.ro/files/ogl_custom_aa_lines.pde">Here&#8217;s test code</a>, runnable inside <a href="http://www.processing.org" target="_new">Processing</a>. What&#8217;s additionally not visible in the example images above is the fact that the default renderers clamp coordinates to integers, while this method allows you to draw lines with perfect sub-pixel precision. The test code is modified to offset the lines by time slowly so you can see that in action. If you want to try the regular lines reference test case, replace the renderer in initial size() call to P2D/P3D/JAVA2D, and replace the call to testAALines(&#8230;) in draw() with the commented call to testLines(&#8230;).</p>
<p>Related links:</p>
<ul>
<li><a href="http://portal.acm.org/citation.cfm?id=357309" target="_new">Anti-Aliasing Through the Use of Coordinate Transformations</a> (K. Turkowski, 1982).
<li><a href="http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-98-2.pdf" target="_new">Prefiltered Antialiased Lines Using Half-Plane Distance Functions</a>
<li><a href="http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter22.html">GPU Gems 2 chapter 22: Fast Prefiltered Lines</a></li>
<li><a href="http://homepage.mac.com/arekkusu/bugs/invariance/TexAA.html" target="_new">OpenGL Invariance: Texture AA</a> (with glAArg library)</li>
</ul>
<p>Additional credits/thanks: I think I learned first time about using simple gradient instead of other tricks (like textures) from <a href="http://digestingduck.blogspot.com" target="_new">Mikko Mononen</a>. <a href="http://www.harveycartel.org/raigan/" target="_new">Raigan Burns</a> noted that the line being a bit fat and &#8220;bleeding&#8221; into adjacent pixels is actually a feature, since that way the lines actually look a lot better in motion. Alex May told me that most of <a href="http://www.eufloria-game.com" target="_new">Eufloria</a> game&#8217;s drawing works like this, except for using texture for drawing the lines and having a bunch of textures with different gradients to get different visuals. The gradients are circular and lines are drawn using a cross section of the texture, with rest of the texture used to make caps for round-ended lines.</p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2011/06/04/better-looking-anti-aliased-lines-with-simple-trick/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Assembly 2010</title>
		<link>http://jet.ro/2010/08/10/assembly-2010/</link>
		<comments>http://jet.ro/2010/08/10/assembly-2010/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 15:00:52 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=936</guid>
		<description><![CDATA[Highlights from Assembly 2010 event]]></description>
			<content:encoded><![CDATA[<p><img src="http://jet.ro/wp-content/uploads/2010/08/afrika4k_pms.png" alt="" title="Afrika" width="160" height="90" class="alignright size-full wp-image-937" /><br />
The Assembly 2010 summer event was held last weekend. Once again I did something to contribute in the various competitions held at the event. At right you can see thumbnail from <a href="/visuals/4k-intros/afrika/"><em>Afrika</em></a> by Rustbloom &#038; XZM. It&#8217;s our try at making a 4 KB intro with semi-abstract/stylized 2D vector graphics and bit of a story. Yes, the executable is only 4089 bytes long (0.004 megabytes). Check it out from <a href="http://www.youtube.com/watch?v=9-MUyEXKq0w" target="_new">Youtube</a>, or download the original <a href="/files/Afrika4k.zip">executable version</a> (only for Windows). The intro ended up at 5th place of 16 entries, which isn&#8217;t bad at all.</p>
<div class="cb"></div>
<p><img src="http://jet.ro/wp-content/uploads/2010/08/haypole-title-pms.png" alt="" title="Organic hay pole peg throwing" width="160" height="90" class="alignright size-full wp-image-938" /><br />
Some time before the event I also spent a moment to wade through Box2D physics engine documentation, and made a little <a href="/games/prototypes/">prototype game</a> called <a href="/games/prototypes/luomuheinaseipaantapinheitto/"><em>Luomuheinäseipääntapinheitto</em></a> (a.k.a. <em>Organic hay pole peg throwing</em>), entering it also to the gamedev contest (placed 8/19). Background music is Test Drive by <a href="http://ccmixter.org/people/Zapac" target="_new">Zapac</a>. Check out a video from <a href="http://www.youtube.com/watch?v=FsCbeaTLfJg">Youtube</a>, or <a href="/files/haypole_v101.zip">download and try it</a> (only for Windows). </p>
<div class="cb"></div>
<p>Here&#8217;s links (mostly Youtube) to some other highlights from the event: <a href="http://xmunkki.org/wiki/doku.php?id=projects:rayaracer" target="_new">XMunkki&#8217;s gamedev entry Raya Racer for N900</a>, <a href="http://www.simppa.fi/asm10/spiralout/" target="_new">Evoflash&#8217;s winner Flash demo</a> from wild compo, <a href="http://www.youtube.com/user/AssemblyTV#p/search/0/rl2KHwhIMTk" target="_new">Archee&#8217;s 4k intro</a> with physics and AI, <a href="http://www.youtube.com/user/AssemblyTV#p/search/0/5Ns8qg9GlLw" target="_new">winner 4k</a>, <a href="http://www.youtube.com/user/AssemblyTV#p/search/0/rUZYCQNg3BY" target="_new">Pier</a> 64k from Hedelmae, <a href="http://www.youtube.com/user/AssemblyTV#p/search/0/4mHZMPSeKQA" target="_new">Tricky truck</a> &#8211; Archee&#8217;s winner entry from gamedev, 64k intro compo <a href="http://www.youtube.com/watch?v=21qJJbspo_s" target="_new">1st</a> and <a href="http://www.youtube.com/watch?v=-9nDsK6SLs4" target="_new">2nd</a>, <a href="http://capped.tv/cncd_fairlight-ceasefire_all_falls_down" target="_new">Fairlight&#8217;s demo</a> (2nd in compo), and finally <a href="http://www.youtube.com/watch?v=SQngoCBvq3Q" target="_new">ASD&#8217;s winning demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2010/08/10/assembly-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>San Angeles Observation demonstrating WebGL</title>
		<link>http://jet.ro/2009/12/12/san-angeles-observation-demonstrating-webgl/</link>
		<comments>http://jet.ro/2009/12/12/san-angeles-observation-demonstrating-webgl/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 00:52:18 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=841</guid>
		<description><![CDATA[San Angeles Observation spotted demonstrating WebGL]]></description>
			<content:encoded><![CDATA[<p><img src="http://jet.ro/wp-content/uploads/2009/12/webgl_sanogles_small.png" alt="webgl_sanogles_small" title="webgl_sanogles_small" width="200" height="200" class="alignright size-full wp-image-842" /></p>
<p>I was just reading Chromium Blog and it just announced: <a href="http://blog.chromium.org/2009/12/webgl-spec-initial-public-draft.html">WebGL Spec Initial Public Draft Released</a>. Well, I was quite surprised at half way to the post when I noticed they mentioned that one of the show cases a port of my <a href="http://jet.ro/visuals/4k-intros/san-angeles-observation/">San Angeles Observation</a> 4 KB intro. I downloaded a fresh Chromium build (a development version of the Google <a href="http://www.google.com/chrome" target="_new">Chrome</a> web browser) to try it out, and have to say that I was quite impressed &#8211; the thing runs really smoothly. Let&#8217;s hope this tech becomes available as soon as possible to all major browsers. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2009/12/12/san-angeles-observation-demonstrating-webgl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction video for new Stair Dismount</title>
		<link>http://jet.ro/2009/11/19/introduction-video-for-new-stair-dismount/</link>
		<comments>http://jet.ro/2009/11/19/introduction-video-for-new-stair-dismount/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 11:30:16 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=810</guid>
		<description><![CDATA[Introduction video for new Stair Dismount]]></description>
			<content:encoded><![CDATA[<p>Continuing with the theme from my <a href="http://jet.ro/2009/11/17/stair-dismount-iphoneipod-touch/">previous post</a>, here&#8217;s the first introductory video for the new <em>Stair Dismount</em> for iPhone and iPod touch.</p>
<p><object width="320" height="480"><param name="movie" value="http://www.youtube.com/v/tAeTxPINttw&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x2b405b&#038;color2=0x6b8ab6&#038;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tAeTxPINttw&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x2b405b&#038;color2=0x6b8ab6&#038;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="480"></embed></object></p>
<p>Youtube link: <a href="http://www.youtube.com/watch?v=tAeTxPINttw">http://www.youtube.com/watch?v=tAeTxPINttw</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2009/11/19/introduction-video-for-new-stair-dismount/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stair Dismount iPhone/iPod touch</title>
		<link>http://jet.ro/2009/11/17/stair-dismount-iphoneipod-touch/</link>
		<comments>http://jet.ro/2009/11/17/stair-dismount-iphoneipod-touch/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 13:30:44 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=798</guid>
		<description><![CDATA[About new Stair Dismount... which is coming soon for iPhone and iPod touch.]]></description>
			<content:encoded><![CDATA[<p><img src="http://jet.ro/wp-content/uploads/2009/11/dismount_screenshot.jpg" alt="Stair Dismount screenshot" title="Stair Dismount screenshot" width="240" height="360" class="alignright size-full wp-image-797" /><br />
Me and few others have recently posted some &#8220;Dismount Moments&#8221; photos to Facebook, as seen here for an example. These images originate from the all-new <em><a href="http://stairdismount.com">Stair Dismount</a></em>, created for iPhone and iPod touch. It is of course a direct successor to the <a href="http://secretexit.com/freeware/stairdismount">original Stair Dismount</a> released in 2002. The game has been submitted for Apple&#8217;s approval to the App Store, so it should be available for purchasing quite soon (just a few weeks). Here&#8217;s a short introduction of what the new game is all about&#8230;<br />
<span id="more-798"></span><br />
The game has now several different stair scenarios (six for the initial release), rather than just one like in the original. You can also use your friends face &#8211; either from photo library or directly from Facebook.</p>
<p>The ragdoll, Mr. Dismount, is now simulated better than ever and the graphics have been sweetened to something completely different when compared to the barren look of original Dismount series. There&#8217;s a simple screenshot button to create your own Dismount Moments. Sharing the images has been made really easy: simply save to photo library, email to your friend right away, or send it to Facebook, with automatic tagging of your friend if you picked a face from Facebook to start with. ;-)</p>
<p>We also worked countless of iterations with the user interface, tweaking small but important nuances. The hit position can simply be changed by touching (or touch-dragging on) the ragdoll. Camera view is simply controlled by touch-dragging from the border areas of screen (i.e. when starting to drag outside of the ragdoll), and zooming is done using the pinch gesture.</p>
<p>Sweet background music is made by <a href="http://valtone.com" target="_new">Jonne Valtonen</a> (<a href="http://www.purplemotion.net" target="_new">Purple Motion</a>). The sound effects have been painfully (literally) foley-recorded, tweaked, adjusted and mixed by <a href="http://www.polyfonken.com/" target="_new">Tuukka Savolainen</a>, who has also drawn the sweet graphics for the game. Our platform code as well as some other parts were made by <a href="http://scoopr.fi" target="_new">Mikko Lehtonen</a>, and some nice visual enhancements were coded by <a href="http://digestingduck.blogspot.com/">Mikko Mononen</a>. <a href="http://frand.net/" target="_new">Jani Kahrama</a> was the producer and is also behind the level design and 3d models. Yours truly (<a href="http://jet.ro">Jetro Lauha</a>) is behind the original concept and acted as the lead programmer. I especially also want to thank <a href="http://iki.fi/ase/" target="_new">Sara Kapli</a>, who was very supportive and e.g. helped me with making reference lighting for some scenarios, of which some also made it to the final product without much modifications.</p>
<p>Finally, big thanks to authors of <a href="http://irrlicht.sourceforge.net/" target="_new">Irrlicht Engine</a> and <a href="http://ode.org/" target="_new">Open Dynamics Engine</a> which were a big help in developing this product. There were many other open source libraries as well and I did my best listing them in the about text inside the game.</p>
<p>Touch Arcade was quick to act and they already <a href="http://toucharcade.com/2009/11/16/a-look-at-secret-exits-stair-dismount-yes-its-still-coming/" target="_new">wrote up a nice preview piece about the game</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2009/11/17/stair-dismount-iphoneipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My stuff for Assembly 2009</title>
		<link>http://jet.ro/2009/08/12/my-stuff-for-assembly-2009/</link>
		<comments>http://jet.ro/2009/08/12/my-stuff-for-assembly-2009/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 16:00:11 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=688</guid>
		<description><![CDATA[Last week I attended the Assembly&#8217;09 summer event, like I have done every year since 1992. Although this time I didn&#8217;t make a game and didn&#8217;t hold a seminar session, I still contributed in the 4K intro competition&#8230; twice, actually. Again I worked with XMunkki on an intro called Dream Creditor, which ended up at [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://jet.ro/wp-content/uploads/2009/08/asm09_4ks.png" alt="4K intros for Asm09" title="4K intros for Asm09" width="224" height="248" class="alignright size-full wp-image-692" /><br />
Last week I attended the <a href="http://www.assembly.org" target="_new">Assembly&#8217;09</a> summer event, like I have done every year since 1992. Although this time I didn&#8217;t make a game and didn&#8217;t hold a seminar session, I still contributed in the 4K intro competition&#8230; twice, actually.</p>
<p>
Again I worked with <a href="http://www.xmunkki.org" target="_new">XMunkki</a> on an intro called <a href="http://jet.ro/visuals/4k-intros/dream-creditor/"><em>Dream Creditor</em></a>, which ended up at the fourth place in the competition (<a href="http://jet.ro/files/DreamCreditor.zip">Download Windows zip</a> / <a href="http://www.youtube.com/watch?v=VUbcyDaCFEw" target="_new">YouTube video</a>). Additionally I made a tongue-in-cheek-production with little marching elephants called <a href="http://jet.ro/visuals/4k-intros/"><em>Irrelephant</em></a>. Audience seemed to like it a lot so it placed on the 3rd place! (<a href="http://jet.ro/files/Fantti.zip">Download Windows zip</a> / <a href="http://www.youtube.com/watch?v=hhczJ0dHWC0" target="_new">YouTube video</a>). You can probably also easily spot that my little 2D walker prototype (from my <a href="http://jet.ro/2009/07/30/simple-2d-walker-prototyping/">previous post</a>) ended up as part of this production.</p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2009/08/12/my-stuff-for-assembly-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple 2D walker prototyping</title>
		<link>http://jet.ro/2009/07/30/simple-2d-walker-prototyping/</link>
		<comments>http://jet.ro/2009/07/30/simple-2d-walker-prototyping/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 07:20:54 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jet.ro/?p=657</guid>
		<description><![CDATA[Like I said, I&#8217;d post a bit about some prototyping. Nowadays I&#8217;m usually using Processing for small prototypes. Some years ago I used to use EVALDRAW for little algorithmic tests. I love it for the immediate feedback when working with it, and also the different modes it provides. But after I started to like more [...]]]></description>
			<content:encoded><![CDATA[<p>Like I <a href="/2009/07/28/skipping-asm09-gamedev-compo/">said</a>, I&#8217;d post a bit about some prototyping. Nowadays I&#8217;m usually using <a href="http://processing.org" target="_new">Processing</a> for small prototypes. Some years ago I used to use <a href="http://advsys.net/ken/download.htm" target="_new">EVALDRAW</a> for little algorithmic tests. I love it for the immediate feedback when working with it, and also the different modes it provides.</p>
<p>
But after I started to like more the whole concept of isolated first-stage prototypes, I felt EVALDRAW wasn&#8217;t just enough for all of my needs. After pondering with some alternatives I ended up &#8220;standardizing&#8221; on Processing, although it would still have a lot to learn from EVALDRAW. :-) However the one cool thing with Processing is that you can export your creation to be a stand-alone mini-app or even to a web page. As long as you have installed <a href="http://java.com" target="_new">Java</a>.</p>
<p>
Lately when working with some ideas for a platformer game, I wanted to make some tests for a &#8220;walker&#8221;. To be exact, the simple kind which would just use some carefully chosen formulas like sine curves to move feet and body.<br />
<span id="more-657"></span></p>
<p>
So here are my results.</p>
<p>
<APPLET name="runtest1" WIDTH="480" HEIGHT="320" archive="/sketches/runtest1/runtest1.jar" standby="Loading Processing software..." codebase="http://jet.ro/sketches/runtest1/" code="runtest1" mayscript="true" scriptable="true" image="/sketches/runtest1/loading.gif" boxmessage="Loading Processing software..." boxcolor="#FFFFFF"></p>
<p><strong><br />
As said, you need to have <a href="http://java.sun.com/products/plugin/downloads/index.html" title="Download Java Plug-in" target="_new">Java plugin</a> installed.<br />
</strong></p>
<p></APPLET></p>
<p>
I think it took from me roughly 2 hours to code &#038; tweak those after having thinked about it beforehand. Naturally I had a few iterations &#8211; and actually the order of progression goes from bottom to up. I like how just the movements seem to convey different characteristics &#8211; the bottom one is somehow very steadfast, middle one is in haste, and the top one is a joyful jogger.</p>
<p>
I actually wanted to make a &#8220;running one&#8221; as well but failed at it for the time being. :) I did check out Braid and some Mario games just to analyze how they approach the idea of making a character run or just generally move around.</p>
<p>
<strong>Update:</strong> Added a &#8220;disney-happy version&#8221; of the bottom walker as suggested by Late below. Thanks! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2009/07/30/simple-2d-walker-prototyping/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Assembly 2007 &#8211; Seminar slides, 4KB intro, Company news</title>
		<link>http://jet.ro/2007/08/13/asm07-seminarslides-4kbintro-companynews/</link>
		<comments>http://jet.ro/2007/08/13/asm07-seminarslides-4kbintro-companynews/#comments</comments>
		<pubDate>Sun, 12 Aug 2007 21:01:39 +0000</pubDate>
		<dc:creator>jetro</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://jetro.strobotnik.com/?p=356</guid>
		<description><![CDATA[Assembly&#8217;07 is over. I held a seminar presentation there about Immediate Mode Graphical User Interfaces (IMGUI for short), together with Jari Komppa. You can check out the slides. With XMunkki I once again created a 4 KB intro, Rose Shank (download Windows zip). What&#8217;s special about the creation is the fact that it was created [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://jetro.strobotnik.com/wp-content/uploads/2009/07/tn_roseshank.jpg" alt="Rose Shank" title="Rose Shank" width="200" height="150" class="alignright size-full wp-image-355" /><br />
<a href="http://www.assembly.org/" target="_new">Assembly</a>&#8217;07 is over. I held a seminar presentation there about <em>Immediate Mode Graphical User Interfaces</em> (IMGUI for short), together with <a href="http://iki.fi/sol/" target="_new">Jari Komppa</a>. You can <a href="/2007/08/13/immediate-mode-graphical-user-interface-seminar/">check out the slides</a>.</p>
<p>
With <a href="http://www.xmunkki.org/" target="_new">XMunkki</a> I once again created a 4 KB intro, <em>Rose Shank</em> (<a href="/files/XZM-tAAt-RoseShank.zip">download Windows zip</a>). What&#8217;s special about the creation is the fact that it was created in a custom language which uses LISP syntax (Lisp-ahtava aka IL4). The code is compiled into a custom minimal bytecode and a VM for that particular case. Respect to XMunkki &#8211; he is the brains behind that nice little system which we have talked about for some years, and he finally got around to implementing it!</p>
<p>
If you hadn&#8217;t heard yet, I recently also quit working for my previous employer Sulake Corporation and co-founded <a href="http://www.secretexit.com/" target="_new">Secret Exit Ltd</a> together with Jani Kahrama. We created a prototype of one of our game concepts for the Assembly Game Development competition. <em>Cinnamon Beats</em> took the 3rd place although it&#8217;s still in pre-alpha and we have received many positive comments about the game.</p>
<p>
<strong>Update</strong>: <a href="http://www.xmunkki.org/xm/wiki/doku.php?id=projects:rose_shank" target="_new">Sources for Rose Shank are available</a>.<br />
You can also view a <a href="http://www.youtube.com/watch?v=iGFvInIs0qM" target="_new">YouTube video</a> of it!</p>
]]></content:encoded>
			<wfw:commentRss>http://jet.ro/2007/08/13/asm07-seminarslides-4kbintro-companynews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

