<?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 &#187; Game Design</title>
	<atom:link href="http://www.matthewminer.com/topics/game/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>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>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>Unity Editor Macros</title>
		<link>http://www.matthewminer.com/2010/unity-editor-macros/</link>
		<comments>http://www.matthewminer.com/2010/unity-editor-macros/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 23:23:47 +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=200</guid>
		<description><![CDATA[These make my life easier. Perhaps even more than the Slap Chop. &#8212; Captain William Henry Stuart A feature that appeared briefly in a beta release of Unity 3.0, but which has since disappeared, is editor macros. The reason for the feature&#8217;s withdrawal is unclear. Presumably it&#8217;s simply unready for primetime, and will appear in [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>These make my life easier. Perhaps even more than the Slap Chop. <span class="author">&#8212; Captain William Henry Stuart</span></p></blockquote>
<p>A feature that appeared briefly in a beta release of Unity 3.0, but which has since disappeared, is editor macros. The reason for the feature&#8217;s withdrawal is unclear. Presumably it&#8217;s simply unready for primetime, and will appear in a future version of Unity. Fortunately the ability to evaluate arbitrary code snippets in the editor is still available in the UnityEditor.Macros namespace, and taking advantage of it is easier than racing a sloth.<span id="more-200"></span></p>
<p>Macros are little snippets of code that help speed up repetitive tasks in the editor. The same functionality can be achieved by writing an editor script, but for simple tasks &#8212; particularly ones that you only intend to run once &#8212; doing so can be a chore greater than the action itself. Perhaps you want to duplicate the selected game object a thousand times, or you want to perform a batch rename. For such tasks, and even for more complex ones, a few lines of code will often suffice.</p>
<p>I&#8217;ve written a <a href="https://gist.github.com/975335">simple editor window script</a> (also available at the <a href="http://www.unifycommunity.com/wiki/index.php?title=Macros">Unify Community Wiki</a>) that allows you to input any code and execute it. Place the file in the /Assets/Editor directory and navigate to the <em>Window → Macros</em> menu. To get the ball rolling, here&#8217;s a few basic examples of how it might use be used. Note that the <code>MacroEvaluator.Eval</code> method only accepts JavaScript and not the manlier C#.</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: #008080; font-style: italic;">// Duplicate the selected game object 100 times</span><br />
var duplications <span style="color: #008000;">=</span> <span style="color: #FF0000;">100</span><span style="color: #008000;">;</span><br />
<br />
<span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>var i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> duplications<span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; GameObject<span style="color: #008000;">.</span><span style="color: #0000FF;">Instantiate</span><span style="color: #008000;">&#40;</span>Selection<span style="color: #008000;">.</span><span style="color: #0000FF;">activeObject</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<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: #008080; font-style: italic;">// Create a grid of cubes</span><br />
var rows <span style="color: #008000;">=</span> <span style="color: #FF0000;">9</span><span style="color: #008000;">;</span><br />
var cols <span style="color: #008000;">=</span> <span style="color: #FF0000;">9</span><span style="color: #008000;">;</span><br />
var spacing <span style="color: #008000;">=</span> <span style="color: #FF0000;">2</span><span style="color: #008000;">;</span><br />
<br />
<span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>var i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> rows<span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>var j <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> j <span style="color: #008000;">&lt;</span> cols<span style="color: #008000;">;</span> j<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var pos <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>i <span style="color: #008000;">*</span> spacing, <span style="color: #FF0000;">0</span>, j <span style="color: #008000;">*</span> spacing<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var go <span style="color: #008000;">=</span> GameObject<span style="color: #008000;">.</span><span style="color: #0000FF;">CreatePrimitive</span><span style="color: #008000;">&#40;</span>PrimitiveType<span style="color: #008000;">.</span><span style="color: #0000FF;">Cube</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">// Name the cube with a letter and number (&quot;A1&quot;)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; go<span style="color: #008000;">.</span><span style="color: #0000FF;">name</span> <span style="color: #008000;">+=</span> <span style="color: #666666;">&quot; &quot;</span> <span style="color: #008000;">+</span> <span style="color: #6666cc; font-weight: bold;">char</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ConvertFromUtf32</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">65</span> <span style="color: #008000;">+</span> i<span style="color: #008000;">&#41;</span> <span style="color: #008000;">+</span> <span style="color: #008000;">&#40;</span>j <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; go<span style="color: #008000;">.</span><span style="color: #0000FF;">transform</span><span style="color: #008000;">.</span><span style="color: #0000FF;">position</span> <span style="color: #008000;">=</span> pos<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<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: #008080; font-style: italic;">// Batch rename selected rigidbodies that have gravity enabled</span><br />
var bodies <span style="color: #008000;">=</span> Selection<span style="color: #008000;">.</span><span style="color: #0000FF;">GetFiltered</span><span style="color: #008000;">&#40;</span>Rigidbody, SelectionMode<span style="color: #008000;">.</span><span style="color: #0000FF;">Editable</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
<span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>var rb <span style="color: #008000;">:</span> Rigidbody <span style="color: #0600FF; font-weight: bold;">in</span> bodies<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>rb<span style="color: #008000;">.</span><span style="color: #0000FF;">useGravity</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; rb<span style="color: #008000;">.</span><span style="color: #0000FF;">name</span> <span style="color: #008000;">=</span> rb<span style="color: #008000;">.</span><span style="color: #0000FF;">name</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot; Gravity&quot;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>An obvious enhancement to make is the ability to save and reuse code snippets. I assume this is what Unity Technologies has in the labs, and I leave the implementation of such functionality as an exercise for the reader.</p>
<p>The usual warnings about using undocumented APIs apply. Just don&#8217;t do anything too ridiculous.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2010/unity-editor-macros/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cutscene Editor on GitHub</title>
		<link>http://www.matthewminer.com/2010/cutscene-editor-on-github/</link>
		<comments>http://www.matthewminer.com/2010/cutscene-editor-on-github/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 06:55:01 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[cutscene editor]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.matthewminer.com/?p=173</guid>
		<description><![CDATA[That&#8217;s the title of my favourite film! &#8212; Andr&#233; Bazin A quick update regarding the Unity Cutscene Editor. The project&#8217;s version control has moved from Subversion to Git, and is now hosted on GitHub rather than Google Code. You can check out the latest source from http://github.com/mminer/silverscreen. Once again, you&#8217;re encouraged to report issues as [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>That&#8217;s the title of my favourite film! <span class="author">&#8212; Andr&eacute; Bazin</span></p></blockquote>
<p>A quick update regarding the Unity Cutscene Editor.<span id="more-173"></span></p>
<p>The project&#8217;s version control has moved from Subversion to Git, and is now hosted on GitHub rather than Google Code. You can check out the latest source from <a href="http://github.com/mminer/silverscreen">http://github.com/mminer/silverscreen</a>. Once again, you&#8217;re encouraged to <a href="http://github.com/mminer/silverscreen/issues">report issues</a> as you find them. It&#8217;s an open source project, so everyone is welcome to contribute.</p>
<p>With the impending release of Unity 3, support will be dropped for Unity 2. Version 0.1 will always be available to <a href="http://github.com/mminer/silverscreen/downloads">download</a> for those hesitant to upgrade to the latest and greatest. We&#8217;ve got your back.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2010/cutscene-editor-on-github/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Easier Prefab Creation</title>
		<link>http://www.matthewminer.com/2010/easier-prefab-creation/</link>
		<comments>http://www.matthewminer.com/2010/easier-prefab-creation/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 06:52:51 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://matthewminer.com/?p=157</guid>
		<description><![CDATA[This script literally rocks my raincoat. &#8212; Mary Baker Allen At the request of fellow code conjuror Brad Keys, I wrote a simple editor script for Unity that creates a prefab containing the contents of the currently selected game object. The new prefab bears the name of the selected game object and is placed in [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>This script literally rocks my raincoat. <span class="author">&#8212; Mary Baker Allen</span></p></blockquote>
<p>At the request of fellow code conjuror <a href="http://www.bradkeys.com/">Brad Keys</a>, I wrote a simple editor script for Unity that creates a prefab containing the contents of the currently selected game object.<span id="more-157"></span> The new prefab bears the name of the selected game object and is placed in the project&#8217;s root directory. This function is accessed from the <em>GameObject → Create Prefab From Selected</em> menu.</p>
<p>While setting up prefabs is a trivial task, this menu item simplifies the process somewhat. It&#8217;s not perfect &#8212; the selected game object doesn&#8217;t become an instance of the newly created prefab, and an existing prefab with the same name is replaced &#8212; but perhaps you&#8217;ll find it useful if excess clicking isn&#8217;t your game of golf.</p>
<p>Download the script <a href="https://gist.github.com/975358">here</a> or contribute your own improvements at the <a href="http://www.unifycommunity.com/wiki/index.php?title=CreatePrefabFromSelected">Unify Wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2010/easier-prefab-creation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GeekTool: Quick Access to Unity&#8217;s Debug Logs</title>
		<link>http://www.matthewminer.com/2010/geektool-quick-access-to-unitys-debug-logs/</link>
		<comments>http://www.matthewminer.com/2010/geektool-quick-access-to-unitys-debug-logs/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 16:32:26 +0000</pubDate>
		<dc:creator>Matthew Miner</dc:creator>
				<category><![CDATA[Game Design]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://matthewminer.com/?p=142</guid>
		<description><![CDATA[I am neither a geek nor a tool. &#8212; Joe Camel Yesterday I mentioned how terribly inconvenient having to fire up OS X&#8217;s Console.app to view Unity&#8217;s web player debug log is. The in-game console script I supplied eases some of that pain, but there are still times when I find myself wanting to view [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="quote"><p>I am neither a geek nor a tool. <span class="author">&#8212; Joe Camel</span></p></blockquote>
<p>Yesterday I <a href="/2010/consolitis/">mentioned</a> how terribly inconvenient having to fire up OS X&#8217;s Console.app to view Unity&#8217;s web player debug log is. The in-game console script I supplied eases some of that pain, but there are still times when I find myself wanting to view Unity&#8217;s logs and dreaming of a fantasy land where this is easier to do. Propitiously, that fantasy land exists in a free utility named <a href="http://projects.tynsoe.org/en/geektool/">GeekTool</a>, which through careful calculation I&#8217;ve determined kicks severe amounts of ass.<span id="more-142"></span></p>
<p>According to its website, GeekTool allows you to &#8220;display on your desktop different kind of informations.&#8221; Indeed it does. It can display images, the results of shell scripts, or in my case, the contents of text files. This is especially useful when the Unity editor crashes and I need to know why. At a glance I can see any errors that have occurred and all sorts of other funky information that gets sent to the Unity logs. When I&#8217;m not in development mode and don&#8217;t want lines of cryptic text cluttering my desktop, I simply turn off the &#8220;Unity&#8221; group from GeekTool&#8217;s menu bar dropdown.</p>
<p><a href="/?attachment_id=368"><img src="/wordpress/wp-content/uploads/2011/05/geektool_unity_logs-440x275.jpg" alt="GeekTool Unity Logs" title="GeekTool Unity Logs" class="size-medium wp-image-368" /></a></p>
<p>Highly recommended.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewminer.com/2010/geektool-quick-access-to-unitys-debug-logs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

