<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>All About Courage</title>
	<atom:link href="http://eygneph.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://eygneph.wordpress.com</link>
	<description>Unleash the power of indie game</description>
	<lastBuildDate>Sat, 09 Oct 2010 09:53:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='eygneph.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/1eed3cd4f348df4621d9ecbea0c13e78?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>All About Courage</title>
		<link>http://eygneph.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://eygneph.wordpress.com/osd.xml" title="All About Courage" />
	<atom:link rel='hub' href='http://eygneph.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Some ideas about Verlet based physics</title>
		<link>http://eygneph.wordpress.com/2010/10/09/some-ideas-about-verlet-based-physics/</link>
		<comments>http://eygneph.wordpress.com/2010/10/09/some-ideas-about-verlet-based-physics/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 09:53:20 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=89</guid>
		<description><![CDATA[First of all, integration is not just a word about in your college mathematics courses. It is used everyday in game development. Like your Update() loop, you see this everywhere: velocity += deltaTime * acceleration; position += deltaTime * velocity; , this is which we called Euler integration. Verlet integration is not a lot more [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=89&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First of all, integration is not just a word about in your college mathematics courses. It is used everyday in game development. Like your Update() loop, you see this everywhere:</p>
<pre class="brush: csharp;">

velocity += deltaTime * acceleration;
position += deltaTime * velocity;
</pre>
<p>, this is which we called Euler integration.</p>
<p>Verlet integration is not a lot more difficult than (mostly used) Euler integration, but has two advantages:</p>
<ol>
<li>More numerical stability,</li>
<li>Easy for position constraints.</li>
</ol>
<p>If  you don&#8217;t catch the idea what numerical stability is, here’s a simple  graph illustrating the instability caused by Euler integration:</p>
<p><a href="http://eygneph.files.wordpress.com/2010/10/500px-stiffequationnumericalsolvers-svg.png"><img class="alignnone size-full wp-image-117" title="500px-StiffEquationNumericalSolvers.svg" src="http://eygneph.files.wordpress.com/2010/10/500px-stiffequationnumericalsolvers-svg.png?w=500&#038;h=194" alt="" width="500" height="194" /></a></p>
<p>In  the above graph, you can see that the “step” value is critical to Euler  methods, as bigger step would cause the integration oscillates, and  even bigger steps will “explode” the whole simulation towards the exact  solution.</p>
<p>For more information on the stability issue, you can refer to these links: <a href="http://en.wikipedia.org/wiki/Euler_method">http://en.wikipedia.org/wiki/Euler_method</a> and<a href="http://en.wikipedia.org/wiki/Stiff_equation"> http://en.wikipedia.org/wiki/Stiff_equation</a>. Note numerical stability is a topic which can cover an entire book, and I’d like to avoid digging into it here.</p>
<p>The basic form of Verlet integration is as follows:</p>
<pre class="brush: csharp;">
x’ = 2x - x* + a*dt*dt;
x* = x;
</pre>
<p>Here  x’ is the position of simulated entity in time t + dt, x* is the  position in time t &#8211; dt, and x is th e position in time t. As you can  see, the Verlet integration is still very simple, but it introduced an  previous position x* to make Verlet integration happen. At the same  time, it removes the dependency on velocity &#8211;  and this, makes life a  lot easier.</p>
<p>Without  velocity, you won’t integrate velocity explicitly, thus removes the  instability of velocity integration. Also for soft body simulation such  as cloth, a position constraint is very handy in Verlet  integration(actually, nearly all constraints in Vertlet based method,  are position constraints). A solid position constraint will prevent the  cloth from behaving too elastic or unstable, which is quite hard to get  right if you don’t use position constraints. Since position constraints  is at the heart of Verlet based physics, it is also called particle  based method or position based method.</p>
<p>I’m  not going to show you how to do cloth physics in this article(in case  you are interested, you can refer to the reference paper). Instead, I’ll  talk a little about how I plan to make Verlet based physics to achieve  unified dynamic physics in game.</p>
<p>Modern  games are using physics engine extensively since Half-life 2. However,  most of them are focused on rigid body physics, that is, the simulated  entities are undestructible, undeformable rigid bodies. No matter how  much forces push the box, or throw an grenade at it, the box won’t crash  but just bounces away, which is far from how it should behave in  reality. People does a lot to make things destructible to make a more  emerging environment. Unreal Development Kit has an feature to  pre-tessellate the mesh, and then explode them when they’re hit by  weapons at runtime. CryEngine also has prescripted physics, which is  actually prerecorded animation done at the design time. But none of  those can achieve an truly dynamic environment, which is destructible at  runtime. The only game that has true destructible environment is Star  Wars: The Force Unleashed, which uses an finite element technology from  Digital Molecular Matter. Their technology is based on a series of paper  and I’m listing them in the reference section.</p>
<p>My  idea is similar with finite element methods, but might be simpler since  we’re just focusing on 2D. In my perspective, 2D has a lot advantages  in physics simulation against 3D, especially in predictable behavior and  processing power on mobile platforms.</p>
<p>Basically  matter are made of particles(or atoms), regardless if it’s rigid, soft,  or fluid. If the processing power permits, it’s quite okay to simulate  rigid body or soft body by using massive particles. Since Verlet based  method gives us stability and convenience to cast position constraints,  we should be able to create both rigid body and soft body. Their only  difference is the position constraints associated with them. The rigid  body has harder constraints, and the soft body has softer constraints. A  typical box can be represented as following structure:</p>
<p><a href="http://eygneph.files.wordpress.com/2010/10/box-particle.png"><img class="alignnone size-full wp-image-118" title="box-particle" src="http://eygneph.files.wordpress.com/2010/10/box-particle.png?w=256&#038;h=256" alt="" width="256" height="256" /></a></p>
<p>With  those constraints in mind, destructible object can be implemented by  breaking some key constraints between particles. So it should be easy to  simulate rigid boxes, soft blobs and even water/oil. All those objects  are composed by actually same particles and constraints, so hey can be  simulated within an unified solver.</p>
<p>No  one is perfect. So far the system is still lacking of traditional  constraints in rigid body systems, like revolute joint or prismatic  joint. I can’t find an easy solution to include those constraints into  Verlet based(or particle based) systems. So if someone needs those neat  features in rigid body engines, the easiest way might be an hybrid  system holds both Verlet based and impulse based rigid body systems.  Based on the projection method described in “Advanced Character  Physics”(see reference), I think the hybrid system is still doable.</p>
<h3>Reference:</h3>
<p>Advanced Character Physics, Thomas Jakobsen, <a href="http://www.gamasutra.com/resource_guide/20030121/jacobson_pfv.htm">http://www.gamasutra.com/resource_guide/20030121/jacobson_pfv.htm</a><br />
Position based Dynamics, M. Müller<br />
<a href="http://www.matthiasmueller.info/publications/posBasedDyn.pdf">http://www.matthiasmueller.info/publications/posBasedDyn.pdf</a><br />
Real-time Deformation and Fracture in Game Environment, Eric G Parker, James O’Brien<br />
<a href="http://graphics.cs.berkeley.edu/papers/Parker-RTD-2009-08/index.html">http://graphics.cs.berkeley.edu/papers/Parker-RTD-2009-08/index.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=89&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/10/09/some-ideas-about-verlet-based-physics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>

		<media:content url="http://eygneph.files.wordpress.com/2010/10/500px-stiffequationnumericalsolvers-svg.png" medium="image">
			<media:title type="html">500px-StiffEquationNumericalSolvers.svg</media:title>
		</media:content>

		<media:content url="http://eygneph.files.wordpress.com/2010/10/box-particle.png" medium="image">
			<media:title type="html">box-particle</media:title>
		</media:content>
	</item>
		<item>
		<title>Improvements in orientation notification handling of cocos2d iphone</title>
		<link>http://eygneph.wordpress.com/2010/05/03/improvements-cocos2d/</link>
		<comments>http://eygneph.wordpress.com/2010/05/03/improvements-cocos2d/#comments</comments>
		<pubDate>Mon, 03 May 2010 16:08:52 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[cocos2d]]></category>
		<category><![CDATA[game development]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=109</guid>
		<description><![CDATA[I&#8217;ve been using cocos2d iphone in my iPhone/iPad projects for a while. It&#8217;s been proved to be an easy to use 2d engine and allow users to start programming gameplay immediately(almost!). Recently it added support for iPad. However, iPad game approval on Apple side seems to be more stricter than iPhone games, due to new [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=109&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using cocos2d iphone in my iPhone/iPad projects for a while. It&#8217;s been proved to be an easy to use 2d engine and allow users to start programming gameplay immediately(almost!). Recently it <a href="http://www.cocos2d-iphone.org/archives/511">added support for iPad</a>. However, iPad game approval on Apple side seems to be more stricter than iPhone games, due to new items in iPad HIG, <a href="http://www.cocos2d-iphone.org/forum/topic/5697">especially for orientation sensitive issues.</a></p>
<p>Due to the above reason, I plan to make my new game more orientation friendly. In cocos2d iphone, orientation changes can be achieved by registering UIDeviceOrientationDidChangeNotification event and call appropriate CCDirector methods:</p>
<pre class="brush: plain;">
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
        // Enable orientation detection
	[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
	// Register orientation detection
	[[NSNotificationCenter defaultCenter]
	 addObserver:self selector:@selector(orientationDidChanged:) name:@&quot;UIDeviceOrientationDidChangeNotification&quot; object:nil];
         ......
}
-(void) orientationDidChanged:(NSNotification*)notification
{
	UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
	[[CCDirector sharedDirector] setDeviceOrientation:(ccDeviceOrientation)orientation];
}
</pre>
<p>However this orientation change occurs suddenly and have no transition animation . <a href="http://www.cocos2d-iphone.org/forum/topic/2588">After some readings</a>, I decided to roll my own. The orientation changes handler code does nothing more than calling appropriate OS functions and transforming the coordinates.<br />
So here&#8217;s what I&#8217;m doing: make the gl* calls in CCDirector.applyLandscape as CGAffineTransform calls, which can be interpolated by elapsed time. Then convert CGAffineTransform matrix to GL matrix:</p>
<pre class="brush: plain;">

CGAffineTransform CGAffineTransformInterpolate(const CGAffineTransform *t0, const CGAffineTransform *t1, float factor)
{
	// clamp factor to [0, 1]
	if ( factor &gt; 1 )
		factor = 1;
	if ( factor &lt; 0 )
		factor = 0;

	return CGAffineTransformMake(t0-&gt;a*(1-factor) + t1-&gt;a*factor,
								 t0-&gt;b*(1-factor) + t1-&gt;b*factor,
								 t0-&gt;c*(1-factor) + t1-&gt;c*factor,
								 t0-&gt;d*(1-factor) + t1-&gt;d*factor,
								 t0-&gt;tx*(1-factor) + t1-&gt;tx*factor,
								 t0-&gt;ty*(1-factor) + t1-&gt;ty*factor);
}

// in your CCDirector.m:

- (void) setDeviceOrientation:(ccDeviceOrientation) orientation
{
	if( deviceOrientation_ != orientation ) {
		deviceOrientation_ = orientation;
		targetTransform_ = CGAffineTransformIdentity;
		elapsedSinceLastOrientationChange_ = 0;

		CGSize s = [openGLView_ frame].size;
		float w = s.width / 2;
		float h = s.height / 2;

		switch( deviceOrientation_) {
			case CCDeviceOrientationPortrait:
				[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortrait animated:NO];
				break;
			case CCDeviceOrientationPortraitUpsideDown:
				[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortraitUpsideDown animated:NO];

				targetTransform_ = CGAffineTransformTranslate(targetTransform_, w, h);
				targetTransform_ = CGAffineTransformRotate(targetTransform_, CC_DEGREES_TO_RADIANS(180));
				targetTransform_ = CGAffineTransformTranslate(targetTransform_, -w, -h);
				break;
			case CCDeviceOrientationLandscapeLeft:
				[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];

				targetTransform_ = CGAffineTransformTranslate(targetTransform_, w, h);
				targetTransform_ = CGAffineTransformRotate(targetTransform_, -CC_DEGREES_TO_RADIANS(90));
				targetTransform_ = CGAffineTransformTranslate(targetTransform_, -h, -w);
				break;
			case CCDeviceOrientationLandscapeRight:
				[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeLeft animated:NO];

				targetTransform_ = CGAffineTransformTranslate(targetTransform_, w, h);
				targetTransform_ = CGAffineTransformRotate(targetTransform_, CC_DEGREES_TO_RADIANS(90));
				targetTransform_ = CGAffineTransformTranslate(targetTransform_, -h, -w);
				break;
			default:
				NSLog(@&quot;Director: Unknown device orientation&quot;);
				break;
		}
	}
}

-(void) applyLandscape
{
	static float m[16];

	if ( elapsedSinceLastOrientationChange_ &lt; 0.25f )
	{
		currentTransform_ = CGAffineTransformInterpolate(&amp;currentTransform_, &amp;targetTransform_,
														 elapsedSinceLastOrientationChange_ / 0.25f);
		elapsedSinceLastOrientationChange_ += dt;
	}
	else
	{
		currentTransform_ = targetTransform_;
	}

	CGAffineToGL(&amp;currentTransform_, m);
	glMultMatrixf(m);
}
</pre>
<p>Now cocos2d can handle orientation with nice transition animation. <a href="http://dl.dropbox.com/u/4634813/change_orientation_enhancement.diff">I&#8217;ve uploaded the diff patch</a> if you&#8217;re interested. It is based on cocos2d iphone 0.99.0.</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=109&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/05/03/improvements-cocos2d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>
	</item>
		<item>
		<title>New Game Prototype</title>
		<link>http://eygneph.wordpress.com/2010/03/29/new-game-prototype/</link>
		<comments>http://eygneph.wordpress.com/2010/03/29/new-game-prototype/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 14:49:34 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Swarm]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=106</guid>
		<description><![CDATA[Inspired by EGP&#8217;s &#8220;Attack of the killer swarm&#8221;, I&#8217;ve come up with an idea of simulating a swarm(or flock, whatever) in game. Vector field has been helpful when I developing the control of movement. Also, some clustering techniques and marching cube(actually marching square) is used in this demo. Here&#8217;s the video on youtube:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=106&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Inspired by EGP&#8217;s &#8220;Attack of the killer swarm&#8221;, I&#8217;ve come up with an idea of simulating a swarm(or flock, whatever) in game. Vector field has been helpful when I developing the control of movement. Also, some clustering techniques and marching cube(actually marching square) is used in this demo.</p>
<p>Here&#8217;s the video on youtube:<br />
<span class='embed-youtube' style='text-align:center; display:block;'><object width='500' height='312'><param name='movie' value='http://www.youtube.com/v/Qs5D_zN-Mtk?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/Qs5D_zN-Mtk?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='500' height='312' wmode='opaque'></embed> </object></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=106&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/03/29/new-game-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>
	</item>
		<item>
		<title>The complexity in shader combination</title>
		<link>http://eygneph.wordpress.com/2010/02/26/the-complexity-in-shader-combination/</link>
		<comments>http://eygneph.wordpress.com/2010/02/26/the-complexity-in-shader-combination/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 13:20:31 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Shader]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=93</guid>
		<description><![CDATA[Shader explosion or shader combination is always a headache to modern game development. With the power of high level shading languages, people can be more productive to define how a surface should looks like, under a certain lighting environment. But flexibility comes with a price. For example, you have one animation guy who carefully crafted a 28 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=93&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Shader explosion or shader combination is always a headache to modern game development.</p>
<p>With the power of high level shading languages, people can be more productive to define how a surface should looks like, under a certain lighting environment. <em>But flexibility comes with a price.</em> For example, you have one animation guy who carefully crafted a 28 bones hardware skinning shader, another shadow guy write his stunning penumbra correct soft shadow shader, and you write some tone mapped HDR lighting from image light sources. We&#8217;re all happy to see those individual effects shown in FX composer or in Max viewport. But, once you gonna integrate those effects into your editor, the problem appears: some game objects needs receive soft shadow and animation, other game objects needs HDR lighting and animation, and most of them can be affected by arbitrary number of lights, each can be of {directional, spotlight, omni}, and should be affected by fog. So you comes to sooooo many shaders called:</p>
<p>HardwareSkinning_ShadowReceiver_Omni_Fog()<br />
HardwareSkinning_ShadowReceiver_Directional_Fog()<br />
HardwareSkinning_HDRLighting_Spotlight_Fog()<br />
HardwareSkinning_ShadowReceiver_HDRLighting_Spotlight()<br />
MorphAnimation_ShadowReceiver_HDRLighting_Omni()<br />
MorphAnimation_HDRLighting_Directional_Fog()<br />
&#8230; etc etc</p>
<p>As you can see, this is an combinatorial  increase in number of shaders. And this is hard to solve just by brute force. Shawn Hargreaves of Microsoft XNA team stated it as an unresolved problem in today&#8217;s graphics world. Many people have come to an solution towards this issue, but all has its advantage and disadvantage.</p>
<p>So instead put my naive opinion here, let&#8217;s take a look how other people address this issue:</p>
<p>Uber-shader or SuperShader has the idea to put *all* shading techniques in one huge shader, and use static branching/dynamic branching/conditional compilation to rip off the unnecessary code. This is simple for design time and tool development, but comes with an cost at runtime and performance.</p>
<p>Direct3D 11 introduce dynamic shader linkage feature to address this problem. See the <em>Dynamic Shader Linkage 11</em> sample from DXSDK. Dynamic shader linkage is a bit like &#8220;standardlized&#8221; #ifdef uber-shader. User declare base material/light shader and derive concrete ones. Client needs to specify concrete material/light shaders on C++ side and put them into the right shader variable via D3D calls. Then the pixel shader just uses the abstract base class to shade the surface. This gives me an impression of dynamic branching(or more specifically dynamic linking + static compilation). That&#8217;s why I call it standardlized uber-shader/super shader.</p>
<p>NVLink is an tool trying to assemble shader assembly code to solve the combination problem. I didn&#8217;t take too deep into NVLink, because it looks like only support assembly shader code.</p>
<p>ID3DXFragmentLinker is a similar interface to address the issue. Still I didn&#8217;t take too much time on it because I read from many source on the web, say it&#8217;s not practical for serious development, even XNA doesn&#8217;t use it!</p>
<p>Unreal Engine 3 and Mental images are using node based editor(UnrealEd and mental mill) to weave shader graph, and compile into target shader automatically. This is an novel solution but requires a lot of programming and tool efforts, even inventing a new shading language like MetaSL and .usf. BTW 3ds Max 2010 has come up with mental mill artist edition for &#8220;free&#8221;, and UDK is also available for free download, so check it out.</p>
<p>Shawn has compiled a thorough list of techniques to address the issue. Uber-shader, micro shader, and his approach, using HLSL fragment and code emits.</p>
<p>Yann used an Effect-like system to handle the pass and dependency of individual shaders, but with more finer control, including shader cache and priority shader selection.</p>
<p>Here&#8217;re some reference I considered be userful:</p>
<p>Why shader cache/combination important and what&#8217;s the problem:<br />
<a href="http://www.gamedev.in/showthread.php?p=602">http://www.gamedev.in/showthread.php?p=602<br />
</a><a href="http://blogs.msdn.com/shawnhar/archive/2009/08/17/combining-shaders.aspx">http://blogs.msdn.com/shawnhar/archive/2009/08/17/combining-shaders.aspx</a></p>
<p>Yann&#8217;s approach:<br />
<a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=169710">http://www.gamedev.net/community/forums/topic.asp?topic_id=169710</a></p>
<p>Shawn&#8217;s collection and his approach:<br />
<a href="http://www.talula.demon.co.uk/hlsl_fragments/hlsl_fragments.html">http://www.talula.demon.co.uk/hlsl_fragments/hlsl_fragments.html</a></p>
<p>Autodesk talking about using MetaSL to facilitate game production:<br />
<a href="http://www.gamedev.net/columns/events/gdc2009/article.asp?id=1746">http://www.gamedev.net/columns/events/gdc2009/article.asp?id=1746</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=93&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/02/26/the-complexity-in-shader-combination/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>
	</item>
		<item>
		<title>Something about iPad</title>
		<link>http://eygneph.wordpress.com/2010/02/22/something-about-ipad/</link>
		<comments>http://eygneph.wordpress.com/2010/02/22/something-about-ipad/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 17:28:36 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[cocos2d]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=86</guid>
		<description><![CDATA[I&#8217;m checking out iPad stuff today. With NDA agreement I can&#8217;t say too much but iPad app needs a thorough redesign of your game/application. Just because the screen is larger and iPad user can hold it in any orientation, there&#8217;s much more to consider, especially for productivity apps and utility apps. Besides, I&#8217;m happy to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=86&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m checking out iPad stuff today. With NDA agreement I can&#8217;t say too much but iPad app needs a thorough redesign of your game/application. Just because the screen is larger and iPad user can hold it in any orientation, there&#8217;s much more to consider, especially for productivity apps and utility apps.</p>
<p>Besides, I&#8217;m happy to see cocos2d released its first iPad compatible version v0.99.0, <a href="http://www.cocos2d-iphone.org/archives/598">check this out!</a> Cocos2d is always the workhorse for 2D games in our studio. So it&#8217;s nice to have it ready when getting hands dirty for iPad. Good job cocos2d!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=86&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/02/22/something-about-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>
	</item>
		<item>
		<title>C# Constraints Syntax</title>
		<link>http://eygneph.wordpress.com/2010/02/22/csharp-constraints-syntax/</link>
		<comments>http://eygneph.wordpress.com/2010/02/22/csharp-constraints-syntax/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:23:56 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[generic constraints]]></category>
		<category><![CDATA[generic programming]]></category>
		<category><![CDATA[source code posting]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=81</guid>
		<description><![CDATA[Well, this seems to be straightforward for C# expert but still confused me for hours, for a newbie like me. If you need to constraint generic type to an specific type, you can use the following syntax: void Foobar&#60;T&#62;(T[] myarray) where T : MyType But, if you only need to constraint the generic T to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=81&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well, this seems to be straightforward for C# expert but still confused me for hours, for a newbie like me. If you need to constraint generic type to an specific type, you can use the following syntax:</p>
<pre class="brush: csharp;">void Foobar&lt;T&gt;(T[] myarray) where T : MyType</pre>
<p>But, if you only need to constraint the generic T to value type(that is, struct), you cannot just say:</p>
<pre class="brush: csharp;">void Foobar&lt;T&gt;(T[] myarray) where T : System.ValueType</pre>
<p>This will gives you an compiler error, complaining &#8220;error CS0702: Constraint cannot be special class &#8216;System.ValueType&#8217;&#8221;. Okay, I admit I stuck with this for an hour, without referring to the super basic <a href="http://msdn.microsoft.com/en-us/library/d5x73970(VS.80).aspx">C# generic programming guide</a>. So here&#8217;s the right syntax:</p>
<pre class="brush: csharp;">void Foobar&lt;T&gt;(T[] myarray) where T : struct</pre>
<p>Done! Totally no idea why C# choose this way. Also, by writing this post, I find <a href="http://en.blog.wordpress.com/2009/12/02/better-source-code-posting/">this post</a> is insanely useful for posting source code.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=81&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/02/22/csharp-constraints-syntax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>
	</item>
		<item>
		<title>Next step: voxel-based game</title>
		<link>http://eygneph.wordpress.com/2010/02/08/next-step-voxel-based-game/</link>
		<comments>http://eygneph.wordpress.com/2010/02/08/next-step-voxel-based-game/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 12:13:13 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Gamma4]]></category>
		<category><![CDATA[John Carmack]]></category>
		<category><![CDATA[Jon Olick]]></category>
		<category><![CDATA[Tim Sweeney]]></category>
		<category><![CDATA[voxel]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=74</guid>
		<description><![CDATA[It&#8217;s been a week after the bizarre gamma4 game submission. Now whatever the outcome(of course I hope it will be!), I started to thinking about the next. Basically I need one with easy-to-customize avatar/weapon and some stylish graphics, and most important the correct feeling of the gameplay. Here&#8217;s some thought shared. At the meanwhile, building [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=74&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a week after the bizarre<strong><em> </em><span style="font-weight:normal;">gamma4 game submission. Now whatever the outcome(of course I hope it will be!), I started to thinking about the next.</span></strong></p>
<p><strong><span style="font-weight:normal;">Basically I need one with easy-to-customize avatar/weapon and some stylish graphics, and most important the correct feeling of the gameplay. Here&#8217;s some thought shared. At the meanwhile, building a world is no doubt difficult and only accessible from those professional developers with in-house tools, or mod communities. This, however, is really unfriendly to user-generated-content methodology and design philosophy. In recent years there comes some games shipped with in-game editors but they either still need devoting time to create a new world, or just a too simple tool to be creative.</span></strong></p>
<p><strong><span style="font-weight:normal;">After some readings and searching, I&#8217;ve come up with an idea with voxel or volume based method. The voxel based rendering is way back to 1990&#8242;s and deprecated by the graphics developers since the 3D acceleration card dominate the PC market. However it still has some benefit that triangle mesh can&#8217;t compete: deformable terrain, partially destructible objects, easy level of details, the ability to crafting out the model, and solid volume instead of eggshell world. Further more, in recent years, GPU has come to an beast-complex and inefficient in programmable pipeline, and more efforts has been put on to GPGPU/hybrid solution to take the advantage of the raytrace approach by the community. This also gives voxel based method an huge chance. The Carmack, from id software, has shown that volumetric based method or hybrid method will be the main part of id tech 6. Jon Olick, also an veteran programmer in id software, shared his thought with the world in an Siggraph 2008 course. Also Time Sweeney, the creator of Unreal Engine, also state that the volumetric and hybrid approach might dominate the next 10 years of graphics market.</span></strong></p>
<p>So what about my game? Alright, those tough and pioneering research are not going to feed us to a bare living, so I leave them to Carmacks <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  But that doesn&#8217;t necessarily mean I will stand and wait! Even with low-tech studio like us, we can do something different and innovative. Example is a game called <a href="http://www.3d-heroes.net/main/">3D dot game heros</a> on PS3. Something like that but different feelings.</p>
<p>Reference:</p>
<p>Carmack on id tech 6: <a href="http://www.pcper.com/article.php?aid=532">http://www.pcper.com/article.php?aid=532</a><br />
Jon Olick course notes on voxel approach: <a href="http://s08.idav.ucdavis.edu/olick-current-and-next-generation-parallelism-in-games.pdf" target="_blank">http://s08.idav.ucdavis.edu/olick-current-and-next-generation-parallelism-in-games.pdf<br />
</a>Tim Sweeney on future of graphics: <a href="http://graphics.cs.williams.edu/archive/SweeneyHPG2009/TimHPG2009.pdf">http://graphics.cs.williams.edu/archive/SweeneyHPG2009/TimHPG2009.pdf</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=74&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/02/08/next-step-voxel-based-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>
	</item>
		<item>
		<title>New Crossout! gameplay footage is posted</title>
		<link>http://eygneph.wordpress.com/2010/02/06/new-crossout-gameplay-footage-is-posted/</link>
		<comments>http://eygneph.wordpress.com/2010/02/06/new-crossout-gameplay-footage-is-posted/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 13:34:18 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[One Button Game]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=67</guid>
		<description><![CDATA[Hey, here&#8217;s the new gameplay footage, remember to view it in HD!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=67&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hey, here&#8217;s the new gameplay footage, remember to view it in HD!</p>
<span class='embed-youtube' style='text-align:center; display:block;'><object width='500' height='312'><param name='movie' value='http://www.youtube.com/v/5Op8n99qFGo?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/5Op8n99qFGo?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='500' height='312' wmode='opaque'></embed> </object></span>
<span class='embed-youtube' style='text-align:center; display:block;'><object width='500' height='312'><param name='movie' value='http://www.youtube.com/v/iG0LegpuFPI?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' /> <param name='allowfullscreen' value='true' /> <param name='wmode' value='opaque' /> <embed src='http://www.youtube.com/v/iG0LegpuFPI?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1' type='application/x-shockwave-flash' allowfullscreen='true' width='500' height='312' wmode='opaque'></embed> </object></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=67&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/02/06/new-crossout-gameplay-footage-is-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>
	</item>
		<item>
		<title>Gamma4&#8230; finally</title>
		<link>http://eygneph.wordpress.com/2010/01/31/gamma4-finally/</link>
		<comments>http://eygneph.wordpress.com/2010/01/31/gamma4-finally/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 14:44:40 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Gamma4]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=59</guid>
		<description><![CDATA[It&#8217;s been ages I haven&#8217;t updated my blogs. I&#8217;ve been super busy with my daily work. And in my night hour, I&#8217;m going on with gamma4 submission. The rule is to create a game which can be played with only one button. I&#8217;ve come to a game called &#8220;Crossout!&#8221; and got it submit tonight. You [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=59&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been ages I haven&#8217;t updated my blogs. I&#8217;ve been super busy with my daily work. And in my night hour, I&#8217;m going on with <a href="http://www.kokoromi.org/gamma4/">gamma4 submission</a>. The rule is to create a game which can be played with only one button. I&#8217;ve come to a game called &#8220;Crossout!&#8221; and got it submit tonight. You can find the details of the game <a href="http://eygneph.wordpress.com/crossout-game-played-with-one-button/">here</a>.</p>
<p><a href="http://eygneph.files.wordpress.com/2010/01/crossout_head.png"><img class="alignnone size-full wp-image-54" title="crossout_head" src="http://eygneph.files.wordpress.com/2010/01/crossout_head.png?w=439&#038;h=204" alt="" width="439" height="204" /></a></p>
<p>I&#8217;m exhausted, although the experience is fun and interesting. Today I will go straight to bed and have an 8-hour sweet sleeping!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=59&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2010/01/31/gamma4-finally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>

		<media:content url="http://eygneph.files.wordpress.com/2010/01/crossout_head.png" medium="image">
			<media:title type="html">crossout_head</media:title>
		</media:content>
	</item>
		<item>
		<title>It&#8217;s Never Too Late To Say Hello</title>
		<link>http://eygneph.wordpress.com/2009/12/22/its-never-too-late-to-say-hello/</link>
		<comments>http://eygneph.wordpress.com/2009/12/22/its-never-too-late-to-say-hello/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 17:00:02 +0000</pubDate>
		<dc:creator>eygneph</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://eygneph.wordpress.com/?p=37</guid>
		<description><![CDATA[Well, after signing up wordpress for nearly a week, comes my first blog entry. So hi, hello world! To know more about me, click the About page. I&#8217;ve been thinking about what I gonna talk on this blog. Graphics technique? Daily working? What I had for lunch? All possible but still I think I would [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=37&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well, after signing up wordpress for nearly a week, comes my first blog entry. So hi, hello world! To know more about me, <a href="http://eygneph.wordpress.com/about">click the About page</a>.</p>
<p>I&#8217;ve been thinking about what I gonna talk on this blog. Graphics technique? Daily working? What I had for lunch? All possible but still I think I would focus on indie game development. So, I will post my thoughts on games, stories I&#8217;ve been experiencing, in-development screenshot and even advertisements(:g).</p>
<p>And finally, welcome to my blog, it&#8217;s all about courage!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eygneph.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eygneph.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eygneph.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eygneph.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eygneph.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eygneph.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eygneph.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eygneph.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eygneph.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eygneph.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eygneph.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eygneph.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eygneph.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eygneph.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eygneph.wordpress.com&amp;blog=10997918&amp;post=37&amp;subd=eygneph&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eygneph.wordpress.com/2009/12/22/its-never-too-late-to-say-hello/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/adee65683df3f8ae8c3df21c34cf7af3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eygneph</media:title>
		</media:content>
	</item>
	</channel>
</rss>
