<?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>Under the Code</title>
	<atom:link href="http://www.underthecode.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.underthecode.com</link>
	<description>Blogging About Programming, Technology, and Other Random Things</description>
	<lastBuildDate>Thu, 03 Sep 2009 04:14:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Codereck Model Generator</title>
		<link>http://www.underthecode.com/2009/09/02/the-codereck-model-generator/</link>
		<comments>http://www.underthecode.com/2009/09/02/the-codereck-model-generator/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 04:13:36 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Codereck PHP]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=259</guid>
		<description><![CDATA[I am up a little later than normal reworking my model generation code in the new version of my Codereck PHP framework.  While all the back-end work flow is still the same, I have reworked the way I use XML in order to make the XML a lot smaller and easier to read.   [...]]]></description>
			<content:encoded><![CDATA[<p>I am up a little later than normal reworking my model generation code in the new version of my Codereck PHP framework.  While all the back-end work flow is still the same, I have reworked the way I use XML in order to make the XML a lot smaller and easier to read.   I will post some code up later (once I figure out how to get a code highlighter with Wordpress working) but instead of using a bunch of tags, I have been able to compress the code by using attributes and in all honesty, I should have been using attributes from the beginning.   Changing this has reduced the number of lines in the XML file generated from an example database (with only 11 tables) from 750 lines to 135 lines (also note that I only needed to write about 15 lines manually and the rest was auto generated by the framework) which is 5X+ smaller in line count (file size is probably closer 2X smaller).  I imagine that the line count will range from 6X to 9X smaller with more tables.  While the file size reduction is not as dramatic as the line count reduction, the XML in none the less a lot easier to read.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/09/02/the-codereck-model-generator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Venting in Emails</title>
		<link>http://www.underthecode.com/2009/08/01/venting-in-emails/</link>
		<comments>http://www.underthecode.com/2009/08/01/venting-in-emails/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 21:02:56 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Random Posts]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=241</guid>
		<description><![CDATA[I am sure everyone has let frustration get the best of them at one point or another and recently that has happened to me. Without getting into too many details about my frustration, it basically boiled down to trying to do something for years without a lot to show for it (except some experience).  That [...]]]></description>
			<content:encoded><![CDATA[<p>I am sure everyone has let frustration get the best of them at one point or another and recently that has happened to me. Without getting into too many details about my frustration, it basically boiled down to trying to do something for years without a lot to show for it (except some experience).  That is not to say the experience earned is not valuable, because it is, but I was not thinking that way at the time of writing the email.<span id="more-241"></span> Well I decided to send an email to the group of people I am in the endeavor with basically saying I was going to just work on the one project I want to work on, the reason I started this endeavor way back when (and boy is the selfish when I read it now).  Now while I do want to work  on the project idea I have, most of this email was really just from my frustration building up over 5 years.  I sent the email and it did relieve a lot of my frustration and I think just the act of sending the email was enough however instead of sending the email to myself first (what I should have done), I actually sent it out to the group of people.  Needless to say, this has now cause some new issues for me and the group of people I am working with.</p>
<p>Moral to this story?  Whenever doing something like this, always send the email to yourself first and then see if you really want to send it to your intended audience.  You might find sending the email to yourself might be enough and you won&#8217;t create new issues for yourself or whoever you send the email too.</p>
<p>It did however allow me to realize that the cause of my frustration was from me focusing on the wrong thing so at a minimum, no matter what happens, something good has come from it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/08/01/venting-in-emails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity Development Blog 4 &#8211; Unity Summer of Code</title>
		<link>http://www.underthecode.com/2009/07/14/unity-development-blog-4-unity-summer-of-code/</link>
		<comments>http://www.underthecode.com/2009/07/14/unity-development-blog-4-unity-summer-of-code/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 01:44:36 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity Developement Blog]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=213</guid>
		<description><![CDATA[Well the guys over at UT decided to follow the path of Google and have their own version of Google&#8217;s Summer of Code called Unity&#8217;s Summer of Code.  I think this is a fantasic ideas and the reward for being accepted and building the project that meets UT level of quality it also pretty good [...]]]></description>
			<content:encoded><![CDATA[<p>Well the guys over at UT decided to follow the path of Google and have their own version of Google&#8217;s Summer of Code called Unity&#8217;s Summer of Code.  I think this is a fantasic ideas and the reward for being accepted and building the project that meets UT level of quality it also pretty good (5500 worth of money and software for 6 weeks worth of coding it pretty descent) not to mention you get to work under the mentorship of a core Unity developer.<span id="more-213"></span> I have decided to submit an application and see what happens.  I think my idea it a pretty damn good one (surprised Unity does not have one at this point) and really hope that I get accepted.  I am going to keep my submission secret for the time being and wait until they reply to it.  I will say one thing, I hope to be able to build my idea at one point whether it is now or in the future so being able to get a little bit of money for it would just be a bonus.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/07/14/unity-development-blog-4-unity-summer-of-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity Development Blog 3 &#8211; User Interface Videos</title>
		<link>http://www.underthecode.com/2009/06/22/unity-development-blog-3-user-interface-videos/</link>
		<comments>http://www.underthecode.com/2009/06/22/unity-development-blog-3-user-interface-videos/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 01:24:16 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity Developement Blog]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=192</guid>
		<description><![CDATA[Well its been a little more than a week and I have created a series of 5 videos to help beginners get into the Unity&#8217;s user interface a little bit easier and quicker, or at least that is the idea.  It is also a test run to see if I am any good at [...]]]></description>
			<content:encoded><![CDATA[<p>Well its been a little more than a week and I have created a series of 5 videos to help beginners get into the Unity&#8217;s user interface a little bit easier and quicker, or at least that is the idea.  It is also a test run to see if I am any good at creating video tutorials.  For me, I think that video tutorials are the best way to learn and while there are a lot of people how do them, very few of them are good. One group of people that makes the best video training in my opinion are the guys at 3dbuzz.  So I am interested in your thought about how these video tutorials are.  Do you like them?  Anything you didn&#8217;t like?  Would you pay for video training like this that was more in-depth?  Any comments and suggestion are welcomed.<span id="more-192"></span></p>
<p>You can visit the full album at vimeo <a href="http://www.vimeo.com/album/103703" target="_blank">http://www.vimeo.com/album/103703</a> or you can view each video below:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="best" /><param name="scale" value="showAll" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><param name="src" value="http://www.vimeo.com/moogaloop.swf?clip_id=5239551&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://www.vimeo.com/moogaloop.swf?clip_id=5239551&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" wmode="transparent" allowfullscreen="true" scale="showAll" quality="best"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="best" /><param name="scale" value="showAll" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><param name="src" value="http://www.vimeo.com/moogaloop.swf?clip_id=5241190&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://www.vimeo.com/moogaloop.swf?clip_id=5241190&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" wmode="transparent" allowfullscreen="true" scale="showAll" quality="best"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="best" /><param name="scale" value="showAll" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><param name="src" value="http://www.vimeo.com/moogaloop.swf?clip_id=5251373&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://www.vimeo.com/moogaloop.swf?clip_id=5251373&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" wmode="transparent" allowfullscreen="true" scale="showAll" quality="best"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="best" /><param name="scale" value="showAll" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><param name="src" value="http://www.vimeo.com/moogaloop.swf?clip_id=5251931&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://www.vimeo.com/moogaloop.swf?clip_id=5251931&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" wmode="transparent" allowfullscreen="true" scale="showAll" quality="best"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="best" /><param name="scale" value="showAll" /><param name="allowfullscreen" value="true" /><param name="wmode" value="transparent" /><param name="src" value="http://www.vimeo.com/moogaloop.swf?clip_id=5282289&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://www.vimeo.com/moogaloop.swf?clip_id=5282289&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00adef" wmode="transparent" allowfullscreen="true" scale="showAll" quality="best"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/06/22/unity-development-blog-3-user-interface-videos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unity Development Blog 2 &#8211; Assets Server</title>
		<link>http://www.underthecode.com/2009/06/12/unity-development-blog-2-assets-server/</link>
		<comments>http://www.underthecode.com/2009/06/12/unity-development-blog-2-assets-server/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 00:38:05 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity Developement Blog]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=173</guid>
		<description><![CDATA[So much for every week, I&#8217;ll shoot for at least once a month which is a little more realistic.
I have been working with the assets server for a little while and it seems to work ok, however I still don&#8217;t see how they can charge $500 for it.  My biggest issues so far is that [...]]]></description>
			<content:encoded><![CDATA[<p>So much for every week, I&#8217;ll shoot for at least once a month which is a little more realistic.</p>
<p>I have been working with the assets server for a little while and it seems to work ok, however I still don&#8217;t see how they can charge $500 for it.  My biggest issues so far is that it does seem to be a little unstable.  At least 3 times (in the past month) I was able to connect to the server but when I tried to update, I would get a timeout error.  I try again a little later and magically it would work after doing nothing to the server.  Other than that issue, the assets server does what it needs even tho it does not have all the features of SVN (while have a much higher price tag).<span id="more-173"></span></p>
<p>I still have 30 days to continue to try the server and while I am going to try to figure out a way to work without this server and wait till they integrate SVN I am probably going to have to buy it.  While it is an optional package to purchase, it is almost impossible to work with Unity with multiple developers without it.</p>
<p>My next post is probably going to touch on the GUI system that Unity provides for you to build your interfaces (Maybe even a video <img src='http://www.underthecode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/06/12/unity-development-blog-2-assets-server/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Unity Development Blog 1 &#8211; Unity 2.5 Review</title>
		<link>http://www.underthecode.com/2009/05/27/unity-development-blog-1-unity-25-review/</link>
		<comments>http://www.underthecode.com/2009/05/27/unity-development-blog-1-unity-25-review/#comments</comments>
		<pubDate>Thu, 28 May 2009 00:29:54 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity Developement Blog]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=136</guid>
		<description><![CDATA[I have been playing around with Unity ever since they released version 2.5 which included development on the Windows operating system; it’s been about 2 months now.  I am done with the evaluating period and decided that a general review of Unity would be a good way to start of this blog series.  I am [...]]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val=" " /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]-->I have been playing around with <a title="Untiy" href="http://www.unity3d.com" target="_blank">Unity</a> ever since they released version 2.5 which included development on the Windows operating system; it’s been about 2 months now.  I am done with the evaluating period and decided that a general review of Unity would be a good way to start of this blog series.  I am starting to get into a specific project that I will be using Unity for and hope to continue this blog series (at least 1 post a week) and basically post back on how Unity is the deeper I get into it.</p>
<p>This general review only covers the things I have been working with and because I am more on the programming side, some things I did not cover like asset importing which deals a lot with 2D/3D graphics.  Lets get to it:<span id="more-136"></span></p>
<p><strong>The Development Editor</strong></p>
<p>I think this is one of Unity&#8217;s biggest selling points.  Their development environment for working with all of your assets (script, scenes, 2d graphics, 3d graphics, audio clips, etc&#8230;) is very clean and is mostly intuitive (no major issues).</p>
<p>Since scenes are very important in Unity development (scenes are basically your levels when dealing with games), this is something that needs to be very easy to work with and it is.  The visual scene editor is pretty easy to navigate.  Adding assets to the scene is as easy as dragging those assets from the project window (which has all your assets) and dropping it into the scene window.  You have a hierarchy view which shows all of the game objects in your scene and then the inspector, which allows you to modify the game object properties.</p>
<p>Again, it is very clear that UT has put a lot of thought into the development environment to make it as easy to use as possible when working in Unity.</p>
<p><strong>Terrain Editor</strong></p>
<p>The terrain editor is overall pretty good but there is one small flaw that has a big impact for me.  Now the terrain editor is pretty good and provides a good set of tools for creating terrain, adding trees, applying textures, raising and lowering terrain, and more however the one flaw that effects all of these tools is that there is no visual brush to see where your edits are going to take place.  This can make terrain editing a little annoying at times.  Most of these tools give you the ability to set the size of the affected area however when you move the mouse over the terrain in the scene editor, you will not know how big that area is until you try to apply the effect.  This can lead to a lot of guess work.</p>
<p>I am happy to say that they are implementing a visual terrain brush for version 2.6.</p>
<p><strong>Graphics</strong></p>
<p>I am not going to say that Unity&#8217;s rendering engine can outperform engines that cost hundreds of thousands of dollars or that is it the best is the world but what I will say is that the rendering engine does not disappoint me.  Unity can run on a wide range of video cards from low to high, and I have seen Unity render millions of polygons per second on the higher end hardware.  The shaders that Unity provides are also very good and of course you can create your own.  I think Unity has a very good mixture of power and accessibility.</p>
<p><strong>Scripting</strong></p>
<p>Unity uses Mono which is a cross-platform implementation of Microsoft&#8217;s .NET platform.  This allows Unity to tap into an already established programming platform that I believe is a good one.</p>
<p>Unity also provides 3 different languages for you to use when scripting: an implementation of JavaScript, C#, and Boo.  The JavaScript implementation is pretty easy to learn and is the most documented language in Unity&#8217;s official documentation.  There is a lot of general C# information but not a ton of Unity specific C# examples (which I wish there were more of since C# is the premier language of the .NET/Mono Platform).  Boo is a similar to python but not a widely used language in the Unity Community.</p>
<p>The bad news is that Unity is currently using Mono 1.2.5 but the good news is that they are planning to upgrade to the latest version however there is no news of which Unity version this upgrade will be include in (I am hoping it is before 3.0 but I will have to wait and see).</p>
<p><strong>Assets Management (Version control)</strong></p>
<p>Currently Unity&#8217;s files do not play well with free/commercial version control systems (like SVN or Perforce).  They do have an Assets Server add-on that works ok (not as feature full as something like Perforce) but it cost 500 extra to get it.  If you are going to be working with 2 or more developers than you really need the asset server.</p>
<p>The are planning to integrate SVN and Perforce in Unity’s work flow before version 3.0 however I hope people who purchased the Assets Server are not screwed over.  I have yet to purchase the assets server, still on the demo of it but chances are I am going to have to buy it.  I don&#8217;t want to spend 500 on the Assets Server and then 8-10 months down the line, everyone can use SVN for free.  Not sure how they are going to handle this but hopefully they don&#8217;t screw people who have purchased the Assets Server.</p>
<p><strong>Deployment</strong></p>
<p>Deployment could not be easier.  To build your project just select the platform you want to build for and hit build.  That is it.  So far I have not had issues building for web or standalone for windows.</p>
<p><strong>Documentation</strong></p>
<p>The documentation is better than some engine I have used in the past (like TGEA) but still leaves room of improvement (but isn’t their always room for improvement).  There is a 500+ page user manual along with a scripting API reference.  They do explain a lot however I feel they could use more detailed examples as some stuff is only lightly covered.</p>
<p>On a side note of documentation, the user forums are generally very helpful.  Most people are friendly even when it comes to what some people call newbie questions.  A lot of useful information can also be found from searching the forums.</p>
<p><strong>Conclusion</strong></p>
<p>Overall this is one of the best game engines I have seen.  There are a few annoy bugs (nothing major) that I hope will be fixed in version 2.5.1 but I can live with them for now.  If you looking for a game engine where you don&#8217;t want to deal with modifying the core engine source code, then Unity is one the best engines (for me, it is the best) out there for under $2000.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/05/27/unity-development-blog-1-unity-25-review/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sports and Obscure Statistical/Fact Tracking</title>
		<link>http://www.underthecode.com/2009/05/01/sports-and-obscure-statisticalfact-tracking/</link>
		<comments>http://www.underthecode.com/2009/05/01/sports-and-obscure-statisticalfact-tracking/#comments</comments>
		<pubDate>Fri, 01 May 2009 20:37:04 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Random Posts]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=98</guid>
		<description><![CDATA[Ok, why do sports keep track and talk about the most random obscure stats.  I was watching ESPN and they were talking about a baseball game that happened the other day.  Then after they reviewed that game they said this was the first time between these two teams where the game was tied up by [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, why do sports keep track and talk about the most random obscure stats.  I was watching ESPN and they were talking about a baseball game that happened the other day.  Then after they reviewed that game they said this was the first time between these two teams where the game was tied up by a home run in 9th inning and then won by a walk off home run (if that is the correct term for the first batter in the inning to home run) in the 11th inning.  I mean come on, who really cares about that?<span id="more-98"></span></p>
<p>Another obscure fact that was told to me was there was a double header between two teams in baseball.  The first game was cut short in the 8th inning but the second game was played fully and the guys mentioned that was the first time that this has happened (can&#8217;t remember if it was the first time in baseball history or between the two teams).  Again, another useful fact that I doubt anyone care about.</p>
<p>I am waiting to hear what the batting average of a player in the month of may, on odd years, in a certain ballpark when the moon was full that night, I am sure they have it stored somewhere.  I guess they need to have something to talk about.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/05/01/sports-and-obscure-statisticalfact-tracking/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Middleware Game Engines and Splash Screens/Watermarks</title>
		<link>http://www.underthecode.com/2009/04/28/middleware-game-engines-and-splash-screenswatermarks/</link>
		<comments>http://www.underthecode.com/2009/04/28/middleware-game-engines-and-splash-screenswatermarks/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 17:11:58 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=101</guid>
		<description><![CDATA[Ever since Unity 2.5 was release, it seems like there has been a lot of users that are annoyed with the splash screens and watermarks (well most people are ok with the splash screen but a lot of people really hate the watermark) that Unity uses if the user is running the indie license.  These [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since Unity 2.5 was release, it seems like there has been a lot of users that are annoyed with the splash screens and watermarks (well most people are ok with the splash screen but a lot of people really hate the watermark) that Unity uses if the user is running the indie license.  These splash screens and watermarks have the option to be disabled if you own the professional license however people think that it is not fair and think of it as punishment for people using indie.  There are two reasons that people say why Unity has the splash screen/watermark and here is my view on both, whether or not either one plays into the reason that Unity has the splash screen/watermarks.<span id="more-101"></span></p>
<h2>Marketing</h2>
<p>The first reason is that of marketing the engine.  Is this a way to generate a lot of leads, well yes and no.  I mean a good way of marketing your game engine is to show the games that have been developed with it.  A lot of the big time engines have major games they have pushed with the engine, like Unreal Tournament made with the Unreal Engine, Crysis or Fry Cry with the CryEngine, Half-Life with the Source Engine, and so forth.  Now the main reason, I believe, that people know what engine these games are made with (besides the game name using the game engine&#8217;s name in the title) is not because of the splash screen but because of the game engine&#8217;s company (and sometimes the game&#8217;s company) is self promoting the game and what engine it uses.  Now I have no real data to back this up (and doubt anyone has any truly reliable data about the amount of sales the splash screens generates for game engines, but would love to see it if you do) but I have the feeling that splash screens alone for game engine make up the lowest amount of sale generation when it comes to marketing.</p>
<p>A steady means of marketing for game engines is word of mouth.  I think one of the best way to market your game engine, which all major engines do, is present your engine at game developer conferences since a large percentage of the people there ar potential future customers.  The next best thing is being able to get the word out on the internet and get the best SEO for your website.  The way I have found every game engine that I have looked at is by my own searching and word of mouth from other people.  When I searched game engine in google, wikipedia had the first 2 results and then I go results for Torque, C4, Blender, Cipher, Game Studio; Unity comes up on the second page along with a bunch of other engines.  When you are behind 6-8 other results in google, that really hurts your chances of being found however most people who look for something as important as a game engine will not just try and buy the first one.</p>
<h2>Incentive to Upgrade</h2>
<p>This is the other popular reason why unity has the splash screen/watermark in the indie version.  Does it work, I think so.  If someone is serious about building video games, spending $1500 vs. the $200 is a small investment for be able to build a game especially when other engines cost hundreds of thousands of dollars.  I also have been told some of those engines require splash screens too, even tho I have others who say it is not required and since I can&#8217;t find the full license agreement for engines like Unreal, I don&#8217;t know for sure.  The professional version of Unity also comes with a lot of other things besides the ability to remove the splash screen and those other reasons (render-to-texture, post processing effect, c++ plug-ins, etc&#8230;) are the real benefits of upgrading, not to mention funding the technology you are basing your game(s) around.</p>
<h2>Back to Unity</h2>
<p>Since Unity lead me to post this blog let me end on this note.  If you think the splash screen/watermark is too much then go ahead and look for another engine that gives you so much, including what I think is one of the best overall IDE for game engine tools, that costs at or under $200 and does not require a splash screen/watermark.  I will say that I think Unity could remove the watermark (which is only on the web player build, not standalone applications) without effecting the marketing effect of the engine as they still have the splash screen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/04/28/middleware-game-engines-and-splash-screenswatermarks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Source Code, Game Engines, Unity</title>
		<link>http://www.underthecode.com/2009/04/20/source-code-game-engines-unity/</link>
		<comments>http://www.underthecode.com/2009/04/20/source-code-game-engines-unity/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 00:49:34 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=64</guid>
		<description><![CDATA[If you are looking for a game engine to build the next million dollar game, depending on the engines you are looking at and comparing, a question on whether source code access is available or not may come up. I have noticed some people have a suborn point of view that if the engine does [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">If you are looking for a game engine to build the next million dollar game, depending on the engines you are looking at and comparing, a question on whether source code access is available or not may come up.<span> </span>I have noticed some people have a suborn point of view that if the engine does not provide source code access, any other engine that does is instantaneously better than it.<span> </span>This is a bad mind set to have when looking at a game engine depending on what you needs and goals are.<span id="more-64"></span></p>
<p><strong><em>Please note that any percentages I use are not meant as exact numbers.</em></strong></p>
<h2>The Misconception:</h2>
<p><em>Without source code access, my creativity is limited.</em></p>
<p class="MsoNormal">I think that the major reason for the misconception is that a lot of the game engines out there are designed by default around the FPS genre.<span> </span><span style="text-decoration: line-through;">So let’s say were are going to build a mod for Unreal, this gives us access to the Unreal Editor and Unreal Scripts.<span> </span>This is basically giving us access to the Unreal engine without the source code.<span> </span>Now could we build a Diablo style RPG, no.<span> </span>The ability of the editor and the scripting language does limit the amount of flexibility and creativity we have with the engine.<span> </span>If we wanted to use the Unreal game engine to build a Diablo like RPG, we would need source code access as we would need to moderately (probably heavily) modify the core source code of the engine.</span> Lets say we had the TGEA and wanted to build a Mythos/Diablo like game.  Commoning from the TGEA&#8217;s own community, I would have to make some to a lot of core modifications depend on how close I want to make the game into the style (the closer I want it the mmore modifcation I would need).</p>
<p class="MsoNormal">This may seem on the surface that the issue is not having access to the source code so what is the misconception?<span> </span>In reality the issue is not having access to the source code but how the game engine itself is designed.<span> </span>Now I am not saying there is anything wrong with the way these game engines have been designed, it is not like I would do any better of a job at it however there are other companies that have a different approach to the engine design and Unity is one such engine.</p>
<h2>Unity:</h2>
<p class="MsoNormal">Unity seems to have a different approach in how games are created with their game engine.<span> </span>Instead of doing some game play functionality in the game engine and some in scripts like with most engines, they have moved virtually all game play functionality from the engine to scripts.<span> </span>This removes the need of having source code access as almost everything can be handled through scripting.</p>
<p class="MsoNormal">So what about speed; I though scripting languages were much slower than C++?<span> </span>While scripting is slower than native C++ coding (by the way, this gap is consistently getting smaller as time goes by), you have to consider the trade off with speed vs. development time, ease of use, and maintainability.<span> </span>Another thing to consider is where the game spends most of the time in the code.<span> </span>A large chunk of the time is going to be spent inside the core engine and not the scripts (as long as the scripting environment is good and Unity’s is) and the core engine is still written in C++.</p>
<p class="MsoNormal">Unity’s scripts are also not all that slow.<span> </span>It uses Mono, the cross-platform version of Microsoft’s .NET, and supports C#, Boo, and a customized version of Javascript.<span> </span>.NET is quite powerful and there are even some game engines that are programmed 100% in C# (no C++) so the power behind it is not just for general applications.<span> </span>The only downside is that Unity is currently on version 1.2.5 of Mono and Mono is up to 2.4 so it is not as fast as it could be but it is planned for Mono to be upgrade soon (hopefully within the next few releases).</p>
<p class="MsoNormal">What if I want feature x, y, and z which is not implemented in the Unity core?<span> </span>Well again, 98% of the things you want to do should be doable inside the scripting environment.<span> </span>Need path finding, there is already a system built from scripting for that (free too).<span> </span>Need IK, there is already a system from scripting for that (also free).<span> </span>Let’s say you need something that has to be done in C++, well the professional version allows you to plug-in C++ code too.<span> </span>Now there might be a few people out there that need a very specific feature that requires core source code access and if that is the case and you don’t have 100’s of thousands of dollars (see next paragraph), then yes, Unity will not work for you but my guess it that Unity will work for 98% of the people out there.</p>
<p class="MsoNormal">Also note that you can license the source code for Unity but it will range from 10’s to 100’s of thousands of dollars, just like Unreal or Gamebryo.</p>
<h2>Summary:</h2>
<p class="MsoNormal">I don’t think having access to the source code is a bad thing, is it just that if an engine is designed well enough, source code is not needed.<span> </span>Now if you are looking to learn the inner workings of how game engines work instead of just creating a game then I would not recommend Unity at all, I would recommend something like C4 so just think about what your real goals are before thinking you need source code access.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/04/20/source-code-game-engines-unity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Game Programming and the Unity Game Engine</title>
		<link>http://www.underthecode.com/2009/04/18/game-programming-and-the-unity-game-engine/</link>
		<comments>http://www.underthecode.com/2009/04/18/game-programming-and-the-unity-game-engine/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 04:09:08 +0000</pubDate>
		<dc:creator>Ryan Zec</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.underthecode.com/?p=32</guid>
		<description><![CDATA[Now I have always been interested in game programming ever since I played Starcraft and Diablo 2, which are still 2 of my favorite games (man Blizzard makes some of the best games that can last forever).  The first language I ever learned was VB, version 6.0 I think.  It was an ok language but [...]]]></description>
			<content:encoded><![CDATA[<p>Now I have always been interested in game programming ever since I played Starcraft and Diablo 2, which are still 2 of my favorite games (man Blizzard makes some of the best games that can last forever).  The first language I ever learned was VB, version 6.0 I think.  It was an ok language but not really designed for the creation of games (at least not the level of Starcraft /Diablo 2).  I moved on and started to play around with C++ since it was and still currently is the industry standard for game programming.  Now I have done a few things with C++, the biggest being a 3D particle system along the side of <a href="http://www.3dbuzz.com" target="_blank">3DBuzz&#8217;s</a> C++ video series. <span id="more-32"></span></p>
<p>Along the years of programming my goals have changed from creating a game engine and and then a game to just creating a game and there are a few reasons for this change of mind.  The first main reason is that I know I can&#8217;t creating anything as good that already exists and that I can afford to license (I know my limitations).  With game engines like <a href="http://www.unity3d.com" target="_blank">Unity</a> (starting at 200), <a href="http://www.garagegames.com" target="_blank">Torque</a> (starting at 295), and <a href="http://www.terathon.com/c4engine/index.php" target="_blank">C4</a> (starting as 350), unless your main goal is to learn the inner workings of a game engine, there is no reason to really build a game engine from scratch yourself (and even if it is, buying C4 is still a good option to learn the inner workings of an engine I think).  Chances are you don&#8217;t have the resources to build an engine like the companies of those engines do (tho C4 is surprisingly great even tho it is developed by 1 developer).  Another thing is that maintaining and improving a game engine is a full time job so if your goal is to create a game, building and maintaining your own engine with suck a lot of time away from that.  Lastly, out of creating a game and creating a game engine, I have a higher desire to create a game.</p>
<h2>My First Engine</h2>
<p>So I started to look into some existing game engines and the first engine I thought was good and bought was Torque and then TGEA.  While the engine is ok, it is basically a 8-10 year old FPS game engine (Tribes is built from this engine) and they basically took the engine and just patched it up.  The documentation for the engine was very poor.  While it has a lot of resources, a lot of them are incomplete or linked to non-existing pages and are hard to find the specific resource you needed.  Another thing I did not like is that unless you want to build a FPS, you will have to do a lot of core engine modification (and it being 8+ years old, not very clean code).</p>
<h2>Unity</h2>
<p>A different engine caught my eye about 7-9 months ago and the engine is called Unity.  The thing that caught my eye about it was the editor it came with.  All the editing tools are wrapped into 1 very slick clean looking IDE (the best of any engine I have seen).  The only issue with the engine was the development tools were only available for the Mac OS (and since I recently bought a new laptop and would never buy a Mac desktop, I could not use the engine).  About a month ago, Unity release version 2.5 and the major thing with this release is that the development tools now work on Windows too.  Over the past few weeks I have been playing around with Unity and so far I am quite happy with it but I will write a post with a more detailed review a little later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.underthecode.com/2009/04/18/game-programming-and-the-unity-game-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
