<?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>BlackHC's Adventures in the Dev World &#187; Games</title>
	<atom:link href="http://blog.blackhc.net/category/games/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.blackhc.net</link>
	<description>Just another weblog</description>
	<lastBuildDate>Wed, 16 Nov 2011 23:12:15 +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>Limbo</title>
		<link>http://blog.blackhc.net/2010/09/limbo/</link>
		<comments>http://blog.blackhc.net/2010/09/limbo/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 13:51:35 +0000</pubDate>
		<dc:creator>BlackHC</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal Rantings]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Limbo]]></category>

		<guid isPermaLink="false">http://blog.blackhc.net/?p=827</guid>
		<description><![CDATA[<a href="http://blog.blackhc.net/2010/09/limbo/" title="Limbo"></a>Limbo is a game that has been released on Xbox Live Arcade some time ago, but I've only now found time to play it. It is a very nice game - albeit a bit on the short side: it took &#8230;<p class="read-more"><a href="http://blog.blackhc.net/2010/09/limbo/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.blackhc.net/2010/09/limbo/" title="Limbo"></a><p><a href="http://www.limbogame.org" target="_blank">Limbo</a> is a game that has been released on Xbox Live Arcade some time ago, but I've only now found time to play it.</p>
<p>It is a very nice game - albeit a bit on the short side: it took me  about 5 hours to finish it. But this is the only negative bit I can  think of. Everything else about the game is very nice. It is very  polished and it's a charm to play. You have to think about the puzzles  for some time but the learning curve is okay and there were no unfair  bits.</p>
<p>The game is black-and-white only (with shades of gray) and you play a boy that apparently got lost in a forest (that is how it starts) and you want to get out.<a href="http://www.limbogame.org/wordpress/wp-content/uploads/screenshot071-800x449.jpg"><img class="alignright" title="Limbo Screenshot" src="http://www.limbogame.org/wordpress/wp-content/uploads/screenshot071-800x449.jpg" alt="" width="800" height="449" /></a></p>
<p>The  game mechanics are very simple: you can only move around, jump and hold  on to things to drag them around (or press buttons, etc). In this  regard the game is very similar to <a href="http://www.anotherworld.fr/anotherworld_uk/" target="_blank">Another World</a> (another very good game  worth playing).<br />
The puzzles are all phyiscs-based and because of this the aforementioned  fairness is achieved: sometimes you just have to think a bit longer how  to solve a puzzle but it is always logical.</p>
<p><a href="http://blog.blackhc.net/2010/09/limbo/"><em>Click here to view the embedded video.</em></a></p>
<p>The game is somewhat violent because it works using the "learning by dying" principle and if you don't enable the gore filter, you'll see the poor boy being halved, stabbed, squashed,... many times. However, since he is only a black shape, it's okay and won't put you off playing. The game uses many (and only) auto-saves to track your progress and you never feel punished for dying because you'll get another try straightaway without having to replay more than a few seconds.<br />
"learning by dying" works really well (and is also used in Another World): You don't have to worry about a "health bar" or rewind time or...</p>
<p>The difficulty of the game is just right and it gets harder as you progress through the world: you get to use more objects to solve the puzzles or will have to think of new ways to use physics to achieve your goals. However, one annoying bit is that also autosave points get moved further apart even when there is no need for it. This only happens in the last few "chapters" of the game though.</p>
<p>All in all it is very much a game worth playing and a very polished experience - kudos to the developers!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.blackhc.net/2010/09/limbo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rotation of Low Order Spherical Harmonics</title>
		<link>http://blog.blackhc.net/2010/06/rotation-of-low-order-spherical-harmonics/</link>
		<comments>http://blog.blackhc.net/2010/06/rotation-of-low-order-spherical-harmonics/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 23:10:05 +0000</pubDate>
		<dc:creator>BlackHC</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Maths]]></category>
		<category><![CDATA[Crytek]]></category>
		<category><![CDATA[Light Propagation Volume]]></category>
		<category><![CDATA[Rotation]]></category>
		<category><![CDATA[Spherical Harmonics]]></category>

		<guid isPermaLink="false">http://blog.blackhc.net/?p=740</guid>
		<description><![CDATA[<a href="http://blog.blackhc.net/2010/06/rotation-of-low-order-spherical-harmonics/" title="Rotation of Low Order Spherical Harmonics"></a>I'm currently working at university on implementing Light Propagation Volumes. The paper makes extensive use of spherical harmonics while the implementation uses the first two bands. Below is a visualization of the first 4 bands of the SH basis functions &#8230;<p class="read-more"><a href="http://blog.blackhc.net/2010/06/rotation-of-low-order-spherical-harmonics/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.blackhc.net/2010/06/rotation-of-low-order-spherical-harmonics/" title="Rotation of Low Order Spherical Harmonics"></a><p>I'm currently working at university on implementing <a href="http://www.crytek.com/technology/presentations/" target="_blank">Light Propagation Volumes</a>. The paper makes extensive use of <a href="http://en.wikipedia.org/wiki/Spherical_harmonics" target="_blank">spherical harmonics</a> while the implementation uses the first two bands.</p>
<p>Below is a visualization of the first 4 bands of the SH basis functions (created using <a href="http://code.enthought.com/projects/mayavi/" target="_blank">Mayavi</a>):</p>
<div id="attachment_742" class="wp-caption aligncenter" style="width: 629px"><a href="http://blog.blackhc.net/wp-content/uploads/2010/06/sh0to3.jpg"><img class="size-full wp-image-742" title="sh0to3" src="http://blog.blackhc.net/wp-content/uploads/2010/06/sh0to3.jpg" alt="sh0to3" width="619" height="283" /></a><p class="wp-caption-text">The first 4 bands of the spherical harmonic basis functions</p></div>
<p>As you can see the first two bands are 4 functions, so 4 coefficients to store which conveniently fits into one RGBA texture.</p>
<p>One of the main transformations that is performed in the LPV paper is the rotation of the spherical harmonics representation of a clamped cosine lobe (that represents surface lighting) onto a normal vector direction.  It took me a while to figure out, but actually it's quite easy, which is why I write about it <img src='http://blog.blackhc.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The analytical presentation of the first four base functions is simple:</p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_706d2523bb7365dae8ac1eaa44f1734d.gif' style=' ' class='tex' alt="S_0 \left( x, y, z \right ) = \frac{1}{2 \sqrt{\pi}}" /></span><script type='math/tex'>S_0 \left( x, y, z \right ) = \frac{1}{2 \sqrt{\pi}}</script><br />
<span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_2a90a081c65c08627081aff156902440.gif' style=' ' class='tex' alt="S_1 \left( x, y, z \right ) = - \frac{\sqrt{3}}{2 \sqrt{\pi}} y" /></span><script type='math/tex'>S_1 \left( x, y, z \right ) = - \frac{\sqrt{3}}{2 \sqrt{\pi}} y</script><br />
<span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_f71c3646eaced6589b903fbc55202646.gif' style=' ' class='tex' alt="S_2 \left( x, y, z \right ) = \frac{\sqrt{3}}{2 \sqrt{\pi}} z " /></span><script type='math/tex'>S_2 \left( x, y, z \right ) = \frac{\sqrt{3}}{2 \sqrt{\pi}} z </script><br />
<span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_e62b566d079a3237f32e3e6a600d53f6.gif' style=' ' class='tex' alt="S_3 \left( x, y, z \right ) = - \frac{\sqrt{3}}{2 \sqrt{\pi}} x" /></span><script type='math/tex'>S_3 \left( x, y, z \right ) = - \frac{\sqrt{3}}{2 \sqrt{\pi}} x</script></p>
<p style="text-align: left;">To evaluate lighting with SH for some direction v, you first determine the coefficients/weights of the SH basis functions and then sum them up.</p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_62efdb3cfc8367587aaa24daa5e54c20.gif' style=' ' class='tex' alt=" L = \sum_i s_i \, S_i \left( v \right ) " /></span><script type='math/tex'> L = \sum_i s_i \, S_i \left( v \right ) </script></p>
<p style="text-align: left;">Let's assume we know the coefficients <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_1576a652d84c1978430a8247c5db798d.gif' style=' ' class='tex' alt=" s^z_0, s^z_1, ... " /></span><script type='math/tex'> s^z_0, s^z_1, ... </script> of the clamped cosine lobe around the z axis, then we can determine the lighting in direction v for the cosine lobe around the normal n by transforming it into the space where the normal coincides with the z axis (ie rotate n onto the z axis):</p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_a9d43578de309ca75a1ef416e635cb8e.gif' style=' ' class='tex' alt=" L = \sum_i s^z_i \, S_i \left( R_{n \to z} \, v \right ) " /></span><script type='math/tex'> L = \sum_i s^z_i \, S_i \left( R_{n \to z} \, v \right ) </script></p>
<p style="text-align: left;">where <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_72c05df713d9d70bd2c19005825c4654.gif' style=' padding-bottom:1px;' class='tex' alt=" R_{n \to z} " /></span><script type='math/tex'> R_{n \to z} </script> is a rotation matrix that rotates n onto z.</p>
<p style="text-align: left;">The idea is to expand <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_9b51b7bfc7626af61c73fba376411b92.gif' style=' ' class='tex' alt=" S_i \left( R_{n \to z} \, v \right ) " /></span><script type='math/tex'> S_i \left( R_{n \to z} \, v \right ) </script> and rewrite it in terms of <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_9dca7e9f9901d704dbe0a9a640b1b9ef.gif' style=' ' class='tex' alt=" S_i \left ( v \right ) " /></span><script type='math/tex'> S_i \left ( v \right ) </script>.</p>
<p style="text-align: left;">Before doing this, let's first take a look at the coefficients of the clamped cosine lobe:</p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_66126bf5cd9db5ff94cc4fa73659dd0c.gif' style=' ' class='tex' alt="\begin{align*} 
s^z_0 &=\frac{ \sqrt{ \pi } }{ 2 }\\ 
s^z_1 &= 0\\ 
s^z_2 &= \sqrt\frac{ \pi }{3}\\ 
s^z_3 &= 0\\ 
\end{align*}" /></span><script type='math/tex'>\begin{align*} 
s^z_0 &=\frac{ \sqrt{ \pi } }{ 2 }\\ 
s^z_1 &= 0\\ 
s^z_2 &= \sqrt\frac{ \pi }{3}\\ 
s^z_3 &= 0\\ 
\end{align*}</script></p>
<p style="text-align: left;">The y and x direction are 0 because the cosine lobe is centered isotropic around the z axis:</p>
<p style="text-align: left;">So let's look at the expanded version of this formula if <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_21d8857e73e37ea774391e045332b63b.gif' style=' ' class='tex' alt=" r_1^T " /></span><script type='math/tex'> r_1^T </script>, <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_34bef2d01462b580813b1c032d44a5f0.gif' style=' ' class='tex' alt=" r_2^T " /></span><script type='math/tex'> r_2^T </script>, <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_498bc755e068ea1e03c36b7fd60344bf.gif' style=' ' class='tex' alt=" r_3^T " /></span><script type='math/tex'> r_3^T </script> are the row vectors of the matrix,<br />
<span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_e09264b9334a6de4f744ae811ba8eed9.gif' style=' ' class='tex' alt=" v=\bigl(\begin{smallmatrix} 
x\\ 
y\\ 
z 
\end{smallmatrix}\bigr)" /></span><script type='math/tex'> v=\bigl(\begin{smallmatrix} 
x\\ 
y\\ 
z 
\end{smallmatrix}\bigr)</script> and <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_fbb924431dfe73853b446dbbd4635631.gif' style=' ' class='tex' alt=" R_{n \to z}=\left(\begin{smallmatrix} 
r_1^T\\ 
r_2^T\\ 
r_3^T 
\end{smallmatrix}\right ) " /></span><script type='math/tex'> R_{n \to z}=\left(\begin{smallmatrix} 
r_1^T\\ 
r_2^T\\ 
r_3^T 
\end{smallmatrix}\right ) </script>, then:</p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_ff18dec00347fa5012ee1b824ef9db4e.gif' style=' ' class='tex' alt=" L = \sum_i s^z_i \, S_i \left( R_{n \to z} \, v \right ) = \sum_i s^z_i \, S_i \left( \left(\begin{smallmatrix} 
r_1^T \, v\\ 
r_2^T \, v\\ 
r_3^T \, v\end{smallmatrix}\right ) \right ) " /></span><script type='math/tex'> L = \sum_i s^z_i \, S_i \left( R_{n \to z} \, v \right ) = \sum_i s^z_i \, S_i \left( \left(\begin{smallmatrix} 
r_1^T \, v\\ 
r_2^T \, v\\ 
r_3^T \, v\end{smallmatrix}\right ) \right ) </script><br />
<span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_f7480868c3bcafa1bfba780d14bdf03a.gif' style=' ' class='tex' alt="\begin{align*} L &= s^z_0 \, c_0\\ 
&+ s^z_1 \, (-c_1) \, r_2^T \, v \\ 
&+ s^z_2 \, c_1 \, r_3^T \, v\\ 
&+ s^z_3 \, (-c_1) \, r_1^T \, v 
\end{align*} " /></span><script type='math/tex'>\begin{align*} L &= s^z_0 \, c_0\\ 
&+ s^z_1 \, (-c_1) \, r_2^T \, v \\ 
&+ s^z_2 \, c_1 \, r_3^T \, v\\ 
&+ s^z_3 \, (-c_1) \, r_1^T \, v 
\end{align*} </script></p>
<p style="text-align: left;">Since <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_10080ca9d8790e9e105fe19a8207da6a.gif' style=' ' class='tex' alt=" s^z_1 = 0 " /></span><script type='math/tex'> s^z_1 = 0 </script> and <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_dfd368e9d908cd15e20b6b5c0f16ee95.gif' style=' ' class='tex' alt=" s^z_3 = 0 " /></span><script type='math/tex'> s^z_3 = 0 </script>:</p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_db640f1bac2ea6839ae440f962a7d6e3.gif' style=' ' class='tex' alt=" L = s^z_0 \, c_0 + s^z_2 \, c_1 \, r_3^T \, v = s^z_0 \, c_0 + s^z_2 \, c_1 \, r_{31} \, x + s^z_2 \, c_1 \, r_{32} \, y + s^z_2 \, c_1 \, r_{33} \, z " /></span><script type='math/tex'> L = s^z_0 \, c_0 + s^z_2 \, c_1 \, r_3^T \, v = s^z_0 \, c_0 + s^z_2 \, c_1 \, r_{31} \, x + s^z_2 \, c_1 \, r_{32} \, y + s^z_2 \, c_1 \, r_{33} \, z </script></p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_d15e0f20255d1a7e36b4ef82f507bd97.gif' style=' ' class='tex' alt="  L = s^z_0 \, S_0 \left ( v \right ) - s^z_2 \, r_{32} \, S_1 \left ( v \right )+ s^z_2 \, r_{33} \, S_2 \left ( v \right ) - s^z_2 \, r_{31} \, S_3 \left ( v \right ) " /></span><script type='math/tex'>  L = s^z_0 \, S_0 \left ( v \right ) - s^z_2 \, r_{32} \, S_1 \left ( v \right )+ s^z_2 \, r_{33} \, S_2 \left ( v \right ) - s^z_2 \, r_{31} \, S_3 \left ( v \right ) </script></p>
<p style="text-align: left;">Now the question is: what is the third row of <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_72c05df713d9d70bd2c19005825c4654.gif' style=' padding-bottom:1px;' class='tex' alt=" R_{n \to z} " /></span><script type='math/tex'> R_{n \to z} </script>? If we look at the inverse matrix instead: <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_6888161c8e42f0612159bf67a6ec5d1f.gif' style=' padding-bottom:1px;' class='tex' alt=" R_{z \to n} " /></span><script type='math/tex'> R_{z \to n} </script>, we can immediately see that its third column has to be n, because <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_e2e67bad12ec4b33002810f806a3cea1.gif' style=' ' class='tex' alt=" R_{z \to n} \, \bigl(\begin{smallmatrix} 
0\\ 
0\\ 
1 
\end{smallmatrix}\bigr) = n " /></span><script type='math/tex'> R_{z \to n} \, \bigl(\begin{smallmatrix} 
0\\ 
0\\ 
1 
\end{smallmatrix}\bigr) = n </script> by construction. Since rotations are orthogonal matrices, the inverse is the same as the transposed, so we can deduce that the third row of <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_72c05df713d9d70bd2c19005825c4654.gif' style=' padding-bottom:1px;' class='tex' alt=" R_{n \to z} " /></span><script type='math/tex'> R_{n \to z} </script> is the same as the third column of <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_6888161c8e42f0612159bf67a6ec5d1f.gif' style=' padding-bottom:1px;' class='tex' alt=" R_{z \to n} " /></span><script type='math/tex'> R_{z \to n} </script>,  that is: n. Thus with <span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_ef07c9f2fc39079162be1fe78a77ecdc.gif' style=' ' class='tex' alt=" n = \bigl(\begin{smallmatrix} 
n_x\\ 
n_y\\ 
n_z 
\end{smallmatrix}\bigr) " /></span><script type='math/tex'> n = \bigl(\begin{smallmatrix} 
n_x\\ 
n_y\\ 
n_z 
\end{smallmatrix}\bigr) </script> we get:</p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_2540af4a2b20386cc6a543882c27434b.gif' style=' ' class='tex' alt="  L = s^z_0 \, S_0 \left ( v \right ) - s^z_2 \, n_y \, S_1 \left (  v \right )+ s^z_2 \, n_z \, S_2 \left ( v \right ) - s^z_2 \, n_x  \, S_3 \left ( v \right ) " /></span><script type='math/tex'>  L = s^z_0 \, S_0 \left ( v \right ) - s^z_2 \, n_y \, S_1 \left (  v \right )+ s^z_2 \, n_z \, S_2 \left ( v \right ) - s^z_2 \, n_x  \, S_3 \left ( v \right ) </script></p>
<p style="text-align: left;">So the SH coefficients of the clamped cosine lobe along n are:</p>
<p style="text-align: left;"><span class='MathJax_Preview'><img src='http://blog.blackhc.net/wp-content/plugins/latex/cache/tex_fc99ccf1a7f5eb0d3e7a711f01aa6bd1.gif' style=' ' class='tex' alt=" 
s^n_0 = s^z_0 = \frac{ \sqrt{ \pi } }{ 2 } \\ 
s^n_1 = - s^z_2 \, n_y =  -\sqrt{ \frac{ \pi }{3} } \, n_y \\ 
s^n_2 = s^z_2 \, n_z = \sqrt{\frac{ \pi }{3} } \, n_z \\ 
s^n_1 = - s^z_2 \, n_x = - \sqrt{\frac{ \pi }{3}} \, n_x 
" /></span><script type='math/tex'> 
s^n_0 = s^z_0 = \frac{ \sqrt{ \pi } }{ 2 } \\ 
s^n_1 = - s^z_2 \, n_y =  -\sqrt{ \frac{ \pi }{3} } \, n_y \\ 
s^n_2 = s^z_2 \, n_z = \sqrt{\frac{ \pi }{3} } \, n_z \\ 
s^n_1 = - s^z_2 \, n_x = - \sqrt{\frac{ \pi }{3}} \, n_x 
</script></p>
<p style="text-align: left;">This is it <img src='http://blog.blackhc.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: left;">Cheers,<br />
Andreas</p>
<p style="text-align: left;">PS: a few screenshots from the LPV project:</p>
<p style="text-align: left;"><a href="http://blog.blackhc.net/wp-content/uploads/2010/06/GPUPropCopy-0616.jpeg"><img class="size-medium wp-image-770 alignnone" title="GPUPropCopy 0616" src="http://blog.blackhc.net/wp-content/uploads/2010/06/GPUPropCopy-0616-300x236.jpg" alt="GPUPropCopy 0616" width="300" height="236" /></a><a href="http://blog.blackhc.net/wp-content/uploads/2010/06/noLPV.JPG"><br />
<img class="size-medium wp-image-773 alignnone" title="noLPV" src="http://blog.blackhc.net/wp-content/uploads/2010/06/noLPV-300x210.jpg" alt="noLPV" width="300" height="210" /></a><a href="http://blog.blackhc.net/wp-content/uploads/2010/06/LPV32P128C.JPG"><img class="alignnone size-medium wp-image-771" title="LPV32P128C" src="http://blog.blackhc.net/wp-content/uploads/2010/06/LPV32P128C-300x210.jpg" alt="LPV32P128C" width="300" height="210" /></a></p>
<p style="text-align: left;"><a href="http://blog.blackhc.net/wp-content/uploads/2010/06/noLPV_2.JPG"><img class="alignnone size-medium wp-image-774" title="noLPV_2" src="http://blog.blackhc.net/wp-content/uploads/2010/06/noLPV_2-300x210.jpg" alt="noLPV_2" width="300" height="210" /></a><a href="http://blog.blackhc.net/wp-content/uploads/2010/06/LPV32P128C_2.JPG"><img class="alignnone size-medium wp-image-772" title="LPV32P128C_2" src="http://blog.blackhc.net/wp-content/uploads/2010/06/LPV32P128C_2-300x210.jpg" alt="LPV32P128C_2" width="300" height="210" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.blackhc.net/2010/06/rotation-of-low-order-spherical-harmonics/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sploidz Revisited (Unofficially)</title>
		<link>http://blog.blackhc.net/2009/08/sploidz-revisited/</link>
		<comments>http://blog.blackhc.net/2009/08/sploidz-revisited/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 09:08:26 +0000</pubDate>
		<dc:creator>BlackHC</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Game Projects]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Red Thumb Games]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Sploidz]]></category>

		<guid isPermaLink="false">http://blog.blackhc.net/?p=644</guid>
		<description><![CDATA[<a href="http://blog.blackhc.net/2009/08/sploidz-revisited/" title="Sploidz Revisited (Unofficially)"></a>I've already written about the semi-conductor project and how I've written some Flash animations/applications for it. Of course, I'm more interested in making fun stuff&#180;, so I decided to put my knowledge to good use and write a small game &#8230;<p class="read-more"><a href="http://blog.blackhc.net/2009/08/sploidz-revisited/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.blackhc.net/2009/08/sploidz-revisited/" title="Sploidz Revisited (Unofficially)"></a><p>I've already written about the semi-conductor project and how I've written some Flash animations/applications for it. Of course, I'm more interested in making fun stuff<a class="annotation" title="of course, the math stuff is also fun from a different point of view" href="javascript:;"><strong>&#180;</strong></a>, so I decided to put my knowledge to good use and write a small game to see how difficult/awkward Flash actually is.</p>
<p>To sum it up, it is somewhat awkward, at least if you use the IDE itself. FlashDevelop still is as nice as ever, but you can quickly develop games nonetheless. I prefer Torque Game Builder though in retrospect.</p>
<p>Before I continue talking about the development itself, let's take a look at the actual game. <a href="http://www.redthumbgames.com/sploidz/">Sploidz</a> was the first game I wrote using Torque Game Builder for Joshua Dallman, and since I still had all the assets in my subversion repository, it was an easy decision to try and port this game. If you want to play it, you can download it for <strong>free</strong> <a href="http://www.redthumbgames.com/sploidz/" target="_blank">here</a>.<br />
I haven't ported everything: I've just rewritten the main characteristic features that make up Sploidz's code in ActionScript.</p>
<p>Without further ado<a class="annotation" title="honestly I don't know why I know this expression.." href="javascript:;"><strong>&#180;</strong></a> here is the game:<br />
<object id="Sploidz" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="384" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="src" value="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz.swf" /><param name="name" value="Sploidz" /><param name="allowfullscreen" value="true" /><embed id="Sploidz" type="application/x-shockwave-flash" width="512" height="384" src="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz.swf" name="Sploidz" bgcolor="#ffffff" quality="high" allowfullscreen="true" align="middle"></embed></object><br />
<a href="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz.swf" target="_blank">Click to open Sploidz in its own window</a></p>
<p>Because the art is still copyrighted and I haven't heard back from Joshua yet <a class="annotation" title="and because I had too much spare time on Saturday night when everybody is having fun and partying and I'm sitting alone this wretched room.. just kidding" href="javascript:;"><strong>&#180;</strong></a>, I decided to create a free version that only uses "coder art" - in this hand-drawn coder art <img src='http://blog.blackhc.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Some<a class="annotation" title="Mr. jRAD" href="javascript:;"><strong>&#180;</strong></a> have said that this version looks cuter, decide for yourself:<br />
<object id="SploidzCC" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="384" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="src" value="http://blog.blackhc.net/wp-content/uploads/2009/08/SploidzCC.swf" /><param name="name" value="SploidzCC" /><param name="allowfullscreen" value="true" /><embed id="SploidzCC" type="application/x-shockwave-flash" width="512" height="384" src="http://blog.blackhc.net/wp-content/uploads/2009/08/SploidzCC.swf" name="SploidzCC" bgcolor="#ffffff" quality="high" allowfullscreen="true" align="middle"></embed></object><br />
<a href="http://blog.blackhc.net/wp-content/uploads/2009/08/SploidzCC.swf" target="_blank">Click to open SploidzCC in its own window</a></p>
<p>Below you'll find a description of the development and at least one helpful trick and most importantly a link to the source code of the "copyright-free" version.</p>
<p><strong>Because the orginal version is way too difficult to be really fun, I actually sat down one more time and added code to make the platform slower if you're in danger of losing (up to 3 times slower):</strong><br />
<object id="SploidzMoreFun" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="384" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="src" value="http://blog.blackhc.net/wp-content/uploads/2009/08/SploidzMoreFun.swf" /><param name="name" value="SploidzMoreFun" /><param name="allowfullscreen" value="true" /><embed id="SploidzMoreFun" type="application/x-shockwave-flash" width="512" height="384" src="http://blog.blackhc.net/wp-content/uploads/2009/08/SploidzMoreFun.swf" name="SploidzMoreFun" bgcolor="#ffffff" quality="high" allowfullscreen="true" align="middle"></embed></object><br />
<a href="http://blog.blackhc.net/wp-content/uploads/2009/08/SploidzMoreFun.swf" target="_blank">Click to open SploidzMoreFun in its own window</a></p>
<p><span id="more-644"></span></p>
<h3>Development</h3>
<p>I think I spent less than 20 hours on the project. It's hard to say because I worked on it on three different days, but only probably less than 6 hours on each.</p>
<p>The main problems during the development were:</p>
<ul>
<li>How do I get the art assets into Flash?</li>
<li>How do I use the IDE and objects in a way that is helpful?</li>
</ul>
<p>Lessons learned:</p>
<p>Even though the project isn't that big, it didn't take long for annoying bugs to appear - mainly in the matching code, because it's somewhat asynchronous and you have to make sure that an item doesn't get removed between events, etc.<br />
So again, I can only say that assertions and lots of debug messages are your friend and are really useful for understanding the sometimes mysterious ways of non-obvious code interaction.</p>
<p>Again one of the biggest headache was how to make the game a game (so you don't always and feel some reward while playing) and this resulted in implementing the platform game element from the original Sploidz game, although I wanted to avoid that in the beginning because of the added complexity.<br />
Someone<a class="annotation" title="Roy" href="javascript:;"><strong>&#180;</strong></a> pointed out though, that if you have 8 columns and only 5 different item types, the main idea of matching items becomes trivial. It's obvious, but I didn't think of it while coding the proof of concept code.<br />
Of course you have to somewhat tune the speed and animation durations of everything to make it playable. I think the game is really hard at the moment, but that's better than too easy and I especially added the "survival timer" in the upper right panel to allow for some competition and personal best times.<br />
I might change the platform code at some point to be more player-friendly, but I have more pressing projects to do at the moment: my Bachelor Thesis... /o\.<br />
As said above, I actually sat down and added a time scaler to the platform. The code is quite simple but helps the game a bit (I managed to survive 2 minutes and it was more challenging and less depressing to play the game ^ ^). The code is quite simple:</p>
<pre>public function getPlatformTimeScale():Number {
	var maxRow:int = 0;
	for ( var column:int = 0 ; column &lt; Grid.numColumns ; column++ ) {
		var firstEmptyRow:int = grid.getFirstEmptyCellRow( column );
		if ( firstEmptyRow &gt; maxRow ) {
			maxRow = firstEmptyRow;
		}
	}

	const minScale:Number = 1.0;
	const maxScale:Number = 3.0;
	var scale:Number = minScale + (maxScale - minScale) * Math.pow( maxRow / (Grid.numRows - 1), 8 );
	trace( "Using platform scale: " + scale );
	return scale;
}
</pre>
<p>As you see, it uses a power function to make the platform slower only if really few empty rows are left.</p>
<h4>Interesting things to know</h4>
<ul>
<li>If you want to important a sequence of images (say you have an animation stored as picture frames diamond_black00.png to diamond_black15.png, only select the first image when "importing to stage" in Flash, otherwise you won't get the dialog asking you whether you want to import an image sequence as animation.<br />
(Cost me a few hours of searching to find this out.)</li>
<li>If you have animations that stores multiple frames in one image, you'll have to split the images up into the respective frames. To do this in Photoshop make use of "guides" and slicing and notice the "Slices from Guides" button that is offered. It's really helpful.<br />
You can also store the creation of the guides and the slicing as action/macro and reuse it which also saves some time.</li>
<li>If you ever get the error "type was not defined or was not a compile-time constant", you might have a symbol instance that has the same name and class name. Flash freaks out for some reason and displays this weird error message.</li>
</ul>
<p>For added fanciness, I've also included two older builds that show the evolution of the game code.</p>
<p>Note: There are bugs in these builds, so they are really just meant to show the progress on the first and second day.<br />
<object id="Sploidz0810" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="384" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="src" value="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz0810.swf" /><param name="name" value="Sploidz0810" /><param name="allowfullscreen" value="true" /><embed id="Sploidz0810" type="application/x-shockwave-flash" width="512" height="384" src="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz0810.swf" name="Sploidz0810" bgcolor="#ffffff" quality="high" allowfullscreen="true" align="middle"></embed></object><br />
<a href="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz0810.swf" target="_blank">Click to open Sploidz0810 in its own window</a></p>
<p><object id="Sploidz0813" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="512" height="384" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="src" value="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz0813.swf" /><param name="name" value="Sploidz0813" /><param name="allowfullscreen" value="true" /><embed id="Sploidz0813" type="application/x-shockwave-flash" width="512" height="384" src="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz0813.swf" name="Sploidz0813" bgcolor="#ffffff" quality="high" allowfullscreen="true" align="middle"></embed></object><br />
<a href="http://blog.blackhc.net/wp-content/uploads/2009/08/Sploidz0813.swf" target="_blank">Click to open Sploidz0813 in its own window</a></p>
<p>Fun note: I implemented most of the fancy features (combo matches, the score bubbles, the platform) today in a few hours (a lot less than expected). I think ActionScript is an okay language, although it lacks quite a few comfort features of regular modern programming languages (function overloading, delegate types that actually check parameter type).</p>
<p>Last but not least here is the link to the code: <a href="http://blog.blackhc.net/wp-content/uploads/2009/08/FlashySploidz.zip">FlashySploidz Source</a><br />
I release the code itself under GPL and the art under Common Creative.</p>
<p>Over and out,<br />
Andreas</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.blackhc.net/2009/08/sploidz-revisited/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fast Forward</title>
		<link>http://blog.blackhc.net/2009/07/fast-forward/</link>
		<comments>http://blog.blackhc.net/2009/07/fast-forward/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 14:50:42 +0000</pubDate>
		<dc:creator>BlackHC</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal Rantings]]></category>
		<category><![CDATA[Fahrenheit]]></category>
		<category><![CDATA[Memento]]></category>
		<category><![CDATA[Multi-Core Programming]]></category>
		<category><![CDATA[OpenGL Superbible]]></category>
		<category><![CDATA[Real-time Rendering]]></category>
		<category><![CDATA[The Pragmatic Programmer]]></category>

		<guid isPermaLink="false">http://blog.blackhc.net/?p=562</guid>
		<description><![CDATA[<a href="http://blog.blackhc.net/2009/07/fast-forward/" title="Fast Forward"></a>I've quite a few things I've wanted to write about a long time ago and I actually started working on them and taking notes, etc. but never found time for one reason or another to write and publish the actual &#8230;<p class="read-more"><a href="http://blog.blackhc.net/2009/07/fast-forward/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.blackhc.net/2009/07/fast-forward/" title="Fast Forward"></a><p>I've quite a few things I've wanted to write about a long time ago and I actually started working on them and taking notes, etc. but never found time for one reason or another to write and publish the actual posts.<br />
So this is meant as fast forward of all these text bits.</p>
<h2>Movies and Games</h2>
<h3>Memento</h3>
<p>One awesome movie. I've seen it twice already and I still love the movie and its plot. I don't want to spoil too much of the story, but some will probably inevitable.</p>
<p>A few bullet points:</p>
<ul>
<li>Telling a story in reverse is pretty cool in itself and perfect for the movie</li>
<li>I wonder if one could use this kind of plot for a game, too, but it would make the plot quite linear because the player could only do things that won't change the outcome of the future (i.e. what he has already played).</li>
<li>If the game is linear though and goal based it could be possible easily because you would replay it like a movie. If it's plot-centric, it could be fun and create a kind of suspense similar to Memento.</li>
<li>Fahrenheit would be a game that is plot-centric like that..</li>
<li>The movie depicts a chaotic system: small imprecision leads to huge consequences ("Don't believe his lies").</li>
<li>One of the impressions I liked most is the way you have to constantly reevaluate everything you have seen so far because of some new piece of information from the past which totally changes the whole movie a whole time.</li>
<li>It's kind of difficult to remember the movie at first because the human brain is not used to this presentation of causality (seeing the effect before the cause).</li>
<li>The movie gets you thinking about what defines yourself - what are you if you can't remember things anymore and how do you define yourself through your memory.</li>
<li><em>A few weeks ago I read a psychology case book that contained a case similar to Memento. Alcoholics sometimes damage their brain through alcohol abuse and lose all ability to memorize anything new. Their long-term memory only works up until some point of time and after that they won't remember anything. They constantly live at that moment and will be lost forever.</em></li>
</ul>
<h3>Fahrenheit</h3>
<p><a href="http://en.wikipedia.org/wiki/Fahrenheit_(video_game)" target="_blank">Fahrenheit</a> is a pretty cool. Like many movies it is excellent for 90% of the playtime and then it suddenly starts to suck and/or becomes very weird story-wise.</p>
<p>It's not a typical game as more a cinematic experience that does a good job at combining gaming aspects with a very advanced plot and some pretty awesome action scenes.</p>
<p>I've really enjoyed the game and just like <a href="http://en.wikipedia.org/wiki/Omikron:_The_Nomad_Soul" target="_blank">Omikron: The Nomad Soul</a> (an earlier game by developer <a href="http://www.quanticdream.com/" target="_blank">Quantic Dream</a>) it's positively refreshing and different.</p>
<p>Some random notes:</p>
<ul>
<li>Vista compatibility sucks. I had to download a hacked binary to make it start at all on Vista. Otherwise it ran fine except for one crash that was due to my notebook overheating slightly.</li>
<li>Like in many other games you can't skip cut scenes or dialogs easily which is annoying if you just want to replay a chapter up to a certain point</li>
<li>More annoyingly it seems that if you replay an earlier chapter, you have to replay the ones following it, too. Be careful with that <img src='http://blog.blackhc.net/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' /> </li>
<li>As said - the story is awesome until you have played 90% of the game then it turns a bit into being on the bizarre side of things<a class="annotation" title="especially the internet &quot;A.I.&quot; :o" href="javascript:;"><strong>&#180;</strong></a>.</li>
<li>Also "Hiding at Tiffany's" is awful. If you ever play the game be ready to replay it a few times:<br />
You have to hide at Tiffany's place from someone who is searching for, and you have 30 seconds or so to find a hiding place, after which the person starts searching for.<br />
The problem is that you don't know where the person will search for you and if you are caught, you obviously won't see where he would search afterwards, so you have to replay the same part quite a few times if you have bad lack and I think it was one of the more frustrating parts.</li>
<li>Zero Punctuation has a good review of the story issue of Fahrenheit hidden in his review of Condemned 2, it is also funny, so <a href="http://www.escapistmagazine.com/videos/view/zero-punctuation/34-Condemned-2-Bloodshot" target="_blank">it's certainly worth watching</a> <img src='http://blog.blackhc.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>The way the controls work in Fahrenheit is also pretty interesting. The wikipedia article about Fahrenheit has a good description of it in its Gameplay section.</li>
</ul>
<h2>Books</h2>
<h3>The Pragmatic Programmer</h3>
<p>Last year I think I wrote that I had started reading "<a href="http://www.pragprog.com/the-pragmatic-programmer" target="_blank">The Pragmatic Programmer</a>". I actually finished reading it quite a while ago, but here are a few remarks about it:</p>
<ul>
<li>It's a good and nice read and the book contains lots of helpful suggestions and things to keep in mind when coding or designing software or even just when you want to communicate with co-workers, etc.</li>
<li>It's a "common sense" book - similar to Code Complete - and when you read it, you'll often think "that's straight-forward" or "that's the logical thing to do", but it still valuable to have all that common sense written down somewhere and to be able to look at it now and then in search for inspiration.</li>
<li>It's not as useful as Code Complete though, which was a real eye opener (and still is) and it's not going to improve your coding style a lot or the way to think about code design.</li>
</ul>
<h3>OpenGL Superbible</h3>
<p>I've bought the "<a href="http://" target="_blank">OpenGL Superbible</a>" and it's a pretty good book if you want to learn OpenGL or read a light text about certain advanced OpenGL features before rolling up your sleeves and digging around in the extension specs. It's written like a big and pretty complete tutorial and the latest edition is a lot better suited for the new features than, say, the latest edition of the <a href="http://www.opengl.org/documentation/red_book/" target="_blank">OpenGL Programming Guide</a> (which is pretty horrible - I've read through the sixth edition and it's pretty much the second edition plus a paragraph tacked on here and there and long explanations of deprecated features).</p>
<p>The only part of the book that is really, really weak and totally useless is the part about GLSL and shader programming. It contains a short description about GLSL and while the chapter summary mentions functions like glUniform and co, the function is not mentioned anywhere in the chapter nor does it provide even one example on how to set or access vertex attributes or uniforms, which is essential.</p>
<p>If you want to learn about GLSL and shader programming in OpenGL I can only recommend the OpenGL Shading Language and the GLSL language specifications.</p>
<h3><span>Multi-Core Programming</span></h3>
<p><span>First <strong>don't buy this book</strong>. It's from Intel Press (you can read the book description <a href="http://www.intel.com/intelpress/sum_mcp.htm" target="_blank">here</a>) and it's ridiculously expensive for the content it provides.</span></p>
<p><span>I got it for free at university presentation from Intel and have read through most of it in the last weeks and really - if you want to learn about OpenMP and threading techniques and tools, there are better sources available online for free.</span></p>
<h3>Real-Time Rendering</h3>
<p>This book on the other hand is <strong>awesome</strong> - buy it if you are interested in computer graphics and want to understand the underlying principles better.<br />
It's well-written and presents lots of advanced computer graphics topics in a very understandable way. Especially the chapters about local and global illumination and the physical base of them are very good. It is good starting point to look for resources and papers and the book's homepage is also pretty useful: <a href="http://realtimerendering.com/" target="_blank">http://realtimerendering.com/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.blackhc.net/2009/07/fast-forward/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crysis notes - random</title>
		<link>http://blog.blackhc.net/2008/10/crysis-notes-random/</link>
		<comments>http://blog.blackhc.net/2008/10/crysis-notes-random/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 00:21:15 +0000</pubDate>
		<dc:creator>BlackHC</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal Rantings]]></category>
		<category><![CDATA[Crysis]]></category>

		<guid isPermaLink="false">http://blackhc.wordpress.com/?p=226</guid>
		<description><![CDATA[<a href="http://blog.blackhc.net/2008/10/crysis-notes-random/" title="Crysis notes - random"></a>Last week I had the joy of playing and beating Crysis (you'll find out later why I emphasize that I beat it). While playing I took some notes, which I want to share with you (some might be funny facts, &#8230;<p class="read-more"><a href="http://blog.blackhc.net/2008/10/crysis-notes-random/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.blackhc.net/2008/10/crysis-notes-random/" title="Crysis notes - random"></a><p>Last week I had the joy of playing and <a title=")" href="http://www.joystiq.com/2007/02/14/alex-ward-flips-out-during-mtv-interview/" target="_blank"><strong>beating</strong></a> Crysis (you'll find out later why I emphasize that I beat it). While playing I took some notes, which I want to share with you (some might be funny facts, others might show why Crysis sucks and others could be proof for some awesomeness that you can - <em>still?</em> - find in the game).</p>
<p>First off though, this is going to contain lots and lots of <em>spoilers</em>, so just lemme put up a</p>
<blockquote><p><em><strong>SPOILER ALERT</strong></em></p></blockquote>
<p>sign before continuing.</p>
<p><span id="more-121"></span></p>
<p>Let me also start with a few clarifications: although it might totally sound as if Crysis is a shitty game when you read my notes, it still is an awesome game with the best graphics you can find at the moment, best physics and destructible game environment.</p>
<p>And it <a title="Some random screenshot" href="http://img511.imageshack.us/img511/6769/crysis20071102151055481fn2.jpg" target="_blank"><a title="Awesome jungle screenshot" href="http://www.crysis-online.com/viewer.php?id=172" target="_blank">looks</a></a> <a title="Some random screenshot" href="http://img511.imageshack.us/img511/6769/crysis20071102151055481fn2.jpg" target="_blank">gorgeous</a>..</p>
<p><a title="..." href="http://www.crysis-online.com/viewer.php?id=188" target="_blank">Absolutely</a> <a title="it looks better in-game.." href="http://www.crysis-online.com/viewer.php?id=207" target="_blank">gorgeous</a>.</p>
<p>Let's start now:</p>
<ul>
<li><img class="alignright" title="GPS jammer" src="http://media.ignimgs.com/guides/guides/694190/crysis_009.jpg" alt="" width="290" height="218" />I'm always kind of an explorer in games. After killing everyone in the first map in the part when you have to disable the jammer, I went around and looked at everything.<br />
I also began a violent rampage and destroyed everything I could, too. It's <strong>fun</strong><em>. To be honest when I played the game for the first time at my cousin, I spent half an hour destroying huts, cars, boats and trees - lots of them - and I had the most fun in a long time, too.<br />
</em>Having destroyed everything I noticed that there was a fridge in the hut, so I opened it and died. You heard me: <strong>the bloody fridge killed me when I opened it!</strong><br />
Never try to open a fridge in the game when something is behind you and blocking you because the door of the fridge will squish you like a fly.<br />
Of course, I hadn't saved, so I enjoyed playing the same part a second time &gt;_&lt;</li>
<li>I also realized that corpses disappear really quickly and there is not ragdoll physics on them either. I had the German version installed (except for the English language paks), so I figured that the German version has been cut, but a quick search quickly showed that Crytek removed some features everywhere and actively banned people who released mods which re-enabled some of them.<br />
I'm always pissed when I have to play a cut version because of some weird sense for censorship in Germany (for whatever reason - Crysis is rated AO in Germany, so I honestly don't get it), but the way threads were closed and deleted on all possible Crysis boards really made me angry.<br />
Crytek/EA sent emails to boards that contained threads they didn't like and pressured the admins into deleting stuff - someone must have learnt a thing or two from his history lessons, right Crytek?<br />
Sometimes soldiers lose their caps and when you shoot these, you actually get to see <a title="Original blood/flesh decals" href="http://img389.imageshack.us/img389/7730/02crysislochwo4.jpg" target="_blank">the original blood decals and splatter</a> and it's pretty crazy how high-detail they are and how much better they look compared to the "blood patches" available.</li>
<li>Playing 10+x intro videos is also incredibly annoying, I removed most of them after starting Crysis for the third time because they were simply annoying.</li>
<li>One thing that is very nice though are the suit shortcuts (<em>double-tapping some keys to activate a suit mode, e.g. jump for strength, crouch for stealth, sprint for speed and walk backwards for armor</em>).<br />
For the first one or two hours I played without them and when I discovered them in the options menu, the game suddenly became a lot more fun. I still can vividly remember a scene in the first level, where I used the suit shortcuts to do some pretty crazy stunts and runs:<br />
Jumping onto a roof, sprinting and jumping towards a jeep and shooting everyone inside during the final jump. Later I kept sprinting towards soldiers like some kind of Predator and used one of them as shield before throwing him onto his colleagues.</li>
<li>Crysis' <strong>AI<em> </em></strong>is pretty horribly though. At least the low-level AI stuff: Soldiers didn't see me countless times, although I was standing right in front of them or shooting at them and they simply didn't notice me.<br />
Later in the game I found out that the silencers had some weird/exaggerated effect and that turning the silencer weapon modification off actually fixed some of the issues but in general I had lots of problems with it. If you were standing on a roof and actively shoot someone, the bots wouldn't notice it - even when playing on <em>Hard </em>or <em>Delta</em> difficulty.</li>
<li>I also once chased a patrol boat in sprint mode and I was pretty disappointed by the fact that you can't <em><strong>board </strong></em>a boat <img src='http://blog.blackhc.net/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /><br />
You can jump onto it by using speed mode, sprinting under water and jumping out of the water like a flying fish - if you time it well, you can actually land on a patrol boat but the AI totally freaks out when that happens:<br />
The driver stops the boat, but doesn't do anything else, while the cannoneer jerks around continuously which looks <strong>really</strong> awkward and buggy.</li>
<li><img class="alignright" title="Command Post" src="http://media.ignimgs.com/guides/guides/694190/crysis_050.jpg" alt="" width="290" height="218" />In general you can have quite a lot of fun by trying weird strategies. For example, there is a command post on a cliff that you have to take out and I drove to it with a boat and jumped up the rocks on the cliff side - only to get stuck between two rocks which eventually forced me to reload the last quicksave, because I couldn't get the player unstuck.<br />
The game often punishes you for unconventional actions because the suit makes it really easy to get outside the level designer's thinking which is often equal to a total breakdown of gameplay and fun.<br />
I'm used to become creative when I have additional powers like those provided by the nano suit and I felt encouraged to use different approaches to what I'd normally do in a <em>first-person shooter</em>. I think that's just the conditioning from other games where you often have to use special abilities in the levels to solve puzzles (e.g. Prince of Persia or Prey).<br />
It's a pity Crysis didn't really require that.</li>
<li>Did I mention that the physics system is awesome? It is. If there is one single element that makes Crysis exceptional than it is its graphics. But only its physics system makes the game a pleasure to watch.<br />
The way you can destroy things really adds a lot and the way the environment reacts to your destruction - like sandbags being hurled around by a grenade explosion - make the game more satisfying.<br />
I once read that one of the intentions of Crytek was to make the game play and look like a good action movie and I often felt this way when playing. Trying my best to make the action look worthwhile - but often enough the game punished me for that idea.</li>
<li><a href="http://media.ignimgs.com/guides/guides/694190/crysis_026.jpg"><img class="alignright" src="http://media.ignimgs.com/guides/guides/694190/crysis_026.jpg" alt="" width="290" height="218" /></a>I actually replayed the second level of the game, because at first I used a boat to avoid most of the level and get to the village where a hostage was kept and it wasn't fun at all later, because I entered the level from the wrong side (unintended by the game designers) and it was pretty boring.</li>
<li>I still don't get why anyone can say that Crysis's AI is awesome.. its squad behavior is horrible and soldiers generally die like flies. There was one particular moment when I was inside a house and soldiers kept in pouring one by one from the same entrance (mind you there were windows and they had grenades, too, but didn't use them) and I killed them one by one.<br />
This was when I decided to restart the level.</li>
</ul>
<blockquote><p>You need to force Crysis to be fun, if you want to have fun.</p></blockquote>
<ul>
<li>Because of all the AI issues I decided to try the <a title="Advanced AI mofd for Crysis" href="http://www.moddb.com/mods/crysis-advanced-ai" target="_blank">Advanced AI mod for Crysis</a> and I have to admit that the opponents became a lot tougher but still had issues (again I suspect some silencer weirdness happening). Later in the game I removed the mod again, because I experienced some weird bugs with the viewmodels and decided that I should play the game vanilla, so I know who is responsible for the bugs.</li>
<li><a href="http://media.ignimgs.com/guides/guides/694190/crysis_035.jpg"><img class="alignright" src="http://media.ignimgs.com/guides/guides/694190/crysis_035.jpg" alt="" width="290" height="218" /></a>In some levels it is also ridiculously easy to get out of the level area and be notified that you will be terminated in <strong><em>3...2...1...*woops*</em></strong> if you don't get back - if you toy around with strength mode, it's pretty easy to jump into areas you shouldn't be in.<br />
<em>I think the levels weren't tested sufficiently with the different suit modes and/or the guidlines for the level designers weren't good enough.</em></li>
<li>In the level in which you have to destroy the AAA batteries Crysis became pretty boring for me. Everything was nice but it was repetitive, too, and it wasn't challenging at all although it was still difficult (on <em>Hard</em>/<em>Delta</em>).</li>
<li>The tank level after it is pretty awesome. I got lost a few times though and didn't know what to do because being told to "<em>move forward to alpha front line</em>" or something like that doesn't really help when you have no idea what people are talking about and the map doesn't show anything either (I kind of expected an <em>ETQW</em>-esque map to show up and tell me what to do).<br />
The first time I played the level I drove around and felt totally lost because I didn't know what to do and whom to shoot. Then I decided that I wouldn't let either of the accompanying tanks 'die' and restarted the level and stuck to that and although I had to reload more often, it was ok and fun because I had more of a mission than just reaching some train station - instead I took the enemy tanks and positions out one by one till I ran out of shells.<br />
<em>GameStar complained about the lack of guidance in the game and I have to surprise myself by agreeing with them on this finding :-/<br />
</em></li>
<li>I noticed some weird <strong>viewmodel bugs </strong>during the game. Sometimes when looking through the scope and switching back, the view position wouldn't be reset and suddenly you wouldn't see most weapons anymore. Likewise sometimes when you're out of bullets you can drop a weapon until you haven't switched to some other weapon and back.<br />
Another weird bug that I also had happen to me was a bug with the actual player viewmodel:<br />
The player's arm were suddenly visible behind me holding nothing.<br />
Quicksaving and -loading again would fix those bugs most of the time.</li>
<li><a href="http://media.ignimgs.com/guides/guides/694190/crysis_119.jpg"><img class="alignright" src="http://media.ignimgs.com/guides/guides/694190/crysis_119.jpg" alt="" width="290" height="218" /></a>Another weird thing was my fight against <strong>General Kyong</strong>:<br />
I didn't know what to do at first and I didn't really think of it, when I switched to strength mode and <em>punched </em>General Kyong to death.<br />
You heard right: I punched him to death - <strong>without losing any health or being hit once.</strong> How stupid is that for a boss fight? The poor coward tried to run away from me but he wasn't faster than me, of course, because he was using strength mode, too. He also somehow didn't manage to shoot because his mini-gun has quite some start-up time.<br />
I think that was the most sobering moment in the game for me because what I did felt totally wrong and I should have lost for that. Instead it worked exceptionally well and <em>I punched him some 10 to 20 times before he dropped dead..</em></li>
<li><a href="http://media.ignimgs.com/guides/guides/694190/crysis_139.jpg"><img class="alignright" src="http://media.ignimgs.com/guides/guides/694190/crysis_139.jpg" alt="" width="290" height="218" /></a>The <strong>alienship </strong>was a <strong><em>meh</em></strong> level, too, it was nice in the beginning and the zero gravity stuff was okay, too, but it was too long to be interesting in the end and I had to wait like 10 minutes in the last chamber, before something actually happened.</li>
<li>The "Paradise Lost" looks very nice and I enjoyed the snow and ice, too. I still doubt that anything can actually burn at -200 degrees (F or °C, doesn't really matter either), but whatever.</li>
<li>During the cut-scene in which Prophet reappears the game actually crashed a few times for me (that is it crashed each time I replayed it). I waited some 10 minutes hoping that it was some overheating issue with the graphics card and indeed it worked after that, but good lord, I really was scared that playing Crysis was over for me at that moment.</li>
<li>The carrier levels are okay, although the seemingly endless waves of aliens were tedious after some time.<br />
I never get why games that try to appear <em>'serious'</em> and <em>'realistic'</em> still employ boss fights and the like as a means of game design. It totally doesn't make sense and only Arcade games should use it.<br />
<em>When I played Half-Life 2, the boss helicopter totally put me off, and the same applies to all boss fights in Crysis. It simply doesn't feel right...</em></li>
<li><a href="http://media.ignimgs.com/guides/guides/694190/crysis_220.jpg"><img class="alignright" src="http://media.ignimgs.com/guides/guides/694190/crysis_220.jpg" alt="" width="290" height="218" /></a>Especially if you can't finish the game for some <strong>damn bug!!!</strong> One thing that really made me angry and with angry I mean annoyed and with annoyed I mean totally pissed off was a bug that happened in the last bit of the last level where you have to shoot the hatch with the TAC gun:<br />
<em><strong>The damn thing wouldn't lock on!</strong></em> I replayed the last part of the level for 3 or 4 times on <em>Hard</em> until I was totally upset with the game. Add to that some annoying bug where you can fall through the deck near a certain fire and I gave up. I googled a bit and I found out that quite a few people had actually <a title="One of the many threads about it" href="http://www.crysis-online.com/forum/index.php?topic=15620.msg242535" target="_blank">experienced that bug </a>and it has turned them off as much as it has me. I switched on god mode, infinite ammo, etc. and replayed the last half of the level to see if I could maybe actually finish the game and indeed it worked when I played it for the fifth time.</li>
<li>The ending totally sucks. Cliff hangers are okay sometimes, but I really felt like it was a really bad ending - especially after that incredibly stupid boss fight.</li>
<li>Last but not least a last <em>bug</em>: If you catch a hunter, it needs quite a few punches to <em>die</em>. If you simply throw it away from you after catching it, it immediately deactivates. Logic?</li>
</ul>
<p>All in all the bugs in Crysis and the constant AI issues drove me nuts and I totally felt like I beat the game when it was over and I don't want to touch it anytime soon again because of the annoying bugs. I really wonder what EA's QA was busy doing when they were supposedly testing Crysis, because evidently they didn't do a lot by the looks of it. <img src='http://blog.blackhc.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
However Crysis is still a good game (if you have a fast PC) and has some nice cut-scenes and action sequences and the graphics and physics in the game are simple the best you can find at the moment (except for Crysis Warhead I guess).</p>
<p>With this I conclude my 'random notes' review and hope that <strong>Crysis: Warhead</strong> has less bugs at least and is more fun to play because Crysis really deserved to be more fun.</p>
<p>Cheers,<br />
Andreas</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.blackhc.net/2008/10/crysis-notes-random/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Halo: Combat Evolved</title>
		<link>http://blog.blackhc.net/2008/09/halo-combat-evolved/</link>
		<comments>http://blog.blackhc.net/2008/09/halo-combat-evolved/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 22:37:08 +0000</pubDate>
		<dc:creator>BlackHC</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal Rantings]]></category>

		<guid isPermaLink="false">http://blackhc.wordpress.com/?p=173</guid>
		<description><![CDATA[<a href="http://blog.blackhc.net/2008/09/halo-combat-evolved/" title="Halo: Combat Evolved"></a>Yay, I've finally found time to play through Halo 1 for the PC. To be honest I didn't even know that I owned the game a few days ago, but when I looked through one of my drawers, I found &#8230;<p class="read-more"><a href="http://blog.blackhc.net/2008/09/halo-combat-evolved/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.blackhc.net/2008/09/halo-combat-evolved/" title="Halo: Combat Evolved"></a><p>Yay, I've finally found time to play through Halo 1 for the PC. To be honest I didn't even know that I owned the game a few days ago, but when I looked through one of my drawers, I found it together with Supreme Commander and GTA: San Andreas \o/</p>
<p>To make playing it look like work or at least like something worthier than just playing, I've taken notes occasionally and here they are:</p>
<ul>
<li><strong>The vehicles are very easy to steer</strong>: they always automatically try to drive towards your current view direction and you only use forward and backward to accelerate and slow down. I was used to ETQW's steering system and it took me some time to get used to, but it's pretty ok for the game.</li>
<li><strong>I like to use my rifle as club</strong>. For the first half of the game I had a really closed-combat fighting style: start shooting while running on and when you need to reload or simply are near enough, hit the enemies with your gun before jumping to cover. It was very effective against Grunts and against Elites, too, since my timing was right most of the times and I was there, when their shield broke down.<br />
The ability to throw grenades and shooting at the same time (pretty much) also increased combat speed a lot and made everything more fluid, because I was able to react to everything always in an effective way.<br />
The Flood was pretty scary at first, because I had to learn a totally different combat technique and after getting used to it during the first few hours, I took me a bit to keep my distance again. After getting the shotgun and surviving the Library level fighting against the Flood became fun or at worst slightly boring and annoying, though I still have to watch out to prevent myself from becoming surrounded.<br />
<em>I think, it is a pretty neat idea to make the Flood monsters get up again after being shot for the first time. It facilitates being surrounded and increases the risk of being overrun.<br />
</em></li>
<li><strong>Level design is pretty weird sometimes.</strong> And with <em>weird</em> I mean <strong>repetitive</strong> - just look at the Library level to see the beauty of copy'n'paste. The last level, where you have to drive the buggy through a weird obstacle course that makes no sense whatsoever is pretty awkward, too - the buggy is a bit to wide to be driven through everything elegantly using the controls and I got stuck all the time. Moreover the buggy is too slow for all the little ramps you can find and I was left wondering why they put them there (maybe the buggy's speed was changed after the level was designed?)</li>
<li><strong>I don't like checkpoints.</strong> Especially when they're used to tune the game difficulty by spreading them lighter in later levels &gt;_&lt;</li>
</ul>
<p>So far, so good. I like Halo a lot and although some levels seemed a bit stretched (Library again), playing it was fun. I don't know, what I'm going to play next, but I think that maybe I should spend some of my time coding again - <em>nah, just joking, next I'm going to play Call of Duty or more Sam &amp; Max.</em>..</p>
<p>Cheers,<br />
Black</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.blackhc.net/2008/09/halo-combat-evolved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mirror&#039;s Edge</title>
		<link>http://blog.blackhc.net/2008/08/mirrors-edge/</link>
		<comments>http://blog.blackhc.net/2008/08/mirrors-edge/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 21:59:30 +0000</pubDate>
		<dc:creator>BlackHC</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal Rantings]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[mirror's edge]]></category>
		<category><![CDATA[trailers]]></category>

		<guid isPermaLink="false">http://blackhc.wordpress.com/?p=152</guid>
		<description><![CDATA[<a href="http://blog.blackhc.net/2008/08/mirrors-edge/" title="Mirror&#039;s Edge"></a>Mirror's Edge is one awesome game. There is hardly any information out about the game yet and the official homepage is lacking but if you're interested, there is at least one good fansite (I haven't checked for others yet) and &#8230;<p class="read-more"><a href="http://blog.blackhc.net/2008/08/mirrors-edge/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.blackhc.net/2008/08/mirrors-edge/" title="Mirror&#039;s Edge"></a><p><a title="EA's Mirror's Edge Official Homepage" href="http://www.mirrorsedge.com/" target="_blank">Mirror's Edge</a> is one awesome game.<br />
There is hardly any information out about the game yet and the official homepage is <em>lacking</em> but if you're interested, there is at least one good <a title="Ze Fansite" href="http://www.on-mirrors-edge.com/" target="_self">fansite</a> (<em>I haven't checked for others yet</em>) and a few trailers that really make me want to see more (or work for <a href="http://www.dice.se/" target="_blank">DICE</a> - <em>you decide</em>..).</p>
<p>Check out the trailers:</p>
<p><a href="http://blog.blackhc.net/2008/08/mirrors-edge/"><em>Click here to view the embedded video.</em></a></p><br />
<p><a href="http://blog.blackhc.net/2008/08/mirrors-edge/"><em>Click here to view the embedded video.</em></a></p><br />
<p><a href="http://blog.blackhc.net/2008/08/mirrors-edge/"><em>Click here to view the embedded video.</em></a></p><br />
<p><a href="http://blog.blackhc.net/2008/08/mirrors-edge/"><em>Click here to view the embedded video.</em></a></p>
<p>If you're interested in some additional thoughts, please continue and read on:</p>
<p><span id="more-103"></span></p>
<p>First I have to say that I love the trailers and really really can't wait to see more. I always wanted to see a game that takes on the Le-Parcour concept and transforms it into fun gameplay - see one of my GID entries, that sadly wasn't finished, or games like <a href="http://www.thewayoftheninja.org/n.html" target="_blank">N</a> for example.</p>
<p>What exactly characterizes this <a href="http://en.wikipedia.org/wiki/Parkour" target="_blank">Le-Parcour</a> feeling? For me it's movement-centered fast-paced gameplay that rewards you with fluent animations and a feeling that you <em>flow </em>through the level in one progressive move.</p>
<p>From the games I've played the <a href="http://en.wikipedia.org/wiki/Prince_of_Persia" target="_blank">Prince of Persia</a> series (beginning with <a href="http://en.wikipedia.org/wiki/Prince_of_Persia:_The_Sands_of_Time" target="_blank">Sands of Time</a>) has managed to convey this feeling quite well. Particularly the escape scenes from the Dahaka are excellent:</p>
<p><a href="http://blog.blackhc.net/2008/08/mirrors-edge/"><em>Click here to view the embedded video.</em></a></p>
<p>Mirror's Edge reminds me a bit of a mix of <a href="http://en.wikipedia.org/wiki/Oni_(video_game)" target="_blank">Oni</a> (because of the hand-to-hand combat) and Prince of Persia, although it still appears to be very different.</p>
<p>One of the things I like is that it has no HUD whatsoever (or at least a very limited one to avoid motion sickness), which really helps immersion and this minimalistic feature goes hand in hand with the very clean design of the city (look at their choice of colors) and creates a setting that can only be described as <strong>stylish</strong>.</p>
<p>I think, it's an important point to make the players feel like they're playing a work of art and thus try to play it that way: trying to find elegant ways through the level, not brute-force ones.</p>
<p>The city conveys this, too. To return to the choice of colors: notice how everything is held mainly in white and all other colors are full, saturated and warm ones. They are also used in a clear and concise way. There is no mixing of them or gradients. It really sets forth the mood of the game in that part of it.</p>
<p>The use of the 'Runner vision' as visual hint is also very non-intrusive and stylized, too. It again fits the general design style.<br />
Though I have to say, that I don't think that those hints are sufficient as visual cues. I'd get totally lost in the level of the last trailer (<em>if it's not entirely linear and there is only way to traverse the level</em> <em>because you also gotta have dead-ends then</em> - <em>this is probably true for the roof-top level, too</em>) and it's pretty frustrating if you reach one, since it breaks the <em>flow</em> of the game.</p>
<p>I'd guess adding some arrows, that fade in, would certainly help it, but I'm curious how they are going to fix that anyhow.</p>
<p>Another problem I really wonder about is: what happens if things go wrong?</p>
<p>Nothing's worse than making one wrong move or time a key press badly and suddenly you have to load your last savegame or quicksave and replay the last 3 minutes, because you have forgotten to save. Especially when it comes to arcade games or platformers that only allow checkpoints, they tend to suffer from this a lot, because it's not really fun to replay the same parts of level over and over again, even if you agree, that it's probably just your fault for having two left hands.</p>
<p>The main feature that helped Prince of Persia against becoming terribly annoying was the time rewind power of his dagger - that is: <em>you can rewind the last ten seconds and begin again with whatever you were doing from there</em> on). Mirror's Edge could suffer from the issue, if they don't add something similar. Imagine dying, because you didn't rebalance Faith - <em>that's the main protagonist in the game BTW </em>- correctly while walking over a bar. Now you gotta wait a few seconds for the game to reload an old save point and start anew.<br />
This totally breaks the <strong>flow</strong> of the game. All motions and actions are stopped and you're forced to wait. You lose control and that's bad.</p>
<p>They really need to tackle that issue and I'm curious, how it's going to be solved in Mirror's Edge.</p>
<p>They also have to fix the sounds. The current moaning of Faith now and then gets on your nerves after a short time, too - just listen to the trailer again and imagine hearing that sound every minute for a few hours. It's a pretty scary prospect, isn't it?</p>
<p>That said, Mirror's Edge is one of the games that I'll try to watch actively for new developments and press releases, because it certainly could become a really fun and entertaining game that brings some fresh ideas to the first-person genre.</p>
<p>Cheers,<br />
Black</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.blackhc.net/2008/08/mirrors-edge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

