<?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>Matthew Miner</title>
	<atom:link href="http://www.matthewminer.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matthewminer.com</link>
	<description>Multimedia and Technology Aficionado</description>
	<lastBuildDate>Sun, 04 Dec 2011 22:34:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Wanderlust</title>
		<link>http://www.matthewminer.com/2011/wanderlust/</link>
		<comments>http://www.matthewminer.com/2011/wanderlust/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 20:20:09 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=540</guid>
		<description><![CDATA[I went wandering. &#8212; Johnny Cash Unity developers, this post is for you. Because you&#8217;re cool and I want to be your friend. Let&#8217;s say you have an NPC. You could animate that bad boy and make it stroll around in suspiciously straight lines, but that&#8217;s boring and predictable. Personally I never stroll, I meander. [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>I went wandering. <span class="author">&#8212; Johnny Cash</span></p></blockquote>
<p>Unity developers, this post is for you. Because you&#8217;re cool and I want to be your friend.</p>
<p>Let&#8217;s say you have an <abbr title="Non-player Character">NPC</abbr>. You could animate that bad boy and make it stroll around in suspiciously straight lines, but that&#8217;s boring and predictable. Personally I never stroll, I meander. As aggravating mall shoppers prove, random movement is always more interesting than the linear sort, so let&#8217;s make your <abbr title="Non-player Characters">NPCs</abbr> move in this manner.<span id="more-540"></span></p>
<p>First step: toss a <code>CharacterController</code> on your character game object. You want to be constantly recalculating a new direction for them, so bust out a coroutine and set it to change the target direction every second or so. The Update function constantly rotates the character towards this target direction, with the end result being an <abbr title="Non-player Character">NPC</abbr> that doesn&#8217;t seem intent on making it to a specific location. Such behaviour is great for patrolling guards, farm animals, and the shoppers in that totally sweet mall simulation you&#8217;re building (<em>SimMall 3000</em>!).</p>
<p>Here&#8217;s the script that does this (also available in <a href="https://gist.github.com/1337455">Gist form</a>). Toss it on a game object, tweak the inspector values, and watch the magic happen.</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEngine</span><span style="color: #008000;">;</span><br />
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Collections</span><span style="color: #008000;">;</span><br />
<br />
<span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
<span style="color: #008080; font-style: italic;">/// Creates wandering behaviour for a CharacterController.</span><br />
<span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
<span style="color: #008000;">&#91;</span>RequireComponent<span style="color: #008000;">&#40;</span><a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span style="color: #008000;">typeof</span></a><span style="color: #008000;">&#40;</span>CharacterController<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span><br />
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Wander <span style="color: #008000;">:</span> MonoBehaviour<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">float</span> speed <span style="color: #008000;">=</span> <span style="color: #FF0000;">5</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">float</span> directionChangeInterval <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">float</span> maxHeadingChange <span style="color: #008000;">=</span> <span style="color: #FF0000;">30</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; CharacterController controller<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">float</span> heading<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; Vector3 targetRotation<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; Vector3 forward<br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; get <span style="color: #008000;">&#123;</span> <span style="color: #0600FF; font-weight: bold;">return</span> transform<span style="color: #008000;">.</span><span style="color: #0000FF;">TransformDirection</span><span style="color: #008000;">&#40;</span>Vector3<span style="color: #008000;">.</span><span style="color: #0000FF;">forward</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">void</span> Awake <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; controller <span style="color: #008000;">=</span> GetComponent<span style="color: #008000;">&lt;</span>CharacterController<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Set random initial rotation</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; heading <span style="color: #008000;">=</span> Random<span style="color: #008000;">.</span><span style="color: #0000FF;">Range</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">360</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; transform<span style="color: #008000;">.</span><span style="color: #0000FF;">eulerAngles</span> <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Vector3<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span>, heading, <span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; StartCoroutine<span style="color: #008000;">&#40;</span>NewHeadingRoutine<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">void</span> Update <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; transform<span style="color: #008000;">.</span><span style="color: #0000FF;">eulerAngles</span> <span style="color: #008000;">=</span> Vector3<span style="color: #008000;">.</span><span style="color: #0000FF;">Slerp</span><span style="color: #008000;">&#40;</span>transform<span style="color: #008000;">.</span><span style="color: #0000FF;">eulerAngles</span>, targetRotation, Time<span style="color: #008000;">.</span><span style="color: #0000FF;">deltaTime</span> <span style="color: #008000;">*</span> directionChangeInterval<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; controller<span style="color: #008000;">.</span><span style="color: #0000FF;">SimpleMove</span><span style="color: #008000;">&#40;</span>forward <span style="color: #008000;">*</span> speed<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">void</span> OnControllerColliderHit <span style="color: #008000;">&#40;</span>ControllerColliderHit hit<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>hit<span style="color: #008000;">.</span><span style="color: #0000FF;">gameObject</span><span style="color: #008000;">.</span><span style="color: #0000FF;">tag</span> <span style="color: #008000;">!=</span> <span style="color: #666666;">&quot;Boundary&quot;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Bounce off the wall using angle of reflection</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var newDirection <span style="color: #008000;">=</span> Vector3<span style="color: #008000;">.</span><span style="color: #0000FF;">Reflect</span><span style="color: #008000;">&#40;</span>forward, hit<span style="color: #008000;">.</span><span style="color: #0000FF;">normal</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; transform<span style="color: #008000;">.</span><span style="color: #0000FF;">rotation</span> <span style="color: #008000;">=</span> Quaternion<span style="color: #008000;">.</span><span style="color: #0000FF;">FromToRotation</span><span style="color: #008000;">&#40;</span>Vector3<span style="color: #008000;">.</span><span style="color: #0000FF;">forward</span>, newDirection<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; heading <span style="color: #008000;">=</span> transform<span style="color: #008000;">.</span><span style="color: #0000FF;">eulerAngles</span><span style="color: #008000;">.</span><span style="color: #0000FF;">y</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; NewHeading<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// Calculates a new direction to move towards.</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">void</span> NewHeading <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var floor <span style="color: #008000;">=</span> Mathf<span style="color: #008000;">.</span><span style="color: #0000FF;">Clamp</span><span style="color: #008000;">&#40;</span>heading <span style="color: #008000;">-</span> maxHeadingChange, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">360</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var ceil &nbsp;<span style="color: #008000;">=</span> Mathf<span style="color: #008000;">.</span><span style="color: #0000FF;">Clamp</span><span style="color: #008000;">&#40;</span>heading <span style="color: #008000;">+</span> maxHeadingChange, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">360</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; heading <span style="color: #008000;">=</span> Random<span style="color: #008000;">.</span><span style="color: #0000FF;">Range</span><span style="color: #008000;">&#40;</span>floor, ceil<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; targetRotation <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Vector3<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span>, heading, <span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// Repeatedly calculates a new direction to move towards.</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// Use this instead of MonoBehaviour.InvokeRepeating so that the interval can be changed at runtime.</span><br />
&nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; IEnumerator NewHeadingRoutine <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">true</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NewHeading<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">yield</span> <span style="color: #0600FF; font-weight: bold;">return</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> WaitForSeconds<span style="color: #008000;">&#40;</span>directionChangeInterval<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>I also chucked in some code in the <code>OnControllerColliderHit</code> that changes the character&#8217;s direction when it stupidly runs into a wall. The final result is an AI character that wanders aimlessly around the level, going wherever its small mind desires.</p>
<div id="unityPlayer">
<div class="missing">
		<a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now!"><br />
			<img alt="Unity Web Player. Install now!" src="http://webplayer.unity3d.com/installation/getunity.png" width="193" height="63" /><br />
		</a>
	</div>
</div>
<p><script type="text/javascript" src="http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject.js"></script><br />
<script type="text/javascript">
<!--
function GetUnity() {
	if (typeof unityObject != "undefined") {
		return unityObject.getObjectById("unityPlayer");
	}
	return null;
}
if (typeof unityObject != "undefined") {
	unityObject.embedUnity("unityPlayer", "/files/wander.unity3d", 440, 440);
}
-->
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/wanderlust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unite 2011 Postmortem</title>
		<link>http://www.matthewminer.com/2011/unite-2011-postmortem/</link>
		<comments>http://www.matthewminer.com/2011/unite-2011-postmortem/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 16:25:27 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[unite]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=526</guid>
		<description><![CDATA[So many nerds. &#8212; Montague Redgrave Unite 2011 left me exhausted and my voice decimated. It was awesome. We (Brad Keys and myself) were there on business, pitching Lumos and game analytics to developers with flair that even Billy Mays can&#8217;t top. We also sat in the sessions offered throughout the three days. Being the [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>So many nerds. <span class="author">&#8212; Montague Redgrave</span></p></blockquote>
<p><a href="http://www.matthewminer.com/2011/unite-2011-postmortem/img-20110928-00025/" rel="attachment wp-att-528"><img src="http://www.matthewminer.com/wordpress/wp-content/uploads/2011/10/IMG-20110928-00025-440x330.jpg" alt="Unite 2011" title="Unite 2011 conference centre." class="aligncenter size-medium wp-image-528" /></a></p>
<p>Unite 2011 left me exhausted and my voice decimated. It was awesome.<span id="more-526"></span></p>
<p>We (Brad Keys and myself) were there on business, pitching <a href="http://www.uselumos.com/" title="Lumos game analytics.">Lumos</a> and game analytics to developers with flair that even Billy Mays can&#8217;t top. We also sat in the sessions offered throughout the three days. Being the code lovers we are, we mostly attended the presentations related to programming. A common theme throughout was the difficulty of handling massive amounts of assets and the workflows that larger companies use for collaboration and testing. For someone whose games typically stay in the <a href="http://www.gamasutra.com/view/feature/6504/a_game_studio_culture_dictionary.php" title="Game Studio Culture Dictionary">graybox</a> phase, this insight into how studios manage their gigabytes of data was fascinating. The takeaway was that the current release of Unity has difficulty coping with tons of assets, an issue that the keynote promised to alleviate with additions like the cache server and text-based scene files. The latter feature was met with loud cheers by the audience, so there&#8217;s no doubt that Unity 3.5 will be a welcome update.</p>
<p>The most interesting session I attended was <em>Unity in the Wild</em>, a showcase of projects using Unity for non-game purposes, among them nature simulations and augmented reality for advertising. <a href="http://candystations.com/">Candy Stations</a>, a company producing live visualizations and performance art, was particularly fascinating. Unity is just one application of many that they employ to achieve their visually stunning displays. It opened my eyes to the possibility of piping video generated by an application like Quartz Composer or Max/Jitter directly into a Unity movie texture (a key component of this setup, by the way, is a tool called <a href="http://syphon.v002.info/">Syphon</a> that allows OS X applications to share video frames in realtime). I&#8217;ve always had the notion that Unity&#8217;s powerful physics engine, lighting system, and 3D environment could be effectively used beyond games, and this session showed me that people are doing just that with incredible results. Just watch the Sufjan Stevens video on Candy Stations&#8217; website &#8212; that&#8217;s one psychedelic performance.</p>
<p>Something that impressed me about Unity as a company was their transparency. On the second day they hosted an off the record view into their roadmap, providing details about the current and future state of the engine. Developers were encouraged to voice their concerns and ask questions, which were answered frankly and honestly by the people calling the shots. As built-in analytics was one of the features announced during the keynote, we were eager to talk to Unity&#8217;s engineers about where Lumos, our own game analytics platform, fits in. Everyone we spoke with, from their CEO David Helgason to the programmers who will be working on the system, was available for discussion and refreshingly honest about their plans. In the tech industry where so many companies guard their words and give statements as useful as Confucius&#8217;, I appreciated Unity&#8217;s willingness to give us the lowdown without the bullshit.</p>
<p><a href="http://www.matthewminer.com/2011/unite-2011-postmortem/img-20111001-00100/" rel="attachment wp-att-529"><img src="http://www.matthewminer.com/wordpress/wp-content/uploads/2011/10/IMG-20111001-00100-440x330.jpg" alt="Golden Gate" title="The Golden Gate Bridge." width="440" height="330" class="aligncenter size-medium wp-image-529" /></a></p>
<p>The three days of the conference was packed, and other than the exhausting uphill walk to the conference centre we were unable to see much of San Francisco during those days. Fortunately we spent an extra day in <abbr title="San Francisco">SF</abbr> to be camera-toting tourists. It&#8217;s a beautiful place that reminded me of Vancouver, a city which I lived in for several years and loved. I&#8217;d definitely jump at the opportunity to return to California and take in more of the metropolis. Unite 2012 perhaps?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/unite-2011-postmortem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stay Hungry, Stay Foolish</title>
		<link>http://www.matthewminer.com/2011/stay-hungry-stay-foolish/</link>
		<comments>http://www.matthewminer.com/2011/stay-hungry-stay-foolish/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 04:01:28 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=519</guid>
		<description><![CDATA[&#8220;Because the people who are crazy enough to think they can change the world, are the ones who do.&#8221;]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.matthewminer.com/2011/stay-hungry-stay-foolish/steve-jobs/" rel="attachment wp-att-520"><img src="http://www.matthewminer.com/wordpress/wp-content/uploads/2011/10/Steve-Jobs-440x294.jpg" alt="" title="Steve Jobs" width="440" height="294" class="aligncenter size-medium wp-image-520" /></a></p>
<p>&#8220;Because the people who are crazy enough to think they can change the world, are the ones who do.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/stay-hungry-stay-foolish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello Unite</title>
		<link>http://www.matthewminer.com/2011/hello-unite/</link>
		<comments>http://www.matthewminer.com/2011/hello-unite/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 19:21:49 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[unite]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=512</guid>
		<description><![CDATA[Let&#8217;s meet up and talk shop. I&#8217;ll bring my skateboard. &#8212; Eugene Belford This week, accompanied by hotshot game designer Brad Keys, I&#8217;ll be attending Unite 2011 in San Francisco. Along with nerding out on topics as exhilarating as physics engines and particle effects, we&#8217;ll be busting out Lumos for anyone interested in checking out [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>Let&#8217;s meet up and talk shop. I&#8217;ll bring my skateboard. <span class="author">&#8212; Eugene Belford</span></p></blockquote>
<p>This week, accompanied by hotshot game designer <a href="http://www.bradkeys.com/">Brad Keys</a>, I&#8217;ll be attending Unite 2011 in San Francisco. Along with nerding out on topics as exhilarating as physics engines and particle effects, we&#8217;ll be busting out <a href="http://www.uselumos.com/">Lumos</a> for anyone interested in checking out the bee&#8217;s knees of game analytics services.<span id="more-512"></span> We have a couple sweet updates ready to ship, so it&#8217;s guaranteed not to disappoint. I <em>promise</em>.</p>
<p>I&#8217;m jazzed to be attending the conference, it&#8217;s been on my to-do list since the first one was put together years back. I don&#8217;t know if my game design skills have improved since Unite 2007, but the engine sure has and I&#8217;m pumped to see what magic is unveiled this time around. According to my (deadly accurate) crystal ball, we&#8217;re going to see announced the Apple II as a deployment platform in addition to a pink editor skin to complement the current pro &#8220;vampire&#8221; theme.</p>
<p>If you&#8217;d like to meet up with us to chat about Lumos, or about any other topic that strikes your fancy, send me a message at <a href="mailto:matthew@matthewminer.com">matthew@matthewminer.com</a>. I look forward to meeting my fellow Unity aficionados.</p>
<p>See you there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/hello-unite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evil Dudes and Acting Talent</title>
		<link>http://www.matthewminer.com/2011/evil-dudes-and-acting-talent/</link>
		<comments>http://www.matthewminer.com/2011/evil-dudes-and-acting-talent/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 01:38:52 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Filmmaking]]></category>
		<category><![CDATA[uwfcc]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=495</guid>
		<description><![CDATA[I find my galloping horse more entertaining, but not a shabby effort nonetheless. &#8212; Eadweard Muybridge Videos, I like to make &#8216;em. For your intense enjoyment, here&#8217;s a couple I recently helped shoot and edit. A production by the University of Waterloo Film Creators Club (UWFCC if you dig acronyms), this one&#8217;s an ongoing series. [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>I find my galloping horse more entertaining, but not a shabby effort nonetheless. <span class="author">&#8212; Eadweard Muybridge</span></p></blockquote>
<p>Videos, I like to make &#8216;em. For your intense enjoyment, here&#8217;s a couple I recently helped shoot and edit.<span id="more-495"></span></p>
<p><iframe width="440" height="278" src="http://www.youtube.com/embed/LG-jVifc89g?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>A production by the <a href="http://www.uwfcc.uwaterloo.ca/">University of Waterloo Film Creators Club</a> (<abbr title="University of Waterloo Film Creators Club">UWFCC</abbr> if you dig acronyms), this one&#8217;s an ongoing series. We shot the second episode recently, complete with ninjas and a mop brandishing janitor played by yours truly.</p>
<p><iframe width="440" height="278" src="http://www.youtube.com/embed/3l7PZZtobd4?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>With more talent than chin hairs, it&#8217;s only a matter of time before S.T. Holmes becomes a household name alongside Judi Dench and Busta Rhymes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/evil-dudes-and-acting-talent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fashioning Compelling Heroes</title>
		<link>http://www.matthewminer.com/2011/fashioning-compelling-heroes/</link>
		<comments>http://www.matthewminer.com/2011/fashioning-compelling-heroes/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 03:47:38 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Filmmaking]]></category>
		<category><![CDATA[screenwriting]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=490</guid>
		<description><![CDATA[As long as elephantine abdominal muscles are involved, I&#8217;m satisfied. &#8212; Pierre Fauchard Crafting a compelling hero is a difficult task. At least, one assumes so given recent films featuring protagonists less exciting than Ferris Bueller&#8217;s economics prof. I&#8217;m looking at you Captain America &#8212; sure, his chiseled abs and patriotic (though inadvisable) colour choices [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>As long as elephantine abdominal muscles are involved, I&#8217;m satisfied. <span class="author">&#8212; Pierre Fauchard</span></p></blockquote>
<p>Crafting a compelling hero is a difficult task. At least, one assumes so given recent films featuring protagonists less exciting than Ferris Bueller&#8217;s economics prof.<span id="more-490"></span> I&#8217;m looking at you Captain America &#8212; sure, his chiseled abs and patriotic (though inadvisable) colour choices distinguish him from his peers, but his unwavering good intentions make every decision predictable. He vanquishes evil as superheroes typically do, but we already know he&#8217;s going to do that. Pyrotechnics aside, the journey to his final confrontation with Agent Smith is ultimately forgettable. Not once during the film did I bust out my moral compass, and I left the theatre with an indifferent shrug.</p>
<p>Memorable heroes are those that not only triumph over the baddies, but also over their own internal struggles and deficiencies. Let us skip from Marvel&#8217;s universe over to DC and examine Nolan&#8217;s celebrated <em>Dark Knight</em>. At a superficial level, both Batman and Captain America slap the hooligans and prevent innocent lives from being mercilessly extinguished. The former, however, is a much more captivating character. Unlike Captain America, Bruce Wayne is imperfect. On screen is a man haunted by his past and tormented in the present by his inability to keep safe his loved ones. He makes difficult decisions, decisions which might be considered immoral, and not even his best buds dig them. The sweet ninja skills and totally rad tank car make for solid entertainment, but more than his physical feats it&#8217;s Batman&#8217;s grapples with ethics that make <em>The Dark Knight</em> a satisfying watch.</p>
<p>Each time the hero makes a decision, we ask ourselves (perhaps subconsciously) whether we&#8217;d act in the same manner. When the answer to every question is readily available, we have a dull hero on our hands. Moral ambiguity makes a character engaging; a lack of it, boring. Iron Man&#8217;s charisma only gets him so far &#8212; it&#8217;s when he questions the benefit of Stark Industries to the world that there is an interesting story to tell.</p>
<p>When a film hits its third act, there must always be the danger that the hero fails to overcome the villainy they face. This potential for defeat must come from within though. In parallel with the external threat there must exist the possibility that the hero themselves aren&#8217;t strong enough to rise to the challenge. Their weaknesses and character flaws must put into jeopardy their ability to karate chop Agent Smith. Otherwise the audience might as well leave their brains with the cute girl at the box office.</p>
<p>Before kicking ass and chewing bubblegum, the hero must first be brought down to the level of Joe Sixpack. Your audience lacks wizard robes and ambitious sidekicks. They have regrets, they make foolish judgements, and they occasionally stagger when tiptoeing the hastily sketched line between right and wrong. The protagonist must do likewise if the audience is to empathize with and relate to them. Viewers suspend their disbelief when a freight rig defies physics and flips over lengthwise, but once you throw Jesus in tights on screen to fight crime you&#8217;ve lost them. That&#8217;s not a real person, and nobody cares about the story if it&#8217;s not a real person experiencing it.</p>
<p>Compelling heroes are challenging to hash out. When writing the part of any protagonist though, whether they be wearing a cape or burnt-out bums hungry for some White Castle, enormous care must be taken to make them into someone the audience can get behind. A solid central character can make or break a film. A good guy who only does good things and thinks only good thoughts makes even the most explosion-filled production an exercise in tedium.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/fashioning-compelling-heroes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Methodic: Graphically Execute Functions</title>
		<link>http://www.matthewminer.com/2011/methodic-graphically-execute-functions/</link>
		<comments>http://www.matthewminer.com/2011/methodic-graphically-execute-functions/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 22:57:39 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[asset store]]></category>
		<category><![CDATA[methodic]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=471</guid>
		<description><![CDATA[Stop having boring tuna. Stop having a boring life. &#8212; Vince Offer Now available in the Unity Asset Store: the frighteningly useful Methodic. This super cool mack daddy is a tool for graphically executing functions in the editor, providing an easy way to test new code and trigger actions that would otherwise be tedious to [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>Stop having boring tuna. Stop having a boring life. <span class="author">&#8212; Vince Offer</span></p></blockquote>
<p>Now available in the Unity Asset Store: the frighteningly useful <a href="http://u3d.as/content/matthew-miner/methodic/1Xw">Methodic</a>. This super cool mack daddy is a tool for graphically executing functions in the editor, providing an easy way to test new code and trigger actions that would otherwise be tedious to invoke. If this doesn&#8217;t get your heart racing then few things will.<span id="more-471"></span></p>
<p>Let&#8217;s bust out some example usage to increase the thrill level. Suppose you have a game object with a script attached. In this script you just wrote a new function <code>ImmenseBlast</code> and you want to give it a whirl. Unfortunately you need to lay down some code to execute the function, whether that be a <abbr title="Graphical User Interface">GUI</abbr> button or a trigger or a hotkey. With Methodic, no such shenanigans are necessary. On play, simply click the game object, select &#8220;ImmenseBlast&#8221; from Methodic&#8217;s dropdown menu, and hit <em>Invoke</em>. The function executes. Boom.</p>
<p><img src="/wordpress/wp-content/uploads/2011/06/methodic.png" alt="Methodic editor window" class="aligncenter size-full wp-image-473" style=""width: 405px; height: 258px;" /></p>
<p>Maybe your function takes some parameters? No problem friend. A form appears where you can enter values to be passed upon execution. If one of the parameters is a <code>Color</code> struct, the colour picker appears. If the function accepts a <code>GameObject</code>, drag and drop one from the Hierarchy pane. A <code>Transform</code>? Same deal. If it was any easier I&#8217;d hire Vince Offer to pitch it.</p>
<p>You can pick up Methodic for $10 <a href="http://u3d.as/content/matthew-miner/methodic/1Xw">here</a>. As always, feedback and suggestions are appreciated, particularly as this is my first foray into the wild world of the Asset Store.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/methodic-graphically-execute-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Lumos Game Analytics</title>
		<link>http://www.matthewminer.com/2011/announcing-lumos-game-analytics/</link>
		<comments>http://www.matthewminer.com/2011/announcing-lumos-game-analytics/#comments</comments>
		<pubDate>Mon, 23 May 2011 08:11:51 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[lumos]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=430</guid>
		<description><![CDATA[Goodbye weird hackish Google Analytics solution! &#8212; John Graunt Recently myself and other suave folks have been building a game analytics service called Lumos. Frustrated by the lack of analytic tools geared specifically towards the needs of game developers, we took up the task of building one ourselves. The result of our efforts is now [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>Goodbye weird hackish Google Analytics solution! <span class="author">&#8212; John Graunt</span></p></blockquote>
<p>Recently myself and other suave folks have been building a game analytics service called Lumos. Frustrated by the lack of analytic tools geared specifically towards the needs of game developers, we took up the task of building one ourselves. The result of our efforts is now in public beta, and I encourage you to <a href="http://www.uselumos.com/">take it for a spin</a>.<span id="more-430"></span> Currently we only offer support for the outrageously awesome Unity engine, but support for other game engines is coming soon. We love you regardless of your tool choice.</p>
<p>&#8220;Tell me good sir,&#8221; you might demand, &#8220;what does Lumos offer an enterprising chap like myself?&#8221; First off, <strong>remote debugging</strong>. Lumos automatically records runtime errors and warnings thrown by your game and sends them to our servers for later perusal. When a player triggers a dastardly NullReferenceException in level three that you were unaware of, you&#8217;ll see the problem immediately and be able to fix it. This is particularly useful in the beta testing phase of your game; errors happen, but unless you discover into them yourself while developing it can be difficult to know where they might occur.</p>
<p>Second feature: <strong>system info recording</strong>. When a player first fires up your game, specs such as their computer&#8217;s <abbr title="Random Access Memory">RAM</abbr> and operating system are sent to Lumos. This information is valuable when deciding what class of machine your game should target. If most of your players are rocking integrated graphics cards with 64 <abbr title="Megabyte">MB</abbr> <abbr title="Video Random Access Memory">VRAM</abbr> (don&#8217;t laugh, that&#8217;s what my old workhorse has), you might want to dial down the particle effects. It&#8217;s also valuable when deciding what your next game should target.</p>
<p>Another feature we built was a <strong>feedback system</strong>. This allows players to report bugs or give suggestions, to which you can respond if desired. In the Unity package we supply there&#8217;s an optional GUI that makes it a breeze to solicit feedback from your players, or you can write your own sexy interface to do the job.</p>
<p>Now, besides the features mentioned above there are many new ones currently in the works. As time goes on Lumos will be expanded to fulfill the needs of game developers large and small. If you have features you&#8217;d like to see that aren&#8217;t currently offered, we&#8217;d love to hear them (you can use the form <a href="http://www.uselumos.com/contact">here</a> or contact me <a href="mailto:matthew@uselumos.com">directly</a>). Many of us on the Lumos team are game developers ourselves, but obviously you&#8217;ll desire features we haven&#8217;t even thought of yet. We looked into hiring a telepath, but decent ones are few and far between.</p>
<p>The website for Lumos is <a href="http://www.uselumos.com/">www.uselumos.com</a>. Sign up, make an app, add the Lumos Unity package to your game and get those stats flowing! We&#8217;ve designed the service to operate as automatically as possible &#8212; for most functionality you don&#8217;t have to take any action at all. Simply drop the Lumos game object into your scene and you&#8217;re ready to laugh at the days when game analytics was a far-off fantasy. If that&#8217;s not the definition of the American Dream (or Canadian, in my case), I don&#8217;t know what is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/announcing-lumos-game-analytics/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Trajectory Wins Great Canadian Appathon&#8217;s &#8220;Wild Card&#8221; Category</title>
		<link>http://www.matthewminer.com/2011/trajectory-wins-great-canadian-appathons-wild-card-category/</link>
		<comments>http://www.matthewminer.com/2011/trajectory-wins-great-canadian-appathons-wild-card-category/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 17:47:57 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=228</guid>
		<description><![CDATA[I would have named it Orbital Fun Time. &#8212; Friedrich Drumpf This is slightly old news, but recently a game I built for the Great Canadian Appathon &#8212; hastily named Trajectory at 5 am on a Sunday morning &#8212; took home the &#8220;Wild Card&#8221; prize. The criteria for this category was originality, creativity, fun and [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>I would have named it Orbital Fun Time. <span class="author">&#8212; Friedrich Drumpf</span></p></blockquote>
<p>This is slightly old news, but recently a game I built for the <a href="http://www.greatcanadianappathon.com/">Great Canadian Appathon</a> &#8212; hastily named Trajectory at 5 am on a Sunday morning &#8212; took home the &#8220;Wild Card&#8221; prize. The criteria for this category was originality, creativity, fun and cool factor.<span id="more-228"></span> Like the Global Game Jam and similar hackathons I&#8217;ve participated in, the game had to be built in under 48 hours. A key difference of the Appathon was that the game, like the event&#8217;s title suggests, had to be targeted towards mobile deployment. This was my first time developing for a phone, but as I wasn&#8217;t exactly pushing the boundaries of graphical realism this proved to be easier than I anticipated. As burnt out as I was by the end of the competition, I was very pleased with the resulting app.</p>
<p><a href="/?attachment_id=371"><img src="/wordpress/wp-content/uploads/2011/05/trajectory_menu-440x293.jpg" alt="Trajectory Menu" title="Trajectory Menu" class="size-medium wp-image-371" /></a></p>
<p>By design, the gameplay is simple. You play a spaceship, which for no apparent reason must collect stars (I&#8217;ll be the first to admit that the story lacks panache). To move about the level, you orbit around planets then slingshot yourself off, avoiding those mysterious black cinder blocks in the process. There&#8217;s only one control: tapping the screen attaches yourself to the closest planet, or releases you if you&#8217;re already in orbit around one. Traveling through a wormhole transports you to a sibling wormhole, which can be beneficial or detrimental depending on your randomly chosen destination. Completing a level requires that you collect all the stars in it, after which the next level begins. The time it takes to finish the level determines how well you do; like golf, a low score is desirable. Completing all ten levels lands you back at the main menu, where you eagerly scramble to play again.</p>
<p><a href="/?attachment_id=370"><img src="/wordpress/wp-content/uploads/2011/05/trajectory_game-440x293.jpg" alt="Trajectory Level" title="Trajectory Level" class="size-medium wp-image-370" /></a></p>
<p>Admittedly the orbiting mechanic feels more like you&#8217;re swinging, particularly so with the unexplained gravity that constantly pulls you to the bottom of the screen. For this reason a monkey character in a jungle environment would have been more appropriate, but a space theme was chosen as something my feeble 3D modelling skills could pull off. Pixar might not be pleading for me to design their next adorable protagonist, but when it comes to sculpting blocky planets I&#8217;m second to none.</p>
<p>Overall the Great Canadian Appathon was a bang-up affair. Organized by mobile game studio <a href="http://www.xmgstudio.com/">XMG</a>, the prizes were impressive &#8212; the team behind the dashing <a href="http://www.youtube.com/watch?v=TEdiE3EdC8E">Super Punch</a> walked away with $25,000 &#8212; and we were kept well nourished throughout. I look forward to participating again when the next Appathon rolls around, before which you will hopefully see Trajectory up for sale in your local app store. All I need to do now is hire/kidnap an artist with 3D modelling skills superior to my own; which, to be honest, could be just about anyone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/trajectory-wins-great-canadian-appathons-wild-card-category/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Spammertainment</title>
		<link>http://www.matthewminer.com/2011/spammertainment/</link>
		<comments>http://www.matthewminer.com/2011/spammertainment/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 06:32:03 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=209</guid>
		<description><![CDATA[ffdj wiavr free porno videos &#8212; Insightful Blog Reader I have to give credit to spammers, occasionally they display creativity I thought impossible from people with such atrocious grammar. For amusement I sometimes take a gander at the spam comments this blog receives. This latest batch cleverly takes into account the title of the post. [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>ffdj wiavr free porno videos <span class="author">&#8212; Insightful Blog Reader</span></p></blockquote>
<p>I have to give credit to spammers, occasionally they display creativity I thought impossible from people with such atrocious grammar. For amusement I sometimes take a gander at the spam comments this blog receives. <span id="more-209"></span>This latest batch cleverly takes into account the title of the post.</p>
<blockquote><p>Changing unitys boilerplate script code.. Slap-up</p></blockquote>
<p>Slap-up indeed. If the comment didn&#8217;t link to a site advertising toaster ovens, I&#8217;d be tempted to approve it to show my appreciation of the excellent word choice. Ditto for this one:</p>
<blockquote><p>Cutscene editor on github.. Corking</p></blockquote>
<p>Do senior citizens read my blog now? Here&#8217;s another one I enjoyed:</p>
<blockquote><p>Your webpage appears to be excellent. Possess a decent morning.</p></blockquote>
<p><em>Possessing</em> a decent morning sounds much more fulfilling than simply having one. Some spam comments though don&#8217;t quite hit the mark, like this one in response to a post about Unity coroutines:</p>
<blockquote><p>Thanks for taking the time to talk about this, I feel fervently about this and I get pleasure from learning about this topic. [...] I have found it very helpful. There&#8217;ve to become charging stations everywhere.</p></blockquote>
<p>I&#8217;m flattered that a topic as mundane as coroutines can be so enthralling. That last sentence about charging stations is cryptic though. How many blog posts could such a sentence apply to? The believability of the comment would be much higher if only that bit was omitted. And if it didn&#8217;t link to a shady site selling organ-engorging medications.</p>
<p>Now, here&#8217;s a pro tip for spammers. Some of your comments are genuinely convincing. If they weren&#8217;t flagged for review by <a href="http://akismet.com/">Akismet</a>, I&#8217;d have difficulty determining their legitimacy. The <abbr title="Uniform Resource Locator">URL</abbr>s supplied in the homepage field are a dead giveaway of your true intentions though. If they contain terms related to pornography, or credit cards, or cheap jewellery, it&#8217;s a strong hint that you don&#8217;t actually feel fervently about the articles I write.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2011/spammertainment/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

