<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Whitaker Blackall - Music and Sound FX for Video Games</title>
	
	<link>http://www.whitakerblackall.com</link>
	<description>Music for Games</description>
	<lastBuildDate>Thu, 17 May 2012 01:05:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WhitakerBlackall" /><feedburner:info uri="whitakerblackall" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>A Guide to Using Twitter to Promote Your Game</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/dkmg0E6RYtU/</link>
		<comments>http://www.whitakerblackall.com/blog/a-guide-to-using-twitter-to-promote-your-game/#comments</comments>
		<pubDate>Wed, 16 May 2012 20:57:01 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Blog Post]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1791</guid>
		<description><![CDATA[
As you probably (hopefully) know by now, I released my first game Polymer about two weeks ago. In it&#8217;s first day, it broke into the top 200 paid apps, the top 100 games, the top 25 strategy games, and the top 25 puzzle games (all referring to the U.S. app store). It has also gotten...]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/05/review.png" alt="" title="review" width="395" height="156" class="aligncenter size-full wp-image-1797" /></p>
<p>As you probably (hopefully) know by now, I released my first game <a href="http://itunes.apple.com/us/app/polymer/id499490016?ls=1&#038;mt=8">Polymer</a> about two weeks ago. In it&#8217;s first day, it broke into the top 200 paid apps, the top 100 games, the top 25 strategy games, and the top 25 puzzle games (all referring to the U.S. app store). It has also gotten <a href="http://www.polymerapp.com/press">a bunch of really good press</a>.</p>
<p><br/></p>
<p>Originally, this was going to be a post about general marketing techniques, but I found myself getting deeper and deeper into Twitter tips. So I decided to focus just on that. In a future post, I&#8217;ll explain what I did for my press release, pitch, and media relations. By the way, I need to shout out a huge thanks to my wife Dana, who has worked in the PR industry and has given me invaluable help and tips throughout this whole process. A lot of these ideas originally came from her expertise.</p>
<p><br/></p>
<p>I honestly believe that Twitter was one of the biggest parts of Polymer&#8217;s launch day success. I want to clarify a few things because there seem to be a lot of people who just don&#8217;t understand how to use it effectively. Or why they should use it at all. In this post, I&#8217;m going to talk about a bunch of random tips for using Twitter. All of these tips are really applicable to Twitter in general, so even if you&#8217;re not promoting a game, it&#8217;ll still hopefully be useful. I can in no way guarantee that anything I suggest here will work for you. I am just going to describe the way I use Twitter and hopefully you can use find some benefit in that! Without further ado:</p>
<p><br/></p>
<h2>Develop a Good Reputation</h2>
<p>This is by far the most important aspect of your role on Twitter. Far too often, I see people make a new Twitter account a week before their game&#8217;s release, suddenly trying to earn followers and respect. IT&#8217;S NOT GONNA WORK. Developing a solid following on Twitter can take <em>years!</em> &#8220;No, that&#8217;s not true,&#8221; you say. &#8220;All I have to do is follow 50,000 people and some of them are bound to follow me back! #teamFollowBack LOL&#8221; DON&#8217;T DO THIS. It makes you look desperate, and it makes people think (rightfully so) that you really don&#8217;t care about who you are following. You are broadcasting the fact that all you want is followers of your own. You are clearly completely uninterested in the community.</p>
<p><br/></p>
<p>Another thing I see people do all the time is spam other people who have influence on Twitter. I&#8217;ll look at their timeline and see something like this:</p>
<p><br/></p>
<p>&#8220;@notch Hey man check out my game! www.stupidUglyGame.com&#8221;<br />
&#8220;@helvetica Hey man check out my game! www.stupidUglyGame.com&#8221;<br />
&#8220;@MattRix Hey man check out my game! www.stupidUglyGame.com&#8221;<br />
&#8220;@NissaCam Hey there, check out my game! www.stupidUglyGame.com&#8221;<br />
&#8220;@Imangi Hey guys check out my game! www.stupidUglyGame.com&#8221;</p>
<p><br/></p>
<p>DON&#8217;T DO THIS. It also makes you look desperate and like you don&#8217;t care at all about anyone but yourself.</p>
<p><br/></p>
<p>It&#8217;s actually pretty easy to develop a good reputation on Twitter. Think of Twitter as a metaphorical room. A massive room with millions of people. If you&#8217;re in a room full of people, would you walk up to everyone you saw and say &#8220;Hi look at my work&#8221; over and over? Well maybe you would but people wouldn&#8217;t like you very much. All you have to do is hang out at the virtual party, be yourself, and get to know people. <strong>That&#8217;s it.</strong> Even if you feel like you have nothing interesting to say, it doesn&#8217;t matter. Just get to know people, be a nice person, and join in on conversations and you <em>will</em> gain a good reputation eventually. I&#8217;m much more likely to follow someone with 25 followers who joins in conversation, is helpful, friendly, and funny than someone who has 1,000&#8217;s of followers who never converses with anyone (or is a dick).</p>
<p><br/></p>
<h2>Getting Advice</h2>
<p>Twitter is incredibly amazing for iterative design. For example, frequently in Polymer&#8217;s development, I&#8217;d be working on developing a new menu or game mode, I&#8217;d tweet a screenshot, and immediately get a ton of good feedback about it. After about 20 minutes of back and forth, I&#8217;d generally end up with something <em>way</em> better than where I started.</p>
<p><br/></p>
<p>However, you need to be careful too. While advice on Twitter can be extremely helpful, it can also confuse the hell out of you. I find myself being easily swayed by opinions, so whoever responds to my inquiries first generally convinces me that their opinion on my design is correct. A few times I did this and later realized I made a snap judgement without really thinking. Try to take a step back sometimes, take it all in, and think about how all the opinions add up, then finally decide if it fits with your overall vision.</p>
<p><br/></p>
<h2>Followers/Following</h2>
<p>I mentioned above that you shouldn&#8217;t randomly follow 50,000 people. What you <em>should</em> do is follow people you are interested in and/or people who participate in good conversation. Don&#8217;t follow every single person in the world because you want them to follow you back. Also keep in mind that when you&#8217;re following 1,000&#8217;s and 1,000&#8217;s of people, it&#8217;s very very hard to stay up to date on what they&#8217;re all doing (unless of course you use lists, but then what&#8217;s the point of following the people who aren&#8217;t on those lists?). Plus, it&#8217;s all about quality, not quantity. In my opinion, it&#8217;s much better to have 100 dedicated followers than 10,000 #teamFollowBack followers.</p>
<p><br/></p>
<h2>Getting Followed Back</h2>
<p>First of all, don&#8217;t be offended if someone doesn&#8217;t follow you back. It&#8217;s usually not personal. Be patient and if you&#8217;re involved enough, eventually people might reciprocate.</p>
<p><br/></p>
<p>And on that note, don&#8217;t directly ask for follows. It&#8217;s tacky. If you ask someone for a follow, it sort of diminishes the value of it, and it potentially annoys the person you&#8217;re trying to impress. There are many people who I have really wanted to follow me, but have never asked. It&#8217;s always an amazing bonus when after a random conversation, I get a follow from said person. Of course, share your Twitter handle in as many situations as possible, especially when sharing content, but directly tweeting people like &#8220;@monkeyman Hey Monkey Man, can you follow me please?&#8221; is just tacky. (I don&#8217;t know if @monkeyman is a real person, just made it up for the example. Feel free to follow him if so).</p>
<p><br/></p>
<h2>Help Others Out</h2>
<p>Make sure you return the favor that people are doing for you by retweeting and spreading the word about their games! Don&#8217;t spam your feed by retweeting everything, but make sure you take the time to give your followers a look and spread the word about people and games that look interesting, especially if they&#8217;re just getting started.</p>
<p><br/></p>
<h2>Be Active and Responsive</h2>
<p>Unless you are already pretty well known through other means, you probably won&#8217;t get many people interested in your tweets if you&#8217;re not active. I try to tweet at least a couple times a day (even though it usually ends up being more like a couple thousand a day). If you don&#8217;t say anything for weeks at a time, people probably won&#8217;t follow you.</p>
<p><br/></p>
<p>Even more important than being active is being <em>responsive</em>. There&#8217;s not much that annoys me more than someone who doesn&#8217;t respond to twitter mentions. Obviously, I&#8217;m not talking about people who have thousands and thousands of real followers (<a href="http://www.twitter.com/c418">@C418</a> and <a href="http://www.twitter.com/c418">@Notch</a>, for example). There&#8217;s no way they could respond to everyone. I&#8217;m also not talking about responding to <em>every tweet</em>. You don&#8217;t necessarily have to say &#8220;Thank you&#8221; every time someone compliments your work (although it can&#8217;t hurt!). You also don&#8217;t have to respond right away, or every time. What annoys me is when people just simply don&#8217;t respond over long periods of time, ever. There have been people I&#8217;ve asked multiple questions (not in a spammy way, just in a conversational way) over the span of a few months and didn&#8217;t get a response to a single one, even though they are otherwise relatively active.</p>
<p><br/></p>
<h2>Press</h2>
<p>Get to know press on Twitter. And don&#8217;t do this five days before your game&#8217;s release. Get to know them NOW. Talk to them like real people (most of them are real people, after all). Again, imagine you&#8217;re back in that room with a huge group of people, some of whom write for important gaming sites. Will they take you seriously if you&#8217;ve never met them before and you just walk up to them and open with, &#8220;Hey can you write about my game? It&#8217;s fun, addictive, and totally unique!&#8221; No, they probably won&#8217;t. On the other hand, if you&#8217;ve already been talking to them about random stuff for awhile, eventually your game may come up in conversation. Or even better, if your game is in your bio, they may search it out on their own. Which brings me to my next point.</p>
<p><br/></p>
<h2>Secrecy</h2>
<p>Don&#8217;t be so damn secretive. I know a lot of people will probably disagree with me but you&#8217;d be amazed at how much interest you can garner by sharing your game design process through Twitter. I&#8217;m not saying that you should divulge all the important details. Of course not. But post random things throughout your process. Talk about difficulties. Ask for help. Post screenshots and videos. It&#8217;s clearly working for Mojang with Minecraft, Wolfire with Overgrowth, and so many others. People are interested in this stuff, and it gives users a feeling of involvement in the game design process. Plus, it can help your fellow developers.</p>
<p><br/></p>
<p>Another thing, mention your game in your damn bio! It&#8217;s amazing how many times I&#8217;ve looked at someone&#8217;s bio, interested in seeing what games they have made, and all it says is something like &#8220;iOS game developer&#8221;. Obviously, if you have a pretty established following, this doesn&#8217;t matter much. But if you&#8217;re just starting out, it should be <em>very</em> clear what your game is and how people can find it. People have short attention spans, so if they&#8217;re actively looking for your game, it should be as easy as possible to find it.</p>
<p><br/></p>
<h2>Plan out major announcements</h2>
<p>Throughout Polymer&#8217;s development, I was used to tweeting pretty much anything whenever I felt like it, which I think is really great for garnering interest. However, when you&#8217;re dealing with major announcements, they should be planned out a bit more.</p>
<p><br/></p>
<p>Try to tweet announcements at times when the most people are going to see it. I tend to push important tweets out late morning/early afternoon. I feel like that&#8217;s the time when I get the most retweets and responses.</p>
<p><br/></p>
<p>Format the tweet in an interesting way. Here are a couple things that bug me about major announcement tweets:</p>
<p><br/></p>
<p>• Try not to include &#8220;Please RT&#8221;. Instead, tweet <em>before</em> the announcement tweet (or after I guess) saying &#8220;I&#8217;d appreciate a RT on the next tweet.&#8221; This shows that you&#8217;d appreciate it, but it doesn&#8217;t sound as desperate, and it doesn&#8217;t clutter the important tweet with unimportant text.</p>
<p><br/></p>
<p>• Don&#8217;t include a bunch of hashtags. Maybe I&#8217;m in the minority, but I find most hashtags to be an eyesore. I&#8217;d much rather see &#8220;Here&#8217;s a trailer for my new game Super Fat Man [LINK]&#8221; than &#8220;Here&#8217;s a trailer for my new game Super Fat Man [LINK] #indieGaming #gamedev #YOLO&#8221; or whatever. To me, it&#8217;s just clutter. Focus your message and keep it at that.</p>
<p><br/></p>
<p>• Get to the heart of your message in as few words as possible, and be specific. I&#8217;m much less interested in a tweet like &#8220;My first game releases today. I&#8217;d love it if you checked it out! [LINK]&#8221; than a tweet like &#8220;Super Fat Man is now live on the app store. Swipe to eat burgers and tap to bake cakes! [LINK]&#8221; Keep in mind that a big benefit of getting retweeted is that people who don&#8217;t know you yet can find out about you! Try capture their attention.</p>
<p><br/></p>
<h2>Don&#8217;t be too trigger happy</h2>
<p>It&#8217;s extremely easy to be overly trigger happy on Twitter. A week ago, I decided I wanted to end the sale and  raise Polymer&#8217;s price to $1.99. So in a matter of minutes I just decided that it&#8217;s time and tweeted &#8220;Polymer&#8217;s sale ends tomorrow! Get it now before the price rises.&#8221; Furthermore, I updated the app store description and the Facebook page to say the same thing! Immediately, I got a ton of feedback from people who thought it was too early and that it would really harm my rankings. Plus, so many people told me how important it was to get as many users as possible this early on. Shit. The problem is, once a major announcement like that is out, it seems weird and quite unprofessional to take it back. But since most people said it was a bad idea to end the sale this early, I retracted. It ended up being okay, but it obviously would have been better if I had thought about it a little more, and maybe asked for advice before deciding.</p>
<p><br/></p>
<h2>Focus on launch day</h2>
<p>This is not really just a Twitter tip. This is true in pretty much all aspects of a game&#8217;s launch. Build buzz and focus everything on the launch day. This is especially important in a low-attention-span world like the app store. If you tweet a ton of interesting stuff a week before your game&#8217;s out, I might have already moved on to a different game by the time it&#8217;s actually released. So try to save your most interesting stuff for launch day. For Polymer, I focused on April 26th so that on the day, multiple reviews came out, the official trailer was released, and Polymer&#8217;s website was announced. Try to get as many impulse buys as possible on launch day!</p>
<p><br/></p>
<h2>Follow Me</h2>
<p>The true key to success on Twitter is to follow me: <a href="http://www.twitter.com/wtrebella">@wtrebella</a>. </p>
<p><br/></p>
<p>Okay maybe that&#8217;s not true, but I promise I&#8217;ll respond to you, and if you have any questions about anything, I&#8217;d be glad to answer. <img src='http://www.whitakerblackall.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/dkmg0E6RYtU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/a-guide-to-using-twitter-to-promote-your-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/a-guide-to-using-twitter-to-promote-your-game/</feedburner:origLink></item>
		<item>
		<title>10 Things I’ve Learned About Programming . . . by Programming</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/QCdio8KO0jA/</link>
		<comments>http://www.whitakerblackall.com/blog/10-things-ive-learned-about-programming-by-programming/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 19:21:24 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Blog Post]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1753</guid>
		<description><![CDATA[

Polymer is my first real game. Yes, I&#8217;ve made lots of little [stupid] prototypes in the past, but I&#8217;ve never attempted a fully polished, releasable game. Because this is my first experience going from inception of an idea to finished product (well, almost finished &#8211; I&#8217;m shooting for the beginning of April), I&#8217;ve learned a...]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo1.jpg" alt="" title="Polymer iPhone game" width="640" height="195" class="aligncenter size-full wp-image-1775" /></p>
<p><br/></p>
<p>Polymer is my first real game. Yes,<a href="http://www.whitakerblackall.com/blog/first-six-months/"> I&#8217;ve made lots of little [stupid] prototypes </a>in the past, but I&#8217;ve never attempted a fully polished, releasable game. Because this is my first experience going from inception of an idea to finished product (well, almost finished &#8211; I&#8217;m shooting for the beginning of April), I&#8217;ve learned a lot of programming techniques mostly through trial and error.</p>
<p><br/></p>
<p><strong>Disclaimer:</strong> I&#8217;m still quite new to programming so please comment if one of these techniques is stupid, unwise, idiotic, or any other adjective you&#8217;d like to use. Also, if you&#8217;re also new to programming, I wouldn&#8217;t necessarily assume everything I say here is best practice. These are just things I&#8217;ve learned by running into bugs and problems and finding ways to solve them. There could easily be better ways to do these things, but they&#8217;re all I know at the moment! Also, I&#8217;ll be writing all my code in Objective C because that&#8217;s really all I know! Without further ado:</p>
<p><br/></p>
<h2>1. Use a singleton class</h2>
<p><em>People have suggested I use an Objective-C category on CCNode so everything inherits the methods rather than using a singleton. Good tip!</em><br />
I&#8217;ve heard some people advise against singleton classes, but I&#8217;m not sure why. I have found it to be one of the most useful things in this entire process. Not only is a singleton class useful for global events (such as authenticating a GameCenter user, or keeping track of what items have been unlocked), it&#8217;s amazing for convenience functions that may be used anywhere. For example, I have a function like this in my singleton class:<br />
<br/></p>
<pre>
<code>- (void) boinkNode:(CCNode *)node;</code>
</pre>
<p><br/></p>
<p>So first of all, I know the name&#8217;s weird, but that&#8217;s all I could come up with. What the function does is quickly scales a node (a sprite, label, image, whatever) up and down very quickly. This is useful for when the user taps something. It gives visual feedback along with the audible click. When I first started making Polymer, I coded functions like this into individual classes. After awhile, I found myself recoding the same thing over and over and it was getting annoying. So I threw it into my singleton class and now all I have to do in <strong>any</strong> class when someone taps a button is something like this:</p>
<p><br/></p>
<pre>
<code>[[Singleton sharedSingleton] boinkNode:currentNode];</code>
</pre>
<p><br/></p>
<p>Very easy, and if I want to make changes to the function or to how a node gets . . . boinked . . . it&#8217;s all in one place. I don&#8217;t have to jump around my code searching for all the places I&#8217;ve used similar code to make changes.</p>
<p><br/></p>
<h2>2. Make a prototype. Scrap it. THEN make your game.</h2>
<p>Polymer started off <strong>very</strong> different than it is today. It had many iterations before it became the Rubik&#8217;s-cube-ish, shape-forming, tile-sliding game it is now. It&#8217;s been everything from a pixelated-picture-creation puzzle game to a match-four-numbers-to-make-a-giant-number-that-has-special-powers game, and everything in between. This iteration progress was great because every time I made changes the gameplay completely changed and I could quickly see if it was going to be fun. The problem is, once I finally got through enough iterations and settled on the Carcassone-like-shape-forming mechanic, I just kept building on top of the original code I had. Everything in Polymer&#8217;s code is build upon everything I wrote when I <strong>first started the game</strong>. That code is messy, it was built on unsure ideas, it went through a ton of changes, and it just isn&#8217;t very efficient. What I should have done once I decided upon the actual gameplay mechanic is start a completely new project from scratch. That way everything would be going towards one core idea, and I could get rid of all the crazy code from the beginning of the process. Here&#8217;s an early prototype image of what Polymer once was:</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/Screen-Shot-2012-03-01-at-6.23.38-PM.png" alt="" title="Polymer prototype" width="318" height="480" class="aligncenter size-full wp-image-1765" /></p>
<p><br/></p>
<h2>3. Make abstract classes (don&#8217;t be too specific too early)</h2>
<p>Time and time again, I have found myself running into trouble because I was too specific too early. For example, at the end of a game of Polymer, a little menu pops up. When I first coded this menu, all I was thinking of was its use at the end of a game. I put score labels, buttons, and sprites in there, with everything&#8217;s position hard-coded (which is just stupid in general). Since I wasn&#8217;t thinking about the future, I just made this menu be perfect for the <em>one</em> situation I needed it for at that time. Soon after, I was really pissed at myself because I realized I needed the same type of menu for when the player unlocked something. Instead of doing the smart thing and refactoring the code into something more abstract, I just kept building onto this base class in a really messy way. It went something like this:</p>
<p><br/></p>
<pre>
<code>if (menuType == MENU_TYPE_NORMAL) {
    // do stuff here for the normal end of a game
}
else if (menuType == MENU_TYPE_UNLOCK) {
    // do stuff here for when someone unlocks something
}</code>
</pre>
<p><br/></p>
<p>Now I was rewriting a ton of the code for the menu and hard coding tons of different things into tons of different places. On top of that, in a lot of methods I now had to check to see what kind of menu it was before I did anything. With just two menu types it was getting to be a huge hassle. I thought about adding a third somewhere else but it would have been too annoying so I ended up doing something else. Here&#8217;s a pic of the menu I&#8217;m talking about (yes, I&#8217;m totally aware that shape looks like poop):</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/Screen-Shot-2012-03-01-at-1.07.01-PM.png" alt="" title="Polymer Menu" width="319" height="479" class="aligncenter size-full wp-image-1764" /></p>
<p><br/></p>
<p>Later on in making the game, I had learned the error of my ways. In making the tutorial pages, I made an abstract Tutorial class. This class had a ton of methods built in for creating many different types of tutorial scenes. All I had to do in the init method of new subclasses was something like this:</p>
<p><br/></p>
<pre>
<code>[self addSquareRowAtIndex:5];
[self turnOffColumn:7];
[self addLabelWithString:"Tutorial mania!" atRow:3];
// and so on</code>
</pre>
<p><br/></p>
<p>This made it a TON easier and a TON faster to create a lot of different tutorial scenes that were all pretty different. The three following tutorial scenes (and more) were created by making simple subclasses of the abstract Tutorial class:</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo-1.png" alt="" title="Polymer tutorial 1" width="320" height="480" class="aligncenter size-full wp-image-1766" /></p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo-2.png" alt="" title="Polymer tutorial 2" width="320" height="480" class="aligncenter size-full wp-image-1767" /></p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo-3.png" alt="" title="Polymer tutorial 3" width="320" height="480" class="aligncenter size-full wp-image-1768" /></p>
<p><br/></p>
<h2>4. Don&#8217;t do something just because it&#8217;s quicker or easier (it will hurt you in the long run)</h2>
<p>So many times, I&#8217;ve thought something like this: &#8220;Hm, I can rewrite the code entirely . . . or I can just add a few variables here and patch up the problem.&#8221; And so many times I have kicked myself for doing just that. Yes, totally reworking code is daunting as hell and not very fun, but it&#8217;s completely worth it and much better than just throwing on various patches. It makes the code much more flexible, a lot easier to understand, and just more fun to play around with. Always choose the more difficult option if it will lead to cleaner, more flexible code.<br />
<br/></p>
<h2>5. Use the hell out of completion selectors and blocks</h2>
<p>This is probably obvious to seasoned programmers, but it took me awhile to really start using completion selectors and blocks in my own methods. Without them, I frequently wound up in tricky situations where I wanted something to happen once something else had already happened. Without completion selectors this got to be really messy. I would have to constantly check whether something was finished in an update method, then call the next event, then make sure not to call that next event any extra times. Plus timing was an issue, and things could easily get out of sync. With the use of completion targets and selectors, things are <strong>SO</strong> much easier. For example, when I want to get rid of the menu I talked about in point 3, I can do the following:</p>
<p><br/></p>
<pre>
<code>[menu dimissWithCompletionTarget:self selector:@selector(goBackToMainMenu)];</code>
</pre>
<p><br/></p>
<p>This will make the menu move down below the screen, which will trigger the game going back to the main menu. If I didn&#8217;t do it as a completion selector, the game would start returning to the main menu <strong>while</strong> the menu was being dismissed and moving downward.</p>
<p><br/></p>
<h2>6. Plan out a class before you dive into it</h2>
<p>When I made a new class in the past, the first thing I would do is write the init method, followed by a couple functions that I needed at the moment. Over time, I&#8217;ve found this to be a bad idea because I would always end up going back later and totally changing the methods I had already written whenever the object needed to do something I hadn&#8217;t planned for originally. Now, when I make a new class, the first thing I do is really think about what it needs to do and write the header file. At this time, I don&#8217;t care about <strong>how</strong> I&#8217;ll implement a method. I just write the methods I need, to be implemented later. Same with instance variables and properties. I try to figure out exactly which variables and properties this class will need and put them in the header. That way, I lay out the class exactly as I want it to work. Then I just need to make it work based on what I planned. Obviously changes will probably still come up but planning it out like this has been really helpful to me.<br />
<br/></p>
<h2>7. Write convenience methods for everything</h2>
<p>It&#8217;s amazing how helpful convenience methods are. My basic rule is: if I need to copy and paste something for some reason, it should be in a convenience method. For example, let&#8217;s say I&#8217;m making a game where objects can turn other objects into their color if they contain them. In other words, if a blue object completely &#8220;eats&#8221; a green object, the green object will turn blue. I may write something like this:</p>
<p><br/></p>
<pre>
<code>if (CGRectContainsRect(object1.boundingBox, object2.boundingBox) &amp;&amp; object1.isBlue &amp;&amp; object2.isBlue) {
    object2.color = blue;
}</code>
</pre>
<p><br/></p>
<p>This will work fine when I&#8217;m checking for overlap between two specific objects with two specific colors. If I want to then check two different objects that are red and yellow, I&#8217;d have to copy and paste the first snippet of code and make some subtle changes. Furthermore, what if I don&#8217;t know which object is bigger? Then I have to write even more code to check if the first contains the second, then if the second contains the first. This is already leading to creating unnecessarily messy and cluttered code. Instead, I would make a method that checks <em>any</em> two objects of <em>any</em> two colors. Like so:</p>
<p><br/></p>
<pre>
<code>- (void) takeCareOfObject1:(Foo *)object1 andObject2:(Foo *)object2 {
    if (CGRectContainsRect(object1.boundingBox, object2.boundingBox)) {
        object2.color = object1.color;
    }
    else if (CGRectContainsRect(object2.boundingBox, object1.boundingBox)) {
        object1.color = object2.color;
    }
    else {
        // nothing happens because neither object envelops the other
    }
}</code>
</pre>
<p><br/></p>
<p>Now it&#8217;s really easy! I can check any two objects and easily have them adopt each other&#8217;s color in the right circumstances with one line of code. For example:</p>
<p><br/></p>
<pre>
<code>[self takeCareOfObject1:square andObject2:circle];</code>
</pre>
<p><br/></p>
<p>This will automatically change the color of the circle to the color of the square if the circle fits inside the square (or vice versa). This is especially useful if I have a large array of lots of different objects. I can just scan the array and automatically change their colors with this one line! Moral of the story is: always write flexible convenience functions for yourself so you don&#8217;t have to keep rewriting the same code over and over. This way is much easier to debug too, because if something goes wrong, you just need to check one spot: the method implementation.</p>
<p><br/></p>
<h2>8. Use #defines in a universal file for easy parameter changes</h2>
<p>I have a ton of #defines in a file that all my classes can access. It includes things like &#8220;SECONDS_PER_GAME&#8221;, &#8220;TIME_BEFORE_SQUARES_DISAPPEAR&#8221;, and &#8220;POINTS_TO_UNLOCK_GAME_MODE_2&#8243;. These are extremely nice to have because they make it very easy to make quick changes to your game without having to search around the code and change all the instances of something. They&#8217;re great for debugging too because, for example, you can very easily change it so that a game only lasts 10 seconds instead of 2 minutes.<br />
<br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/Screen-Shot-2012-03-01-at-7.17.25-PM.png" alt="" title="Polymer defines" width="356" height="456" class="aligncenter size-full wp-image-1783" /></p>
<p><br/></p>
<h2>9. Encapsulate things into individual classes as much as possible</h2>
<p>I went through the process of making one of those volume slider thingies two times: once the completely wrong way, and once in a much better way. Just so you know what I mean when I say &#8220;volume slider thingy&#8221;, here&#8217;s the end result:</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo.jpg" alt="" title="Polymer volume slider" width="320" height="84" class="aligncenter size-full wp-image-1769" /></p>
<p><br/></p>
<p>The first time I made one of these sliders, I included all of its components in its parent Settings class. This made it such a hassle to do anything with it because the touchesBegan, touchesMoved, and touchesEnded methods got incredibly cluttered with code dealing with the movement of the slider knob thing. Plus, when I wanted to add a second slider to the Settings page, I had to go through everything again, hard code its position, and update the touches methods to affect that one too. It was a nightmare. The second time I created these sliders, it took a lot of preparation and work, but when it was finally done it felt like a dream. This is all I had to do to use the slider:</p>
<p><br/></p>
<pre>
<code>// in the touchesBegan method
if ([slider knobContainsPoint:touchLocation]) {
    [slider startSlidingWithPoint:touchLocation];
}

// in the touchesMoved method
[slider updateWithPoint:touchLocation];</code>
</pre>
<p><br/></p>
<p>I just fed it the touch location and it took care of the rest. It was so easy. And then if I ever needed to rework something, I could just change it in the actual slider class and everything would stay the same everywhere else.</p>
<p><br/></p>
<h2>10. Refactor bad code, no matter how hard you worked on it the first time</h2>
<p>Quite often, I find myself adding layers upon layers of patches and bug fixes onto certain parts of classes. This process can take days or weeks to get working right. When it finally works it feels amazing. But a couple weeks later, when you come back to the same spot in your code, it&#8217;s incredibly complicated and extremely hard to make changes to without breaking again. So although it&#8217;s painful sometimes, I try to rework really bad, messy code if there&#8217;s a way to make it cleaner and more flexible.</p>
<p><br/></p>
<p>For example, when I first implemented the color modes in Polymer, I went against my number 4 above: I did what was easy and fast. While I ended up with some pretty cool results right away, it was a huge hassle to add more color modes and there were remnants of my messiness throughout so much of my code. I really wanted the color-mode-adding process to be as easy as possible (because I plan on adding more through updates) and I was quickly running into this wall of annoyance and tediousness at having to make so many little changes and updates every time I added <strong>ONE</strong> new color mode. So I set out on a mission to make the process a lot easier. It took me a couple many-hour days of work, but I finally got it to the point where adding color modes is extremely easy. Now all I have to do is allocate a ColorMode object, feed it some colors, add it to my singletons colorModes array, and the rest of my app can now use it, such as in this color mode selection screen: </p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo5.png" alt="" title="photo5" width="320" height="480" class="aligncenter size-full wp-image-1770" /></p>
<p><br/></p>
<p>While it was a lot of work and annoying as hell to refactor, it was 100% worth it for how easy the process now is. Here are a couple color modes on the same Polymer board:</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo-1-1.png" alt="" title="Polymer normal color mode" width="320" height="480" class="aligncenter size-full wp-image-1771" /><br />
<em><strong>Normal</strong></em></p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo-2-1.png" alt="" title="Neapolitan" width="320" height="480" class="aligncenter size-full wp-image-1772" /><br />
<em><strong>Neapolitan</strong></em></p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/03/photo-3-1.png" alt="" title="Forest" width="320" height="480" class="aligncenter size-full wp-image-1773" /><br />
<em><strong>Forest</strong></em></p>
<p><br/></p>
<p>Thanks for reading! Hopefully I could help some of you out (or give you a laugh if I&#8217;m doing something unwise).</p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/QCdio8KO0jA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/10-things-ive-learned-about-programming-by-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/10-things-ive-learned-about-programming-by-programming/</feedburner:origLink></item>
		<item>
		<title>And the name of the game is . . .</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/1t3cZV7tc-k/</link>
		<comments>http://www.whitakerblackall.com/blog/and-the-name-of-the-game-is/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 00:27:27 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Blog Post]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1731</guid>
		<description><![CDATA[

My game is called Polymer. Let me explain why.

According to Wikipedia, &#8220;A polymer is a large molecule composed of repeating structural units.&#8221; Here is a picture of real polymers:



In the game, the goal is to form strands of connected units. This isn&#8217;t a match-3 game though. The units can only be connected in particular ways...]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo.png" alt="" title="photo" width="320" height="480" class="aligncenter size-full wp-image-1732" /></p>
<p><br/></p>
<p>My game is called Polymer. Let me explain why.</p>
<p><br/></p>
<p>According to Wikipedia, &#8220;A polymer is a large molecule composed of repeating structural units.&#8221; Here is a picture of real polymers:</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/Single_Polymer_Chains_AFM.jpeg" alt="" title="Single_Polymer_Chains_AFM" width="320" height="320" class="aligncenter size-full wp-image-1740" /></p>
<p><br/></p>
<p>In the game, the goal is to form strands of connected units. This isn&#8217;t a match-3 game though. The units can only be connected in particular ways according to their rotations. Each unit&#8217;s rotation is chosen randomly, so you never know exactly what you&#8217;re going to be able to make. A molecular polymer&#8217;s sub-units &#8220;are typically connected by covalent chemical bonds.&#8221; In my game, each unit has a dark half-circle on all sides that need to be connected to something else to form a true bond. When a bond is found, the half-circle disappears.</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo-copy.png" alt="" title="photo copy" width="320" height="480" class="aligncenter size-full wp-image-1733" /></p>
<p><br/></p>
<p>To put it simply, finding matches in my game is a lot like the gameplay in the board game Carcassonne. In Carcassonne, there are many ways to match tiles together, but they only connect in certain locations. By the end of the game, you have a pretty cool looking city with procedurally generated castles, fields, roads, and rivers. I wanted to emulate this gameplay style because I&#8217;ve never really seen it done before in a matching game and I&#8217;m <strong>insanely</strong> bored of regular match-3 games.</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/carcassonne.jpeg" alt="" title="carcassonne" width="532" height="320" class="aligncenter size-full wp-image-1739" /></p>
<p><br/></p>
<p>As I said above, at the end of a game of Carcassonne, you have created a pretty cool looking city. Similarly, Polymer saves your best creation during a game so that you can revel in your molecule-forming abilities, or show off to friends. Plus, you&#8217;ll be able to Tweet your creations from within the app. Here are some Polymers I&#8217;ve made so far, from fairly simple to crazy complex (obviously, the bigger the Polymer, the more points it&#8217;s worth):</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo-3.jpg" alt="" title="photo 3" width="320" height="416" class="aligncenter size-full wp-image-1737" /></p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo-4.jpg" alt="" title="photo 4" width="320" height="416" class="aligncenter size-full wp-image-1737" /></p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo-2.jpg" alt="" title="photo 2" width="320" height="416" class="aligncenter size-full wp-image-1737" /></p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo-1.jpg" alt="" title="photo 1" width="320" height="416" class="aligncenter size-full wp-image-1737" /></p>
<p><br/></p>
<p>Thanks for reading (and special thanks to my wife Dana for coming up with the name)! Expect more soon.</p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/1t3cZV7tc-k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/and-the-name-of-the-game-is/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/and-the-name-of-the-game-is/</feedburner:origLink></item>
		<item>
		<title>My first app!</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/r1WmGQTEEjI/</link>
		<comments>http://www.whitakerblackall.com/blog/my-first-app/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 14:06:57 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Blog Post]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1721</guid>
		<description><![CDATA[Big news here: I&#8217;m creating my first app for submission into the iPhone App Store! I&#8217;ve been working really hard for the last week and a half or so on it, and I&#8217;m going to keep going until it&#8217;s done (probably a month or two). Here are a couple screen shots.


The title screen. The UI...]]></description>
			<content:encoded><![CDATA[<p>Big news here: I&#8217;m creating my first app for submission into the iPhone App Store! I&#8217;ve been working really hard for the last week and a half or so on it, and I&#8217;m going to keep going until it&#8217;s done (probably a month or two). Here are a couple screen shots.</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo-1.png" alt="" title="photo 1" width="320" height="480" class="aligncenter size-full wp-image-1723" /><br />
The title screen. The UI button thingies slide to the right to open different scenes and start games. The game type names are all temporary. I&#8217;m going to try to think of better ones. The three rows of shapes slide left or right for visual effect.</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo-2.png" alt="" title="photo 2" width="320" height="480" class="aligncenter size-full wp-image-1723" /><br />
The endless/survival game mode. Create matches for as long as you want, but you better match the bomb pieces before their time runs out or you&#8217;ll lose.</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2012/01/photo-3.png" alt="" title="photo 3" width="320" height="480" class="aligncenter size-full wp-image-1723" /><br />
The onslaught game mode. Create matches for points, but don&#8217;t be too slow because the board keeps filling up. Sort of like a version of Tetris where the pieces appear in random places instead of always from the top.</p>
<p><br/></p>
<p>Keep in mind that &#8220;Myto&#8221; is just a temporary name because I thought it sounded kinda cool. It probably won&#8217;t be what it&#8217;s actually called. It&#8217;s basically a bastardized, shortened version of &#8220;Mitosis.&#8221; I&#8217;m still brain storming about names, so let me know if you have other ideas!</p>
<p><br/></p>
<p>The gameplay is like a mix of Bejewled and Trism. You slide rows and columns to try to make matches. But instead of matching colors, you match sides to each other. The goal is to complete a shape without any unmatched sides. The little black half-circles indicate sides that are currently unmatched. By doing this, you end up making crazy shapes and chains.</p>
<p><br/></p>
<p>I&#8217;ve been working really hard on making the visual, audio, and gameplay experience as smooth as possible. Even though I&#8217;ve never really done much actual design work, I&#8217;m trying to make it look really streamlined. I&#8217;m constantly opening up Photoshop and making small adjustments to things until they look pretty good.</p>
<p><br/></p>
<p>I didn&#8217;t really set out to make a finished app at first, but the more I worked on the game, the more I enjoyed playing it. I&#8217;ve been doing a TON of iterative design. It is completely different than it was when I first started. It&#8217;s been a really fun experience, and I have also learned a more about programming than I have in a long while. It&#8217;s amazing the problems you have to figure out when trying to push through to create a finished product. In the past, when my code got to spaghetti-ish and I couldn&#8217;t figure out what I was doing, I would just abandon the project and start again. Every time, my code got better. This time, I&#8217;ve really had to be careful so that I can maintain all the separate classes without them getting too confusing or anything, because it just keeps growing and growing.</p>
<p><br/></p>
<p>I still have a lot to do. Some things I still need to add are pop-up score labels for matches, a way to save/load gamestate, GameCenter integration, some sort of animation when you make a match rather then just fading out, actual options (right now there&#8217;s nothing really in the Options menu), some more audio/music, In-App Purchase for different types of shapes and game modes to play with, and more. I&#8217;m super excited about this and can&#8217;t wait to share more!</p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/r1WmGQTEEjI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/my-first-app/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/my-first-app/</feedburner:origLink></item>
		<item>
		<title>My Submission for the Gunpoint Game Music</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/DhfTZ0AaneE/</link>
		<comments>http://www.whitakerblackall.com/blog/my-submission-for-the-gunpoint-game-music/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 19:05:23 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Blog Post]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1718</guid>
		<description><![CDATA[
So there&#8217;s an open audition-type thing for the game Gunpoint and I did a tune for it. More info about this audition/contest thingy here.
Please listen on headphones or good speakers. It sounds way better! Also, the sub bass drone can be a bit overpowering on speakers with a good low end, but I boosted it...]]></description>
			<content:encoded><![CDATA[<p><iframe width="560" height="315" src="http://www.youtube.com/embed/SNkwZsdpg1g" frameborder="0" allowfullscreen></iframe></p>
<p>So there&#8217;s an open audition-type thing for the game Gunpoint and I did a tune for it. More info about this audition/contest thingy <a href=" http://www.pentadact.com/2011-11-30-more-on-making-music-for-gunpoint/">here</a>.</p>
<p>Please listen on headphones or good speakers. It sounds way better! Also, the sub bass drone can be a bit overpowering on speakers with a good low end, but I boosted it a bit so that people listening on crappy speakers could at least hear it somewhat.</p>
<p>I really just went with my feeling on this. I kept adding a bunch of things that just felt like they should be there. It&#8217;s sort of a mix between electronica and spy movie soundtracks. Plus maybe a bit of Pink Floyd&#8217;s David Gilmour. This was amazingly fun to do!</p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/DhfTZ0AaneE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/my-submission-for-the-gunpoint-game-music/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/my-submission-for-the-gunpoint-game-music/</feedburner:origLink></item>
		<item>
		<title>Cardinal Quest: Original Soundtrack is OUT!</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/ljF30eOij6g/</link>
		<comments>http://www.whitakerblackall.com/blog/cardinal-quest-original-soundtrack-is-out/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 06:34:08 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Blog Post]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1711</guid>
		<description><![CDATA[

Not only does it have all the original music from the game, but it also has unreleased tracks, as well as covers by Satstuma Audio,  Disasterpeace, Joe Cavers, Charlie McCarron, Cain German and some1namedjeff. Go get it at www.CardinalQuestMusic.com!

Cardinal Quest: Original Soundtrack by Whitaker Blackall
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2011/12/Cardinal-Quest-Cover-copy1.png" alt="" title="Cardinal Quest Cover copy" width="500" height="500" class="aligncenter size-full wp-image-1713" /></p>
<p><br/></p>
<p>Not only does it have all the original music from the <a href="http://www.cardinalquest.com">game</a>, but it also has unreleased tracks, as well as covers by <a href="http://www.satsuma-audio.com">Satstuma Audio</a>,  <a href="http://www.disasterpeace.com">Disasterpeace</a>, <a href="http://flavors.me/joecavers">Joe Cavers</a>, <a href="http://www.charliemccarron.com">Charlie McCarron</a>, <a href="http://www.caingerman.com">Cain German</a> and <a href="http://www.jeffedwardball.com">some1namedjeff</a>. Go get it at <a href="http://www.cardinalquestmusic.com">www.CardinalQuestMusic.com</a>!</p>
<p><br/></p>
<p><iframe width="300" height="410" style="position: relative; display: block; width: 300px; height: 410px;" src="http://bandcamp.com/EmbeddedPlayer/v=2/album=2588159267/size=grande3/bgcol=f4f3ed/linkcol=4285BB/" allowtransparency="true" frameborder="0"><a href="http://wblackall.bandcamp.com/album/cardinal-quest-original-soundtrack">Cardinal Quest: Original Soundtrack by Whitaker Blackall</a></iframe></p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/ljF30eOij6g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/cardinal-quest-original-soundtrack-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/cardinal-quest-original-soundtrack-is-out/</feedburner:origLink></item>
		<item>
		<title>Marriage and Name Change!</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/H99MvB1gORc/</link>
		<comments>http://www.whitakerblackall.com/blog/marriage-and-name-change/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 00:42:35 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Blog Post]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1698</guid>
		<description><![CDATA[Big news. First of all, I just got married last weekend to my beautiful girlfriend of 6 years, Dana! It was incredible. We then went to St. Lucia for our honeymoon, which was just sweet. Here&#8217;s a picture of us in St. Lucia:



Name Change
Dana&#8217;s last name is Tesser and mine is obviously Blackall. Some possibilities...]]></description>
			<content:encoded><![CDATA[<p>Big news. First of all, I just got married last weekend to my beautiful girlfriend of 6 years, Dana! It was incredible. We then went to St. Lucia for our honeymoon, which was just sweet. Here&#8217;s a picture of us in St. Lucia:</p>
<p><br/></p>
<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2011/12/IMG_01461.jpg" alt="" title="IMG_0146" width="500" height="374" class="aligncenter size-full wp-image-1700" /></p>
<p><br/></p>
<h2>Name Change</h2>
<p>Dana&#8217;s last name is <strong>Tesser</strong> and mine is obviously <strong>Blackall</strong>. Some possibilities we considered:</p>
<ul class="bullet">
<li>Dana changes her last name to Blackall</li>
<li>I change my last name to Tesser</li>
<li>We change both of our last names to Tesser-Blackall or Blackall-Tesser</li>
<li>We make up an entirely new last named based on the letters of both</li>
</ul>
<p><br class="clear" /></p>
<p>We ended up going with the last one. That way, we&#8217;ll have a name we both love. We won&#8217;t have to worry about what name our kid takes (if/when we have one). And it won&#8217;t be all clunky like a hyphenated name. We wanted to do this because, well . . . why not? Why does the woman always have to be the one to change? And why not make a sweet new name?</p>
<p><br/></p>
<p>We took four letters from each last name. From TESSER, we took <strong>T</strong>, <strong>E</strong>, <strong>E</strong>, and <strong>R</strong>. And from BLACKALL, we took <strong>B</strong>, <strong>A</strong>, <strong>L</strong>, and <strong>L</strong>.</p>
<p><br/></p>
<p>We then rearranged them and combined them into <strong>TREBELLA.</strong></p>
<p><br/></p>
<p>Nothing is set in stone yet. We have to actually go through the process of changing it officially, then changing passports, driver&#8217;s licenses, etc. That&#8217;ll be extremely annoying. But it&#8217;ll be worth it. We will now be Whitaker and Dana Trebella!</p>
<p><br/></p>
<p>I have changed my Twitter name to @wtrebella. And I just registered www.TrebellaMusic.com. So keep an eye out, because I&#8217;ll eventually be moving over to that domain.</p>
<p><br/></p>
<p>Thanks for reading!</p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/H99MvB1gORc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/marriage-and-name-change/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/marriage-and-name-change/</feedburner:origLink></item>
		<item>
		<title>Chunkopia</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/rT1l1rz9eOc/</link>
		<comments>http://www.whitakerblackall.com/blog/chunkopia/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 05:31:34 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1689</guid>
		<description><![CDATA[A remix of a song I did for Anosou&#8217;s brilliant Cobalt OST
]]></description>
			<content:encoded><![CDATA[<p>A remix of a song I did for Anosou&#8217;s brilliant Cobalt OST</p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/rT1l1rz9eOc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/chunkopia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/chunkopia/</feedburner:origLink></item>
		<item>
		<title>Cobalt EP Out!</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/Y0KmMj8Qi3I/</link>
		<comments>http://www.whitakerblackall.com/blog/cobalt-ep-out/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 05:27:39 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Blog Post]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1683</guid>
		<description><![CDATA[

The soundtrack to the upcoming indie game Cobalt is out and I have a remix on it! The music is by Anosou, who&#8217;s incredible. The album also features remixes by Chris Geehan, Jimmy Hinson (bigGIANTcircles), Magnus Pålsson (SoulEye), Daniel Rosenfeld (C418), and Steven Velema (surasshu). I&#8217;m proud and humbled to be in such good company.

My...]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.whitakerblackall.com/wp-content/uploads/2011/11/629311331-1.jpeg" alt="" title="629311331-1" width="350" height="350" class="aligncenter size-full wp-image-1685" /></p>
<p><br/></p>
<p>The soundtrack to the upcoming indie game <a href="http://www.oxeyegames.com/cobalt/">Cobalt</a> is out and I have a remix on it! The music is by Anosou, who&#8217;s incredible. The album also features remixes by Chris Geehan, Jimmy Hinson (bigGIANTcircles), Magnus Pålsson (SoulEye), Daniel Rosenfeld (C418), and Steven Velema (surasshu). I&#8217;m proud and humbled to be in such good company.</p>
<p><br/></p>
<p>My remix is called Chunkopia. Listen to it below (as well as all the other amazing music on the album). It&#8217;s my first actual remix. Usually I do covers but I actually used some of the original audio in this one, which I think makes it a remix. It&#8217;s a weird mix of genres. Hope you like it!</p>
<p><br/></p>
<p><iframe width="300" height="410" style="position: relative; display: block; width: 300px; height: 410px;" src="http://bandcamp.com/EmbeddedPlayer/v=2/album=271990126/size=grande3/bgcol=f4f4ed/linkcol=4285BB/" allowtransparency="true" frameborder="0"><a href="http://anosou.bandcamp.com/album/cobalt-ep">Cobalt EP by anosou</a></iframe></p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/Y0KmMj8Qi3I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/cobalt-ep-out/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.whitakerblackall.com/wp-content/uploads/2011/11/Cobalt-Cover-1.5.mp3" length="5189402" type="audio/mpeg" />
		<feedburner:origLink>http://www.whitakerblackall.com/blog/cobalt-ep-out/</feedburner:origLink></item>
		<item>
		<title>Snake and Racer: A Flixel Detour</title>
		<link>http://feedproxy.google.com/~r/WhitakerBlackall/~3/VVtikim6KpE/</link>
		<comments>http://www.whitakerblackall.com/blog/snake-and-racer-a-flixel-detour/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 21:28:53 +0000</pubDate>
		<dc:creator>Whitaker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.whitakerblackall.com/?p=1654</guid>
		<description><![CDATA[I took a little break from Objective C for awhile and learned the basics of Actionscript 3. It&#8217;s a really simple language, and with the help of the awesome Flixel, I was able to make a couple games pretty quickly.
The first game I made was Snake.

Snake




Making this game really helped me understand the basics of...]]></description>
			<content:encoded><![CDATA[<p>I took a little break from Objective C for awhile and learned the basics of Actionscript 3. It&#8217;s a really simple language, and with the help of the awesome <a href="http://flixel.org">Flixel</a>, I was able to make a couple games pretty quickly.</p>
<p>The first game I made was Snake.</p>
<p><br/></p>
<h2>Snake</h2>
<p><a href="http://www.whitakerblackall.com/wp-content/uploads/2011/08/Screen-shot-2011-08-08-at-4.17.42-PM.png"><img src="http://www.whitakerblackall.com/wp-content/uploads/2011/08/Screen-shot-2011-08-08-at-4.17.42-PM-300x277.png" alt="" title="Screen shot 2011-08-08 at 4.17.42 PM" width="300" height="277" class="aligncenter size-medium wp-image-1665" /></a></p>
<p><br/></p>
<p><a href="http://www.whitakerblackall.com/wp-content/uploads/2011/08/Screen-shot-2011-08-08-at-4.18.00-PM.png"><img src="http://www.whitakerblackall.com/wp-content/uploads/2011/08/Screen-shot-2011-08-08-at-4.18.00-PM-300x279.png" alt="" title="Screen shot 2011-08-08 at 4.18.00 PM" width="300" height="279" class="aligncenter size-medium wp-image-1666" /></a></p>
<p><br/></p>
<p>Making this game really helped me understand the basics of Actionscript 3 and Flixel. It was surprisingly easy to make! My code got pretty sloppy after awhile though, so I wanted to try making another game, this time keeping clean, documented code.</p>
<p><br/></p>
<p><a href="http://whitakerblackall.com/wp-content/uploads/Snake.swf">Play Snake here.</a></p>
<p><br/></p>
<p>The next game I made was another really common one. All you need to do is avoid the walls. There are three levels of difficulty (either click or press the number on your keyboard to start the game). Sorry, but if you start playing in one difficulty, you have to refresh the page to change the level, because out of laziness, I never built in a &#8220;Go Back to Menu&#8221; button. Also, sorry, but I made one piece of music that I used for both games, so hopefully you won&#8217;t get sick of it.</p>
<p><br/></p>
<h2>Racer</h2>
<p><a href="http://www.whitakerblackall.com/wp-content/uploads/2011/08/Screen-shot-2011-08-08-at-4.20.19-PM.png"><img src="http://www.whitakerblackall.com/wp-content/uploads/2011/08/Screen-shot-2011-08-08-at-4.20.19-PM-300x211.png" alt="" title="Screen shot 2011-08-08 at 4.20.19 PM" width="300" height="211" class="aligncenter size-medium wp-image-1667" /></a></p>
<p><br/></p>
<p><a href="http://www.whitakerblackall.com/wp-content/uploads/2011/08/Screen-shot-2011-08-08-at-4.20.49-PM.png"><img src="http://www.whitakerblackall.com/wp-content/uploads/2011/08/Screen-shot-2011-08-08-at-4.20.49-PM-300x214.png" alt="" title="Screen shot 2011-08-08 at 4.20.49 PM" width="300" height="214" class="aligncenter size-medium wp-image-1668" /></a></p>
<p><br/></p>
<p><a href="http://whitakerblackall.com/wp-content/uploads/Racer.swf">Play Racer here.</a></p>
<p><br/></p>
<p>One of the main reasons I wanted to keep the code clean is because I wanted to open source the game. I tried to document every major thing in the code so it would be easily understandable. I&#8217;m sure there are still many things I could have done better, as I am definitely still learning, but anyone is free to download it and muck around with it. <a href="http://whitakerblackall.com/wp-content/uploads/Racer.rar">Download the full source folder here.</a></p>
<img src="http://feeds.feedburner.com/~r/WhitakerBlackall/~4/VVtikim6KpE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.whitakerblackall.com/blog/snake-and-racer-a-flixel-detour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.whitakerblackall.com/blog/snake-and-racer-a-flixel-detour/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: www.whitakerblackall.com @ 2012-05-17 12:34:48 -->

