<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-26790682</id><updated>2012-01-27T14:17:26.666+01:00</updated><category term='dmg'/><category term='game ideas'/><category term='sonar'/><category term='astronomy'/><category term='finances'/><category term='silhouettes'/><category term='s3'/><category term='news'/><category term='vehicle'/><category term='snow leopard'/><category term='web'/><category term='3d'/><category term='inspector'/><category term='angles'/><category term='development'/><category term='hmtl'/><category term='omf'/><category term='making of'/><category term='functions'/><category term='gamegui.net'/><category term='webplayer'/><category term='upgrade'/><category term='GameAssets.net'/><category term='c#'/><category term='tax'/><category term='audio'/><category term='game development'/><category term='normals'/><category term='iphone'/><category term='AI'/><category term='orbit'/><category term='sales'/><category term='apps'/><category term='neworbit'/><category term='shortcuts'/><category term='video'/><category term='singleplayer'/><category term='aws'/><category term='monetizing'/><category term='virtual instruments'/><category term='AnimationEvents'/><category term='work'/><category term='rant'/><category term='story'/><category term='xml'/><category term='mograph'/><category term='camera'/><category term='logic'/><category term='arrays'/><category term='bbl'/><category term='security'/><category term='cloudfront'/><category term='splashscreen'/><category term='synchronization'/><category term='tiger'/><category term='crossdomain'/><category term='philosophy'/><category term='game'/><category term='links'/><category term='beta'/><category term='editor'/><category term='xcode'/><category term='build'/><category term='transparency'/><category term='modo'/><category term='software'/><category term='vectors'/><category term='kontakt'/><category term='selection'/><category term='optimization'/><category term='coding'/><category term='instances'/><category term='stats'/><category term='audition'/><category term='modeling'/><category term='race'/><category term='release'/><category term='prototype'/><category term='age of curling'/><category term='unity'/><category term='planet'/><category term='javascript'/><category term='snapping'/><category term='openfeint'/><category term='workflow'/><category term='multiplayer'/><category term='2011'/><category term='apple'/><category term='shader'/><category term='perl'/><category term='cloning'/><category term='ipad'/><category term='piracy'/><category term='mip-maps'/><category term='os x'/><category term='graphs'/><category term='collision'/><category term='mesh'/><category term='inspiration'/><category term='voiceover'/><category term='GUI'/><category term='compression'/><category term='sound'/><category term='ios'/><category term='python'/><category term='in-app purchases'/><category term='animation'/><category term='IAP'/><category term='behind the scenes'/><category term='hd'/><category term='trailer'/><category term='script'/><category term='lxo'/><category term='physics'/><category term='code'/><category term='unity3d'/><category term='leaks'/><category term='menu'/><category term='Battle Bears'/><category term='DAW'/><category term='debug'/><category term='math'/><category term='fbx'/><category term='universal'/><category term='appstore'/><category term='speedlap red'/><category term='php'/><category term='photoshop'/><category term='motion design'/><category term='2010'/><category term='games'/><category term='music'/><category term='indie'/><category term='komplete'/><category term='star'/><category term='native instruments'/><category term='pvrtc'/><category term='alpha'/><category term='costs'/><category term='vertices'/><category term='cakewalk'/><category term='matrix'/><category term='texture'/><category term='new orbit'/><category term='icon'/><category term='dates'/><category term='blackish'/><category term='data'/><category term='TED'/><category term='webpage'/><category term='distribution'/><title type='text'>col000r</title><subtitle type='html'>a blog. mostly about my findings and experiences in unity. mostly for myself. so don't tell anyone...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default?start-index=101&amp;max-results=100'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>122</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-26790682.post-1174180885626654786</id><published>2012-01-23T14:24:00.001+01:00</published><updated>2012-01-23T14:24:31.279+01:00</updated><title type='text'>This blog is moving</title><content type='html'>I'm writing about my work as an indie game developer, so I might just as well give this blog a facelift and move it to my own website!&lt;br /&gt;&lt;br /&gt;Update your bookmarks: &lt;a href="http://blackish.at/blog"&gt;http://blackish.at/blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks for reading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1174180885626654786?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1174180885626654786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1174180885626654786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1174180885626654786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1174180885626654786'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2012/01/this-blog-is-moving.html' title='This blog is moving'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-282484903172864733</id><published>2011-12-19T12:28:00.000+01:00</published><updated>2011-12-19T12:31:23.194+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='neworbit'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>NEW ORBIT Released!</title><content type='html'>&lt;iframe allowfullscreen="" frameborder="0" height="255" src="http://www.youtube.com/embed/g3FigBwiHH0?fs=1" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;NEW ORBIT is now available for iOS! Get it &lt;a href="http://itunes.apple.com/app/new-orbit/id487238641?ls=1&amp;amp;mt=8"&gt;here on the AppStore!&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-282484903172864733?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/282484903172864733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=282484903172864733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/282484903172864733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/282484903172864733'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/12/new-orbit-trailer.html' title='NEW ORBIT Released!'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/g3FigBwiHH0/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5443055836008317829</id><published>2011-12-08T18:15:00.001+01:00</published><updated>2011-12-08T20:24:39.924+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='build'/><category scheme='http://www.blogger.com/atom/ns#' term='unity3d'/><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='distribution'/><title type='text'>Building for Distribution with XCode 4.2</title><content type='html'>A bunch of links that helped:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.weston-fl.com/blog/?p=2442"&gt;How to build and submit [...] with Xcode 4&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/DistApps/DistApps.html"&gt;Xcode 4 user guide&lt;/a&gt;&amp;nbsp;- but don't set that one value to YES or the archive will never show up in the Organizer as described &lt;a href="http://stackoverflow.com/a/5279030"&gt;here on stackoverflow&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just so I remember the next time I need it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5443055836008317829?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5443055836008317829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5443055836008317829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5443055836008317829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5443055836008317829'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/12/building-for-distribution-with-xcode-42.html' title='Building for Distribution with XCode 4.2'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4543980647160587754</id><published>2011-12-08T13:25:00.001+01:00</published><updated>2012-01-08T10:31:10.300+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='build'/><category scheme='http://www.blogger.com/atom/ns#' term='unity3d'/><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><category scheme='http://www.blogger.com/atom/ns#' term='universal'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><title type='text'>Lion + Xcode 4.2 + Unity 3.4 + iPhone 3G = Disaster?</title><content type='html'>&lt;b&gt;Or: How to make a universal build that also runs on iPhone 3G or 2nd gen iPod Touch with Unity 3.4.2 and Xcode 4.2 on Lion.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;No easy task, but with a little help from all over the web, I figured it out...&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Step 1 - Unity:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Player Settings&lt;/span&gt;, choose &lt;span class="Apple-style-span" style="color: #783f04;"&gt;SDK Version&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #351c75;"&gt; 4.3&lt;/span&gt; (Yes, Xcode 4.2 comes with iOS SDK 5, but don't set this to &lt;span class="Apple-style-span" style="color: #351c75;"&gt;iOS latest&lt;/span&gt; or you'll get a bunch of errors when building...)&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Target iOS Version&lt;/span&gt;: &lt;span class="Apple-style-span" style="color: #351c75;"&gt;3.1.3&lt;/span&gt; (Choosing something lower doesn't work thanks to a bug in Unity)&lt;br /&gt;&lt;i&gt;Target Platform: Universal (more about this later...)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Target Device: iPhone + iPad (just because I want it to run on both) - not sure these matter, as XCode seems to ignore them...&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt;Build&lt;/span&gt; and open it in Xcode&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 2 - XCode:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;• Set the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Base SDK&lt;/span&gt; of the project and the target to &lt;span class="Apple-style-span" style="color: #351c75;"&gt;iOS 5.0&lt;/span&gt;&lt;br /&gt;• On the target, set the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Targeted Device Family&lt;/span&gt; to &lt;span class="Apple-style-span" style="color: #351c75;"&gt;iPhone/iPad&lt;/span&gt;&lt;br /&gt;• Still on the target, set the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;iOS Deployment Target&lt;/span&gt; to &lt;span class="Apple-style-span" style="color: #351c75;"&gt;3.1.2&lt;/span&gt; (Notice: That's below 3.1.3! I use this just because it's the version my 2nd generation iPod Touch is running)&lt;br /&gt;&lt;br /&gt;And now for the part that actually makes it run on old armv6 devices:&lt;br /&gt;•Both in the project and on the target, look for &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Architectures&lt;/span&gt;, click on &lt;span class="Apple-style-span" style="color: #351c75;"&gt;$(ARCHS_STANDARD_32_BIT)&lt;/span&gt; and choose Other... from the popup. Hit the plus and add &lt;span class="Apple-style-span" style="color: #351c75;"&gt;armv6&lt;/span&gt;. (More info on &lt;a href="http://stackoverflow.com/a/7788578"&gt;here on stackoverflow&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;• Select &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Unity-iPhone &amp;gt; Your Device&lt;/span&gt; from the top and &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Build+Run&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://img.skitch.com/20111208-diucey1rnscaqhe4qnyffbj462.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="279" src="https://img.skitch.com/20111208-diucey1rnscaqhe4qnyffbj462.png" style="border: 0px;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4543980647160587754?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4543980647160587754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4543980647160587754' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4543980647160587754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4543980647160587754'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/12/lion-xcode-42-unity-34-iphone-3g.html' title='Lion + Xcode 4.2 + Unity 3.4 + iPhone 3G = Disaster?'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4619283297051878807</id><published>2011-12-06T19:38:00.001+01:00</published><updated>2011-12-07T09:52:33.617+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='unity3d'/><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><category scheme='http://www.blogger.com/atom/ns#' term='splashscreen'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Unity: iPad Splash Screen Rotation</title><content type='html'>&lt;br /&gt;&lt;div style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; border-bottom-style: none; border-bottom-width: medium; border-color: initial; border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; font-family: 'helvetica neue', sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 13px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In&amp;nbsp;&lt;strong&gt;XCode&lt;/strong&gt;&amp;nbsp;open&amp;nbsp;&lt;strong&gt;Info.plist&lt;/strong&gt;&amp;nbsp;and look for&amp;nbsp;&lt;strong&gt;UISupportedInterfaceOrientations&lt;/strong&gt;&lt;br /&gt;Add all 4 of the following items and the splash-screen will match the current device-orientation:&lt;/div&gt;&lt;div style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; border-bottom-style: none; border-bottom-width: medium; border-color: initial; border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; font-family: 'helvetica neue', sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 13px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;UIInterfaceOrientationLandscapeLeft&lt;br /&gt;UIInterfaceOrientationLandscapeRight&lt;br /&gt;UIInterfaceOrientationPortrait&lt;br /&gt;UIInterfaceOrientationPortraitUpsideDown&lt;/div&gt;&lt;div style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; border-bottom-style: none; border-bottom-width: medium; border-color: initial; border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; font-family: 'helvetica neue', sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 13px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;i&gt;Tested with Unity 3.4.2 and iOS SDK 4.2&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4619283297051878807?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4619283297051878807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4619283297051878807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4619283297051878807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4619283297051878807'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/12/unity-ipad-splash-screen-rotation.html' title='Unity: iPad Splash Screen Rotation'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-2303656018792929983</id><published>2011-12-01T18:23:00.000+01:00</published><updated>2011-12-01T18:23:00.533+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='behind the scenes'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='making of'/><category scheme='http://www.blogger.com/atom/ns#' term='prototype'/><title type='text'>Behind the scenes: Age of Curling Prototype</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_HZfKJkWv1NI/SpekTaUkLYI/AAAAAAAAATs/-_enM3Yoljg/s1600-h/AgeOfCurlingPrototype.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5374945333680024962" src="http://3.bp.blogspot.com/_HZfKJkWv1NI/SpekTaUkLYI/AAAAAAAAATs/-_enM3Yoljg/s400/AgeOfCurlingPrototype.jpg" style="cursor: hand; cursor: pointer; display: block; height: 234px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;A blast from the past - This is what the first prototype and the first test-level of Age of Curling looked like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-2303656018792929983?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/2303656018792929983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=2303656018792929983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2303656018792929983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2303656018792929983'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/12/behind-scenes-age-of-curling-prototype.html' title='Behind the scenes: Age of Curling Prototype'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HZfKJkWv1NI/SpekTaUkLYI/AAAAAAAAATs/-_enM3Yoljg/s72-c/AgeOfCurlingPrototype.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4081825657223787715</id><published>2011-11-02T16:05:00.000+01:00</published><updated>2011-11-02T16:05:00.773+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='unity3d'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='selection'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Unity: Editor Selections (EditorScript)</title><content type='html'>How to &lt;b&gt;set selections&lt;/b&gt; in the Editor from an EditorScript:&lt;br /&gt;&lt;pre class="brush: c#; wrap-lines: false;"&gt;Selection.activeObject = myAudioClip; //single Object&lt;br /&gt;Selection.objects = new Object[3] {obj1, obj2, obj3}; //multiple objects&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4081825657223787715?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4081825657223787715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4081825657223787715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4081825657223787715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4081825657223787715'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/11/unity-editor-selections-editorscript.html' title='Unity: Editor Selections (EditorScript)'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-150157818510475569</id><published>2011-10-31T18:00:00.000+01:00</published><updated>2011-10-31T18:00:04.495+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='unity3d'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='functions'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Unity: C# Function Survival Guide</title><content type='html'>Let's say you have a function that &lt;span class="Apple-style-span" style="color: #783f04;"&gt;fades the screen to black, loads a new level and then fades back in&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: c#; wrap-lines: false;"&gt;public IEnumerator LoadLevel(levelName) {&lt;br /&gt;     yield return StartCoroutine(FadeOut());&lt;br /&gt;     Application.LoadLevel(levelName);&lt;br /&gt;     yield return StartCoroutine(FadeIn());&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Said function lives in a script on an object that doesn't get destroyed when a new level is loaded. But if you call that function from another script, &lt;span class="Apple-style-span" style="color: #783f04;"&gt;the screen will fade out, the level will load, but the screen will never fade back in.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WHY?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Well, &lt;span class="Apple-style-span" style="color: #783f04;"&gt;if the caller gets destroyed the function will stop running&lt;/span&gt; and never reach the point where it could fade back in.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;And the easy solution is:&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #783f04;"&gt; Create a second function &lt;/span&gt;(in the same script as LoadLevel of course) that does nothing but start the primary function.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: c#; wrap-lines: false;"&gt;public void InitiateLoadLevel(string levelName) {&lt;br /&gt;     StartCoroutine(LoadLevel(levelName));&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-150157818510475569?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/150157818510475569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=150157818510475569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/150157818510475569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/150157818510475569'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/10/unity-c-function-survival-guide.html' title='Unity: C# Function Survival Guide'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-2730153991062814196</id><published>2011-10-20T13:20:00.000+02:00</published><updated>2011-10-20T13:20:00.922+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='unity3d'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='arrays'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Unity: How to create an array with values in it</title><content type='html'>&lt;span class="Apple-style-span" style="color: #444444; font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px;"&gt;&lt;b&gt;C#:&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px;"&gt; public int[] val = new int[3] {1, 2, 3};&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #444444; font-family: Arial, 'Helvetica Neue', sans-serif; font-size: 15px; line-height: 19px;"&gt;&lt;b&gt;JS:&lt;/b&gt; var val : int[] = [1, 2, 3];&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-2730153991062814196?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/2730153991062814196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=2730153991062814196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2730153991062814196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2730153991062814196'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/10/unity-how-to-create-array-with-values.html' title='Unity: How to create an array with values in it'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5337336019977034090</id><published>2011-10-18T15:52:00.001+02:00</published><updated>2011-10-18T15:55:18.936+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='monetizing'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Greatest App Ever - Rejected</title><content type='html'>In early 2009 the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;App Store hype&lt;/span&gt; was at its max, everyone loved reading stories of one-man-companies getting filthy rich with ridiculous apps. Well, I was getting a bit sick of it to be honest...&lt;br /&gt;&lt;br /&gt;So I set out to end it all by creating&amp;nbsp;&lt;b&gt;the ultimate iPhone app&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;I &lt;span class="Apple-style-span" style="color: #783f04;"&gt;stripped away&lt;/span&gt; piece after piece until I arrived at &lt;span class="Apple-style-span" style="color: #783f04;"&gt;the pure and beautiful core&lt;/span&gt; - the heart of it, if you will - and created &lt;span class="Apple-style-span" style="color: #783f04;"&gt;the ultimate App Store app to rule all other apps&lt;/span&gt;. Simple, yet deep. Fast to grasp, yet always new.&lt;br /&gt;&lt;br /&gt;Unfortunately the Apple App Store review team didn't recognize the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;artistic value&lt;/span&gt;, let alone the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;cultural importance&lt;/span&gt; of this app and rejected it for offering "no value to the user".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;Money Generator&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;An app that does nothing but display&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;how much money it has generated.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://blackish.at/stuff/blogimages/screen_mosaic.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://blackish.at/stuff/blogimages/screen_mosaic.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;PS: There was also going to be a free trial version:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://blackish.at/stuff/blogimages/screen_freeversion.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://blackish.at/stuff/blogimages/screen_freeversion.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5337336019977034090?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5337336019977034090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5337336019977034090' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5337336019977034090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5337336019977034090'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/10/greatest-app-ever-rejected.html' title='Greatest App Ever - Rejected'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1570591743634434808</id><published>2011-10-18T09:20:00.000+02:00</published><updated>2011-10-18T09:20:33.190+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Unity: Calling C# functions from a JS script</title><content type='html'>In short: the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;C#&lt;/span&gt; script has to be &lt;span class="Apple-style-span" style="color: #783f04;"&gt;compiled&lt;/span&gt; before the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;JS&lt;/span&gt; script for this to work. To achieve this you have to move the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;C# &lt;/span&gt;script into one of the following directories: &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Plugins&lt;/span&gt;, &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Standard Assets&lt;/span&gt; or &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Pro Standard Assets&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;It also works the other way around - if you want to call JS from C#, move the JS into one of the folders.&lt;br /&gt;&lt;br /&gt;It &lt;b&gt;does not work both ways at once&lt;/b&gt; however.&lt;br /&gt;&lt;br /&gt;More info about script compilation order can be found in the Unity docs &lt;a href="http://unity3d.com/support/documentation/ScriptReference/index.Script_compilation_28Advanced29.html"&gt;here...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1570591743634434808?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1570591743634434808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1570591743634434808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1570591743634434808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1570591743634434808'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/10/unity-calling-c-functions-from-js.html' title='Unity: Calling C# functions from a JS script'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-6623690285215224538</id><published>2011-10-17T14:48:00.000+02:00</published><updated>2011-10-18T13:18:53.200+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='audition'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='new orbit'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>GameDev Audio Workflow</title><content type='html'>This is my current workflow for recording, mixing and exporting audio for use in my games. (Currently recording dialogue...) I'm very interested in your approach, so leave a comment, tweet to &lt;a href="http://twitter.com/#!/col000r"&gt;@col000r&lt;/a&gt; or send me mail if you want to share your workflow!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Apple Logic Express 8:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is where I &lt;span class="Apple-style-span" style="color: #783f04;"&gt;record&lt;/span&gt; and &lt;span class="Apple-style-span" style="color: #783f04;"&gt;mix&lt;/span&gt; all the Audio. (Or at least&lt;i&gt; try to&lt;/i&gt;, because IMHO Logic is a mess)&lt;br /&gt;&lt;br /&gt;To make my life easier I usually cut all the dialog into separate &lt;span class="Apple-style-span" style="color: #783f04;"&gt;clips&lt;/span&gt; and name them with the first few words of the first sentence in the clip, split everything into &lt;span class="Apple-style-span" style="color: #783f04;"&gt;separate tracks for separate characters&lt;/span&gt; and use &lt;span class="Apple-style-span" style="color: #783f04;"&gt;color-coding&lt;/span&gt; to mark the clips I like best if there are &lt;span class="Apple-style-span" style="color: #783f04;"&gt;multiple takes&lt;/span&gt;. (Rarely do I use comps, I just don't find them very helpful...)&lt;br /&gt;&lt;br /&gt;I currently keep all the dialogue in one big file (so I can tweak the sound of individual characters all at once). It's not possible to batch-bounce files from markers, so I just add a &lt;span class="Apple-style-span" style="color: #783f04;"&gt;region marker&lt;/span&gt; for each mission, select that range and &lt;span class="Apple-style-span" style="color: #783f04;"&gt;bounce&lt;/span&gt; the whole mission to a WAV.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://blackish.at/stuff/blogimages/AW001Logic.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://blackish.at/stuff/blogimages/AW001Logic.png" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Adobe Audition CS 5.5:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;That WAV goes into a &lt;span class="Apple-style-span" style="color: #783f04;"&gt;multitrack session&lt;/span&gt; in Audition where I split all the dialogue into small pieces by creating named marker regions and batch-exporting them to files. (They need to be short because they're going to be loaded at runtime and any file larger than a few KB will cause a short pause on iOS devices...)&lt;br /&gt;&lt;br /&gt;I add markers to a multitrack session and not directly to the WAV because there is no way to copy/paste markers, and if you copy/paste audio from one file to another it clears the markers. Thus this is the only way to preserve markers when you want to re-export the files from a new bounce without having to set up everything anew.&lt;br /&gt;&lt;br /&gt;A short how to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #20124d;"&gt;Move&lt;/span&gt; the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;playhead&lt;/span&gt; to any position&amp;nbsp;&lt;/li&gt;&lt;li&gt;Press &lt;span class="Apple-style-span" style="color: #20124d;"&gt;Shift+Cmd+M&lt;/span&gt; to create a region marker&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #20124d;"&gt;Adjust&lt;/span&gt; the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;in&lt;/span&gt; and &lt;span class="Apple-style-span" style="color: #783f04;"&gt;out&lt;/span&gt; points of the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;region&lt;/span&gt;, &lt;span class="Apple-style-span" style="color: #20124d;"&gt;open&lt;/span&gt; the the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Markers window&lt;/span&gt; and &lt;span class="Apple-style-span" style="color: #20124d;"&gt;rename&lt;/span&gt;&amp;nbsp;the marker (we'll use the name as the filename later on)&lt;/li&gt;&lt;li&gt;When all markers are done, do a &lt;span class="Apple-style-span" style="color: #20124d;"&gt;Multitrack &amp;gt; Mixdown to new File&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Select all the markers in the &lt;span class="Apple-style-span" style="color: #783f04;"&gt;Markers window&lt;/span&gt; and click the &lt;span class="Apple-style-span" style="color: #20124d;"&gt;"Export audio of selected range markers to separate files"&lt;/span&gt; button.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Done!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://blackish.at/stuff/blogimages/AW002Audition.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="227" src="http://blackish.at/stuff/blogimages/AW002Audition.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Unity 3.4:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Back in Unity I'll set the audio-files to&lt;span class="Apple-style-span" style="color: #783f04;"&gt;&amp;nbsp;mono 96 kbs Compressed StreamFromDisk&lt;/span&gt; - that's the best setting I've come up with for the iOS version of the game.&amp;nbsp;I wrote an Editor-script that lets me batch-change the audio format of all selected files to this, to save some time. I haven't looked into the best solution for the desktop version yet, but the base files are all 44.1khz, 16 bit stereo WAVs, so there's room for improvement...&lt;br /&gt;&lt;br /&gt;Then I'll drop everything into a custom editor window (as blogged about before &lt;a href="http://col000r.blogspot.com/2011/03/behind-scenes-new-orbit-story-tools.html"&gt;here&lt;/a&gt;), copy/paste the dialog from the script, call the right pieces at the right time from script and finally in the end it looks like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://blackish.at/stuff/blogimages/AW004Game.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://blackish.at/stuff/blogimages/AW004Game.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;(If you want to see &lt;b&gt;and hear&lt;/b&gt; it: &lt;a href="http://beta.blackish.at/"&gt;http://beta.blackish.at&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-6623690285215224538?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/6623690285215224538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=6623690285215224538' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6623690285215224538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6623690285215224538'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/10/gamedev-audio-workflow.html' title='GameDev Audio Workflow'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-9097358923588132106</id><published>2011-10-11T10:40:00.000+02:00</published><updated>2011-10-11T10:40:30.719+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='in-app purchases'/><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><category scheme='http://www.blogger.com/atom/ns#' term='apps'/><category scheme='http://www.blogger.com/atom/ns#' term='IAP'/><category scheme='http://www.blogger.com/atom/ns#' term='monetizing'/><title type='text'>Monetization Horrors</title><content type='html'>&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;Monetization in progress...&lt;/b&gt; Oh the horrible ideas that come from being able to sell stuff via in-app purchases...&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://img.skitch.com/20111011-gspndqrhwkyyd952xiabj31ue3.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://img.skitch.com/20111011-gspndqrhwkyyd952xiabj31ue3.jpg" /&gt;&lt;/a&gt;&lt;a href="http://itunes.apple.com/us/app/bamboo-paper-wacom-notes-for/id443131313?mt=8"&gt;Wacom Bamboo Paper&lt;/a&gt;: A notebook to draw in. Nice! But if you want more than one notebook you have to pay. This feels so wrong... You're not paying for new functionality, you're paying for more of the same and it feels just plain wrong. It's a bit as if Adobe started charging for colored pixels : "Your blue digital-ink is low, buy 1000 milipixels for $10"... but speaking of Adobe:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://img.skitch.com/20111011-8jy2p2k73q235ifbmqdrkcsbqq.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://img.skitch.com/20111011-8jy2p2k73q235ifbmqdrkcsbqq.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;a href="http://itunes.apple.com/us/app/adobe-ideas/id364617858?mt=8"&gt;Adobe Ideas&lt;/a&gt;. It really is a nice and clean app. $5.99, huh, well, okay... Peanuts compared to the huge pile of money I threw at them for the Creative Suite, right? So what have we got here? Pencil, eraser, colors, buy layers... &lt;b&gt;BUY layers?!&lt;/b&gt; What the hell! What did I pay $5.99 for? Now I need to pay another $0.99 to use layers? Screw this!&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://img.skitch.com/20111011-e81dncq9d4gtn5pihia1dgkm8.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://img.skitch.com/20111011-e81dncq9d4gtn5pihia1dgkm8.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;a href="http://itunes.apple.com/us/app/offmaps-2/id403232367?mt=8"&gt;OffMaps 2&lt;/a&gt;: The first &lt;a href="http://itunes.apple.com/us/app/offmaps/id313854422?mt=8"&gt;OffMaps&lt;/a&gt; cost $4 and would let you download map-data from the OpenStreetMap project to navigate while offline (on vacation, etc.). You would just select any area, choose how many zoom-levels you wanted to download and go: download! Easy to use, worked well. But then the greed set in and they built OffMaps 2 where you pay $0.99 to find out that the app comes with 2 download tokens that let you download data for only 2 cities and then you need to pay for more tokens. &lt;b&gt;Oh baby, now I'm being properly monetized!&lt;/b&gt; I picture suitcase-carrying yuppies triumphantly shaking hands behind a mirrored glass wall while the test-subject eyes the buy button...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I could list many more examples...&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;I'm not saying all this it doesn't work, I'm just saying it doesn't feel right&lt;/b&gt;. If you care more about short-term income and less about if your customers feel cheated or mocked, go ahead. But your customers will remember. Or maybe you're lucky in this 5-min-attention-span market and they won't. I'm just noting that if your expectations are built up and then you hit pay-wall after pay-wall before you can get to the expected experience, it's not a good feeling. And no, no one reads the description text before getting a free or cheap app, they look at the screenshots - *bam*, expectations created - download - disappointment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;So when do in-app-purchases feel right?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;A few criteria:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;The app has to deliver a &lt;b&gt;satisfying experience by itself&lt;/b&gt;. An app that is obviously crippled without purchasable add-ons is no satisfying experience.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Don't shove in-app purchases in my face&lt;/b&gt; from the get-go. Let me breathe and experience the app. If I want more, I'll check if there's more.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Don't charge for something that is obviously just a simple change in code &lt;/b&gt;(like more notebooks). Yes, it could work, it could even sell very well, but I'll feel like you're mocking me and I'm not going to buy it out of spite.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Be clear about what's included&lt;/b&gt; and make it very clear from the get go that there is additional content that can be purchased.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Don't tell me you have Downloadable Content (DLC) planned from the start.&lt;/b&gt; It's like saying that you're planning to charge me over and over and over again to get the full experience. (Assassins Creed 2 had a few chapters in the story arc reserved for DLC - WTF?! I paid EUR 60,- for this and then there's holes in it?) Rather say something like this: "If a lot of people are interested, we'll think about developing more content in the form of expansion packs. Those will be available at low cost and if it sells well, we might even give some away for free!" - This feels nice, doesn't it?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Naming the additional content "expansions"&lt;/b&gt; or "expansion packs" also feels nice, it sounds like good stuff, it sounds like the old days. "DLC - Downloadable Content" on the other hand is sounding more and more like corporate talk. When I hear DLC I think of corporate manager-types with dollar-signs in their eyes who use the word "monetizing" in every second sentence...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This is not a guide on how to become rich with in-app purchases, these are my very subjective feelings when encountering them in the wild.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-9097358923588132106?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/9097358923588132106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=9097358923588132106' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/9097358923588132106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/9097358923588132106'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/10/monetization-horrors.html' title='Monetization Horrors'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3235421997408291750</id><published>2011-10-03T17:34:00.001+02:00</published><updated>2011-10-03T17:34:28.655+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='angles'/><title type='text'>The trouble with Angles</title><content type='html'>The problem is this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Aot-TG-R4nQ/TonS9kSrjyI/AAAAAAAAAaQ/8zh1269CMCE/s1600/angles.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-Aot-TG-R4nQ/TonS9kSrjyI/AAAAAAAAAaQ/8zh1269CMCE/s1600/angles.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Both calculations give you the same result!&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush: c#; wrap-lines: false;"&gt;float a = Vector2.Angle(Vector2.up, new Vector2(5f, 2f)); //a = 68.19859&lt;br /&gt;float b = Vector2.Angle(Vector2.up, new Vector2(-5f, 2f)); //b =&amp;nbsp;68.19859&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So how can you get the angle of a vector between 0 and 360 degrees?&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: c#; wrap-lines: false;"&gt;double radians = Mathf.Atan2((y2-y1), (x2-x1));&lt;br /&gt;double degrees = radians * 180f / Mathf.PI;&lt;br /&gt;if(degrees &amp;lt; 0) degrees += 360; // degrees are now between 0 and 360&lt;br /&gt;&lt;br /&gt;float angle = (float) degrees; //cast to float if you need to&lt;/pre&gt;&lt;br /&gt;Just use the correct orientation for (x1, y1) and you're good...&lt;br /&gt;&lt;br /&gt;&lt;ol highlight="true" start="1" style="background-color: #e7e5dc; font-family: 'Courier New', Courier, monospace; font-size: 14px; line-height: 20px; margin-bottom: 0px; margin-top: 0px; white-space: nowrap;"&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3235421997408291750?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3235421997408291750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3235421997408291750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3235421997408291750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3235421997408291750'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/10/trouble-with-angles.html' title='The trouble with Angles'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Aot-TG-R4nQ/TonS9kSrjyI/AAAAAAAAAaQ/8zh1269CMCE/s72-c/angles.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-2922579127565561074</id><published>2011-08-18T17:16:00.000+02:00</published><updated>2011-08-18T17:16:52.997+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><title type='text'>Life is hard, but so am I</title><content type='html'>5 years ago I started this blog &lt;a href="http://col000r.blogspot.com/search?updated-min=2006-01-01T00%3A00%3A00%2B01%3A00&amp;amp;updated-max=2007-01-01T00%3A00%3A00%2B01%3A00&amp;amp;max-results=2"&gt;with a Dresden Dolls quote&lt;/a&gt;. Believe me, it was way funnier back then...&lt;br /&gt;&lt;br /&gt;The last months weren't easy. I guess brain surgery is never much fun, but being self-employed and the father of a 1-year old kid... well, let's just say that quite a few things were riding on my survival...&lt;br /&gt;&lt;br /&gt;With a little less careful planning and a little less luck this could have ended my "career" as an independent developer quite abruptly.&lt;br /&gt;&lt;br /&gt;But it seems I made it through and so I'm finally back at work on my&amp;nbsp;&lt;a href="http://beta.blackish.at/"&gt;next game&lt;/a&gt;&amp;nbsp;now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-2922579127565561074?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/2922579127565561074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=2922579127565561074' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2922579127565561074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2922579127565561074'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/08/life-is-hard-but-so-am-i.html' title='Life is hard, but so am I'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4906071181042316931</id><published>2011-03-31T21:23:00.000+02:00</published><updated>2011-03-31T21:23:46.807+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='voiceover'/><category scheme='http://www.blogger.com/atom/ns#' term='new orbit'/><category scheme='http://www.blogger.com/atom/ns#' term='story'/><title type='text'>Behind the scenes: New Orbit Story Tools</title><content type='html'>I've put quite a bit of thought into making the tools for the story-part of &lt;a href="http://beta.blackish.at/"&gt;NEW ORBIT&lt;/a&gt; as reusable and practical as possible.&lt;br /&gt;&lt;br /&gt;So here's how &lt;b&gt;Story&lt;/b&gt;, &lt;b&gt;Subtitles&lt;/b&gt;, &lt;b&gt;Voiceovers&lt;/b&gt; and &lt;b&gt;Character Portraits&lt;/b&gt; play together:&lt;br /&gt;&lt;br /&gt;I have a generic class called &lt;span class="Apple-style-span" style="color: #274e13;"&gt;OnScreenTextController&lt;/span&gt; that takes a string, fades it in, displays it for a certain amount of time and fades it out again. In NEW ORBIT I use two classes that are based on it: &lt;span class="Apple-style-span" style="color: #274e13;"&gt;SubtitleController&lt;/span&gt; and &lt;span class="Apple-style-span" style="color: #274e13;"&gt;CenterScreenGUI&lt;/span&gt; - one displays the subtitles and character portraits, the other one shows the current objective in the center of the screen.&lt;br /&gt;&lt;br /&gt;Both are being fed with LocalizationDBItems from the LocalizationDB. (basically just an object that holds an array of LocalizationDBItems) A LocalizationDBItem contains the actual &lt;span class="Apple-style-span" style="color: #351c75;"&gt;text&lt;/span&gt;, the&lt;span class="Apple-style-span" style="color: #351c75;"&gt; location of the voiceover-soundfile&lt;/span&gt;, the I&lt;span class="Apple-style-span" style="color: #351c75;"&gt;D of the character&lt;/span&gt; who's speaking and the &lt;span class="Apple-style-span" style="color: #351c75;"&gt;duration&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The story itself is driven by a &lt;span class="Apple-style-span" style="color: #274e13;"&gt;Mission&lt;/span&gt;-script that knows when to display something and when to wait for certain events to happen. The &lt;span class="Apple-style-span" style="color: #274e13;"&gt;Mission&lt;/span&gt;-script only knows the IDs of the messages and works with the durations it retrieves from the LocalizationDBItems, so I can simply load a different LocalizationDB to switch to a different language and all the timing will adjust automatically.&lt;br /&gt;&lt;br /&gt;I've created an Editor-window where I can manage all the text and audio in the LocalizationDB. If I drag in a new voiceover-file it automatically writes in the path and the duration. But if there's more text in the file than fits into the subtitles-bar I have to manually split it into multiple entries and divide the time.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-2AmjhAvYPvQ/TZTTSbcUmOI/AAAAAAAAAYU/Yn9yLxFITEc/s1600/LocalizationDB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="143" src="http://3.bp.blogspot.com/-2AmjhAvYPvQ/TZTTSbcUmOI/AAAAAAAAAYU/Yn9yLxFITEc/s320/LocalizationDB.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4906071181042316931?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4906071181042316931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4906071181042316931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4906071181042316931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4906071181042316931'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/03/behind-scenes-new-orbit-story-tools.html' title='Behind the scenes: New Orbit Story Tools'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-2AmjhAvYPvQ/TZTTSbcUmOI/AAAAAAAAAYU/Yn9yLxFITEc/s72-c/LocalizationDB.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8710578971341805256</id><published>2011-03-31T18:24:00.001+02:00</published><updated>2011-03-31T21:25:34.912+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='bbl'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='new orbit'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><title type='text'>NEW ORBIT</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;Let me introduce my next game: NEW ORBIT&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://games.blackish.at/neworbit/screens/beta001/neworbit003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://games.blackish.at/neworbit/screens/beta001/neworbit003.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;It's an episodic space action adventure (or whatever) based on realistic gravity simulation.&lt;br /&gt;&lt;br /&gt;Try the beginning of the game right away on &lt;a href="http://beta.blackish.at/"&gt;http://beta.blackish.at&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Together with the beta I have launched an experiment:&amp;nbsp;The &lt;a href="http://next.blackish.at/"&gt;BLACKISH Beta List&lt;/a&gt;. Join to be kept up to date on the development and to receive exclusive behind the scenes material on a semi-regular basis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8710578971341805256?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8710578971341805256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8710578971341805256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8710578971341805256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8710578971341805256'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/03/new-orbit.html' title='NEW ORBIT'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4792724908511281551</id><published>2011-03-26T08:41:00.004+01:00</published><updated>2011-03-26T17:12:38.281+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webplayer'/><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='crossdomain'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Unity Webplayer: crossdomain.xml</title><content type='html'>In preparing for the deployment of the very first beta of the next game as a webplayer, I've run into a few troubles with webplayer security policies, so here's how to do it right so it will work in the Editor and in the webplayer:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In &lt;span class="Apple-style-span"  style="color:#000099;"&gt;Edit&gt;Project Settings&gt;Editor&lt;/span&gt; enter the location where your final webplayer file will be deployed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Create a crossdomain.xml file as described &lt;a href="http://unity3d.com/support/documentation/Manual/Security%20Sandbox.html"&gt;here in the docs&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(Now comes the part where I went wrong) The unity docs only give the following example: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;&amp;lt;allow-access-from domain="*"/&amp;gt;&lt;br /&gt;&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now this allows access from any domain, what if you want to restrict it? My mistake was to include http:// with the domain, here's an example that works:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;cross-domain-policy&amp;gt;&lt;br /&gt;&amp;lt;allow-access-from domain="beta.blackish.at"/&amp;gt;&lt;br /&gt;&amp;lt;allow-access-from domain="*.blackish-games.com"/&amp;gt;&lt;br /&gt;&amp;lt;/cross-domain-policy&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More info available in the &lt;a href="http://learn.adobe.com/wiki/download/attachments/64389123/CrossDomain_PolicyFile_Specification.pdf?version=1"&gt;Adobe CrossDomain Policy File Specifications&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The crossdomain.xml file has to be placed at the root of your server and I haven't found a way to access a subdomain yet. If you know how to do that, please let me know!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4792724908511281551?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4792724908511281551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4792724908511281551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4792724908511281551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4792724908511281551'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2011/03/unity-webplayer-crossdomainxml.html' title='Unity Webplayer: crossdomain.xml'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5597066247699399033</id><published>2010-12-28T10:31:00.004+01:00</published><updated>2011-01-24T14:23:34.480+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GameAssets.net'/><category scheme='http://www.blogger.com/atom/ns#' term='2011'/><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='blackish'/><category scheme='http://www.blogger.com/atom/ns#' term='orbit'/><title type='text'>2010++;</title><content type='html'>&lt;div&gt;2010 has been a &lt;b&gt;pretty damn good horrible&lt;/b&gt; year for me. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://online-curling.com/"&gt;Age of Curling&lt;/a&gt; sold extremely well (at least for a game about curling), I got married, became a father, moved to the countryside and learnt that I'd have to undergo brain surgery again. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The year started out with me working on a prototype for the next &lt;a href="http://www.battlebears.com/"&gt;Battle Bears&lt;/a&gt; game for Skyvu and releasing a PC/MAC port of &lt;a href="http://blackish-games.com/ageofcurling"&gt;Age of Curling&lt;/a&gt;. I knew I didn't want to do all the coding on another BB game all by myself, so I got some very competent &lt;a href="http://luftensteiner.org/games/"&gt;help&lt;/a&gt;, and a couple of weeks later, when I learnt that my brain was acting up again, I left it for him to finish and took a long while off to prepare for the baby and nurture a well-deserved depression. (You know, I kept telling people that I'd rather kill myself than go through that again, but now that I was about to be married - with a child on the way - it was no longer that simple... but well, I guess it never actually is &lt;i&gt;that&lt;/i&gt; simple anyway...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Eventually I managed to convince myself that it could be much worse and at least this time I'll be prepared for what's to come. And so I got back to work and started working on some &lt;b&gt;prototypes&lt;/b&gt;... Most notably (as in: I hope to finish this one someday) a SciFi adventure.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When the baby came I took a few weeks off to support my wife, and afterwards I didn't want to start any big projects because I though I was going to be called in for the operation any day. So I started working on smaller stuff and &lt;b&gt;reusable pieces&lt;/b&gt; and that's how &lt;a href="http://gameassets.net/"&gt;GameAssets.net&lt;/a&gt; happened.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When it became apparent that the OP wasn't going to happen in 2010, I finally decided to start fulltime work on a &lt;b&gt;new game&lt;/b&gt;. And this is where I am now. Working fulltime on a new game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My &lt;b&gt;super-secret plans for 2011&lt;/b&gt;? Embrace open development, finish the new game, survive, recover and maybe even finish another new original game after that.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5597066247699399033?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5597066247699399033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5597066247699399033' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5597066247699399033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5597066247699399033'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/12/2010.html' title='2010++;'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5287964832387413766</id><published>2010-12-11T11:15:00.004+01:00</published><updated>2010-12-11T15:04:43.961+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='shader'/><category scheme='http://www.blogger.com/atom/ns#' term='orbit'/><title type='text'>Lightmapped Planets</title><content type='html'>&lt;embed src="http://blackish.at/stuff/blogimages/planets.mov" width="344" height="186" autoplay="true" controller="true" loop="false" pluginspage="http://www.apple.com/quicktime/&amp;quot;"&gt;&lt;/embed&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And this is why I needed that shader. Lightmapped rotating planets where the lightmap rotates in the opposite direction of the mesh (I'm animating the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;TextureOffset&lt;/span&gt; of the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Material&lt;/span&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5287964832387413766?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5287964832387413766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5287964832387413766' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5287964832387413766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5287964832387413766'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/12/lightmapped-planets.html' title='Lightmapped Planets'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-591126635758686446</id><published>2010-12-11T11:07:00.003+01:00</published><updated>2010-12-11T11:14:41.921+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='shader'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Unity: Minimal Lightmapped Shader</title><content type='html'>With some nice help from the #unity3d IRC channel, I managed to build a Minimal Lightmapped shader. All it does is multiply a lightmap with a texture. And nothing else. No lighting, nothing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;pre name="code" class="Cpp"&gt;&lt;br /&gt;Shader "Minimal Lightmapped" {&lt;br /&gt; Properties {&lt;br /&gt;  _MainTex ("Base (RGB)", 2D) = "white" {}&lt;br /&gt;  _LightMap ("Lightmap (RGB)", 2D) = "white" {}&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; SubShader {&lt;br /&gt;     Tags { "RenderType"="Opaque" }&lt;br /&gt;     Pass {&lt;br /&gt;          SetTexture[_MainTex]&lt;br /&gt;         SetTexture[_LightMap] {&lt;br /&gt;             Combine previous * texture&lt;br /&gt;         }     &lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Any suggestions for a good book about shader programming? I'd like to get into it some more eventually...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-591126635758686446?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/591126635758686446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=591126635758686446' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/591126635758686446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/591126635758686446'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/12/unity-minimal-lightmapped-shader.html' title='Unity: Minimal Lightmapped Shader'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3285167985616774023</id><published>2010-10-27T16:59:00.004+02:00</published><updated>2010-10-27T18:11:50.101+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>Unity: Easy mistakes to make: NPOT GUI textures scaled to POT</title><content type='html'>&lt;div style="text-align: left;"&gt;If you import non-square images into &lt;span class="Apple-style-span"  style="color:#000099;"&gt;Unity 3&lt;/span&gt; it automatically sets the texture import setting &lt;b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;N&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;on &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;P&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;ower &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;o&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;f &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;T&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;wo&lt;/span&gt; to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;ToNearest&lt;/span&gt;. This will cause your image to be scaled to fit the nearest &lt;b&gt;p&lt;/b&gt;ower-&lt;b&gt;o&lt;/b&gt;f-&lt;b&gt;t&lt;/b&gt;wo dimensions. Now it can be compressed - yay! Or wait... If you want to use for a button or box or something in a GUISkin, then this will break your GUISkin since your carefully measured values will no longer be valid and it might not be immediately obvious why it looks wrong...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 280px; height: 90px;" src="http://blackish.at/stuff/blogimages/guiNPOT.jpg" border="0" alt="" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, you could deliberately set them to a certain POT size and calculate values that would work with that size, but I'll always prefer uncompressed GUI images over compressed once. (or at least until memory runs out...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note to self: Add to &lt;i&gt;list of things to do once I retire&lt;/i&gt;: Write a script that automatically calculates and adjusts the border values of all elements where a NPOT image has been scaled to a POT.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3285167985616774023?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3285167985616774023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3285167985616774023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3285167985616774023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3285167985616774023'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/10/unity-easy-mistakes-to-make3-npot-gui.html' title='Unity: Easy mistakes to make: NPOT GUI textures scaled to POT'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4837602530698537660</id><published>2010-10-02T10:28:00.004+02:00</published><updated>2010-10-02T10:37:48.635+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Unity iPhone 1.7 with SDK 4.1</title><content type='html'>&lt;b&gt;Problem:&lt;/b&gt; I have SDK 4.1 installed and try to make a build with Unity iPhone 1.7 (iPhone SDK version set to Unknown). The &lt;b&gt;build doesn't work on iPhone 3G&lt;/b&gt;, because it says it was only made for armv7 architecture and the device is too old to run it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Solution: &lt;/b&gt;&lt;/div&gt;&lt;div&gt;• Select &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Targets&lt;/span&gt; and &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Unity iPhone&lt;/span&gt; in the left pane of XCode and click the&lt;span class="Apple-style-span"  style="color:#009900;"&gt; info button&lt;/span&gt; (or right-click and choose Get Info)&lt;/div&gt;&lt;div&gt;• &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Build Tab&lt;/span&gt; - Set &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Architectures&lt;/span&gt; from &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Optimized (armv7)&lt;/span&gt; to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Standard (armv6 armv7) &lt;/span&gt;- &lt;i&gt;Hint: you might want to also set the iOS Deployment Target as low as possible while you're in there...&lt;/i&gt;&lt;/div&gt;&lt;div&gt;• In the menu choose &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Project &gt; Set Active Architecture &gt; armv6&lt;/span&gt;&lt;/div&gt;&lt;div&gt;• Build and run on iPhone 3G!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4837602530698537660?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4837602530698537660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4837602530698537660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4837602530698537660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4837602530698537660'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/10/unity-iphone-17-with-sdk-41.html' title='Unity iPhone 1.7 with SDK 4.1'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-432519572932778830</id><published>2010-10-02T09:39:00.003+02:00</published><updated>2010-10-02T10:28:15.728+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><title type='text'>The downsides of using middleware</title><content type='html'>Unity 3.0 is out! yay! and nooo! Because this will be the death of Unity iPhone 1.7. "No problem, just upgrade your project to 3.0" you say? "Well, it's not that simple" I answer.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A lot of stuff changed, &lt;a href="http://unity3d.com/unity/whats-new/unity-3"&gt;a ton of great stuff&lt;/a&gt; was added in 3.0. But PhysX was upgraded to a newer version and behaves very different now. On &lt;a href="http://online-curling.com"&gt;Age of Curling&lt;/a&gt; I spent a lot of time tweaking the physics, so upgrading the project to 3.0 breaks it completely and this won't be easy to fix. &lt;/div&gt;&lt;div&gt;So two options for me: Do I spend a lot of time trying to upgrade the project, just so I can continue to release updates? or do I continue to work in 1.7 until the day comes where Apple has added enough changes to the SDK and 1.7 will finally no longer cut it?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I chose the second option for now and just hit the first hurdle. I'll probably make a new post about it and delete this angry mumbling of a post... Or maybe I'll post it just so the last 15 mins don't feel completely wasted.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-432519572932778830?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/432519572932778830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=432519572932778830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/432519572932778830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/432519572932778830'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/10/downsides-of-using-middleware.html' title='The downsides of using middleware'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8369624073587431903</id><published>2010-09-27T13:58:00.005+02:00</published><updated>2010-09-27T14:15:37.434+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='GameAssets.net'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>GameAssets.net</title><content type='html'>&lt;div style="text-align: left;"&gt;An old new project of mine finally came to life:&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://gameassets.net/"&gt;&lt;img style="display:block; margin:0px auto 10px; border:0px; text-align:center;cursor:pointer; cursor:hand;width: 263px; height: 141px;" src="http://gameassets.net/images/logos/GameAssetsNet.png" border="0" alt="GameAssets.net Logo" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Top quality assets for indie game developers - so far only interface-related things though.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Visit &lt;a href="http://gameassets.net/"&gt;GameAssets.net&lt;/a&gt; and/or follow us &lt;a href="http://twitter.com/GameAssets"&gt;on twitter&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8369624073587431903?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8369624073587431903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8369624073587431903' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8369624073587431903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8369624073587431903'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/09/gameassetsnet.html' title='GameAssets.net'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3394716950019102339</id><published>2010-08-10T18:45:00.002+02:00</published><updated>2010-08-10T18:49:53.498+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Unity: Have scripts run while the game doesn't</title><content type='html'>There's a way to &lt;a href="http://unity3d.com/support/documentation/ScriptReference/ExecuteInEditMode.html"&gt;force scripts to run even if the game is not running&lt;/a&gt; in the Editor:&lt;br /&gt;&lt;br /&gt;In Javascript, simply put this on the top of the script:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;@script ExecuteInEditMode()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And for C#:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;[ExecuteInEditMode()] &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3394716950019102339?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3394716950019102339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3394716950019102339' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3394716950019102339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3394716950019102339'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/08/unity-have-scripts-run-while-game.html' title='Unity: Have scripts run while the game doesn&apos;t'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1162187134241294041</id><published>2010-03-18T12:28:00.000+01:00</published><updated>2010-03-18T15:29:01.363+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='dates'/><title type='text'>Unity: Dates</title><content type='html'>An example of how to deal with dates (more info &lt;a href="http://msdn.microsoft.com/en-us/library/system.datetime.aspx"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;var day1 = new System.DateTime(2010, 3, 12); // Year, Month, Day&lt;br /&gt;var day2 = System.DateTime.Today;&lt;br /&gt;var timeframe = System.TimeSpan(8,0,0,0); //Days, Hours, Minutes, Seconds&lt;br /&gt;&lt;br /&gt;print(day1); //output: 03/12/2010 00:00:00&lt;br /&gt;print(day2); //output: 03/17/2010 00:00:00&lt;br /&gt;&lt;br /&gt;print(day2 - day1 + " &amp;lt; " + timeframe + " ?"); //output: 5.00:00:00 &amp;lt; 8.00:00:00 ?&lt;br /&gt;&lt;br /&gt;if(day2 - day1 &amp;lt; timeframe) {&lt;br /&gt;  print("Within time period");&lt;br /&gt;} else {&lt;br /&gt; print("Time period exceeded");&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1162187134241294041?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1162187134241294041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1162187134241294041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1162187134241294041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1162187134241294041'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/03/unity-dates.html' title='Unity: Dates'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7318630249465132283</id><published>2010-02-19T17:13:00.005+01:00</published><updated>2010-02-19T17:29:20.563+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><title type='text'>Maximum Texture Size</title><content type='html'>All textures bigger than 1024x1024 show up black on old graphic-cards. The game runs normally, but it seems to ignore those textures.  It would be easy to fix - I could just make the textures smaller - but that's not a perfect solution...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I searched for some way of getting the maximum texture size that the system is capapble of displaying, but I found nothing. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The best solution I have so far is to have the lower res texture on by default and only &lt;span class="Apple-style-span"  style="color:#009900;"&gt;if(QualitySettings.currentLevel == QualityLevel.Fantastic)&lt;/span&gt; I load the bigger one from the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Resources&lt;/span&gt; into the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;material&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Got a better solution? Please let me know! :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7318630249465132283?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7318630249465132283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7318630249465132283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7318630249465132283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7318630249465132283'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/02/maximum-texture-size.html' title='Maximum Texture Size'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4043382191416099910</id><published>2010-02-16T05:22:00.008+01:00</published><updated>2010-02-16T09:58:53.032+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dmg'/><category scheme='http://www.blogger.com/atom/ns#' term='distribution'/><title type='text'>How to create nice DMG Disk Images for Distribution</title><content type='html'>&lt;div&gt;Here's my findings on how to create those nice-looking DMGs that people distribute their software with...&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HZfKJkWv1NI/S3ogNAQPZTI/AAAAAAAAAWk/CGc33K4Ye4M/s1600-h/Screen+shot+2010-02-16+at+5.30.29+AM.png" style="text-decoration: none;"&gt;&lt;img style="border:none; display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 220px; height: 320px;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/S3ogNAQPZTI/AAAAAAAAAWk/CGc33K4Ye4M/s320/Screen+shot+2010-02-16+at+5.30.29+AM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5438694907781801266" /&gt;&lt;/a&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Create a new &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Disk Image&lt;/span&gt; with &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Disk Utility &lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;(Give it a good &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;i&gt;name&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;, Make the &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;i&gt;size&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt; large enough - we'll shrink it later, &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;i&gt;Format: Mac OS X Journaled&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt; should be fine, &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;i&gt;no encryption&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;, &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;i&gt;single partition&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;, &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;i&gt;read/write disk image&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;i&gt;) &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Make a folder on the new volume and copy the background image into it&lt;/li&gt;&lt;li&gt;set up the background image + icons, etc. (&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Cmd + J&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;hide the folder by doing this in the &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;terminal&lt;/span&gt;: &lt;span class="Apple-style-span"  style="color:#009900;"&gt;/Developer/Tools/SetFile -a V /Volumes/your_volume/folder_to_hide&lt;/span&gt; (big V hides it, small v makes it visible again)&lt;/li&gt;&lt;li&gt;If you want a shortcut to the Applications folder in there, simply drag it in there with alt+cmd pressed (this creates an alias)&lt;/li&gt;&lt;li&gt;Make sure to empty the trash if you deleted or overwrote something on the new volume (you wouldn't wanna ship items in the trash with your DMG...)&lt;/li&gt;&lt;li&gt;drag the dmg into the bottom left sidebar in &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Disk Utility&lt;/span&gt;, right-click and choose "&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Convert&lt;/span&gt;". Image Format: compressed, Encryption: none&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Your disk image is now as small as it can be and set to read-only!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Bonus:&lt;/i&gt; You might want to make your dmg &lt;span class="Apple-style-span"  style="color:#009900;"&gt;internet-enabled&lt;/span&gt; - this only means that if it's downloaded from the web it will be unpacked into a folder automatically... (use &lt;a href="http://developer.apple.com/Mac/library/documentation/Darwin/Reference/ManPages/man1/hdiutil.1.html"&gt;hdiutil&lt;/a&gt; for this)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Want to see the result in action?&lt;/b&gt; Download the free trial of our &lt;a href="http://blackish-games.com/ageofcurling"&gt;curling game&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Resources: &lt;a href="http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools"&gt;stackoverflow&lt;/a&gt;, &lt;a href="http://www.ploem.be/blog/?page_id=26"&gt;bloem.be&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4043382191416099910?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4043382191416099910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4043382191416099910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4043382191416099910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4043382191416099910'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/02/how-to-create-nice-dmg-disk-images-for.html' title='How to create nice DMG Disk Images for Distribution'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HZfKJkWv1NI/S3ogNAQPZTI/AAAAAAAAAWk/CGc33K4Ye4M/s72-c/Screen+shot+2010-02-16+at+5.30.29+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5742973072711822011</id><published>2010-01-18T14:32:00.004+01:00</published><updated>2010-01-18T14:51:15.559+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><title type='text'>Unity: Windowed, Fixed-size OS X Apps</title><content type='html'>I want to build a desktop version of an iPhone game... It doesn't look very well in fullscreen mode because the GUI simply wasn't built with fullscreen in mind. So...&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0); "&gt;Edit &gt; Project Settings &gt; Player&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Set &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Default Screen Width&lt;/span&gt; and &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Height&lt;/span&gt; to &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;320&lt;/span&gt; and &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;480&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Set &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Display Resolution Dialog&lt;/span&gt; to &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Disabled&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 255); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;Set &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Default is Full Screen&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt; to &lt;/span&gt;Off&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;If I build the application like this it will pop up in windowed mode and in the right size. BUT I can still go to the menu and do &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Window &gt; Full Screen&lt;/span&gt; (or press Cmd+F) and break it! Damn... And to make it worse, if you swatch back out of fullscreen mode it doesn't go back to the default resolution I set in unity, instead it maximizes the window to the entire screen...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luckily ToreTank pointed me to &lt;a href="http://forum.unity3d.com/viewtopic.php?p=105624&amp;amp;sid=4ec5efc6882a5dca427a7f32d9a8e3a1"&gt;this thread on the unity-forum&lt;/a&gt; that holds the solution:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Build the App&lt;/li&gt;&lt;li&gt;Right-click on the App in the Finder and choose &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Show Package Contents&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Navigate to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Contents &gt; Resources&lt;/span&gt; and open &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;MainMenu.nib&lt;/span&gt; in &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Interface Builder&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 153, 0); "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;Select &lt;/span&gt;Window &gt; Full Screen&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt; from the small floating representation of the menu und &lt;/span&gt;hit Delete &lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;(If it's not open already, double-click MainMenu in the Interface Builder Document Window)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;And while you're there you might also want to add your copyright to the About Box...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5742973072711822011?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5742973072711822011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5742973072711822011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5742973072711822011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5742973072711822011'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2010/01/unity-windowed-fixed-size-os-x-apps.html' title='Unity: Windowed, Fixed-size OS X Apps'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-677912089766371796</id><published>2009-12-10T17:46:00.004+01:00</published><updated>2010-08-05T16:51:19.370+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='functions'/><title type='text'>Unity: Making the Switch from JS to C# (Part 2)</title><content type='html'>&lt;b&gt;3.a) Functions&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Basic functions are simple enough in Javascript, but might seem weird in C# at first. You just need remember this: &lt;span class="Apple-style-span"  style="color:#009900;"&gt;[scope] [return type] [FunctionName] (varType varName)&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;JS&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;function WriteSomething (str : String) {&lt;br /&gt;  print(str);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;C#&lt;/span&gt;&lt;div&gt;&lt;pre class="brush: csharp; wrap-lines: false;"&gt;public void WriteSomething (string str) { //"public" means it can be accessed from everywhere (scope), "void" is the return type (void means it doesn't return a value)&lt;br /&gt;  Debug.Log(str);&lt;br /&gt;}&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;3.b) Return&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In Javascript you just do it, in C# you need to think ahead and put the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;return type&lt;/span&gt; in the declaration of the function... &lt;/div&gt;&lt;br /&gt;&lt;b&gt;JS&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;function ReturnSomething () {&lt;br /&gt;  return "Something";&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;C#&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush: csharp; wrap-lines: false;"&gt;public string ReturnSomething () { // In C# you have to define the type of the value that will be returned - in this case it will return a "string"&lt;br /&gt;  return "Something";&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.c) Yielding&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In Javascript yielding is easy... Just use &lt;span class="Apple-style-span"  style="color:#009900;"&gt;yield&lt;/span&gt;. In C# you have to set the return type to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;IEnumerator&lt;/span&gt; if you want to yield inside a function. (This should also make you understand why you can't &lt;span class="Apple-style-span"  style="color:#009900;"&gt;yield&lt;/span&gt; and &lt;span class="Apple-style-span"  style="color:#009900;"&gt;return&lt;/span&gt; inside one and the same function...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;JS&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;function Start () {&lt;br /&gt;  yield new WaitForSeconds(2.0);&lt;br /&gt;  yield DoIt();&lt;br /&gt;  print("Done!");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function DoIt() {&lt;br /&gt;  print("Doing it...");&lt;br /&gt;  yield new WaitForSeconds(0.5);&lt;br /&gt;  print("Almost done doing it...");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Output:&lt;br /&gt;//Doing it...&lt;br /&gt;//Almost done doing it...&lt;br /&gt;//Done!&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;C#&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush: csharp; wrap-lines: false;"&gt;IEnumerator Start() { //if you want to yield inside start you have to change "void" to "IEnumerator"&lt;br /&gt;  yield return new WaitForSeconds(2f); //notice the f after the 2! - float&lt;br /&gt;  yield return StartCoroutine(DoIt()); //Note: without the "yield return" it would simply start the coroutine and continue, thus printing the "Done!" before the "Almost done..."&lt;br /&gt;  Debug.Log("Done!");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public IEnumerator DoIt() { // "public" isn't really needed in this example, but you need to use it if you want to call this function from outside this script!&lt;br /&gt;  Debug.Log("Doing it...");&lt;br /&gt;  yield return new WaitForSeconds(0.5f);&lt;br /&gt;  Debug.Log("Almost done doing it...");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Output:&lt;br /&gt;//Doing it...&lt;br /&gt;//Almost done doing it...&lt;br /&gt;//Done!&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-677912089766371796?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/677912089766371796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=677912089766371796' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/677912089766371796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/677912089766371796'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/12/unity-making-switch-from-javascript-to_10.html' title='Unity: Making the Switch from JS to C# (Part 2)'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-6280987300382559174</id><published>2009-12-10T12:21:00.003+01:00</published><updated>2009-12-11T14:34:29.429+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Unity: Making the Switch from Javascript to C#</title><content type='html'>&lt;div&gt;First of all: It was a lot easier than I expected. And if you're planning to switch as well, I hope I can make it even easier for you with this series of posts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;First I bought &lt;a href="https://www.amazon.com/dp/0596527578?tag=col000r-20&amp;amp;camp=213381&amp;amp;creative=390973&amp;amp;linkCode=as4&amp;amp;creativeASIN=0596527578&amp;amp;adid=1R24J8NC65GRHJRW7HQ2&amp;amp;"&gt;C# in a Nutshell&lt;/a&gt;, a very straight-forward book that teaches you almost everything you need to know in as few sentences as possible. Cheap and good - you really don't need much else. It is, however, not Unity-specific and that is where I come in!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1) Variables and Types&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;JS&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;var size : float = 0.5;&lt;br /&gt;var keyword : String = "Skylight";&lt;br /&gt;var isOn : boolean = true;&lt;br /&gt;&lt;br /&gt;private var hiddenVar = 0; //in JS variables are shown in the inspector by default and you have to mark them as private to hide them&lt;br /&gt;var visibleVar = 1;&lt;/pre&gt;&lt;b&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;C#&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush: csharp; wrap-lines: false;"&gt;float size = 0.5f; //you have to add an f to make it a float-value! (without the f it would be a double and wouldn't fit into a float variable)&lt;br /&gt;string keyword = "Skylight"; //notice the lowercase s!&lt;br /&gt;bool isOn = true; //notice: bool instead of boolean in JS!&lt;br /&gt;&lt;br /&gt;int hiddenVar = 0; //in C# variables are private by default...&lt;br /&gt;public int visibleVar = 1; //...and you have to mark them as "public" if you want to see them in the inspector or access them from another script&lt;br /&gt;&lt;br /&gt;//Add the f even if you're not using a variable - if a function is expecting a float value, it won't take anything but a float!&lt;br /&gt;GiveMeAFloat(0.25f);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2) Type Conversions (Casting)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You want to convert one type to another? Here's how:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;JS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;var f : float = 0.08; // create a float&lt;br /&gt;var i : int = f; //assign it to an int&lt;br /&gt;print(i); // Done! - Result: 0&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;C#&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: csharp; wrap-lines: false;"&gt;float f = 0.08f; // create a float&lt;br /&gt;int i = (int) f; // in c# you have to use explicit casts (the target type set in braces) if any information is in danger of getting lost during the cast&lt;br /&gt;Debug.Log(i); //Result: 0&lt;/pre&gt;&lt;br /&gt;The other way around works without explicit cast though (as no information is in danger of getting lost)&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: csharp; wrap-lines: false;"&gt;int i = 5;&lt;br /&gt;float f = i;&lt;br /&gt;Debug.Log(f); //Result: 5&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-6280987300382559174?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/6280987300382559174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=6280987300382559174' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6280987300382559174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6280987300382559174'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/12/unity-making-switch-from-javascript-to.html' title='Unity: Making the Switch from Javascript to C#'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-6723699811525551762</id><published>2009-11-25T16:40:00.002+01:00</published><updated>2009-11-25T16:47:02.008+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='AnimationEvents'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Unity: How to relay messages sent by AnimationEvents</title><content type='html'>Here's a reusable script for &lt;span class="Apple-style-span"  style="color:#009900;"&gt;preloading AnimationClips with &lt;a href="http://col000r.blogspot.com/2009/10/unity-animation-events.html"&gt;AnimationEvents&lt;/a&gt;&lt;/span&gt;: (in Unity 2.6 you can do this directly in the new Animation Editor, but in Unity iPhone this is a nice way to do it)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;//PreloadAnimClipWithEvent.js&lt;br /&gt;&lt;br /&gt;var targetClipName : String = "idle"; //Where should the Event be added? (the name of the AnimationClip)&lt;br /&gt;var throwTime : float = 1.3; //When should the function be called?&lt;br /&gt;var throwFunctionName : String = "MyFunction"; //What's the name of the function?&lt;br /&gt;&lt;br /&gt;function Start () {&lt;br /&gt;&lt;br /&gt;var throwEvent : AnimationEvent = new AnimationEvent();&lt;br /&gt;throwEvent.time = throwTime;&lt;br /&gt;throwEvent.functionName = throwFunctionName;&lt;br /&gt;&lt;br /&gt;animation[targetClipName].clip.AddEvent(throwEvent);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And since my scripts are never in the right place to catch messages sent by AnimationEvents, here's &lt;span class="Apple-style-span"  style="color:#009900;"&gt;a script to relay a message&lt;/span&gt;. If this script catches a message called &lt;i&gt;RelayMessage&lt;/i&gt; it sends &lt;i&gt;message&lt;/i&gt; to &lt;i&gt;target&lt;/i&gt;. So just set the AnimationEvent to send a message named "RelayMessage" and then enter real target and real functionName here.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;//RelayMessage.js&lt;br /&gt;&lt;br /&gt;var target : GameObject;&lt;br /&gt;var message : String = "FunctionName";&lt;br /&gt;&lt;br /&gt;function RelayMessage () {&lt;br /&gt;&lt;br /&gt;target.SendMessage(message);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;To sum it up:&lt;/b&gt; With the first scripts you can add an &lt;a href="http://col000r.blogspot.com/2009/10/unity-animation-events.html"&gt;AnimationEvent&lt;/a&gt; to an AnimationClip and with the second script you can easily relay that message from the gameObject that holds the animation to some other gameObject that is the intended recipient.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-6723699811525551762?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/6723699811525551762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=6723699811525551762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6723699811525551762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6723699811525551762'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/11/unity-how-to-relay-messages-sent-by.html' title='Unity: How to relay messages sent by AnimationEvents'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8215079299311428505</id><published>2009-11-24T17:15:00.005+01:00</published><updated>2009-11-24T17:59:22.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='mip-maps'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='pvrtc'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>Unity: Non Power of 2 Textures</title><content type='html'>Ever tried changing the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;texture import settings&lt;/span&gt; of 5+ images in Unity iPhone? - Yes, it's painful. Luckily someone wrote an &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Editor Script&lt;/span&gt; that can automate the task and put it up on the nice &lt;a href="http://www.unifycommunity.com/wiki/index.php?title=IPhoneTextureImportSettings"&gt;Unify Wiki&lt;/a&gt;. (There's a version for regular Unity available as well &lt;a href="http://www.unifycommunity.com/wiki/index.php?title=TextureImportSettings"&gt;here&lt;/a&gt;)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I just added a new menu to the Unity iPhone version of this script that lets you automate the changing of the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Non Power of 2 setting&lt;/span&gt; as well. And while I'm at it... What's that setting and why is it important for iPhone development?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First the basics: The iPhone can use &lt;a href="http://col000r.blogspot.com/2008/11/pvrtc-texture-compression-as-seen-on.html"&gt;PVRTC-compressed textures&lt;/a&gt; and you might want to use this compression for 2 good reasons:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;It helps you &lt;span class="Apple-style-span"  style="color:#009900;"&gt;keep your app install size down&lt;/span&gt; (a 512x512px image in &lt;i&gt;RGB24&lt;/i&gt; has about 768KB - in &lt;i&gt;PVRTC&lt;/i&gt; 4bit it has 128KB)&lt;/li&gt;&lt;li&gt;It will be harder for your app to blow up the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;texture memory&lt;/span&gt;. - If your game has a complex menu with 20 full 480x320 screens, it will most likely run out of memory and crash.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Now this is where the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Non Power of 2 setting&lt;/span&gt; comes in. &lt;span class="Apple-style-span"  style="color:#009900;"&gt;PVRTC&lt;/span&gt; can only be applied to textures that are &lt;b&gt;square&lt;/b&gt; and &lt;b&gt;to a power of 2&lt;/b&gt; (128x128, 256x256, 512x512, 1024x1024 or 2048x2048). - Your 480x320 screens can thus not be compressed unless they are rescaled to a power of two. The non power of 2 setting gives you 4 options:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;None - Keep the original dimensions&lt;/li&gt;&lt;li&gt;Scale to nearest&lt;/li&gt;&lt;li&gt;Scale to larger&lt;/li&gt;&lt;li&gt;Scale to smaller&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Even if you choose to rescale your image you can of course still &lt;span class="Apple-style-span"  style="color:#009900;"&gt;display it in it's original siz&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;e&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yes &lt;span class="Apple-style-span"  style="color:#009900;"&gt;image quality will suffer&lt;/span&gt;, but if I have to choose between a slightly blurry main menu and a crash, I'll go with blurry...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It doesn't always make sense to do this as changing a 320x20px strip from &lt;i&gt;RGB24&lt;/i&gt; to a 512x512px with &lt;i&gt;PVRTC&lt;/i&gt; will most likely result in a &lt;i&gt;larger&lt;/i&gt; filesize. I'm sure you get the general idea; same as everywhere: Thinking never hurts...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oh, yeah, also don't forget to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;turn off Mip-Maps for all your gui-images&lt;/span&gt;! Saves a few KB as well...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8215079299311428505?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8215079299311428505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8215079299311428505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8215079299311428505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8215079299311428505'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/11/unity-non-power-of-2-textures.html' title='Unity: Non Power of 2 Textures'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3094505972023910636</id><published>2009-11-19T18:18:00.009+01:00</published><updated>2010-12-28T10:35:09.809+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='openfeint'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>OpenFeint Unity Integration</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;b&gt;EDIT: This was written over a year ago and won't help you with the current version of OpenFeint, sorry.&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Integrating OpenFeint in a Unity iPhone project is pretty straightforward, just &lt;a href="http://api.openfeint.com/"&gt;sign up&lt;/a&gt;, &lt;a href="https://api.openfeint.com/source_code"&gt;get the sdk&lt;/a&gt; and follow &lt;a href="http://help.openfeint.com/faqs/guides-2/openfeint-unity-iphone-support"&gt;these steps&lt;/a&gt;. A few additional notes though... &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Unity:&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I didn't really manage to access the OpenFeint singleton from Javascript, it kept giving me &lt;i&gt;&lt;span class="Apple-style-span"  style="color:#993300;"&gt;'singleton' is not a member of 'callable() as void'&lt;/span&gt;&lt;/i&gt; . So I wrote a simple C# script just for calling OpenFeint and call that from Javascript:&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush: csharp; wrap-lines: false;"&gt;using UnityEngine;&lt;br /&gt;using System.Collections;&lt;br /&gt;//Notice how no "using OpenFeint;" or something like that is needed!&lt;br /&gt;&lt;br /&gt;public class OpenFeintStuff : MonoBehaviour {&lt;br /&gt;&lt;br /&gt;   public void LaunchOpenFeint () {&lt;br /&gt;        OpenFeint.singleton.launchDashboard();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;SDK Integration (XCode):&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;ad  5:&lt;/b&gt; If it says &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Multiple Values&lt;/span&gt; next to "Other Linker Flags", select only the active config, then edit the line. This is what it should read: &lt;span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;-ObjC,-Wl,-S,-x&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;a href="http://blackish.at/stuff/blogimages/3161e025fbc6188a9a86c77a0c9b2157.png"&gt;&lt;img src="http://blackish.at/stuff/blogimages/3161e025fbc6188a9a86c77a0c9b2157.png" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 240px; height: 181px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;ad 6:&lt;/b&gt; The place to check for this is under Targets &gt; Unity iPhone &gt; Get Info &gt; General - then look at the bottom and add the missing frameworks with the [+] button on the bottom left.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://blackish.at/stuff/blogimages/ea9877b05044248aa4f216770c10d5cb.png"&gt;&lt;img src="http://blackish.at/stuff/blogimages/ea9877b05044248aa4f216770c10d5cb.png" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 240px; height: 181px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;ad 11:&lt;/b&gt; Your &lt;i&gt;product key&lt;/i&gt; and &lt;i&gt;secret key&lt;/i&gt; need to look like this: &lt;span class="Apple-style-span"  style="color:#009900;"&gt;@"x238476d-etc"&lt;/span&gt; (this is what strings look like in Objective-C)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3094505972023910636?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3094505972023910636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3094505972023910636' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3094505972023910636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3094505972023910636'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/11/openfeint-unity-integration.html' title='OpenFeint Unity Integration'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1991502093173107042</id><published>2009-11-12T10:21:00.002+01:00</published><updated>2009-11-12T10:34:22.082+01:00</updated><title type='text'>Edge of Curling</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blackish.at/stuff/blogimages/EdgeOfCurling.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 366px; height: 240px;" src="http://blackish.at/stuff/blogimages/EdgeOfCurling.jpg" border="0" alt="" /&gt;&lt;/a&gt;Read more &lt;a href="http://chaosedge.wordpress.com/"&gt;here&lt;/a&gt;, and also &lt;a href="http://atomicedgegames.com/"&gt;here&lt;/a&gt;, &lt;a href="http://toucharcade.com/2009/11/11/indie-developers-band-against-edge-trademark-claims/"&gt;here&lt;/a&gt; and &lt;a href="http://www.facebook.com/group.php?gid=100713289870"&gt;here&lt;/a&gt; if you got the time...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1991502093173107042?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1991502093173107042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1991502093173107042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1991502093173107042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1991502093173107042'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/11/edge-of-curling.html' title='Edge of Curling'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4057085217997798670</id><published>2009-10-28T09:50:00.002+01:00</published><updated>2009-10-28T10:19:02.122+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='inspector'/><title type='text'>Unity: Random Hint of the Day</title><content type='html'>&lt;div style="text-align: left;"&gt;Ever wanted to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;scratch&lt;/span&gt; (right-click-and-drag-to-change) &lt;span class="Apple-style-span"  style="color:#009900;"&gt;transform value&lt;/span&gt;s in Unity iPhone?&lt;/div&gt;&lt;div&gt;Ever wondered what the real names of the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;color-fields of a shader&lt;/span&gt; are? (If you want to do something like &lt;span class="Apple-style-span"  style="color:#009900;"&gt;renderer.material.GetColor("_SpecColor")&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;Ever wanted to see your &lt;span class="Apple-style-span"  style="color:#009900;"&gt;private variables&lt;/span&gt; in the inspector?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ever noticed the little &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Debug&lt;/span&gt; Tab in Unity iPhone or the little Debug option in the Inspector Menu in Unity 2.5?&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 252px;" src="http://blackish.at/stuff/blogimages/debugInspectorUI.jpg" border="0" alt="" /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 99px;" src="http://blackish.at/stuff/blogimages/debugInspectorU25.jpg" border="0" alt="" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4057085217997798670?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4057085217997798670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4057085217997798670' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4057085217997798670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4057085217997798670'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/unity-random-hint-of-day.html' title='Unity: Random Hint of the Day'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-558509572068330252</id><published>2009-10-22T11:30:00.005+02:00</published><updated>2009-10-22T13:09:35.188+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='mesh'/><category scheme='http://www.blogger.com/atom/ns#' term='vectors'/><category scheme='http://www.blogger.com/atom/ns#' term='vertices'/><category scheme='http://www.blogger.com/atom/ns#' term='normals'/><title type='text'>Unity: How to blow up a mesh like a balloon</title><content type='html'>&lt;div&gt;Say you wanted to blow up a mesh like a ballon - simply scaling it up isn't good enough. There's an &lt;a href="http://unity3d.com/support/documentation/ScriptReference/Mesh.html"&gt;example in the documentation&lt;/a&gt; that teaches you how to move vertices along normals, but it doesn't quite do what I want it to, since the mesh falls apart in the process:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-d20994463cd170bd" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v1.nonxt6.googlevideo.com/videoplayback?id%3Dd20994463cd170bd%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330068772%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D3FF905C733AEB16F50E236BA30D7E7964B81B75F.4B5F413EBFCE1AAAC11F03564F412173497203C%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dd20994463cd170bd%26offsetms%3D5000%26itag%3Dw160%26sigh%3DQK-NonsczrlDW7MoH0BMBUIvbS4&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v1.nonxt6.googlevideo.com/videoplayback?id%3Dd20994463cd170bd%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330068772%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D3FF905C733AEB16F50E236BA30D7E7964B81B75F.4B5F413EBFCE1AAAC11F03564F412173497203C%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dd20994463cd170bd%26offsetms%3D5000%26itag%3Dw160%26sigh%3DQK-NonsczrlDW7MoH0BMBUIvbS4&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's the slightly modified code of the example, as seen in the video above:&lt;/div&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;function Update () {&lt;br /&gt;var meF : MeshFilter = GetComponent(MeshFilter);&lt;br /&gt;if(meF) mesh = meF.mesh;&lt;br /&gt;var vertices = mesh.vertices;&lt;br /&gt;var normals = mesh.normals;&lt;br /&gt;for (var i=0; i&amp;lt;vertices.length; i++)&lt;br /&gt;{&lt;br /&gt;vertices[i] += normals[i] * 2.0 * Time.deltaTime;&lt;br /&gt;}&lt;br /&gt;mesh.vertices = vertices;&lt;br /&gt;}&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To &lt;span class="Apple-style-span"  style="color:#009900;"&gt;prevent&lt;/span&gt; this &lt;span class="Apple-style-span"  style="color:#009900;"&gt;disintegration&lt;/span&gt; from happening we need to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;find all vertices that share identical positions&lt;/span&gt; and find &lt;span class="Apple-style-span"  style="color:#009900;"&gt;one average normal&lt;/span&gt; per group of identicals. First the result, then the code:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-fba74cfc1d096149" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v9.nonxt1.googlevideo.com/videoplayback?id%3Dfba74cfc1d096149%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330068772%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7A36886159D8228E3F25C9EF93B085A00EFC6371.675AFF445A2A89F3E873337219654D5866640BBC%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dfba74cfc1d096149%26offsetms%3D5000%26itag%3Dw160%26sigh%3D--B-NlXQPnVh_DA_8K9DqmmCkzM&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v9.nonxt1.googlevideo.com/videoplayback?id%3Dfba74cfc1d096149%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330068772%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7A36886159D8228E3F25C9EF93B085A00EFC6371.675AFF445A2A89F3E873337219654D5866640BBC%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dfba74cfc1d096149%26offsetms%3D5000%26itag%3Dw160%26sigh%3D--B-NlXQPnVh_DA_8K9DqmmCkzM&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;private var mesh : Mesh;&lt;br /&gt;private var vertices = new Vector3[0];&lt;br /&gt;private var normals = new Vector3[0];&lt;br /&gt;var finalNormals = new Vector3[0];&lt;br /&gt;&lt;br /&gt;function Start () {&lt;br /&gt;var meF : MeshFilter = GetComponent(MeshFilter);&lt;br /&gt;mesh = meF.mesh;&lt;br /&gt;&lt;br /&gt;vertices = mesh.vertices;&lt;br /&gt;normals = mesh.normals;&lt;br /&gt;&lt;br /&gt;//Find identical vertices&lt;br /&gt;var vertexIDs = new int[vertices.length]; //this will hold an ID for each vertex, vertices at the same position will share the same ID!&lt;br /&gt;var counter : int = 0;&lt;br /&gt;for (var i = 0; i &amp;lt; vertices.length; i++) {&lt;br /&gt;for (var j = 0; j &amp;lt; vertices.length; j++) {&lt;br /&gt; if(vertexIDs[i] == 0) {&lt;br /&gt;  counter++;&lt;br /&gt;  vertexIDs[i] = counter;&lt;br /&gt; }&lt;br /&gt; if(i != j) {&lt;br /&gt;  if(vertices[i] == vertices[j] &amp;amp;&amp;amp; vertices[i] != 0) {&lt;br /&gt;   vertexIDs[j] = vertexIDs[i];&lt;br /&gt;  }&lt;br /&gt;     print(i + ", " + j + ":" + vertices[j] + " (" + vertexIDs[j] + ")");&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;finalNormals = normals;&lt;br /&gt;&lt;br /&gt;//Calcualte average normals&lt;br /&gt;for(k = 1; k &amp;lt;= counter; k++) { //counter is the highest vertexID, now go through all the groups and collect normal data&lt;br /&gt;var curAvgNormal : Vector3 = Vector3.zero;&lt;br /&gt;for(l = 0; l &amp;lt; vertexIDs.length; l++) {&lt;br /&gt; if(vertexIDs[l] == k) {&lt;br /&gt;  curAvgNormal += normals[l]; //Add up all the normals of the vertices with identical positions&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;curAvgNormal.Normalize(); //Normalize the result&lt;br /&gt;for(m = 0; m &amp;lt; vertexIDs.length; m++) {&lt;br /&gt; if(vertexIDs[m] == k) finalNormals[m] = curAvgNormal;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function Update () {&lt;br /&gt;for (var i = 0; i &amp;lt; vertices.length; i++) {&lt;br /&gt;   vertices[i] += finalNormals[i] * 2.0 * Time.deltaTime;&lt;br /&gt;}&lt;br /&gt;mesh.vertices = vertices;&lt;br /&gt;}&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;This code is horribly inefficient though and calculating the average normals will take forever. (Unity will hang and the little colorful wheel will spin until it's done) So don't try this on any object with more than 200 or so triangles unless you have a lot of time... (please add your optimization tips in the comments below :])&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since the mesh is known from the start we could just as well &lt;span class="Apple-style-span"  style="color:#009900;"&gt;pre-calculate the normals&lt;/span&gt; though, so that they don't have to be calculated each time at startup.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;A Simple and crude way of doing this: Run the game in the Editor &gt;&gt; copy the gameObject once the finalNormals have been calculated &gt;&gt; stop the Editor &gt;&gt; paste gameObject &gt;&gt; replace script with &lt;span class="Apple-style-span"  style="color:#009900;"&gt;a version that lacks the normal-calculations&lt;/span&gt; and is only good for use with a script that already has the finalNormals set:&lt;/div&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;private var mesh : Mesh;&lt;br /&gt;private var vertices = new Vector3[0];&lt;br /&gt;private var normals = new Vector3[0];&lt;br /&gt;var finalNormals = new Vector3[0];&lt;br /&gt;&lt;br /&gt;function Start () {&lt;br /&gt;var meF : MeshFilter = GetComponent(MeshFilter);&lt;br /&gt;mesh = meF.mesh;&lt;br /&gt;&lt;br /&gt;vertices = mesh.vertices;&lt;br /&gt;normals = mesh.normals;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function Update () {&lt;br /&gt;for (var i = 0; i &amp;lt; vertices.length; i++) {&lt;br /&gt;    vertices[i] += finalNormals[i] * 2.0 * Time.deltaTime;&lt;br /&gt;}&lt;br /&gt;mesh.vertices = vertices;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Okay, not bad. There's still room for improvement though: It will look even more realistic &lt;i&gt;(well, that is if you would classify "blowing up a wooden table" as "realistic"&lt;/i&gt;) if you also slowly scale up the gameObject with&lt;span class="Apple-style-span"  style="color:#009900;"&gt; transform.localScale&lt;/span&gt;: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-70f518b2fec41e39" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v16.nonxt6.googlevideo.com/videoplayback?id%3D70f518b2fec41e39%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330068772%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D228F9A6EF5A05E9C09238A89FD3B6AAF9F15241C.2E93A91DB13DD512DB284EB3BFFB950A670FD5D3%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D70f518b2fec41e39%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dt1Om-j77r2Yog1nxFvtjzJ306d0&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v16.nonxt6.googlevideo.com/videoplayback?id%3D70f518b2fec41e39%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330068772%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D228F9A6EF5A05E9C09238A89FD3B6AAF9F15241C.2E93A91DB13DD512DB284EB3BFFB950A670FD5D3%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D70f518b2fec41e39%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dt1Om-j77r2Yog1nxFvtjzJ306d0&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-558509572068330252?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/558509572068330252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=558509572068330252' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/558509572068330252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/558509572068330252'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/unity-how-to-blow-up-mesh-like-balloon.html' title='Unity: How to blow up a mesh like a balloon'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3597943923159418111</id><published>2009-10-21T11:22:00.004+02:00</published><updated>2009-11-25T16:54:20.453+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Unity: Animation-Events</title><content type='html'>AnimationEvents are a way to make sure that something happens at a specific point during an animation. You boss-character stomping and shaking the ground at frame 65? No problem... Frame 65 / 30 fps = 2.166 sec. Add an AnimationEvent to the AnimationClip and a function will be called every time this AnimationClip is played at the specified time!&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;var boss : GameObject;&lt;br /&gt;&lt;br /&gt;//create and set up the AnimationEvent&lt;br /&gt;var myEvent : AnimationEvent = new AnimationEvent();&lt;br /&gt;myEvent.time = 2.166;&lt;br /&gt;myEvent.functionName = "DoSomething";&lt;br /&gt;&lt;br /&gt;//Add the event to an AnimationClip&lt;br /&gt;boss.animation.clip.AddEvent(myEvent);&lt;br /&gt;&lt;br /&gt;//Play the animation&lt;br /&gt;boss.animation.Play();&lt;/pre&gt;&lt;br /&gt;Now simply add all the code you need to the function &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;DoSomething&lt;/span&gt; in a script on the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;gameObject&lt;/span&gt; that contains the animation.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From what I can tell the function really has to be on a script on that gameObject and nowhere else. &lt;i&gt;myEvent.functionName = "transform.parent.DoSomething";&lt;/i&gt; didn't seem to want to work...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The documentation &lt;a href="http://unity3d.com/support/documentation/ScriptReference/AnimationEvent-functionName.html"&gt;points out&lt;/a&gt; that what actually happens is &lt;i&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;gameObject.SendMessage(animationEvent.functionName, animationEvent);&lt;/span&gt; -&lt;/i&gt; so I guess that explains why.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update:&lt;/b&gt; Have a look at &lt;a href="http://col000r.blogspot.com/2009/11/unity-how-to-relay-messages-sent-by.html"&gt;this new post&lt;/a&gt; for how to make it call a function on a different object (spoiler: I relay the message...)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3597943923159418111?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3597943923159418111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3597943923159418111' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3597943923159418111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3597943923159418111'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/unity-animation-events.html' title='Unity: Animation-Events'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8383341361657166526</id><published>2009-10-14T16:00:00.000+02:00</published><updated>2009-10-14T16:00:32.505+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><category scheme='http://www.blogger.com/atom/ns#' term='gamegui.net'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>gamegui.net</title><content type='html'>&lt;div style="text-align: left;"&gt;I started &lt;a href="http://gamegui.net/"&gt;gamegui.net&lt;/a&gt; in my sparse spare-time while working  on the interface of the MMO &lt;a href="http://ageofconan.com/"&gt;Age of Conan&lt;/a&gt;. Having a good and easily searchable database full of reference material saved me countless hours of searching the web when trying to find out how other games have approached similar tasks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://gamegui.net/"&gt;&lt;img style="border:none;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 192px; height: 32px;" src="http://2.bp.blogspot.com/_HZfKJkWv1NI/StQnLL8XNXI/AAAAAAAAAUk/dGixvQE1vCQ/s400/gamegui-net-logo.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5391977727007339890" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a href="http://gamegui.net/"&gt;&lt;img style="border:none; display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 308px; height: 296px;" src="http://3.bp.blogspot.com/_HZfKJkWv1NI/StQnb-41H4I/AAAAAAAAAUs/B1RS-K8DchU/s400/gamegui-net.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5391978015560638338" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I haven't gotten around to updating it much since I quit Funcom and started doing &lt;a href="http://games.blackish.at/"&gt;my own indie games,&lt;/a&gt; but it's still there and maybe the world should finally learn of its existence...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you find it useful and want to contribute - let me know! (At this point I want to thank my friend &lt;a href="http://ninau.net/"&gt;Simon&lt;/a&gt; at Creative Assembly for being the only other contributor so far :])&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PS: And if you can help me with one tricky SQL problem, please let me know as well! :)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8383341361657166526?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8383341361657166526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8383341361657166526' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8383341361657166526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8383341361657166526'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/gameguinet.html' title='gamegui.net'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HZfKJkWv1NI/StQnLL8XNXI/AAAAAAAAAUk/dGixvQE1vCQ/s72-c/gamegui-net-logo.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7845563040893435758</id><published>2009-10-13T09:00:00.000+02:00</published><updated>2009-10-13T09:49:34.999+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Software that's making my life easier</title><content type='html'>&lt;div&gt;FTP: &lt;a href="http://filezilla-project.org/"&gt;Filezilla&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Backup: &lt;a href="http://www.apple.com/macosx/what-is-macosx/time-machine.html"&gt;Time Machine&lt;/a&gt;&lt;/div&gt;&lt;div&gt;File/Folder-Synchronization/Backup: &lt;a href="http://decimus.net/synk_standard.php"&gt;Synk Standard&lt;/a&gt; (I hate to admit it, but this is a lot more comfortable than my &lt;a href="http://col000r.blogspot.com/2008/06/boring-filefolder-synchronization-talk.html"&gt;home-made python-tool&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;HD-Cleanup: &lt;a href="http://www.daisydiskapp.com/"&gt;DaisyDisk&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Time-Tracking: &lt;a href="http://bjango.com/apps/jobs/"&gt;Jobs&lt;/a&gt; (iPhone)&lt;/div&gt;&lt;div&gt;Finance: &lt;a href="http://www.synium.de/products/ifinance/index.html"&gt;iFinance&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Screencapturing: &lt;a href="http://www.synium.de/products/screenium/index.html"&gt;Screenium&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Webserver: &lt;a href="http://www.apachefriends.org/en/xampp-macosx.html"&gt;XAMPP&lt;/a&gt; (on localhost, for testing stuff...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Not all of these are free but &lt;i&gt;those that are not&lt;/i&gt; are worth the money.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you've got any recommendations - I'm looking for a simple and cheap/free Wave-Editor for Mac to replace &lt;a href="http://audacity.sourceforge.net/"&gt;Audacity&lt;/a&gt;... (I don't want to have to start up Logic Express for simple wave-editing...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PS: I like &lt;a href="http://www.schwarzkopf.com/"&gt;Schwarzkopf&lt;/a&gt; hair shampoo&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7845563040893435758?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7845563040893435758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7845563040893435758' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7845563040893435758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7845563040893435758'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/software-thats-making-my-life-easier.html' title='Software that&apos;s making my life easier'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8532520110989780030</id><published>2009-10-07T16:59:00.006+02:00</published><updated>2009-10-07T17:11:59.825+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='speedlap red'/><category scheme='http://www.blogger.com/atom/ns#' term='race'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>SPEEDLAP RED - Behind the scenes</title><content type='html'>&lt;div&gt;A screenshot from inside Unity, showing one of the tracks of &lt;a href="http://games.blackish.at/"&gt;our&lt;/a&gt; upcoming &lt;a href="http://games.blackish.at/speedlapred/"&gt;futuristic iPhone racing game "SPEEDLAP RED"&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blackish.at/stuff/blogimages/SpeedlapRED_track125.jpg" style="text-decoration: none;"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320; height: 309;" src="http://blackish.at/stuff/blogimages/SpeedlapRED_track125_verysmall.jpg" border="0" alt="Speedlap RED - Track 125" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8532520110989780030?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8532520110989780030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8532520110989780030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8532520110989780030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8532520110989780030'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/speedlap-red-behind-scenes.html' title='SPEEDLAP RED - Behind the scenes'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-2052005999400622685</id><published>2009-10-07T11:14:00.000+02:00</published><updated>2009-10-07T11:14:45.168+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='stats'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='multiplayer'/><title type='text'>Age of Curling: Thoughts about Online Multiplayer</title><content type='html'>Lots of people have been asking for &lt;span class="Apple-style-span"  style="color:#009900;"&gt;online multiplayer&lt;/span&gt; for &lt;a href="http://games.blackish.at"&gt;our&lt;/a&gt; &lt;a href="http://games.blackish.at/ageofcurling/"&gt;iPhone Curling Game "Age of Curling&lt;/a&gt;". &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Here's why it's might not happen:&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's a niche game with a fairly small number of players. Don't get me wrong, while it made less in half a year than the few top apps make in a single day, it made enough to pay the rent for a few months, which makes it a success to me! &lt;/div&gt;&lt;div&gt;And I'm proud to say that it seems to be doing quite well on replay value - the numbers suggest that each day there are a few hundred people playing the game. But 500 people / 24 hours / 30 mins (let's pretend each of them would spend 2 minutes in the multiplayer lobby) = 0.69 - So, on average you'd have a little over half a person in the multiplayer-lobby waiting for a game... Not very "multi"... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;But here's why it still might happen eventually:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's only the beginning of autumn, the number of regular (and overall) players will most likely rise quite a bit during Curling season.&lt;/div&gt;&lt;div&gt;And anyway, it's all a matter of &lt;i&gt;doing it right&lt;/i&gt;... With a scheduling system, push notifications and a weekly timeslot for tournaments it might well be possible to get together a whole lot of players on a regular basis. And I'm sure it would get some attention for that!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;And now here's why it still probably won't happen: &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's &lt;i&gt;a lot&lt;/i&gt; of work. - I am very committed to expanding the game (and I'll continue to do so as long as people are playing it), but I'm not sure if the goal can be &lt;i&gt;to make it the be-all-and-end-all Curling game and if it kills me&lt;/i&gt;. &lt;/div&gt;&lt;div&gt;Age of Curling is a mobile curling game that's fun to play with a friend while on a train. It's a fun game to play while waiting for the bus. It's &lt;i&gt;not&lt;/i&gt; a 100% accurate curling simulation, it's &lt;i&gt;not&lt;/i&gt; an e-sport-league game. &lt;/div&gt;&lt;div&gt;Each time I sit down to add something to the game I should really ask myself: "What can I do improve the strengths of the game?". You know... &lt;b&gt;Do one thing and do it well&lt;/b&gt;... And there you go... I just told you the secret philosophy behind &lt;a href="http://games.blackish.at"&gt;BLACKISH&lt;/a&gt; and how we're planning to survive as indie game developers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(this post was somewhat inspired by &lt;a href="http://www.vimeo.com/6877865"&gt;this talk&lt;/a&gt;, mostly from min 46 onwards)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-2052005999400622685?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/2052005999400622685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=2052005999400622685' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2052005999400622685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2052005999400622685'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/age-of-curling-thoughts-about-online.html' title='Age of Curling: Thoughts about Online Multiplayer'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-88089029733820348</id><published>2009-10-04T22:49:00.005+02:00</published><updated>2009-10-05T11:51:46.378+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tiger'/><category scheme='http://www.blogger.com/atom/ns#' term='os x'/><category scheme='http://www.blogger.com/atom/ns#' term='upgrade'/><category scheme='http://www.blogger.com/atom/ns#' term='snow leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='cloning'/><category scheme='http://www.blogger.com/atom/ns#' term='hd'/><category scheme='http://www.blogger.com/atom/ns#' term='shortcuts'/><title type='text'>Creating a bootable backup of the entire HD</title><content type='html'>&lt;div&gt;Spent a bit of time upgrading an Intel MacBook Pro from OS X 10.4 (Tiger) to 10.6 (Snow Leopard).&lt;/div&gt;&lt;div&gt;We wanted to do a clean install and in order to not forget about anything we wanted to create a &lt;span class="Apple-style-span"  style="color:#009900;"&gt;bootable backup&lt;/span&gt; of the entire internal HD onto a 2.5'' external HD.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We formated the external HD to HFS+ (Mac OS Extended (Journaled)) (Partitioning Schema set to GUID) and tried 2 free cloning-tools: &lt;a href="http://www.bombich.com/"&gt;Carbon Copy Cloner&lt;/a&gt; and &lt;a href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html"&gt;SuperDuper!&lt;/a&gt; - Both produced backups that &lt;b&gt;did not&lt;/b&gt; show up in the boot menu (the one you get to when you press ALT while booting). (It did show up as bootable on the iMac with OS X 10.5 (Leopard) though for some reason, but that wasn't good enough)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So this is what &lt;b&gt;did&lt;/b&gt; work in the end:&lt;/div&gt;&lt;div&gt;We connected the MacBook Pro to the iMac with a Firewire cable and booted the MacBook into &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Firewire Target Mode&lt;/span&gt; (press &lt;span class="Apple-style-span"  style="color:#000099;"&gt;T&lt;/span&gt; while booting until the Firewire Logo shows up on the screen), which allowed the iMac to use the MacBook like an external HD. Then we used &lt;a href="http://www.bombich.com/"&gt;Carbon Copy Cloner&lt;/a&gt; on the iMac to create a full backup from the MacBook HD to the external HD (connected to the iMac of course) - The result was bootable on the MacBook Pro!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The actual upgrade was easy then. Insert DVD, start Installation, right after it reboots open the Disk Utility from the menu on the top, format the internal HD and install...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-88089029733820348?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/88089029733820348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=88089029733820348' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/88089029733820348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/88089029733820348'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/creating-bootable-backup-of-entire-hd.html' title='Creating a bootable backup of the entire HD'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-2549512692292227650</id><published>2009-10-04T17:54:00.008+02:00</published><updated>2009-10-04T19:39:15.297+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='hmtl'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Unity Web-Player HTML Problem</title><content type='html'>&lt;div style="text-align: left;"&gt;Just found out that people who didn't have the unity web-player installed already, saw this on the page of our new &lt;a href="http://games.blackish.at/speedlapred/"&gt;futuristic racing game&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 332px;" src="http://2.bp.blogspot.com/_HZfKJkWv1NI/SsjGcAy329I/AAAAAAAAAUU/TGxooCP4y_M/s400/Screen+shot+2009-10-04+at+16.21.24.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5388775138700811218" /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Not nice... So I uninstalled the unity web-player plugin by deleting it from &lt;span class="Apple-style-span"  style="color:#009900;"&gt;/Library/Internet Plug-Ins/&lt;/span&gt; (browser-restart required) and went bug-hunting...&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Turns out the default unity html code opens an &lt;span class="Apple-style-span"  style="color:#009900;"&gt;iFrame&lt;/span&gt; and never closes it again. So if you change line 141 (at least that's the line number for the html that comes out of unity 2.5) and let it just close the iFrame again like this, you should be fine:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;document.write('&amp;lt;iframe name="InstallerFrame" height="0" width="0" frameborder="0"&gt;&amp;lt;/iframe&gt;\n');&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;et voilá:&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 314px;" src="http://3.bp.blogspot.com/_HZfKJkWv1NI/SsjJeWX_wOI/AAAAAAAAAUc/RwopD5JcnPs/s400/Picture+53.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5388778477388284130" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-2549512692292227650?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/2549512692292227650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=2549512692292227650' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2549512692292227650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2549512692292227650'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/10/unity-web-player-html-problem.html' title='Unity Web-Player HTML Problem'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HZfKJkWv1NI/SsjGcAy329I/AAAAAAAAAUU/TGxooCP4y_M/s72-c/Screen+shot+2009-10-04+at+16.21.24.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8967096617147979392</id><published>2009-09-30T15:00:00.002+02:00</published><updated>2009-09-30T15:16:43.445+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><title type='text'>Unity WebPlayer Anti-Piracy</title><content type='html'>If you want to prevent people from downloading your webplayer and putting it up on their own site, you might want to have a look at &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Application.absoluteURL&lt;/span&gt; in the documentation. It will allow you to detect if your webPlayer is still where it's supposed to be or not...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This still doesn't stop anyone from linking to your webplayer directly though, which might be even worse since you're now also paying for the traffic. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to try and stop other people from linking to your webplayer from within their websites, check out the example given on the bottom of &lt;a href="http://unity3d.com/support/documentation/Manual/Unity%20Web%20Player%20and%20browser%20communication.html"&gt;this page&lt;/a&gt;...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8967096617147979392?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8967096617147979392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8967096617147979392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8967096617147979392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8967096617147979392'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/09/unity-webplayer-anti-piracy.html' title='Unity WebPlayer Anti-Piracy'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4197942259910825528</id><published>2009-09-29T17:25:00.002+02:00</published><updated>2009-09-29T17:35:21.620+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webplayer'/><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='cloudfront'/><category scheme='http://www.blogger.com/atom/ns#' term='s3'/><category scheme='http://www.blogger.com/atom/ns#' term='webpage'/><category scheme='http://www.blogger.com/atom/ns#' term='aws'/><title type='text'>Using PHP to forward/fork to unity webplayers</title><content type='html'>All in all I think using &lt;a href="http://aws.amazon.com/"&gt;AWS&lt;/a&gt; is a pretty decent solution that should keep me from getting kicked from my &lt;a href="http://all-inkl.com/"&gt;normal shared webserver&lt;/a&gt; for generating huge amounts of traffic ("unlimited" can be pretty limited if there's a "fair use" clause attached). &lt;div&gt;Since I'm already paying for it though, I'd like to use the shared server as much as possible before generating any additional costs through AWS.&lt;br /&gt;&lt;br /&gt;So... Instead of linking to the &lt;span class="Apple-style-span"  style="color:#009900;"&gt;webplayer&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;.unity&lt;/span&gt; file directly (on the local server or on AWS), I set the link to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;webplayer&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;.php&lt;/span&gt; (a super-basic PHP page, that does nothing but forward to the real unity-file)&lt;div&gt;&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;header("Location: http://d2s94hjscj93hx.cloudfront.net/webplayer.unity3d");&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The next step would now be to make the webserver aware of its state and make it switch to AWS automatically as soon as certain criteria are fullfilled... Several ideas are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you have a traffic-limit it could count the number of downloads this month and switch as soon as it gets close to the limit&lt;/li&gt;&lt;li&gt;It could switch to AWS if traffic goes beyond a certain amount of downloads per hour&lt;/li&gt;&lt;li&gt;switch to normal service during the lower-traffic times of the day&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4197942259910825528?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4197942259910825528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4197942259910825528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4197942259910825528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4197942259910825528'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/09/using-php-to-forwardfork-to-unity.html' title='Using PHP to forward/fork to unity webplayers'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3774570250906132545</id><published>2009-09-29T17:00:00.003+02:00</published><updated>2009-09-29T17:02:52.852+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webplayer'/><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='cloudfront'/><category scheme='http://www.blogger.com/atom/ns#' term='s3'/><category scheme='http://www.blogger.com/atom/ns#' term='webpage'/><category scheme='http://www.blogger.com/atom/ns#' term='aws'/><title type='text'>Unity WebPlayer Content over Amazon S3 + Cloudfront</title><content type='html'>In &lt;a href="http://gameassets.net"&gt;the&lt;/a&gt; &lt;a href="http://stocktextures.com/"&gt;wake&lt;/a&gt; &lt;a href="http://gamegui.net/"&gt;of&lt;/a&gt; &lt;a href="http://games.blackish.at/"&gt;big plans&lt;/a&gt;, I've been looking into low-cost ways of digitally distributing large amounts of data to lots of people. Here's what I've set up so far:&lt;div&gt;&lt;br /&gt;&lt;a href="http://aws.amazon.com/s3"&gt;Amazon S3&lt;/a&gt; (Simple Storage Service) is a place where you can cheaply put large files for download - You currently pay $0.15/GB for storage and $0.17/GB for outbound transfer.&lt;br /&gt;&lt;b&gt;An example:&lt;/b&gt; You have a 20MB game and 1000 people a day play it: 20*1.000*30 = 600.000MB traffic per month = 586 GB * $0.17 per GB transfer + $0.15 for 1 GB of storage = ca. $100 per month&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://aws.amazon.com/cloudfront/"&gt;Amazon Cloudfront&lt;/a&gt; makes sure the content is delivered to the end-user with low latency. Your data will be delivered form the closest of currently 8 locations in the US, 4 in Europe and 2 in Asia. It's also supposed to scale really well, so you should be immune to the famous &lt;a href="http://en.wikipedia.org/wiki/Slashdot_effect"&gt;slashdot-effect&lt;/a&gt; (the content will be immune, if the website that links to it goes down you're still f*****)&lt;/div&gt;&lt;div&gt;The cost here will be slightly higher, but not substantially: Running the example given above through Cloudfront should amount to about $110.&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Both of these Services are part of the &lt;a href="http://aws.amazon.com/"&gt;Amazon Web Services&lt;/a&gt; (AWS) and if you already have an account at Amazon (and who doesn't) it's super-simple to sign up.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Once signed up to S3 and Cloudfront, get the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3247"&gt;S3Fox Firefox plugin&lt;/a&gt; and log in with your &lt;i&gt;access key&lt;/i&gt; and &lt;i&gt;secret key&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Create a new bucket&lt;/span&gt; (=directory) and upload your file to it.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Change Permissions&lt;/span&gt; (Edit ACL) and allow &lt;i&gt;Everyone&lt;/i&gt; to &lt;i&gt;Read&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;At this stage you could already access your file through normal S3, but we want to get it through Cloudfront, so:&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Manage Distributions&lt;/span&gt; on the bucket - &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Create Distribution&lt;/span&gt;. Once it is deployed you'll see a &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Resource URL&lt;/span&gt;, copy it - this is the link to the directory. (If you go to &lt;i&gt;Manage Distributions&lt;/i&gt; on the file it will show you the complete URL to the file.)&lt;/li&gt;&lt;li&gt;Put the link up on your webpage, you should be able to get your file on S3 through Cloudfront now.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3774570250906132545?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3774570250906132545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3774570250906132545' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3774570250906132545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3774570250906132545'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/09/unity-webplayer-content-over-amazon-s3.html' title='Unity WebPlayer Content over Amazon S3 + Cloudfront'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3867841952689893958</id><published>2009-09-19T20:30:00.002+02:00</published><updated>2009-09-19T20:38:11.339+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='speedlap red'/><category scheme='http://www.blogger.com/atom/ns#' term='blackish'/><title type='text'>SPEEDLAP RED</title><content type='html'>&lt;div style="text-align: left;"&gt;Announcing &lt;span class="Apple-style-span"  style="color:#990000;"&gt;&lt;b&gt;Speedlap RED&lt;/b&gt;&lt;/span&gt;, a highly focused, futuristic single-player racing game developed by &lt;a href="http://games.blackish.at/"&gt;BLACKISH&lt;/a&gt; - Coming to iPhone and iPod Touch this November!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://games.blackish.at/speedlapred/content/SpeedlapRED_ingame.jpg" border="0" alt="" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thread on &lt;a href="http://forums.toucharcade.com/showthread.php?t=26200"&gt;TouchArcade Forums&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Thread on the &lt;a href="http://forum.unity3d.com/viewtopic.php?t=32503"&gt;Unity Forums&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3867841952689893958?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3867841952689893958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3867841952689893958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3867841952689893958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3867841952689893958'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/05/speedlap-red.html' title='SPEEDLAP RED'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8769180795956054049</id><published>2009-09-16T18:37:00.002+02:00</published><updated>2009-09-16T18:43:53.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><title type='text'>Unity: Changing shader color properties</title><content type='html'>&lt;div&gt;If you want to change a color-value in a material's shader you can use &lt;span class="Apple-style-span"  style="color:#009900;"&gt;Material.SetColor("_PropertyName", Color.white)&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;;&lt;/span&gt; If you don't know what that color value is called in the shader, get the the source of all the shaders in Unity &lt;a href="http://unity3d.com/support/resources/assets/built-in-shaders.html"&gt;here&lt;/a&gt; and have a look inside. &lt;a href="http://unity3d.com/support/documentation/Manual/ShaderTut1.html"&gt;This page in the docs&lt;/a&gt; might help as well...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8769180795956054049?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8769180795956054049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8769180795956054049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8769180795956054049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8769180795956054049'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/09/unity-changing-shader-color-properties.html' title='Unity: Changing shader color properties'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-9131586430552483088</id><published>2009-08-31T09:10:00.002+02:00</published><updated>2009-09-16T22:04:59.674+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='Battle Bears'/><title type='text'>BATTLE BEARS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos-a.ak.fbcdn.net/hphotos-ak-snc1/hs149.snc1/5531_1039611729539_1802927815_85520_5168412_n.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://photos-a.ak.fbcdn.net/hphotos-ak-snc1/hs149.snc1/5531_1039611729539_1802927815_85520_5168412_n.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.battlebears.com/"&gt;BATTLE BEARS&lt;/a&gt; is an iPhone game developed by &lt;a href="http://blackish.at/"&gt;BLACKISH&lt;/a&gt; for (and in colaboration with) &lt;a href="http://skyvu.net/"&gt;SkyVu Pictures&lt;/a&gt;. It's been released on the AppStore &lt;b&gt;today&lt;/b&gt;! Get it &lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=326979430&amp;amp;mt=8"&gt;here&lt;/a&gt;!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-9131586430552483088?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/9131586430552483088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=9131586430552483088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/9131586430552483088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/9131586430552483088'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/08/battle-bears.html' title='BATTLE BEARS'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3027815821444496163</id><published>2009-08-30T11:13:00.002+02:00</published><updated>2009-08-30T11:13:00.480+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>Age of Curling: Scotland - Behind the scenes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HZfKJkWv1NI/Spefyk6q3_I/AAAAAAAAATk/I5TfQpJMyGY/s1600-h/AgeOfCurlingScotlandBehindTheScenes.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 234px;" src="http://2.bp.blogspot.com/_HZfKJkWv1NI/Spefyk6q3_I/AAAAAAAAATk/I5TfQpJMyGY/s400/AgeOfCurlingScotlandBehindTheScenes.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5374940371542007794" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3027815821444496163?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3027815821444496163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3027815821444496163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3027815821444496163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3027815821444496163'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/08/age-of-curling-scotland-behind-scenes.html' title='Age of Curling: Scotland - Behind the scenes'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HZfKJkWv1NI/Spefyk6q3_I/AAAAAAAAATk/I5TfQpJMyGY/s72-c/AgeOfCurlingScotlandBehindTheScenes.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-6244449477316386179</id><published>2009-08-28T11:55:00.011+02:00</published><updated>2009-08-28T12:31:33.857+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='matrix'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>Unity: Rotated GUI-Text</title><content type='html'>The way to &lt;span class="Apple-style-span"  style="color:#009900;"&gt;rotate gui-elements&lt;/span&gt; isn't exactly straight-forward in &lt;span class="Apple-style-span"  style="color:#000099;"&gt;unity&lt;/span&gt;... But after some hassle I manged to rotate a piece of text:&lt;div&gt;&lt;br /&gt;&lt;pre class="brush: js; wrap-lines: false;"&gt;&lt;br /&gt;function OnGUI () {&lt;br /&gt;   var pos : Vector3 = new Vector3(100, 200, 0); //position for matrix&lt;br /&gt;   var quat : Quaternion = Quaternion.identity; //rotation for matrix&lt;br /&gt;   quat.eulerAngles = Vector3(0, 0, 90); //set the rotation to something - rotate around z!&lt;br /&gt;   GUI.matrix = Matrix4x4.TRS(pos, quat, Vector3.one); //Apply the matrix &lt;br /&gt;   GUI.Label(Rect(0, 0, 200, 20), "Some Text"); //notice how the rect starts at 0/0 and the matrix handles the position!&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;This is still not ideal since the text will be a bit blurry, but it's better than nothing...&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-6244449477316386179?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/6244449477316386179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=6244449477316386179' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6244449477316386179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6244449477316386179'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/08/unity-rotated-gui-text.html' title='Unity: Rotated GUI-Text'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4123552452029488450</id><published>2009-08-28T10:57:00.003+02:00</published><updated>2009-08-28T11:06:50.380+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>Age of Curling: Venice - Behind the scenes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HZfKJkWv1NI/SpecJZvw63I/AAAAAAAAATc/0Nw3Q9NlMwc/s1600-h/AgeOfCurlingVenice22.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 234px;" src="http://3.bp.blogspot.com/_HZfKJkWv1NI/SpecJZvw63I/AAAAAAAAATc/0Nw3Q9NlMwc/s400/AgeOfCurlingVenice22.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5374936365633956722" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;Modeling, baking, paintover - all done in modo 401&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4123552452029488450?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4123552452029488450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4123552452029488450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4123552452029488450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4123552452029488450'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/08/age-of-curling-venice-behind-scenes.html' title='Age of Curling: Venice - Behind the scenes'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HZfKJkWv1NI/SpecJZvw63I/AAAAAAAAATc/0Nw3Q9NlMwc/s72-c/AgeOfCurlingVenice22.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-2663536551419648742</id><published>2009-08-25T14:18:00.006+02:00</published><updated>2009-08-25T14:25:11.484+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='trailer'/><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Age of Curling 1.3</title><content type='html'>&lt;div&gt;A sneak-peak at the new venue that will be in &lt;span class="Apple-style-span"  style="color:#009900;"&gt;version 1.3&lt;/span&gt; of &lt;a href="http://games.blackish.at/ageofcurling"&gt;Age of Curling&lt;/a&gt; (a free update, currently in review by Apple)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;object width="410" height="252"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UMRKq5mudaw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/UMRKq5mudaw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="410" height="252"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-2663536551419648742?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/2663536551419648742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=2663536551419648742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2663536551419648742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2663536551419648742'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/08/age-of-curling-13.html' title='Age of Curling 1.3'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1826858153831435062</id><published>2009-08-19T12:23:00.008+02:00</published><updated>2009-08-28T12:31:54.719+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>How to put a variable into a variable name: eval();</title><content type='html'>&lt;pre class="brush: js;"&gt;&lt;br /&gt;var id : int = 1;&lt;br /&gt;var item1 : String = "ho";&lt;br /&gt;var item2 : String = "hum";&lt;br /&gt;&lt;br /&gt;print(eval("item" + id));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;This can of course be used for a lot more than just variables...&lt;/div&gt;&lt;div&gt;I'm guessing that this won't work on the iPhone due to the ahead of time compiling, but I haven't actually tried...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1826858153831435062?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1826858153831435062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1826858153831435062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1826858153831435062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1826858153831435062'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/08/how-to-put-variable-into-variable-name.html' title='How to put a variable into a variable name: eval();'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3477678722947686074</id><published>2009-08-14T15:59:00.000+02:00</published><updated>2009-08-14T15:59:21.443+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DAW'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>Individual track heights in Logic</title><content type='html'>I though this wasn't possible and almost gave up on Logic over this. I couldn't find anything about it - neither in the manual nor in the settings, but now I stumbled upon it in some Youtube video... What a pleasant surprise!  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is how it's done: &lt;span class="Apple-style-span"  style="color:#009900;"&gt;click and drag the bottom-left corner of the track-title&lt;/span&gt;. Simple, I know - I tried dragging the bottom of that area about 50 times with all imaginable key-combinations pressed at the same time... well... now I know...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The technical term seems to be "&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Individual track zoom&lt;/span&gt;" and the cool thing is that if you now change the track heights globally through the little slider on the bottom-right of the window, it all scales relatively  - and up/down to a certain max/min&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3477678722947686074?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3477678722947686074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3477678722947686074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3477678722947686074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3477678722947686074'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/08/individual-track-heights-in-logic.html' title='Individual track heights in Logic'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5202304884084468938</id><published>2009-08-14T15:17:00.006+02:00</published><updated>2009-09-29T14:18:16.823+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cakewalk'/><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='sonar'/><category scheme='http://www.blogger.com/atom/ns#' term='omf'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Sonar to Logic</title><content type='html'>&lt;div&gt;I spent half of yesterday going through old music-files, trying to see if there's a way to somehow bring the few good things over to the Mac and into &lt;a href="http://www.amazon.com/gp/product/B002ISDD1K?ie=UTF8&amp;tag=col000r-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B002ISDD1K"&gt;Logic&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=col000r-20&amp;l=as2&amp;o=1&amp;a=B002ISDD1K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;somehow.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some web-searches taught me that there's no way to open my old .bun or .cwb files from &lt;span class="Apple-style-span"  style="color:#000099;"&gt;Sonar 1&lt;/span&gt;/&lt;span class="Apple-style-span"  style="color:#000099;"&gt;Calkewalk Pro Audio&lt;/span&gt; in &lt;span class="Apple-style-span"  style="color:#000099;"&gt;Logic&lt;/span&gt;, so I started by &lt;span class="Apple-style-span"  style="color:#009900;"&gt;bouncing tracks&lt;/span&gt; to individual files, but that's not a good solution because even if a track only contains a short sample it will still result in a full-length and mostly empty wav-file... Furthermore all effects get baked in and all virtual instrument settings and midi information is lost.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And then I noticed the &lt;i&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;Export OMF&lt;/span&gt;&lt;/i&gt; item on the menu... Turns out OMF (Open Media Framework) is a decent solution. It packs all audio (no midi) into a single file leaving all clips intact and it imports flawlessly into &lt;span class="Apple-style-span"  style="color:#000099;"&gt;Logic&lt;/span&gt; (or, well. it loses most settings, ignores muted and archived tracks, etc. - but still, all clips are there... luckily I never got into mixing much...)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5202304884084468938?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5202304884084468938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5202304884084468938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5202304884084468938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5202304884084468938'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/08/sonar-to-logic.html' title='Sonar to Logic'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3270271580534746288</id><published>2009-07-22T09:43:00.006+02:00</published><updated>2009-07-22T10:46:34.384+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kontakt'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='native instruments'/><category scheme='http://www.blogger.com/atom/ns#' term='komplete'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual instruments'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>Komplete Logic</title><content type='html'>After some years of marveling at the wonders that &lt;a href="http://www.native-instruments.com/"&gt;Native Instruments&lt;/a&gt; are developing, I finally pushed the button when I heard about the current &lt;a href="http://www.native-instruments.com/#/en/products/producer/komplete-5/pricing/?page=389"&gt;Komplete 5 offer&lt;/a&gt; (now apperently sold out). So after 2 1/2 weeks of waiting and 6+ hours of installing/updating the 50+ GB of samples and instruments I'm now all set up to make some music again... (not that I really have the time right now, but I'm &lt;i&gt;set up for it&lt;/i&gt;! yay!) &lt;div&gt;&lt;br /&gt;&lt;div&gt;So expect the next game (the one after the two that I'm currently involved in) to have a nice home-made soundtrack! - BTW: This will be a step &lt;i&gt;down,&lt;/i&gt; as the soundtracks of both aforementioned games are being done by professionals... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lessons learnt so far: &lt;/div&gt;&lt;div&gt;&lt;b&gt;How to use virtual instruments in Logic:&lt;/b&gt; After an hour of trying to drop &lt;span class="Apple-style-span"  style="color:#000099;"&gt;KONTAKT 3.5&lt;/span&gt; into an &lt;span class="Apple-style-span"  style="color:#006600;"&gt;Insert Slot&lt;/span&gt; on a &lt;span class="Apple-style-span"  style="color:#006600;"&gt;Stereo Audio Track&lt;/span&gt;, deleting and re-building all &lt;span class="Apple-style-span"  style="color:#006600;"&gt;Audio Unit Caches&lt;/span&gt;, searching through support forums, and some desperate borderline-voodoo stuff, I finally had a look at the &lt;span class="Apple-style-span"  style="color:#000099;"&gt;Logic Express&lt;/span&gt; &lt;i&gt;Manual&lt;/i&gt; and learned that I have to make a&lt;span class="Apple-style-span"  style="color:#006600;"&gt; Software Instrument Track&lt;/span&gt; and set its &lt;span class="Apple-style-span"  style="color:#006600;"&gt;Input Slot&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt; to &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;KONTAKT&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;... Another lesson learnt the hard way...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;How to use 2 audio devices at once in Logic:&lt;/b&gt; Create an &lt;a href="http://support.apple.com/kb/HT1215"&gt;Aggregated Device&lt;/a&gt; with the &lt;span class="Apple-style-span"  style="color:#000099;"&gt;Audio MIDI Setup&lt;/span&gt; in Applications/Utilities&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3270271580534746288?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3270271580534746288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3270271580534746288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3270271580534746288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3270271580534746288'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/07/komplete-logic.html' title='Komplete Logic'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8576129809328005667</id><published>2009-07-17T13:23:00.003+02:00</published><updated>2009-07-17T14:29:34.355+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Unity: Converting int to float</title><content type='html'>&lt;div&gt;a quick lesson learnt:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;var num : float = 20 / 44; //result: 0&lt;div&gt;var num : float = parseFloat(20) / parseFloat(44); //result: 0.4545455&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and just to be complete:&lt;/div&gt;&lt;div&gt;var num : float = 20.0 / 44.0; //result: 0.4545455&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8576129809328005667?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8576129809328005667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8576129809328005667' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8576129809328005667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8576129809328005667'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/07/unity-converting-int-to-float.html' title='Unity: Converting int to float'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7536774227495152704</id><published>2009-07-06T13:21:00.012+02:00</published><updated>2009-08-28T12:38:38.058+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>Unity: Animated menus when the game is paused</title><content type='html'>You can pause your game by setting Time.timeScale = 0.0;&lt;br /&gt;If you set it to zero, Time.time will no longer increase and the FixedUpdate function will no longer be called. In principle this is great. It is not so great though if you want to have an animated menu on top of your paused game because...&lt;br /&gt;&lt;br /&gt;yield new WaitForSeconds(x); will no longer work,&lt;br /&gt;and Mathf.SmoothDamp will also stop because it relies on Time.deltaTime&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But there's a way around this:&lt;br /&gt;&lt;br /&gt;1) Create your own version of WaitForSeconds that works with realtime instead of gametime:&lt;br /&gt;&lt;br /&gt;Wait.js:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js;"&gt;&lt;br /&gt;static function WaitForSecRealtime(sec : float) {&lt;br /&gt;   var waitTime : float = Time.realtimeSinceStartup + sec;&lt;br /&gt;   while (Time.realtimeSinceStartup &amp;lt; waitTime) {&lt;br /&gt;      yield; //wait until next frame&lt;br /&gt;   } &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You can now call this from any script by doing something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js;"&gt;&lt;br /&gt;yield StartCoroutine(Wait.WaitForSecRealtime(2.0));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2) Calculate a realtime deltaTime and feed it into Mathf.SmoothDamp instead of the default Time.deltaTime&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: js;"&gt;&lt;br /&gt;xPos = Mathf.SmoothDamp(xPos, targetPos, xVel, sec, Mathf.Infinity, realtimeDeltaTime);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thanks a lot to Digitalos, ducket, NCarter and ToreTank on IRC #unity3d for helping me with this!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7536774227495152704?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7536774227495152704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7536774227495152704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7536774227495152704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7536774227495152704'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/07/unity-animated-menus-when-game-is.html' title='Unity: Animated menus when the game is paused'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1820228146611065058</id><published>2009-07-05T11:16:00.008+02:00</published><updated>2009-07-05T12:36:45.007+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='speedlap red'/><category scheme='http://www.blogger.com/atom/ns#' term='race'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Modo: A faster way to model race-tracks</title><content type='html'>&lt;div style="text-align: left;"&gt;I knew the &lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;Curve Extrude Tool&lt;/span&gt;, but what I didn't know was that you can not only draw a curve interactively, but &lt;span class="Apple-style-span"  style="color:#009900;"&gt;extrude along a pre-existing curve&lt;/span&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, let's create a track-curve. &lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;Geometry &gt; Draw &gt; Curve&lt;/span&gt; (or select the &lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;Curve Tool&lt;/span&gt; from the &lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;Basic Tools&lt;/span&gt; palette)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 223px; height: 325px;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/SlB_iSEczII/AAAAAAAAASw/QGbPWmPwNd0/s400/Picture+12.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5354920183886302338" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then create a simple polygon, select both the polygon and the curve and do a Curve Extrude (&lt;span class="Apple-style-span" style="color: rgb(204, 153, 51); "&gt;Geometry &gt; Duplicate &gt; Curve Extrude&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 286px;" src="http://3.bp.blogspot.com/_HZfKJkWv1NI/SlB_YmamikI/AAAAAAAAASo/XH2jiKZl4ek/s400/Picture+14.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5354920017549232706" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;By the way: This works with the new Profiles Feature that was added in 401. If you create a curve, then save it as a Profile (&lt;span class="Apple-style-span" style="color: rgb(204, 153, 51); "&gt;Geometry &gt; Profile &gt; Save...&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;) and select it in the Curve Extrude Tool, it uses the profile to perform the extrusion.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 286px;" src="http://2.bp.blogspot.com/_HZfKJkWv1NI/SlB_K2cAmnI/AAAAAAAAASg/0pzqfhFo1G4/s400/Picture+15.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5354919781331933810" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to adjust the curve interactively you can still do that. Just remember to check &lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;Create Polygon&lt;/span&gt; under &lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;Curve Path&lt;/span&gt; in the &lt;span class="Apple-style-span"  style="color:#CC9933;"&gt;Curve Extrude Tool&lt;/span&gt;, so you'll have the newest version of the Curve available once you drop the tool. (In case you want to re-create the mesh later on) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There's no denying that creating a track like that would be a bit more straightforward in C4D using 2 Splines and a Sweep NURBS (you wouldn't have to re-create it each time you wanted to change something), but I'm glad that it can be done in modo...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One advantages of doing it this way is: You get pretty clean UVs. - No need to use the UV Peeler Tool... (But only if you're extruding a polygon with a propper UV Layout - I haven't figured out if there's a way to get good UVs from a Profile...)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1820228146611065058?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1820228146611065058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1820228146611065058' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1820228146611065058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1820228146611065058'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/07/modo-faster-way-to-model-race-tracks.html' title='Modo: A faster way to model race-tracks'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HZfKJkWv1NI/SlB_iSEczII/AAAAAAAAASw/QGbPWmPwNd0/s72-c/Picture+12.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7547043930803908</id><published>2009-06-20T20:54:00.005+02:00</published><updated>2009-11-25T12:10:09.073+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='icon'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>How to prevent XCode from adding a shine to Icons automatically</title><content type='html'>Open &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Info.plist&lt;/span&gt;&lt;div&gt;Add a &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;new row&lt;/span&gt;&lt;/div&gt;&lt;div&gt;name it &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;UIPrerenderedIcon&lt;/span&gt;&lt;/div&gt;&lt;div&gt;right-click and set &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Value Typ&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;e&lt;/span&gt; to &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;Boolean&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;set the checkbox to &lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#3333FF;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;b&gt;Update&lt;/b&gt;: This is obsolete since Unity iPhone 1.5 - just check the &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;UIPrerendered Icon&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt; flag under &lt;/span&gt;Edit &gt; Project Settings &gt; Player&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7547043930803908?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7547043930803908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7547043930803908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7547043930803908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7547043930803908'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/06/how-to-prevent-xcode-from-adding-shine.html' title='How to prevent XCode from adding a shine to Icons automatically'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3079042516211751228</id><published>2009-06-15T14:30:00.007+02:00</published><updated>2009-06-15T15:11:02.724+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='speedlap red'/><category scheme='http://www.blogger.com/atom/ns#' term='race'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Getting past the physics-timestep barrier</title><content type='html'>A serious problem that any racing game has to deal with is the battle between &lt;span style="color: rgb(0, 153, 0);"&gt;laptime-accuracy&lt;/span&gt; and &lt;span style="color: rgb(0, 153, 0);"&gt;performance&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;On one hand you can't do too many physics calculations per second because it kills the frame-rate, but on the other hand you want to do as many as possible to be able to measure lap-times in as small timesteps as possible. (Set the physics to be calucalted 20x/sec and your highscores will only be measured in 0.05 second steps. Now have 1000 people play and 50 of them will share the top spot. Not good... - Set the timestep to 100x/sec and you'll have a lot more accuracy, but none of the 1000 people will enjoy playing at 5 fps.)&lt;br /&gt;&lt;br /&gt;But there's a clever way around this:&lt;br /&gt;Record the position of the vehicle at each physics calculation and once it crosses the finishing line, use the distance between the last and current points together with the position of the finishing line to calculate when exactly the vehicle must have crossed the line during the last timestep.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HZfKJkWv1NI/SjZFU119A4I/AAAAAAAAASQ/LugJJIqKc50/s1600-h/raceTimer.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 200px;" src="http://1.bp.blogspot.com/_HZfKJkWv1NI/SjZFU119A4I/AAAAAAAAASQ/LugJJIqKc50/s400/raceTimer.jpg" alt="" id="BLOGGER_PHOTO_ID_5347537831902118786" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3079042516211751228?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3079042516211751228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3079042516211751228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3079042516211751228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3079042516211751228'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/06/getting-past-physics-timestamp-barrier.html' title='Getting past the physics-timestep barrier'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HZfKJkWv1NI/SjZFU119A4I/AAAAAAAAASQ/LugJJIqKc50/s72-c/raceTimer.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1601231318219992177</id><published>2009-06-08T13:14:00.003+02:00</published><updated>2009-06-08T13:31:40.784+02:00</updated><title type='text'>Unity: Triggers and Colliders</title><content type='html'>I just learnt an important lesson: If I want a collider to react with a trigger+rigidbody, the rigidbody has to move to cause any effect. If trigger+rigidbody are on a static object, the colliders run right through it without a beep...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Triggers and Colliders&lt;/span&gt; are a bit weird...&lt;br /&gt;2 Triggers with no rigidbody don't do anything at all.&lt;br /&gt;Same goes for 2 Colliders with no rigidbody involved.&lt;br /&gt;2 Colliders where one has a rigidbody attached will cause a Collision.&lt;br /&gt;1 Collider+Rigidbody and 1 Trigger will cause a Trigger.&lt;br /&gt;1 Trigger+Rigidbody and 1 Collider will also cause a Trigger.&lt;br /&gt;1 Trigger+Rigidbody and a second Trigger will again cause a Trigger.&lt;br /&gt;&lt;br /&gt;It doesn't matter if the &lt;span style="color: rgb(0, 153, 0);"&gt;rigidbody&lt;/span&gt; uses gravity or is kinematic, &lt;span style="font-weight: bold;"&gt;BUT&lt;/span&gt; in all these cases &lt;span style="color: rgb(0, 153, 0);"&gt;the effect will only be there if the object with the rigidbody is moving&lt;/span&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1601231318219992177?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1601231318219992177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1601231318219992177' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1601231318219992177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1601231318219992177'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/06/unity-triggers-and-colliders.html' title='Unity: Triggers and Colliders'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1603423824637951347</id><published>2009-06-08T10:57:00.003+02:00</published><updated>2009-06-08T11:15:37.349+02:00</updated><title type='text'>3 random Photoshop tips</title><content type='html'>You can change &lt;span style="color: rgb(0, 153, 0);"&gt;multiple text layers&lt;/span&gt; at once: select all layers - activate&lt;span style="color: rgb(0, 153, 0);"&gt; Text tool&lt;/span&gt;, but don't click on any one text - change font/size/color/etc. in the &lt;span style="color: rgb(0, 153, 0);"&gt;tool-bar&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Shortcuts for &lt;span style="color: rgb(0, 153, 0);"&gt;Layer-Blend-Modes&lt;/span&gt;: &lt;span style="color: rgb(51, 51, 255);"&gt;Shift&lt;/span&gt; + &lt;span style="color: rgb(51, 51, 255);"&gt;Alt&lt;/span&gt; + &lt;span style="color: rgb(51, 51, 255);"&gt;M&lt;/span&gt; = Multiply (or: &lt;span style="color: rgb(51, 51, 255);"&gt;N&lt;/span&gt; = normal, &lt;span style="color: rgb(51, 51, 255);"&gt;O&lt;/span&gt; = Overlay, &lt;span style="color: rgb(51, 51, 255);"&gt;G&lt;/span&gt; = lighten, &lt;span style="color: rgb(51, 51, 255);"&gt;+&lt;/span&gt;/&lt;span style="color: rgb(51, 51, 255);"&gt;-&lt;/span&gt; on the numpad cycles through all of them)&lt;br /&gt;&lt;br /&gt;If you're making a &lt;span style="color: rgb(0, 153, 0);"&gt;selection&lt;/span&gt; (using the &lt;span style="color: rgb(0, 153, 0);"&gt;Rectangular Marquee Tool&lt;/span&gt;, for example) you can press and hold &lt;span style="color: rgb(51, 51, 255);"&gt;Space&lt;/span&gt; (all the while not letting go of the &lt;span style="color: rgb(51, 51, 255);"&gt;Mouse-Button&lt;/span&gt;) to move the selection. (thanks to Helga)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1603423824637951347?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1603423824637951347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1603423824637951347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1603423824637951347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1603423824637951347'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/06/3-random-photoshop-tips.html' title='3 random Photoshop tips'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7559422208093515682</id><published>2009-06-02T14:06:00.002+02:00</published><updated>2009-06-02T14:06:53.579+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><title type='text'>Unity Physics Optimizations</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Fixed Timestamp&lt;/span&gt;&lt;br /&gt;All physics-calculations happen at fixed intervals - if they are calculated more often they are more accurate but more processing power will be needed. Generally it might be a good idea to adjust this to your target framerate. So if you're targeting 25fps, you could set it to 0.04 (= 1/25). - This can be set under &lt;span style="color: rgb(0, 153, 0);"&gt;Edit &gt; Project Settings &gt; Time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rigidbody Interpolation&lt;/span&gt;&lt;br /&gt;If you set the physics timestamp lower than the framerat, physics objects might start to stutter. This can be fixed by setting the Rigidbody to Interpolate or Extrapolate in the Inspector. Unity will then calculate intermediate values for every frame where physics is not calculated based on the previous or next frame.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7559422208093515682?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7559422208093515682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7559422208093515682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7559422208093515682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7559422208093515682'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/06/unity-physics-optimizations.html' title='Unity Physics Optimizations'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5489438302908179308</id><published>2009-05-22T15:13:00.007+02:00</published><updated>2009-05-25T18:30:39.086+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='speedlap red'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><category scheme='http://www.blogger.com/atom/ns#' term='blackish'/><title type='text'>The Next Game...</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a aiotarget="false" aiotitle="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blackish.at/stuff/blogimages/vehicle_promo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 395px; height: 263px;" src="http://blackish.at/stuff/blogimages/vehicle_promo.jpg" alt="" border="0" /&gt;&lt;/a&gt; ...is a racing game&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5489438302908179308?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5489438302908179308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5489438302908179308' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5489438302908179308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5489438302908179308'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/05/next-game.html' title='The Next Game...'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4557657318095451079</id><published>2009-05-22T14:04:00.008+02:00</published><updated>2009-06-02T11:46:51.527+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='indie'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>AppStore Dangers</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Approval&lt;/span&gt;&lt;br /&gt;Let's say you're not one of the me-too developers and you spend months developing a controversial game and even though you're certain you're not violating any part of the &lt;a href="http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk_for_iphone_os_2.2.1__9m2621a__final/iphone_sdk_agt_ea0495.pdf"&gt;iPhone SDK Agreement&lt;/a&gt;, some anonymous Apple-employee deems your work inappropriate for the AppStore. ( - Before you even started development you contacted support and explained your idea to them asking if they saw any problem there, but of course you never heard back...) So you can reply to appreview@apple.com (of course no one ever mentions a name, a phone-number or a proper reason in those rejection mails) and argue, but unless you're able to &lt;a aiotitle="make a big fuzz" href="http://www.edibleapple.com/trent-reznor-speaks-out-on-the-app-store-approval-process/"&gt;make a big fuzz&lt;/a&gt;, you won't ever hear back from them. Unless you now want to cripple your game by changing random things and hopeing that this will make it more appropriate for the AppStore, the only thing left to do is to try and submit it again &lt;span style="font-style: italic;"&gt;as it is&lt;/span&gt; and hope for a more open-minded Mr. X to review your game this time around...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Payment&lt;/span&gt;&lt;br /&gt;Apple splits the world in 7 regions and you're only paid for each region where you sold more than $250. If you sold less your money won't go away, but Apple keeps it until you reach $250 in that region.&lt;br /&gt;At the end of each month you have to wait for the Monthly Reports. You'll get one from each of the 7 regions about 2-4 weeks after the end of the month, detailing how much you've sold in each region. Then you have to wait about another month until you're actually paid.&lt;br /&gt;So if you're spending your last money on developing the next big hit, remember to save enough so you can pay the rent for at least two more months.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Refunds&lt;/span&gt;&lt;br /&gt;Even though you only get about 70% of the price, if someone asks for a refund you pay the full 100%, leaving you at a 30% loss. So if are an indie and huge crowd decides they're unhappy with your App, they can effectively ruin you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These are just a few things to be aware of when developing for the iPhone...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4557657318095451079?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4557657318095451079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4557657318095451079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4557657318095451079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4557657318095451079'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/05/appstore-dangers.html' title='AppStore Dangers'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7068971854762897619</id><published>2009-04-21T13:51:00.010+02:00</published><updated>2009-04-21T14:47:49.762+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='TED'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='speedlap red'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Raw Data, XML and PHP</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Tim_Berners-Lee"&gt;Tim Berners-Lee&lt;/a&gt; did a talk at &lt;a href="http://www.ted.com/"&gt;TED&lt;/a&gt; about &lt;a aiotitle="open, linked data" href="http://www.ted.com/index.php/talks/tim_berners_lee_on_the_next_web.html"&gt;open, linked data&lt;/a&gt;, and even though the talk was a little weird, it was also sort of inspiring...&lt;br /&gt;In short his point is this: Don't just put your &lt;span style="color: rgb(0, 153, 0);"&gt;documents&lt;/span&gt; on the web, put your &lt;span style="color: rgb(0, 153, 0);"&gt;raw data&lt;/span&gt; on the web.&lt;br /&gt;&lt;br /&gt;So for the next game I will release &lt;span style="color: rgb(0, 153, 0);"&gt;highscores-data&lt;/span&gt; as &lt;span style="color: rgb(0, 153, 0);"&gt;XML-files&lt;/span&gt;! (Of course I'll also make a pretty website for all the people who don't appreciate raw data as much as Tim Berners-Lee...) The cool thing about the highscores in XML is that everyone who's willing can easily create his/her own highscores-site!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Now for the boring part:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The XML files are created with PHP5's &lt;a href="http://at2.php.net/manual/en/book.xmlwriter.php"&gt;XMLWriter&lt;/a&gt; class. Since I couldn't find a good enough example on how to use it, here's one for you:&lt;br /&gt;&lt;div class="code"&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;$writer = new XMLWriter();&lt;br /&gt;$writer-&gt;openURI('myXmlFile.xml');&lt;br /&gt;$writer-&gt;startDocument("1.0", "ISO-8859-1");&lt;br /&gt;$writer-&gt;setIndent(true);&lt;br /&gt;&lt;br /&gt;$writer-&gt;startElement("highscores");&lt;br /&gt;$writer-&gt;startElement("record");&lt;br /&gt;  $writer-&gt;startElement("rank");&lt;br /&gt;       $writer-&gt;text("1");&lt;br /&gt;  $writer-&gt;endElement();&lt;br /&gt;  $writer-&gt;startElement("player");&lt;br /&gt;       $writer-&gt;text("Racer1");&lt;br /&gt;  $writer-&gt;endElement();&lt;br /&gt;  $writer-&gt;startElement("countrycode");&lt;br /&gt;       $writer-&gt;text("US");&lt;br /&gt;  $writer-&gt;endElement();&lt;br /&gt;  $writer-&gt;startElement("laptime");&lt;br /&gt;     $writer-&gt;text("26.42");&lt;br /&gt;  $writer-&gt;endElement();&lt;br /&gt;$writer-&gt;endElement();&lt;br /&gt;$writer-&gt;endElement();&lt;br /&gt;&lt;br /&gt;$writer-&gt;endDocument();&lt;br /&gt;$writer-&gt;flush();&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;This will result in XML-file like &lt;a aiotarget="false" aiotitle="this" href="http://blackish.at/stuff/blogimages/xmltest.xml"&gt;this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'll post more info about where to access those files and how to use them once the game has launched...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7068971854762897619?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7068971854762897619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7068971854762897619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7068971854762897619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7068971854762897619'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/04/raw-data-xml-with-php.html' title='Raw Data, XML and PHP'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-788887533246035251</id><published>2009-04-15T13:10:00.008+02:00</published><updated>2009-04-21T14:48:29.835+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><category scheme='http://www.blogger.com/atom/ns#' term='piracy'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Возраст Керлинг</title><content type='html'>Wow. Yesterday saw &lt;span style="font-weight: bold;"&gt;1426 unique new players&lt;/span&gt; entering &lt;a href="http://games.blackish.at/ageofcurling"&gt;Age of Curling&lt;/a&gt;!&lt;br /&gt;Too bad only 50 of those actually paid for it...&lt;br /&gt;&lt;br /&gt;The 50%-off-sale together with the World Men's Championship caused a bit of a spike in sales, but nothing compared to yesterday's overall-users-spike when version 1.2.8 got cracked and put up on every single russian iphone site in the universe...&lt;br /&gt;&lt;br /&gt;Phew - good thing I live in fairytale-land where you don't have to pay for food and rent...&lt;br /&gt;Well, at least it's out there and people seem to like it... on that note (google translation):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Надеюсь, вам понравится игра, пожалуйста, сообщите своим друзьям!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PS: boring bonus-fact: Overall piracy rate isn't too bad. Currently it's at about 66%, so for each paying customer out there, there's 2 pirates... Rumor has it that for PC-games it's about 90%...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-788887533246035251?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/788887533246035251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=788887533246035251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/788887533246035251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/788887533246035251'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/04/blog-post.html' title='Возраст Керлинг'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4242551060162085521</id><published>2009-04-08T10:25:00.002+02:00</published><updated>2009-04-08T10:28:03.560+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='speedlap red'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><category scheme='http://www.blogger.com/atom/ns#' term='blackish'/><title type='text'>The Next Game</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blackish.at/stuff/blogimages/speedlap_bg.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 395px; height: 263px;" src="http://blackish.at/stuff/blogimages/speedlap_bg.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;MAY 2009&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;well, sorry, it's still a little too early to tell you any more than this... BUT: if you've got an iPhone or iPod Touch and want to be a beta-tester - &lt;a href="http://games.blackish.at/support/"&gt;let me know&lt;/a&gt; now :]&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4242551060162085521?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4242551060162085521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4242551060162085521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4242551060162085521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4242551060162085521'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/04/next-game.html' title='The Next Game'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-2449227300465794814</id><published>2009-04-08T09:39:00.004+02:00</published><updated>2009-04-08T10:01:05.567+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='planet'/><category scheme='http://www.blogger.com/atom/ns#' term='game ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='star'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='blackish'/><category scheme='http://www.blogger.com/atom/ns#' term='orbit'/><title type='text'>Not the next game</title><content type='html'>This was supposed to by the first BLACKISH game. I basically only started work on &lt;a href="http://games.blackish.at/ageofcurling"&gt;Age of Curling&lt;/a&gt; because there was a bug in the first release of &lt;span style="color: rgb(0, 0, 153);"&gt;unity iPhone&lt;/span&gt; that prevented me from finishing this game. But it's still alive and kicking, the bug has been fixed a long time ago, and it will see the light of day sometime this year...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HZfKJkWv1NI/SdxWqtShnoI/AAAAAAAAAR4/ik0WZOtIaW4/s1600-h/orbit.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_HZfKJkWv1NI/SdxWqtShnoI/AAAAAAAAAR4/ik0WZOtIaW4/s320/orbit.jpg" alt="" id="BLOGGER_PHOTO_ID_5322224151356874370" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-2449227300465794814?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/2449227300465794814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=2449227300465794814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2449227300465794814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2449227300465794814'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/04/not-next-game.html' title='Not the next game'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HZfKJkWv1NI/SdxWqtShnoI/AAAAAAAAAR4/ik0WZOtIaW4/s72-c/orbit.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-4967964199629990197</id><published>2009-03-31T12:07:00.006+02:00</published><updated>2009-03-31T16:51:02.650+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='fbx'/><category scheme='http://www.blogger.com/atom/ns#' term='lxo'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Modo script: Export As FBX</title><content type='html'>&lt;span style="color: rgb(0, 0, 153);"&gt;Unity&lt;/span&gt; doesn't support &lt;span style="color: rgb(0, 0, 153);"&gt;Modo&lt;/span&gt;'s LXO file format directly, so we have to use FBX. I can't save all my files directly as FBX though since FBX doesn't store much of the Modo-specific information that LXO saves (try saving an LXO as FBX, close it and open up the FBX, you'll see...)&lt;br /&gt;&lt;br /&gt;That's why I work with LXO files and only export to FBX every time I want to see the updated model in Unity. This results in going through the boring Export As dialog quite often. well... not anymore!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blackish.at/stuff/scripts/ExportAsFBX.zip"&gt;This little perl script&lt;/a&gt; exports your active scene as an FBX with the same filename and into the same directory! Install, set to a shortcut, 6 clicks and 10 seconds saved every time you export!&lt;br /&gt;&lt;br /&gt;Installation:&lt;br /&gt;• &lt;span style="color: rgb(0, 153, 0);"&gt;Copy&lt;/span&gt; into &lt;span style="color: rgb(0, 153, 0);"&gt;/Users/&lt;span style="color: rgb(51, 153, 153);"&gt;LoginName&lt;/span&gt;/Library/Application Support/Luxology/Scripts/&lt;/span&gt;&lt;br /&gt;• &lt;span style="color: rgb(0, 153, 0);"&gt;Execute&lt;/span&gt; by typing this into the command field at the bottom right in Modo: &lt;span style="color: rgb(0, 153, 0);"&gt;@ExportAsFBX.pl&lt;/span&gt;&lt;br /&gt;• Set a &lt;span style="color: rgb(0, 153, 0);"&gt;shortcut key&lt;/span&gt; by dragging the command area big enough to see further options, go to the &lt;span style="color: rgb(0, 153, 0);"&gt;Undos&lt;/span&gt; tab, &lt;span style="color: rgb(0, 153, 0);"&gt;right-click&lt;/span&gt; on the entry of @ExportAsFBX.pl that was just created when you ran the script, select &lt;span style="color: rgb(0, 153, 0);"&gt;Map Command to Key&lt;/span&gt;... and choose the shortcut you want!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HZfKJkWv1NI/SdHwR-C4KVI/AAAAAAAAARw/SI3QssOHd6Q/s1600-h/mapcommandtokey.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 223px;" src="http://3.bp.blogspot.com/_HZfKJkWv1NI/SdHwR-C4KVI/AAAAAAAAARw/SI3QssOHd6Q/s400/mapcommandtokey.jpg" alt="" id="BLOGGER_PHOTO_ID_5319296826404776274" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-4967964199629990197?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/4967964199629990197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=4967964199629990197' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4967964199629990197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/4967964199629990197'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/03/modo-script-export-as-fbx.html' title='Modo script: Export As FBX'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HZfKJkWv1NI/SdHwR-C4KVI/AAAAAAAAARw/SI3QssOHd6Q/s72-c/mapcommandtokey.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-6826070668568467860</id><published>2009-03-24T09:14:00.005+01:00</published><updated>2009-03-24T17:16:20.678+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tax'/><category scheme='http://www.blogger.com/atom/ns#' term='finances'/><category scheme='http://www.blogger.com/atom/ns#' term='costs'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='sales'/><category scheme='http://www.blogger.com/atom/ns#' term='indie'/><title type='text'>GDC from home</title><content type='html'>Since the cost of going to GDC equals funding of about 2 months of development, I'm watching the events from home. Here's some articles that caught my attention and some random comments to go with it though:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=22866"&gt;2D Boy&lt;/a&gt; talk about the &lt;span style="color: rgb(0, 153, 0);"&gt;development of World of Goo&lt;/span&gt;. They calculated that development &lt;span style="color: rgb(0, 153, 0);"&gt;cost about USD 96.000,-&lt;/span&gt; (that is for a team of two and two years of development time). Of those 96k they spent 4k on hardware, 1k on software, 5k on QA, 5k on localization and 5k for legal fees. That leaves 76k for living, thus around USD 1.500,- per person per month. (at the moment that converts to about EUR 1.100,-)&lt;br /&gt;&lt;br /&gt;That's pretty close to what I'm currently aiming for... It doesn't take big investments to become an indie game developer - you need a home, a computer+software and enough money for food. - With a normal place, normal insurance, no car and no special treats it should be possible to get by with around EUR 13.000,- per year. The problem is this though: If you don't manage to make a great game in that time, you could just as well take that money and throw it out the window... or go on a half-year vacation... or give it to charity... It's all about the &lt;span style="color: rgb(0, 153, 0);"&gt;quality&lt;/span&gt; and &lt;span style="color: rgb(0, 153, 0);"&gt;originality&lt;/span&gt; of the game!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=22871"&gt;Monkey Ball iPhone Lessons&lt;/a&gt;: mostly blah blah, but 2 interesting points: They think waiting a long while before dropping the price caused it to have a bigger impact then. Who knows... could be true...&lt;br /&gt;And number 2: For iPhone games, user reviews are much more important than any review score anywhere on the web. My experience is the same and I have data to support it... :]&lt;br /&gt;&lt;br /&gt;Skip this &lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=22882"&gt;boring list of game development tools&lt;/a&gt;, &lt;a href="http://unity3d.com"&gt;Unity&lt;/a&gt; is the way to go.&lt;br /&gt;&lt;br /&gt;Neill Young &lt;a href="http://www.edge-online.com/features/gdc-neil-young-sees-handheld-revolution"&gt;hypes his own business&lt;/a&gt; field, announces endless sequels to best-selling game and wow - ngmoco managed to secure &lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=22860"&gt;$10 million in funding&lt;/a&gt;? impressive...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-6826070668568467860?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/6826070668568467860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=6826070668568467860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6826070668568467860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6826070668568467860'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/03/gdc-from-home.html' title='GDC from home'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-2119260695497531623</id><published>2009-03-18T14:01:00.005+01:00</published><updated>2009-03-24T17:38:05.912+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Unity 2.5 is out and iPhone OS 3.0 was announced</title><content type='html'>&lt;a href="http://unity3d.com"&gt;Unity 2.5&lt;/a&gt; is out - New Interface, lots of improvements and Windows support. Looking good! Almost too good... oh please don't get bought by Autodesk or the likes...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://events.apple.com.edgesuite.net/0903lajkszg/event/index.html"&gt;iPhone OS 3.0&lt;/a&gt; &lt;a href="http://www.macworld.com/article/139401/2009/03/appleevent.html"&gt;was announced&lt;/a&gt;... lots of interesting stuff, but not all too much that will change my life drastically. The one novelty that caught my special attention was &lt;span style="color: rgb(0, 153, 0);"&gt;ingame-purchases&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;On one hand it's a &lt;span style="color: rgb(0, 153, 0);"&gt;good&lt;/span&gt; idea: it allows you to set a very &lt;span style="color: rgb(0, 153, 0);"&gt;low price-point for your game&lt;/span&gt; (which lets you stay competitive with all the low-price-crap - 25000 Apps are out there now), yet gives you the &lt;span style="color: rgb(0, 153, 0);"&gt;opportunity&lt;/span&gt; to make more money from people who like the game. &lt;span style="color: rgb(0, 153, 0);"&gt;BUT&lt;/span&gt; on the other hand it's very very very &lt;span style="color: rgb(0, 153, 0);"&gt;bad&lt;/span&gt; because I can already see &lt;span style="color: rgb(0, 153, 0);"&gt;everyone&lt;/span&gt; trying to charge for &lt;span style="color: rgb(0, 153, 0);"&gt;everything&lt;/span&gt; possible...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-2119260695497531623?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/2119260695497531623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=2119260695497531623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2119260695497531623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/2119260695497531623'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/03/unity-25-is-out-and-iphone-os-30-was.html' title='Unity 2.5 is out and iPhone OS 3.0 was announced'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1015384811030148438</id><published>2009-03-02T10:58:00.003+01:00</published><updated>2009-03-02T11:35:15.671+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='photoshop'/><category scheme='http://www.blogger.com/atom/ns#' term='alpha'/><title type='text'>Alpha Issues</title><content type='html'>&lt;span style="color: rgb(0, 0, 153);"&gt;Unity&lt;/span&gt; being able to read &lt;span style="color: rgb(0, 0, 153);"&gt;PSD&lt;/span&gt; files is great! But not so much if you're using &lt;span style="color: rgb(0, 153, 0);"&gt;transparency&lt;/span&gt;, since then all files end up as &lt;span style="color: rgb(0, 153, 0);"&gt;Premultiplied with White&lt;/span&gt;, yet they are treated as &lt;span style="color: rgb(0, 153, 0);"&gt;Straight RGB&lt;/span&gt; by Unity...&lt;br /&gt;&lt;br /&gt;Look at the first row here:&lt;br /&gt;&lt;br /&gt;&lt;a aiotarget="false" aiotitle="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HZfKJkWv1NI/SaulI4ZECLI/AAAAAAAAARo/JYtFzHdjQT8/s1600-h/alpha_issues_illu.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 170px;" src="http://1.bp.blogspot.com/_HZfKJkWv1NI/SaulI4ZECLI/AAAAAAAAARo/JYtFzHdjQT8/s320/alpha_issues_illu.jpg" alt="" id="BLOGGER_PHOTO_ID_5308518157781305522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Broken... Here's 2 ways to fix this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Create your own&lt;/span&gt; straight RGB + alpha channel. The simplest (slightly hackish) way to do this is the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Flatten everything (make sure you have no background layer), Select Pixels (Cmd+LMB on the layer thumb), switch to Channels, create New Channel, fill with black, deselect, invert.&lt;/li&gt;&lt;li&gt;switch back to the layers palette, duplicate your layer about 50 times until pretty much every pixel that's not black in the alpha is opaque here. fill the background in any color you like, it won't matter... (unless this is for a texture that will be mipmapped...  in that case choose the color wisely or use something like the (free) &lt;a href="http://www.flamingpear.com/goodies.html"&gt;Flaming Pear Solidify A&lt;/a&gt; Filter in Photoshop to fill the gaps...)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Save&lt;/span&gt; for Web and Devices&lt;span style="color: rgb(0, 153, 0);"&gt; as PNG&lt;/span&gt; - this will save it Straight, will look right in &lt;span style="color: rgb(0, 0, 153);"&gt;Unity&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1015384811030148438?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1015384811030148438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1015384811030148438' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1015384811030148438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1015384811030148438'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/03/alpha-issues.html' title='Alpha Issues'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HZfKJkWv1NI/SaulI4ZECLI/AAAAAAAAARo/JYtFzHdjQT8/s72-c/alpha_issues_illu.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7720200855674144490</id><published>2009-03-02T10:17:00.005+01:00</published><updated>2009-03-02T10:58:43.977+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='photoshop'/><category scheme='http://www.blogger.com/atom/ns#' term='alpha'/><category scheme='http://www.blogger.com/atom/ns#' term='transparency'/><title type='text'>Premultiplied vs. Straight RGB</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HZfKJkWv1NI/SaulD55MSMI/AAAAAAAAARg/GMdyLvF8DZk/s1600-h/alpha_issues_types.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 303px;" src="http://1.bp.blogspot.com/_HZfKJkWv1NI/SaulD55MSMI/AAAAAAAAARg/GMdyLvF8DZk/s400/alpha_issues_types.jpg" alt="" id="BLOGGER_PHOTO_ID_5308518072285153474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A simple &lt;span style="color: rgb(0, 153, 0);"&gt;example&lt;/span&gt; of what's the difference between &lt;span style="color: rgb(0, 153, 0);"&gt;premultiplied&lt;/span&gt; and &lt;span style="color: rgb(0, 153, 0);"&gt;straight&lt;/span&gt; footage: Here's how a &lt;span style="color: rgb(0, 153, 0);"&gt;black pixel at 50% opacity&lt;/span&gt; is treated in two different cases:&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Premultiplied with white&lt;/span&gt;: in RGB the pixel is saved as  grey (half-transparent black on white) and the Alpha-Channel is the same grey (fully opaque is white, fully transparent is black, so 50% opaque is 50% grey)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Straight&lt;/span&gt;: RGB: any transparency is being ignored, the black pixel is saved as straight black. Alpha: 50% grey&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;Note: Premultiplied with black would coincidentally yield the same result as Straight in this case - but not if your image contains anything else than black and transparent blacks!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No matter what the RGB is, the &lt;span style="color: rgb(0, 153, 0);"&gt;Alpha is always the same&lt;/span&gt;.&lt;br /&gt;So why would anyone ever want to use Premultiplied?&lt;br /&gt;Well, 2 reasons:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Some programs can divide the background-color out of the image and display a proper result (check the Footage Interpretation dialogue in After Effects for example), it's only a problem when a program interprets Premutliplied footage as Straight...&lt;br /&gt;&lt;/li&gt;&lt;li&gt;because premultiplied footage is easier to look at and doesn't look broken to anyone who isn't "in the know"...&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7720200855674144490?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7720200855674144490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7720200855674144490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7720200855674144490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7720200855674144490'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/03/premultiplied-vs-straight-rgb.html' title='Premultiplied vs. Straight RGB'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HZfKJkWv1NI/SaulD55MSMI/AAAAAAAAARg/GMdyLvF8DZk/s72-c/alpha_issues_types.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1951579809310535501</id><published>2009-02-26T14:57:00.006+01:00</published><updated>2009-02-26T15:24:30.809+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='collision'/><category scheme='http://www.blogger.com/atom/ns#' term='race'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><category scheme='http://www.blogger.com/atom/ns#' term='modeling'/><title type='text'>Modeling Racetrack Collision Meshes</title><content type='html'>While working on a racing-game-idea, I noticed that sometimes parts of a track seemed to be really bumpy for no apparent reason. Have a look:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HZfKJkWv1NI/SaagA4JRXaI/AAAAAAAAAQw/WRG5rmW5KZY/s1600-h/racetrack_smooth.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 267px; height: 223px;" src="http://1.bp.blogspot.com/_HZfKJkWv1NI/SaagA4JRXaI/AAAAAAAAAQw/WRG5rmW5KZY/s400/racetrack_smooth.jpg" alt="" id="BLOGGER_PHOTO_ID_5307105147834424738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Looks alright, doesn't it? Well, as I already suggested there is of course a reason for this and it's actually not all that non-apparent now that I figured it out...&lt;br /&gt;&lt;br /&gt;What happens is this: I model a track in quads, change it around a lot, finally export/import it and notice that it's bumpy in &lt;span style="color: rgb(51, 0, 153);"&gt;Unity&lt;/span&gt;. The reason is that the &lt;span style="color: rgb(0, 153, 0);"&gt;quads get triangulated automatically&lt;/span&gt; on import as game-engines only work with triangles. This is not a problem by itself, it only &lt;span style="color: rgb(0, 153, 0);"&gt;becomes a problem if the quads are non-planar&lt;/span&gt; (- that means that not all 4 vertices of a polygon are on the same plane). If you triangulate non-planar quads you get this result:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HZfKJkWv1NI/SaaijrORt_I/AAAAAAAAAQ4/7fYXDnSraYA/s1600-h/racetrack_triangulated.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 267px; height: 223px;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/SaaijrORt_I/AAAAAAAAAQ4/7fYXDnSraYA/s400/racetrack_triangulated.jpg" alt="" id="BLOGGER_PHOTO_ID_5307107944684435442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;not so nice... now there's several possible &lt;span style="color: rgb(0, 102, 0);"&gt;solutions&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;1.) Try to make all polygons &lt;span style="color: rgb(0, 153, 0);"&gt;planar by hand&lt;/span&gt; - this is a pain, as fixing one breaks two others...&lt;br /&gt;2.) &lt;span style="color: rgb(0, 153, 0);"&gt;Subdivide&lt;/span&gt; until you have enough polygons to ensure a smooth ride - this is suboptimal because performance goes down if the collision mesh is too dense. But how much polygons you need depends very much on your track and game, so only testing can determine if this is a viable solution...&lt;br /&gt;3.) &lt;span style="color: rgb(0, 153, 0);"&gt;Change the texture&lt;/span&gt; to something that looks bumpy ;)&lt;br /&gt;&lt;br /&gt;or 4.)&lt;span style="color: rgb(0, 102, 0);"&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;Recreate&lt;/span&gt;&lt;/span&gt; the polygons in a way that ensures they're planar: Create a &lt;span style="font-weight: bold;"&gt;Cone&lt;/span&gt; that contains the wanted curve, delete the base, flip the polygons, delete all the other polygons you don't need and replace those non-planar troublemakers...&lt;br /&gt;&lt;br /&gt;&lt;a aiotitle="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HZfKJkWv1NI/SaakMOMsezI/AAAAAAAAARA/3KGER1ajJYU/s1600-h/racetracl_cone.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 267px; height: 223px;" src="http://1.bp.blogspot.com/_HZfKJkWv1NI/SaakMOMsezI/AAAAAAAAARA/3KGER1ajJYU/s400/racetracl_cone.jpg" alt="" id="BLOGGER_PHOTO_ID_5307109740779436850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;PS: &lt;span style="color: rgb(51, 0, 153);"&gt;Modo&lt;/span&gt;-Tip: In the &lt;span style="font-style: italic; color: rgb(0, 153, 0);"&gt;Statistics&lt;/span&gt; pane under &lt;span style="font-style: italic; color: rgb(0, 153, 0);"&gt;Polygons &gt; By Type &gt; Non-Planar&lt;/span&gt; you can select all non-planar polygons to see where troubles might occur&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1951579809310535501?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1951579809310535501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1951579809310535501' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1951579809310535501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1951579809310535501'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/02/modeling-racetrack-collision-meshes.html' title='Modeling Racetrack Collision Meshes'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HZfKJkWv1NI/SaagA4JRXaI/AAAAAAAAAQw/WRG5rmW5KZY/s72-c/racetrack_smooth.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5875729138917166684</id><published>2009-02-19T14:34:00.006+01:00</published><updated>2009-02-19T19:16:42.277+01:00</updated><title type='text'>UnityScript: Splitting strings and some type-conversion</title><content type='html'>How to split a string of values into an array and convert the result from string to float:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 0);font-size:85%;" &gt;var myString : String = "22.1|23.2|26.8|31.4";&lt;br /&gt;var myStringArray = myString.Split(char.Parse("|"));&lt;br /&gt;var myFloatArray = new float[myStringArray.length];&lt;br /&gt;&lt;br /&gt;for(i = 0; i &lt; myStringArray.length; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myFloatArray[i] = parseFloat(myStringArray[i]);&lt;br /&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5875729138917166684?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5875729138917166684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5875729138917166684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5875729138917166684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5875729138917166684'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/02/unityscript-splitting-strings-and-some.html' title='UnityScript: Splitting strings and some type-conversion'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8609697432260954836</id><published>2009-02-17T11:15:00.007+01:00</published><updated>2011-11-22T14:53:56.027+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='tax'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='appstore'/><category scheme='http://www.blogger.com/atom/ns#' term='sales'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='indie'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Making a living with iPhone games</title><content type='html'>&lt;span style="color: #000099;"&gt;You might want to skip this post, it's all &lt;b&gt;tax&lt;/b&gt; talk and the numbers are specific for &lt;b&gt;Austria&lt;/b&gt;...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Anyway, what I wanted to share are some of my calculations as to what's &lt;span style="color: #009900;"&gt;the bare minimum a single indie-game-iPhone-developer needs to sell to survive.&lt;/span&gt; (If you ever want to go on vacation, get a car, have kids or something like that, you should aim a little higher...)&lt;br /&gt;&lt;br /&gt;If you stumbled upon this looking for &lt;span style="color: #000099; font-style: italic;"&gt;actual app store iphone game sales numbers&lt;/span&gt;, get some &lt;a aiotitle="here" href="http://www.markj.net/christmas-day-4x-sales-boost-for-iphone-games-hit-tennis-numbers/"&gt;here&lt;/a&gt;, &lt;a href="http://bang2d.com/?p=53"&gt;here&lt;/a&gt;, &lt;a href="http://www.fieryferret.com/downloads/iPhone%20Lumen%20Statistics.pdf"&gt;here&lt;/a&gt;, &lt;a href="http://forum.unity3d.com/viewtopic.php?t=16474"&gt;here&lt;/a&gt;, &lt;a href="http://forum.unity3d.com/viewtopic.php?t=15316&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=crazy+snowboard&amp;amp;start=60"&gt;here&lt;/a&gt;, maybe &lt;a href="http://www.businessinsider.com/2008/9/iphone-developer-i-ll-do-anything-apple-tells-me-to-do-i-just-made-250k-on-the-app-store-in-two-months-aapl-"&gt;here&lt;/a&gt; or if you really want to even &lt;a href="http://www.joelcomm.com/more_exciting_app_store_news.html"&gt;here&lt;/a&gt; for god's sake. But now to my story:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;App Store&lt;/span&gt;&lt;br /&gt;Hypothetical iPhone Developer X has made a little game and is selling it&lt;span style="color: #006600;"&gt;&lt;/span&gt; on the &lt;span style="color: #009900;"&gt;App Store&lt;/span&gt;. How much does he need to sell to make a living?&lt;br /&gt;&lt;br /&gt;Let's say he has &lt;span style="color: #009900;"&gt;3210 sales&lt;/span&gt; in one month (about 107 a day) at &lt;span style="color: #009900;"&gt;EUR 0,79&lt;/span&gt;. &lt;span style="font-size: 85%;"&gt;&lt;span style="color: #666666;"&gt;(or 1600 at 1,59 | 855 at 2,99)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;3210 sales x EUR 0,79 = &lt;span style="color: #009900;"&gt;EUR 2.535,90&lt;/span&gt;. Wow, no trouble surviving on that, right?&lt;br /&gt;&lt;br /&gt;End of story.&lt;br /&gt;&lt;br /&gt;Or wait, we forgot to subtract a few things. &lt;span style="color: #009900;"&gt;Apple keeps&lt;/span&gt; upwards of &lt;span style="color: #009900;"&gt;30%&lt;/span&gt;, the rest of the money is transferred to him from 7 different places so he might have to pay a transaction fee of about EUR 10,- for all payments coming in a different currency from outside the EU and what he gets also depends on where his game was bought (what the actual price is in that country) and what the exchange rate is at the time of the transaction.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;X's bank account&lt;/span&gt;&lt;br /&gt;What makes its way onto &lt;span style="color: #009900;"&gt;X's bank account&lt;/span&gt;&lt;span style="color: #009900;"&gt; &lt;/span&gt;will be more like &lt;span style="color: #009900;"&gt;EUR 1.500,-&lt;/span&gt; I'll call this his &lt;span style="color: #009900; font-style: italic;"&gt;turnover&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- &lt;span style="color: #009900;"&gt;20% Value Added Tax:&lt;/span&gt;&amp;nbsp;well, not in this case, no VAT left in the money he gets from Apple.&lt;br /&gt;&lt;br /&gt;- &lt;span style="color: #009900;"&gt;work related expenses&lt;/span&gt;, let's assume &lt;span style="color: #009900;"&gt;EUR 200,-&lt;/span&gt; for internet, phone, domain hosting, work-related insurances (liability, legal protection) and all other stuff he can deduct from tax.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Income Before Tax&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;EUR 1.300,-&lt;/span&gt; left now. This is called &lt;span style="color: #009900; font-style: italic;"&gt;Income Before Tax&lt;/span&gt; and the following is subtracted from it:&lt;br /&gt;&lt;br /&gt;-&lt;span style="color: #009900;"&gt; 25.18%&lt;/span&gt; for &lt;span style="color: #009900;"&gt;Social Security&lt;/span&gt; (EUR 327.34)&lt;br /&gt;(16% retirement insurance, 7.65% health insurance, 1.53% self employment provision)&lt;br /&gt;&lt;br /&gt;- &lt;span style="color: #009900;"&gt;EUR 7,84 Accident Insurance&lt;/span&gt; (fixed amount of EUR 94,08 annually)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Income&lt;/span&gt;&lt;br /&gt;What's left now is his &lt;span style="color: #009900; font-style: italic;"&gt;Income&lt;/span&gt;&lt;span style="color: #009900;"&gt;: &lt;/span&gt;&lt;span style="color: #009900;"&gt;EUR 964,82&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- &lt;span style="color: #009900;"&gt;income tax:&lt;/span&gt;&amp;nbsp;Almost none in this case, as the first EUR 11.000,- per year are tax-free, but let's assume he has an income of around EUR 1.000,- per month or EUR 12.000,- per year. That's EUR 1.000,- above the limit and X has to pay 36.5% taxes for that amount, which is EUR 365,- annually,&amp;nbsp;or&amp;nbsp;&lt;span class="Apple-style-span" style="color: #7f6000;"&gt;EUR 30,42 income tax for this month.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So of the initial &lt;span style="color: #009900;"&gt;EUR 2535,90&lt;/span&gt;...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Apple gets about &lt;span style="color: #009900;"&gt;EUR 1000,-&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #009900;"&gt;EUR 335,18&lt;/span&gt; are payed for social security&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #009900;"&gt;EUR 30,42&amp;nbsp;&lt;/span&gt;are payed as income tax&lt;/li&gt;&lt;li&gt;&lt;span style="color: #009900;"&gt;EUR 200,-&lt;/span&gt; were assumed for work expenses &lt;/li&gt;&lt;/ul&gt;and that leaves X with &lt;span style="color: #009900;"&gt;EUR 970,30&lt;/span&gt;&amp;nbsp;to pay for rent, food, transportation, savings, entertainment, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #666666; font-size: 85%;"&gt;PS: Of course all the taxes aren't calculated monthly, where would be the fun in that? Instead for social security for example you tell them expected annual earnings, they calculate the tax off of that, you pay it quarterly in advance and at the end of the year there's a tax invoice being made that has all the right numbers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;Put half of what you get into a separate bank account, don't touch it for the rest of the year (until after the next tax invoice) and you should be on the safe side...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8609697432260954836?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8609697432260954836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8609697432260954836' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8609697432260954836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8609697432260954836'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/02/making-living-with-iphone-games.html' title='Making a living with iPhone games'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7673027422854064580</id><published>2009-02-16T17:42:00.004+01:00</published><updated>2009-02-16T18:12:22.998+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game ideas'/><category scheme='http://www.blogger.com/atom/ns#' term='inspiration'/><category scheme='http://www.blogger.com/atom/ns#' term='astronomy'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>A solar system</title><content type='html'>&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 368px; height: 369px; border:none;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/SZmYOK1UtoI/AAAAAAAAAQc/R0EqfhnxV-c/s400/sun.jpg" alt="" id="BLOGGER_PHOTO_ID_5303437405399070338" border="0" /&gt;&lt;br /&gt;This is the sun, it's about 10 cm big. The earth is traveling through space somewhere around 12 m from here. It's not even 1mm big and traveling at a slow 4.5mm per hour...&lt;br /&gt;&lt;br /&gt;Let's say you're working on a game set in space and you wanted to make it a bit more realistic than the average space-game - you might not want to be all too accurate with the numbers or it will be very very empty and very very slow...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7673027422854064580?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7673027422854064580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7673027422854064580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7673027422854064580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7673027422854064580'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/02/this-is-sun-its-about-10-cm-big.html' title='A solar system'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HZfKJkWv1NI/SZmYOK1UtoI/AAAAAAAAAQc/R0EqfhnxV-c/s72-c/sun.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3297591377777491200</id><published>2009-01-29T18:09:00.004+01:00</published><updated>2009-09-16T21:28:38.825+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='motion design'/><category scheme='http://www.blogger.com/atom/ns#' term='mograph'/><title type='text'>Age of Curling Trailer</title><content type='html'>&lt;object width="411" height="252"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6NOlvg4O9ps&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/6NOlvg4O9ps&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="411" height="252"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3297591377777491200?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3297591377777491200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3297591377777491200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3297591377777491200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3297591377777491200'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/01/age-of-curling-trailer.html' title='Age of Curling Trailer'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1258036913169227500</id><published>2009-01-21T16:12:00.004+01:00</published><updated>2009-01-21T16:50:42.299+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='singleplayer'/><title type='text'>Age of Curling: AI</title><content type='html'>Since a lot of people asked for it, I've been working on a &lt;span style="color: rgb(0, 0, 153);"&gt;computer opponent&lt;/span&gt; to play against. After some weeks of work it's now close to being done and I'll let you have a first look at it!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HZfKJkWv1NI/SXc8Wm8mSBI/AAAAAAAAAQQ/OP_BX9rFI9c/s1600-h/AI_Preview.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://2.bp.blogspot.com/_HZfKJkWv1NI/SXc8Wm8mSBI/AAAAAAAAAQQ/OP_BX9rFI9c/s400/AI_Preview.jpg" alt="" id="BLOGGER_PHOTO_ID_5293766246106810386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;What was that? AI can't really be seen in a screenshot? Ok, well then let me tell you something about it instead... ;)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It analyzes the position of the stones in play and decides on a throw based on the current score, the position of the stones and the phase of the end.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It knows more than 50 moves (and I'll keep adding even more with every update)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It has a skipper to give you a basic idea of what it's trying to achieve&lt;/li&gt;&lt;li&gt;You don't have to watch the entire throw, you can fast forward right to the point where it gets interesting (= where the stone crosses the far hog-line)&lt;/li&gt;&lt;/ul&gt;Now just a few more days of polish and testing and it will be ready to go live!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1258036913169227500?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1258036913169227500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1258036913169227500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1258036913169227500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1258036913169227500'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/01/age-of-curling-ai.html' title='Age of Curling: AI'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HZfKJkWv1NI/SXc8Wm8mSBI/AAAAAAAAAQQ/OP_BX9rFI9c/s72-c/AI_Preview.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-3279576161210907368</id><published>2009-01-20T17:24:00.005+01:00</published><updated>2009-01-21T14:41:26.664+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='arrays'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Standard Arrays can not be typed</title><content type='html'>&lt;span style="font-size:100%;"&gt;A long-time mistake of mine: Trying to type sta&lt;/span&gt;&lt;span style="font-size:100%;"&gt;ndard arrays like this:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;var arr = new Array(int); //stupid - standard arrays can't be typed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is very wrong, as it puts the &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Type&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;Int32&lt;/span&gt;&lt;span style="font-size:100%;"&gt; into the newly created array which of course causes problems once you're trying to get to all those other &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;ints&lt;/span&gt;&lt;span style="font-size:100%;"&gt; that you stored in the array. So everytime I tried to use this I had to come up with some other solution in the end... converting back and forth from standard to builtin, etc...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The correct way is of course to just create the Array with &lt;span style="color: rgb(0, 0, 153);font-size:100%;" &gt;var arr = new Array();&lt;/span&gt; - then fill it and once you're trying to use the contents you type each value as you take it out of the array...&lt;br /&gt;&lt;br /&gt;Builtin-Arrays on the other hand are typed, so if you don't need the extra functionality and flexibility, just do it this way:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;var posGridA = new int[7]; //builtin arrays are typed!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Thanks to NCarter for enlightening me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-3279576161210907368?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/3279576161210907368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=3279576161210907368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3279576161210907368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/3279576161210907368'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/01/standard-arrays-can-not-be-typed.html' title='Standard Arrays can not be typed'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-37558195439556927</id><published>2009-01-15T13:03:00.004+01:00</published><updated>2009-01-15T13:12:07.871+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>changing prefab-script-variables from within the game</title><content type='html'>&lt;span class="postbody"&gt;I was looking for a way to save moves that happen in the game. After some discussions on IRC and getting very close to writing out textfiles, I figured out a way to do it more easily:&lt;br /&gt;&lt;br /&gt;If I &lt;span style="color: darkblue;"&gt;Resource.Load("name", type)&lt;/span&gt; a script that I have on a prefab in the Resources folder &lt;span style="color: darkblue;"&gt;without instantiating it&lt;/span&gt;, I can then write my values in there and they persist even when I stop the game! &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-37558195439556927?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/37558195439556927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=37558195439556927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/37558195439556927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/37558195439556927'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/01/changing-prefab-script-variables-from.html' title='changing prefab-script-variables from within the game'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-6274717073016243534</id><published>2009-01-07T12:02:00.004+01:00</published><updated>2009-01-07T12:24:03.244+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='age of curling'/><category scheme='http://www.blogger.com/atom/ns#' term='texture'/><category scheme='http://www.blogger.com/atom/ns#' term='pvrtc'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>PVRTC Texture Compression News</title><content type='html'>Turns out &lt;a href="http://forum.unity3d.com/viewtopic.php?t=17103"&gt;textures only get PVRTC-compressed if they are square&lt;/a&gt;, but Unity only complains if the size is not a power of two. So it doesn't complain about a texture being 1024x512px, but this texture also doesn't get compressed. The result of this is that 3 of the now 4 venues in Age of Curling have uncompressed textures. Still that's 2x good news for the players:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Since the game is optimized enough to still run at great speed even with uncompressed textures, the 3 older venues have crisp textures without compression artifacts!&lt;/li&gt;&lt;li&gt;The new venue (plus future venues) can use bigger textures since we can fit more of them into the tiny iPhone-memory!&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-6274717073016243534?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/6274717073016243534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=6274717073016243534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6274717073016243534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6274717073016243534'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/01/pvrtc-texture-compression-news.html' title='PVRTC Texture Compression News'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7474174655850321919</id><published>2009-01-04T20:16:00.005+01:00</published><updated>2009-01-04T20:21:43.495+01:00</updated><title type='text'>Sneak Preview</title><content type='html'>&lt;a href="http://games.blackish.at/ageofcurling/"&gt;Age of Curling&lt;/a&gt; v1.1 will be out in a few days. Among other things, the update brings a new venue - an 18th century Scottish castle:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HZfKJkWv1NI/SWELdJWpHGI/AAAAAAAAAPo/FytVcUWefYE/s1600-h/00scotland.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://1.bp.blogspot.com/_HZfKJkWv1NI/SWELdJWpHGI/AAAAAAAAAPo/FytVcUWefYE/s400/00scotland.jpg" alt="" id="BLOGGER_PHOTO_ID_5287520032864672866" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7474174655850321919?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7474174655850321919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7474174655850321919' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7474174655850321919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7474174655850321919'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2009/01/sneak-preview.html' title='Sneak Preview'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HZfKJkWv1NI/SWELdJWpHGI/AAAAAAAAAPo/FytVcUWefYE/s72-c/00scotland.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-101751878846160919</id><published>2008-12-28T13:06:00.004+01:00</published><updated>2008-12-28T18:50:06.584+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snapping'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>Snapping in Modo</title><content type='html'>As intuitive as most parts of modo are, I don't think snapping is all that easy to "get"... Or at least I haven't really gotten it entirely yet. But I came one step closer today:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Task:&lt;/span&gt; Find an easy way to snap a &lt;span style="color: rgb(0, 0, 153);"&gt;vertex&lt;/span&gt; to another &lt;span style="color: rgb(0, 0, 153);"&gt;vertex&lt;/span&gt; within the same &lt;span style="color: rgb(0, 0, 153);"&gt;Item&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Solution:&lt;/span&gt; Enable &lt;span style="color: rgb(0, 0, 153);"&gt;Snapping&lt;/span&gt; in &lt;span style="color: rgb(0, 0, 153);"&gt;Geometry Mode&lt;/span&gt; and then in the &lt;span style="color: rgb(0, 0, 153);"&gt;Tool Properties&lt;/span&gt; on the left, make sure to select either &lt;span style="color: rgb(0, 0, 153);"&gt;"Foreground&lt;/span&gt;" or "&lt;span style="color: rgb(0, 0, 153);"&gt;Both"&lt;/span&gt; under &lt;span style="color: rgb(0, 0, 153);"&gt;Layers&lt;/span&gt; (not realizing that this option exists was my long-time mistake, as it was set to &lt;span style="color: rgb(0, 0, 153);"&gt;"Background"&lt;/span&gt; by default). Now press [t] for the &lt;span style="color: rgb(0, 0, 153);"&gt;Element Move Tool&lt;/span&gt; and start snapping vertices!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bonus Tip:&lt;/span&gt; Check the &lt;span style="color: rgb(0, 0, 153);"&gt;Snaps and Precision&lt;/span&gt; pop-out-menu unter Basic Tools...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-101751878846160919?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/101751878846160919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=101751878846160919' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/101751878846160919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/101751878846160919'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/12/snapping-in-modo.html' title='Snapping in Modo'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8440514889653714735</id><published>2008-12-15T10:14:00.004+01:00</published><updated>2008-12-15T11:19:44.811+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Age of Curling</title><content type='html'>&lt;div style="text-align: left;"&gt;Out now for the iPhone!&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HZfKJkWv1NI/SUYgnisJMBI/AAAAAAAAAPE/Mj4Igl3rTGo/s1600-h/02ageofcurling.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/SUYgnisJMBI/AAAAAAAAAPE/Mj4Igl3rTGo/s400/02ageofcurling.jpg" alt="" id="BLOGGER_PHOTO_ID_5279943476837429266" border="0" /&gt;&lt;/a&gt;&lt;a href="http://games.blackish.at/ageofcurling/"&gt;http://games.blackish.at/ageofcurling/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8440514889653714735?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8440514889653714735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8440514889653714735' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8440514889653714735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8440514889653714735'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/12/age-of-curling.html' title='Age of Curling'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HZfKJkWv1NI/SUYgnisJMBI/AAAAAAAAAPE/Mj4Igl3rTGo/s72-c/02ageofcurling.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-91839434802385541</id><published>2008-12-08T19:44:00.001+01:00</published><updated>2008-12-08T19:59:20.938+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='camera'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>Modo: Spherical Maps</title><content type='html'>More details about my findings when trying to create spherical reflection maps...&lt;br /&gt;This is a scene from the iPhone-game I'm working on:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HZfKJkWv1NI/ST1ivnUua7I/AAAAAAAAAOM/YqARTuxDBh4/s1600-h/winnipeg_screenshot.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 223px;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/ST1ivnUua7I/AAAAAAAAAOM/YqARTuxDBh4/s400/winnipeg_screenshot.jpg" alt="" id="BLOGGER_PHOTO_ID_5277482908497374130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I placed a sphere in the center of the scene, applied a 100% reflective material (no specular or other stuff) and tried &lt;span style="color: rgb(0, 102, 0);"&gt;Render &gt; Bake to Render Outputs&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HZfKJkWv1NI/ST1l0JsCQdI/AAAAAAAAAOk/P9mXVRvJW84/s1600-h/sphericalmap_wide_broken.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 190px;" src="http://2.bp.blogspot.com/_HZfKJkWv1NI/ST1l0JsCQdI/AAAAAAAAAOk/P9mXVRvJW84/s400/sphericalmap_wide_broken.jpg" alt="" id="BLOGGER_PHOTO_ID_5277486284976308690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Well... Not all that great. Turns out the position of the camera is quite important here too. The trick is to place the camera inside the sphere:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HZfKJkWv1NI/ST1mfdOZ8BI/AAAAAAAAAOs/e7y6KZ_5iLg/s1600-h/sphericalmap_wide_perfect.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 190px;" src="http://2.bp.blogspot.com/_HZfKJkWv1NI/ST1mfdOZ8BI/AAAAAAAAAOs/e7y6KZ_5iLg/s400/sphericalmap_wide_perfect.jpg" alt="" id="BLOGGER_PHOTO_ID_5277487028955115538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Voilà - perfect result.&lt;br /&gt;&lt;br /&gt;PS: Well, a couple of other things needed to be set up too... Render/Global Illumination: Ambient Intensity to 1.0, Ambient Color to pure white, Final Color Output: Gamma to 1.0...&lt;br /&gt;&lt;br /&gt;Well, just see for yourself. Here's a file containing the setup for both cubemap rendering and spherical map baking: &lt;a href="http://www.gamegui.net/temp/cubemapBakingSetupEmpty.lxo"&gt;cubemapBakingSetupEmpty.lxo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-91839434802385541?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/91839434802385541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=91839434802385541' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/91839434802385541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/91839434802385541'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/12/modo-spherical-maps.html' title='Modo: Spherical Maps'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HZfKJkWv1NI/ST1ivnUua7I/AAAAAAAAAOM/YqARTuxDBh4/s72-c/winnipeg_screenshot.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7798882897088795890</id><published>2008-12-08T19:06:00.008+01:00</published><updated>2008-12-08T19:59:11.645+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='camera'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>Modo: Rendering Cubemaps</title><content type='html'>So... A few more details about the cubemap rendering setup:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HZfKJkWv1NI/ST1skWgPlzI/AAAAAAAAAO0/KBP95PFe9bo/s1600-h/cubemap_camsetup.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 217px;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/ST1skWgPlzI/AAAAAAAAAO0/KBP95PFe9bo/s400/cubemap_camsetup.jpg" alt="" id="BLOGGER_PHOTO_ID_5277493710119999282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Cameras set up so that the image-planes meet at the edges, oriented correctly and named correctly.&lt;br /&gt;Now set the Renderer to output a square size and render an image with each cam (if someone finds a way to automate this with a script or something, please let me know - it gets boring after a while...).&lt;br /&gt;Assemble the pieces in Photoshop (or the likes) and done we are:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HZfKJkWv1NI/ST1tYYrvbhI/AAAAAAAAAO8/WisXPoEZouI/s1600-h/cubemap_done.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 380px; height: 285px;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/ST1tYYrvbhI/AAAAAAAAAO8/WisXPoEZouI/s400/cubemap_done.jpg" alt="" id="BLOGGER_PHOTO_ID_5277494604058291730" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7798882897088795890?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7798882897088795890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7798882897088795890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7798882897088795890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7798882897088795890'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/12/modo-rendering-cubemaps.html' title='Modo: Rendering Cubemaps'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HZfKJkWv1NI/ST1skWgPlzI/AAAAAAAAAO0/KBP95PFe9bo/s72-c/cubemap_camsetup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-1899150893317429525</id><published>2008-12-03T18:51:00.003+01:00</published><updated>2008-12-03T19:16:17.847+01:00</updated><title type='text'>Modo: Rendering Cubemaps and Baking Spherical Maps</title><content type='html'>The other day I wanted to get some good reflections on an object but didn't want to place it in another scene. (I should have, it would have been faster. But at least I learned something new this way...) So I set up a scene with 6 cameras and rendered a cubemap to use as an environment texture for the new object. Turns out it's not that simple as modo doesn't quite like cubemaps on the environment. So I had to come up with a new way and created a spherical map, which worked out great...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cubemap:&lt;/span&gt; set up 6 cameras and render an image with each one; assemble in photoshop...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spherical Map:&lt;/span&gt; make a reflective sphere with a good uv layout and bake to texture...&lt;br /&gt;&lt;br /&gt;remind me to go into more detail and post some screens...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-1899150893317429525?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/1899150893317429525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=1899150893317429525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1899150893317429525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/1899150893317429525'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/12/modo-rendering-cubemaps-and-baking.html' title='Modo: Rendering Cubemaps and Baking Spherical Maps'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-7916727989976406633</id><published>2008-12-02T10:10:00.008+01:00</published><updated>2008-12-08T20:12:42.528+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='camera'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>Animating Cameras in Modo for Unity</title><content type='html'>There might be a better way, but this is how I'm doing it right now:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Set up a scene with a little mesh and a camera parented to that mesh.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Match the camera settings in modo and unity (Since cameras take &lt;span style="font-weight: bold;"&gt;Field of View&lt;/span&gt; in &lt;span style="color: rgb(0, 0, 153);"&gt;unity&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Focal Length&lt;/span&gt; in &lt;span style="color: rgb(0, 0, 153);"&gt;modo&lt;/span&gt;, you might want to look at this &lt;a href="http://www.bdimitrov.de/kmp/technology/fov.html"&gt;converter&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Animate not the camera but the little mesh&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Export the scene as FBX and import it into unity&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Put a camera on the little mesh, set the y-rotation to 180&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ideas for the future: Test if it would work to just animate the camera and after importing into unity replace the now empty camera-item with an actual camera that has the same name...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-7916727989976406633?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/7916727989976406633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=7916727989976406633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7916727989976406633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/7916727989976406633'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/12/animating-cameras-in-modo-for-unity.html' title='Animating Cameras in Modo for Unity'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-800141445762074192</id><published>2008-11-06T11:17:00.004+01:00</published><updated>2008-11-06T11:53:11.351+01:00</updated><title type='text'>Draw Calls</title><content type='html'>&lt;span style="font-size:85%;"&gt;Based on &lt;a href="http://boards.polycount.net/showthread.php?t=48305&amp;amp;highlight=draw+calls"&gt;a&lt;/a&gt; &lt;a href="http://www.ericchadwick.com/examples/provost/byf1.html"&gt;bit of&lt;/a&gt; &lt;a href="http://blogs.technet.com/torgo3000/search.aspx?q=performance+art&amp;amp;p=1"&gt;research&lt;/a&gt;, watching the &lt;a href="http://unity3d.com/support/resources/unite-presentations/performance-optimization.html"&gt;Unite '07 Performance Optimizatio&lt;/a&gt;n talk and talking on the &lt;a href="http://forum.unity3d.com/viewtopic.php?p=103624"&gt;unity forums&lt;/a&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span class="postbody"&gt;&lt;span style="color:darkblue;"&gt;&lt;br /&gt;Each material on each mesh causes &lt;span style="font-weight: bold;"&gt;one draw-call&lt;/span&gt; per frame, per light that affects it and per camera that sees it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If I have &lt;span style="font-weight: bold;"&gt;1 mesh with 20 seperate textures&lt;/span&gt;, only ambient light, one camera, this will also result in 20 draw-calls. If I would combine the 20 textures into one atlas the scene would now only need a single draw-call.&lt;br /&gt;&lt;br /&gt;If I have &lt;span style="font-weight: bold;"&gt;20 meshes with one texture each&lt;/span&gt;, only ambient light, one camera, this will result in 20 draw-calls. If I would combine all the textures into one big atlas, the scene would still require 20 draw-calls, even though all the objects would now use the same texture.&lt;br /&gt;&lt;br /&gt;The only way to optimize here would be to &lt;span style="font-weight: bold;"&gt;combine meshes.&lt;/span&gt; But you can only do that if your meshes aren't to move around independently from each other.  &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-800141445762074192?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/800141445762074192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=800141445762074192' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/800141445762074192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/800141445762074192'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/11/draw-calls.html' title='Draw Calls'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-6814355470261035292</id><published>2008-11-03T18:06:00.003+01:00</published><updated>2008-11-05T09:24:35.776+01:00</updated><title type='text'>PVRTC Texture Compression as seen on the iPhone</title><content type='html'>&lt;span class="postbody"&gt; PVRTC is a block-based texture compression, that means that it works with groups of pixels. Problems mostly show up in high contrast areas where too many different extremes meet.&lt;br /&gt;&lt;br /&gt;"It uses a representation that is based on the blending of two 'low frequency' signals using a high frequency but low precision modulation signal." So when compressing, it takes your image, creates two small blurry versions and a modulation image. When putting it back together it calculates the value of each pixel like this: It scales the 2 small images back up and samples the 2 colors from the right location, and then decides which shade in between the 2 values to take based on the modulation image.&lt;br /&gt;&lt;br /&gt;There's an example on page 4 here, just look at Figure 3 and Figure 2: &lt;a href="http://web.onetel.net.uk/%7Esimonnihal/assorted3d/fenney03texcomp.pdf" target="_blank"&gt;http://web.onetel.net.uk/~simonnihal/assorted3d/fenney03texcomp.pdf&lt;/a&gt;&lt;br /&gt;(This is the doc I quoted above)&lt;br /&gt;&lt;br /&gt;So the solution is very simple, isn't it? Just try not to use more than 3 different colors in each 4x4 pixel block... ;]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="postbody"  style="font-size:85%;"&gt;A thread on the unity forum &lt;a href="http://forum.unity3d.com/viewtopic.php?p=103150"&gt;about this topic&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-6814355470261035292?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/6814355470261035292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=6814355470261035292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6814355470261035292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6814355470261035292'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/11/pvrtc-texture-compression-as-seen-on.html' title='PVRTC Texture Compression as seen on the iPhone'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-5703145525635840604</id><published>2008-10-31T10:21:00.004+01:00</published><updated>2008-10-31T10:48:22.218+01:00</updated><title type='text'>Modo: Baking Textures with Indirect Illumination</title><content type='html'>Camera Position matters a great deal when baking Indirect Illumination! Look at the example below. - This is part of the ceiling of a room where the camera was on one end when baking. Notice how the quality deteriorates towards the right:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HZfKJkWv1NI/SQrOUf-HReI/AAAAAAAAAMw/bChOBqDX5zc/s1600-h/GI_campos_matters.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 323px; height: 163px;" src="http://1.bp.blogspot.com/_HZfKJkWv1NI/SQrOUf-HReI/AAAAAAAAAMw/bChOBqDX5zc/s400/GI_campos_matters.jpg" alt="" id="BLOGGER_PHOTO_ID_5263245966110574050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Once I moved the camera below the room, moved it a bit away from the scene and pointed it up, the result improved greatly. (Of course I had to adjust the Indirect Illumination settings a bit to get good results with the camera further away from the scene)&lt;br /&gt;&lt;br /&gt;And while I'm at it:&lt;br /&gt;&lt;br /&gt;A short summary of what the&lt;span style="font-weight: bold;"&gt; Irradiance Caching&lt;/span&gt; Options do for future reference (info from the modo user guide):&lt;br /&gt;&lt;br /&gt;The difference between &lt;span style="font-weight: bold;"&gt;Indirect Illumination&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;with or without Irradiance Caching&lt;/span&gt; is that &lt;span style="color: rgb(51, 0, 153);"&gt;"Irradiance Caching relies on much higher quality samples distributed sparsely across the project whereas Indirect Illumination without Irradiance Caching uses lower quality samples at every pixel."&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Irradiance Rays:&lt;/span&gt; Number of rays fired&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Supersampling:&lt;/span&gt; After all rays have been fired, this fires 25% additional rays into difficult areas&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Irradiance Rate:&lt;/span&gt; Minimum distance between screen-pixels on the surface where irradiance is computed&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Irradiance Ratio:&lt;/span&gt; Ratio between minimum spacing (Irradiance Rate) and maximum spacing between computed values&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Interpolation Values:&lt;/span&gt; How many nearby values are required to interpolate? if not enough values are found, it forces the computation of a new value&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-5703145525635840604?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/5703145525635840604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=5703145525635840604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5703145525635840604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/5703145525635840604'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/10/modo-baking-textures.html' title='Modo: Baking Textures with Indirect Illumination'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HZfKJkWv1NI/SQrOUf-HReI/AAAAAAAAAMw/bChOBqDX5zc/s72-c/GI_campos_matters.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8133308998947403330</id><published>2008-10-30T10:49:00.004+01:00</published><updated>2008-10-30T17:44:04.744+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>Modo: Push towards Mesh Constraint</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HZfKJkWv1NI/SQmFMAqc9MI/AAAAAAAAAMo/QSX_9WJ2QMI/s1600-h/push_to_mesh_constraint.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 204px;" src="http://4.bp.blogspot.com/_HZfKJkWv1NI/SQmFMAqc9MI/AAAAAAAAAMo/QSX_9WJ2QMI/s400/push_to_mesh_constraint.jpg" alt="" id="BLOGGER_PHOTO_ID_5262884080942118082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I knew I had seen this in a video somewhere and had tried it before, but now that I needed it, I just couldn't figure out how to do it. (And I couldn't find the video anymore either) So it took a while, but I got it to do what I wanted it to in the end:&lt;br /&gt;&lt;br /&gt;I had a sculpted asteroid and a simple sphere and I wanted the sphere to match the asteroid as closely as possible. This is how it works:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make the highpoly mesh be the &lt;span style="font-weight: bold;"&gt;background&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Under &lt;span style="font-weight: bold;"&gt;Snapping&lt;/span&gt; select &lt;span style="font-weight: bold;"&gt;Constrain to: Background&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Use the &lt;span style="font-weight: bold;"&gt;Push Tool&lt;/span&gt; (under Deform) on the Sphere to push it towards the constraint&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8133308998947403330?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8133308998947403330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8133308998947403330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8133308998947403330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8133308998947403330'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/10/modo-push-towards-mesh-constraint.html' title='Modo: Push towards Mesh Constraint'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HZfKJkWv1NI/SQmFMAqc9MI/AAAAAAAAAMo/QSX_9WJ2QMI/s72-c/push_to_mesh_constraint.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-6211118070646541069</id><published>2008-10-27T15:58:00.006+01:00</published><updated>2008-12-01T18:50:51.038+01:00</updated><title type='text'>Some Unity iPhone related findings on the forum</title><content type='html'>How to use &lt;a href="http://forum.unity3d.com/viewtopic.php?t=15264"&gt;position from touches&lt;/a&gt; (my script)&lt;br /&gt;Simple &lt;a href="http://forum.unity3d.com/viewtopic.php?t=15246"&gt;tilt to move demo project&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forum.unity3d.com/viewtopic.php?t=15196"&gt;Writing a file to the iPhone&lt;/a&gt; and reading from it&lt;br /&gt;useGUILayout = false can &lt;a href="http://forum.unity3d.com/viewtopic.php?t=15381&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=15"&gt;prevent huge framerate drops&lt;/a&gt; when touching the screen&lt;br /&gt;how to &lt;a href="http://forum.unity3d.com/viewtopic.php?t=16388"&gt;change the default xcode project&lt;/a&gt; that unity uses as a template for every build&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;I'll continue updating this post...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-6211118070646541069?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/6211118070646541069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=6211118070646541069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6211118070646541069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/6211118070646541069'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/10/some-unity-iphone-related-findings-on.html' title='Some Unity iPhone related findings on the forum'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26790682.post-8106501423664448110</id><published>2008-10-23T11:44:00.004+02:00</published><updated>2008-10-27T14:51:25.475+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unity'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Unity for the iPhone has been released!</title><content type='html'>Some first findings and useful bits:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Change to horizontal orientation (Widescreen):&lt;br /&gt;&lt;div class="code"&gt;iPhoneSettings.verticalOrientation = false;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You have to make a typed reference to a script before you can use it like any other component:&lt;br /&gt;&lt;div class="code"&gt;var xy : myscript = myobj.GetComponent("myscript");&lt;br /&gt;xy.DoStuff();&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26790682-8106501423664448110?l=col000r.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://col000r.blogspot.com/feeds/8106501423664448110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26790682&amp;postID=8106501423664448110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8106501423664448110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26790682/posts/default/8106501423664448110'/><link rel='alternate' type='text/html' href='http://col000r.blogspot.com/2008/10/unity-for-iphone-has-been-released.html' title='Unity for the iPhone has been released!'/><author><name>col000r</name><uri>http://www.blogger.com/profile/09991834709953446518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_HZfKJkWv1NI/TRmuYqaEObI/AAAAAAAAAXo/QbbQwQmXIM8/S220/col000r_84.png'/></author><thr:total>0</thr:total></entry></feed>
