<?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-437911419066174428</id><updated>2011-08-26T12:36:26.466-04:00</updated><category term='uniforms'/><category term='hammers'/><category term='championship ultimate'/><category term='iphone'/><category term='frisbee'/><category term='git'/><category term='ai'/><category term='lighting'/><category term='multiplayer'/><category term='controls'/><category term='programming'/><category term='video'/><category term='ipad'/><category term='ultimate'/><category term='website'/><category term='blogging'/><category term='madcow'/><category term='computers'/><category term='update'/><title type='text'>Blog Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>80</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-2357932786020659144</id><published>2010-11-28T15:18:00.000-05:00</published><updated>2010-11-28T15:18:19.630-05:00</updated><title type='text'>New Website</title><content type='html'>The new website is up and running. Any new posts will show up there.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Link: &lt;a href="http://radicalbit.net/"&gt;http://radicalbit.net/&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/437911419066174428-2357932786020659144?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/2357932786020659144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=2357932786020659144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2357932786020659144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2357932786020659144'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/11/new-website.html' title='New Website'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6930926330914348823</id><published>2010-11-25T12:27:00.000-05:00</published><updated>2010-11-25T12:27:53.808-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><title type='text'>A Quick Update</title><content type='html'>I know things have been quiet here lately, but some new stuff will be coming along. I'm in the process of building a website that will host this blog as well as other information on Championship Ultimate. It will also be a source of information on my other games and projects.&lt;br /&gt;&lt;br /&gt;There will also be a smallish update to CU coming soon. It won't have multiplayer, but there will be a number of nice little tweaks. Multiplayer is simply a huge project will take some more time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-6930926330914348823?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6930926330914348823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6930926330914348823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6930926330914348823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6930926330914348823'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/11/quick-update.html' title='A Quick Update'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-5066834545261330960</id><published>2010-10-21T11:38:00.001-04:00</published><updated>2010-10-21T11:42:57.839-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='multiplayer'/><title type='text'>Versus.</title><content type='html'>The multiplayer code is finally looking playable. The gameplay elements are just about done, but there's still a bit of work to sync up team / game selection, sounds, etc.&lt;br /&gt;&lt;br /&gt;But, here's the thing: Bluetooth performance has seemed pretty terrible during my own testing. I think I do an okay job compensating for the lag, but once in a while it will spike up and the disc will jump around, or your player won't catch the disc when it seems like it should. So, should I release the Bluetooth multiplayer, or just work on the GameCenter internet play which should (most of the time) yield better results?&lt;br /&gt;&lt;br /&gt;I'm leaning toward releasing it. I think it will be fun, even if the performance isn't great. Thoughts?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-5066834545261330960?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/5066834545261330960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=5066834545261330960' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5066834545261330960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5066834545261330960'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/10/versus.html' title='Versus.'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-5531386397493926514</id><published>2010-09-21T17:16:00.001-04:00</published><updated>2010-09-21T17:25:43.081-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>TimeSync was a time sink</title><content type='html'>An important part of my networking code for Championship Ultimate is getting all the devices clocks synced up, so that they can talk intelligently about what time events occurred in the game. It turns out that this is not a trivial problem, and I spent a couple days working on it.&lt;br /&gt;&lt;br /&gt;This question I asked on stackoverflow.com goes into more detail, and I got some helpful answers:&amp;nbsp;http://stackoverflow.com/questions/3755208/measuring-time-difference-between-networked-devices&lt;br /&gt;&lt;br /&gt;This wikipedia page was also helpful:&lt;br /&gt;http://en.wikipedia.org/wiki/Precision_Time_Protocol&lt;br /&gt;&lt;br /&gt;So, with all that info, I made a class to do the job that I'm fairly proud of. Perhaps it will be useful to someone else someday. Do whatever you want with the code, but it would be fun if you left a comment to say it was useful. The actual network communication stuff obviously needs to be changed to fit in your code.&lt;br /&gt;&lt;br /&gt;TimeSync.h&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;//Call [timeSync startSync] on the client. The offset variable will be continually updated&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;//throughout the life of the program, and it will be sent back to the server also.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="p1"&gt;#define TS_DELAY_MAX &lt;span class="s1"&gt;10000&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;@interface&lt;/span&gt; TimeSync : NSObject&amp;nbsp;&lt;/div&gt;&lt;div class="p1"&gt;{&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span class="s2"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSTimeInterval&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="s3"&gt;t1&lt;/span&gt;&lt;span class="s2"&gt;, &lt;/span&gt;&lt;span class="s3"&gt;t2&lt;/span&gt;&lt;span class="s2"&gt;; //t1 is client time - server time, and t2 is server time - client time&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="s2"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSTimeInterval&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="s3"&gt;offset&lt;/span&gt;&lt;span class="s2"&gt;; &lt;/span&gt;//this doesn't get calculated from t1 and t2 until it's stabilized&lt;/div&gt;&lt;div class="p4"&gt;&lt;span class="s2"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;synccount&lt;span class="s2"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;}&lt;/div&gt;&lt;div class="p5"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span class="s2"&gt;-(&lt;/span&gt;NSTimeInterval&lt;span class="s2"&gt;)offset;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;-(&lt;span class="s1"&gt;void&lt;/span&gt;)checkSyncStatus;&lt;/div&gt;&lt;div class="p1"&gt;-(&lt;span class="s1"&gt;void&lt;/span&gt;)sendTimeSync;&lt;/div&gt;&lt;div class="p1"&gt;-(&lt;span class="s1"&gt;void&lt;/span&gt;)sendDelayRequest;&lt;/div&gt;&lt;div class="p1"&gt;-(&lt;span class="s1"&gt;void&lt;/span&gt;)sendDelayResponse:(&lt;span class="s4"&gt;NSTimeInterval&lt;/span&gt;)from;&lt;/div&gt;&lt;div class="p1"&gt;-(&lt;span class="s1"&gt;void&lt;/span&gt;)processPacketType:(&lt;span class="s4"&gt;uint8_t&lt;/span&gt;)type TimeStamp:(&lt;span class="s4"&gt;NSTimeInterval&lt;/span&gt;)timeStamp;&lt;/div&gt;&lt;div class="p1"&gt;-(&lt;span class="s1"&gt;void&lt;/span&gt;)sendSyncRequest;&lt;/div&gt;&lt;div class="p1"&gt;-(&lt;span class="s1"&gt;void&lt;/span&gt;)publishOffset;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;TimeSync.m&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="p1"&gt;@implementation&lt;span class="s1"&gt; TimeSync&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;id&lt;/span&gt;)init&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if&lt;span class="s1"&gt; (&lt;/span&gt;self&lt;span class="s1"&gt; = [&lt;/span&gt;super&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;init&lt;/span&gt;&lt;span class="s1"&gt;])&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t1&lt;/span&gt; =&amp;nbsp;TS_DELAY_MAX;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t2&lt;/span&gt; =&amp;nbsp;TS_DELAY_MAX;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;offset&lt;/span&gt; =&amp;nbsp;TS_DELAY_MAX;&lt;/div&gt;&lt;div class="p4"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;synccount&lt;span class="s1"&gt; = &lt;/span&gt;&lt;span class="s5"&gt;0&lt;/span&gt;&lt;span class="s1"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return&lt;span class="s1"&gt; &lt;/span&gt;self&lt;span class="s1"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;void&lt;/span&gt;)sendSyncRequest&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p5"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[[&lt;/span&gt;&lt;span class="s4"&gt;Basket&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;shared&lt;span class="s1"&gt;].&lt;/span&gt;&lt;span class="s6"&gt;connection&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;sendPacket&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s7"&gt;PT_SYNC_REQ&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;Data&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;nil&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;Mode&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s8"&gt;GKSendDataReliable&lt;/span&gt;&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;void&lt;/span&gt;)sendTimeSync&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s6"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSTimeInterval&lt;/span&gt;&lt;span class="s1"&gt; now = [&lt;/span&gt;&lt;span class="s6"&gt;NSDate&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;timeIntervalSinceReferenceDate&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[[&lt;/span&gt;&lt;span class="s4"&gt;Basket&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;shared&lt;/span&gt;&lt;span class="s1"&gt;].&lt;/span&gt;&lt;span class="s6"&gt;connection&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;sendPacket&lt;/span&gt;&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s7"&gt;PT_TIME_SYNC&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;Data&lt;/span&gt;&lt;span class="s1"&gt;:[&lt;/span&gt;&lt;span class="s6"&gt;NSData&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;dataWithBytes&lt;span class="s1"&gt;:&amp;amp;now &amp;nbsp;&lt;/span&gt;length&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;sizeof&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;&lt;span class="s6"&gt;NSTimeInterval&lt;/span&gt;&lt;span class="s1"&gt;)] &lt;/span&gt;&lt;span class="s3"&gt;Mode&lt;/span&gt;&lt;span class="s1"&gt;:&lt;/span&gt;GKSendDataUnreliable&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;void&lt;/span&gt;)sendDelayRequest&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s6"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSTimeInterval&lt;/span&gt;&lt;span class="s1"&gt; now = [&lt;/span&gt;&lt;span class="s6"&gt;NSDate&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;timeIntervalSinceReferenceDate&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[[&lt;/span&gt;&lt;span class="s4"&gt;Basket&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;shared&lt;/span&gt;&lt;span class="s1"&gt;].&lt;/span&gt;&lt;span class="s6"&gt;connection&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;sendPacket&lt;/span&gt;&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s7"&gt;PT_DELAY_REQ&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;Data&lt;/span&gt;&lt;span class="s1"&gt;:[&lt;/span&gt;&lt;span class="s6"&gt;NSData&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;dataWithBytes&lt;span class="s1"&gt;:&amp;amp;now &lt;/span&gt;length&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;sizeof&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;&lt;span class="s6"&gt;NSTimeInterval&lt;/span&gt;&lt;span class="s1"&gt;)] &lt;/span&gt;&lt;span class="s3"&gt;Mode&lt;/span&gt;&lt;span class="s1"&gt;:&lt;/span&gt;GKSendDataUnreliable&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;void&lt;/span&gt;)sendDelayResponse:(&lt;span class="s6"&gt;NSTimeInterval&lt;/span&gt;)from&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s6"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSTimeInterval&lt;/span&gt;&lt;span class="s1"&gt; now = [&lt;/span&gt;&lt;span class="s6"&gt;NSDate&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;timeIntervalSinceReferenceDate&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s6"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSTimeInterval&lt;/span&gt; &lt;span class="s4"&gt;diff&lt;/span&gt; = now - from;&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[[&lt;/span&gt;&lt;span class="s4"&gt;Basket&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;shared&lt;/span&gt;&lt;span class="s1"&gt;].&lt;/span&gt;&lt;span class="s6"&gt;connection&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;sendPacket&lt;/span&gt;&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s7"&gt;PT_DELAY_RSP&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;Data&lt;/span&gt;&lt;span class="s1"&gt;:[&lt;/span&gt;&lt;span class="s6"&gt;NSData&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;dataWithBytes&lt;span class="s1"&gt;:&amp;amp;&lt;/span&gt;&lt;span class="s4"&gt;diff&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;length&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;sizeof&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;&lt;span class="s6"&gt;NSTimeInterval&lt;/span&gt;&lt;span class="s1"&gt;)] &lt;/span&gt;&lt;span class="s3"&gt;Mode&lt;/span&gt;&lt;span class="s1"&gt;:&lt;/span&gt;GKSendDataUnreliable&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;void&lt;/span&gt;)sendSyncNotify&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[[&lt;/span&gt;&lt;span class="s4"&gt;Basket&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;shared&lt;/span&gt;&lt;span class="s1"&gt;].&lt;/span&gt;&lt;span class="s6"&gt;connection&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;sendPacket&lt;/span&gt;&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s7"&gt;PT_SYNC_NOTIFY&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s3"&gt;Data&lt;/span&gt;&lt;span class="s1"&gt;:[&lt;/span&gt;&lt;span class="s6"&gt;NSData&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;dataWithBytes&lt;span class="s1"&gt;:&amp;amp;&lt;/span&gt;&lt;span class="s4"&gt;offset&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;length&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;sizeof&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;&lt;span class="s6"&gt;NSTimeInterval&lt;/span&gt;&lt;span class="s1"&gt;)] &lt;/span&gt;&lt;span class="s3"&gt;Mode&lt;/span&gt;&lt;span class="s1"&gt;:&lt;/span&gt;GKSendDataReliable&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;void&lt;/span&gt;)startSync&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p7"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//get a first quick measurement, then only measure every 10 seconds&lt;/div&gt;&lt;div class="p7"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//basically, a new offset will be published every minute&lt;/div&gt;&lt;div class="p2"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if&lt;/span&gt; (&lt;span class="s4"&gt;offset&lt;/span&gt; ==&amp;nbsp;TS_DELAY_MAX)&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&lt;/span&gt;&lt;span class="s2"&gt;self&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;performSelector&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;@selector&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;&lt;span class="s3"&gt;startSync&lt;/span&gt;&lt;span class="s1"&gt;) &lt;/span&gt;withObject&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;nil&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;afterDelay&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s5"&gt;0.5&lt;/span&gt;&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/div&gt;&lt;div class="p6"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[&lt;/span&gt;&lt;span class="s2"&gt;self&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;performSelector&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;@selector&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;&lt;span class="s3"&gt;startSync&lt;/span&gt;&lt;span class="s1"&gt;) &lt;/span&gt;withObject&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;nil&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;afterDelay&lt;span class="s1"&gt;:&lt;/span&gt;&lt;span class="s5"&gt;10.0&lt;/span&gt;&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/div&gt;&lt;div class="p5"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[&lt;/span&gt;&lt;span class="s2"&gt;self&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;sendSyncRequest&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;void&lt;/span&gt;)publishOffset&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;offset&lt;/span&gt; = (&lt;span class="s4"&gt;t2&lt;/span&gt; - &lt;span class="s4"&gt;t1&lt;/span&gt;)/&lt;span class="s5"&gt;2.0&lt;/span&gt;;&lt;/div&gt;&lt;div class="p8"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s8"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSLog&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;@"TimeSync found delay to be %f"&lt;span class="s1"&gt;, &lt;/span&gt;&lt;span class="s4"&gt;offset&lt;/span&gt;&lt;span class="s1"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s8"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSLog&lt;/span&gt;(&lt;span class="s9"&gt;@"Ping was %f"&lt;/span&gt;, (&lt;span class="s4"&gt;t2&lt;/span&gt; + &lt;span class="s4"&gt;t1&lt;/span&gt;)/&lt;span class="s5"&gt;2.0&lt;/span&gt;);&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="p7"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//reset so we can measure a new drift&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;t1&lt;/span&gt; =&amp;nbsp;TS_DELAY_MAX;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;t2&lt;/span&gt; =&amp;nbsp;TS_DELAY_MAX;&lt;/div&gt;&lt;div class="p2"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="p8"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s8"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSLog&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;@"Notifying server of offset..."&lt;span class="s1"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="p5"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;[&lt;/span&gt;&lt;span class="s2"&gt;self&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;sendSyncNotify&lt;span class="s1"&gt;];&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p3"&gt;-(&lt;span class="s2"&gt;void&lt;/span&gt;)processPacketType:(&lt;span class="s6"&gt;uint8_t&lt;/span&gt;)type TimeStamp:(&lt;span class="s6"&gt;NSTimeInterval&lt;/span&gt;)timeStamp&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p9"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;NSTimeInterval&lt;span class="s1"&gt; timediff;&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;switch&lt;/span&gt; (type)&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/div&gt;&lt;div class="p10"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;PT_SYNC_REQ&lt;span class="s1"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="p5"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span class="s2"&gt;self&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;sendTimeSync&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break&lt;span class="s1"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p10"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;PT_TIME_SYNC&lt;span class="s1"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timediff = [&lt;span class="s6"&gt;NSDate&lt;/span&gt; &lt;span class="s8"&gt;timeIntervalSinceReferenceDate&lt;/span&gt;] - timeStamp;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&lt;/span&gt; (timediff &amp;lt; &lt;span class="s4"&gt;t1&lt;/span&gt;)&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t1&lt;/span&gt; = timediff;&lt;/div&gt;&lt;div class="p5"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span class="s2"&gt;self&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;sendDelayRequest&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break&lt;span class="s1"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p10"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;PT_DELAY_REQ&lt;span class="s1"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;span class="s2"&gt;self&lt;/span&gt; &lt;span class="s3"&gt;sendDelayResponse&lt;/span&gt;:timeStamp];&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break&lt;span class="s1"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p10"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;PT_DELAY_RSP&lt;span class="s1"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&lt;/span&gt; (timeStamp &amp;lt; &lt;span class="s4"&gt;t2&lt;/span&gt;)&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; t2&lt;/span&gt; = timeStamp;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p4"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; synccount&lt;span class="s1"&gt;++;&lt;/span&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p7"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if&lt;/span&gt;&lt;span class="s1"&gt; (&lt;/span&gt;&lt;span class="s4"&gt;synccount&lt;/span&gt;&lt;span class="s1"&gt; % &lt;/span&gt;&lt;span class="s5"&gt;5&lt;/span&gt;&lt;span class="s1"&gt; == &lt;/span&gt;&lt;span class="s5"&gt;0&lt;/span&gt;&lt;span class="s1"&gt;) &lt;/span&gt;//publish the new offset every 5 measurements&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div class="p5"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span class="s2"&gt;self&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;publishOffset&lt;span class="s1"&gt;];&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break&lt;span class="s1"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p10"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s2"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;PT_SYNC_NOTIFY&lt;span class="s1"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="s4"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; offset&lt;/span&gt; = -timeStamp;&lt;/div&gt;&lt;div class="p8"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="s8"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NSLog&lt;/span&gt;&lt;span class="s1"&gt;(&lt;/span&gt;@"Received notification of offset:%f"&lt;span class="s1"&gt;, &lt;/span&gt;&lt;span class="s4"&gt;offset&lt;/span&gt;&lt;span class="s1"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default&lt;span class="s1"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break&lt;span class="s1"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p9"&gt;&lt;span class="s1"&gt;-(&lt;/span&gt;NSTimeInterval&lt;span class="s1"&gt;)offset&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;{&lt;/div&gt;&lt;div class="p1"&gt;&lt;span class="s1"&gt;&lt;span class="Apple-tab-span"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="s4"&gt;offset&lt;/span&gt;&lt;span class="s1"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="p3"&gt;}&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-5531386397493926514?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/5531386397493926514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=5531386397493926514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5531386397493926514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5531386397493926514'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/09/timesync-was-time-sink.html' title='TimeSync was a time sink'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6868910937616718253</id><published>2010-09-09T23:22:00.000-04:00</published><updated>2010-09-09T23:22:10.313-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='multiplayer'/><title type='text'>A Quick Note</title><content type='html'>I don't have much real news, but I am hard at work on some cool features. And, I'm looking to get support for GameCenter in sooner, rather than later. Yup, that means online multiplayer. I might focus all my work on that to try to get it out there even if it means pushing some other stuff back a bit. I'm excited to see if anyone can beat me at my own game!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-6868910937616718253?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6868910937616718253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6868910937616718253' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6868910937616718253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6868910937616718253'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/09/quick-note.html' title='A Quick Note'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3256677198545451115</id><published>2010-08-25T01:36:00.002-04:00</published><updated>2010-08-25T01:39:52.242-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Submitted 1.2</title><content type='html'>I submitted version 1.2 for review. Some fun facts:&lt;br /&gt;&lt;br /&gt;Championship Ultimate is right now made up of 30,239 lines of code! The biggest file by far is Player.m which is 1699 lines.&lt;br /&gt;&lt;br /&gt;Yesterday, August 24th, was the one year anniversary of the beginning of the project. Here are some comparison screenshots:&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/THSoN1FHnXI/AAAAAAAAAHo/9nAmsOOlYIU/s1600/iphoneultimatess.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/THSoN1FHnXI/AAAAAAAAAHo/9nAmsOOlYIU/s200/iphoneultimatess.png" width="180" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;8/24/2009&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/THSoYCcFDRI/AAAAAAAAAHw/VcgGYWCVA5g/s1600/ss3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="212" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/THSoYCcFDRI/AAAAAAAAAHw/VcgGYWCVA5g/s320/ss3.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;8/24/2010&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In a lot of ways, 1.2 is the game I wanted to make from the very beginning. But, I'm glad I didn't wait this long for the first release. I've gotten a lot of great feedback since it came out that has helped it evolve. So, many thanks to all of you for playing the game and spreading the word!&lt;br /&gt;&lt;br /&gt;Here's the changelog:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gameplay Improvements:&lt;br /&gt;Much more realistic flight physics&lt;br /&gt;Can put curve on throws (inside-out and outside-in)&lt;br /&gt;Can alter the angle of attack (changes the height of throws)&lt;br /&gt;Can optionally use simple throwing controls that require no pivoting&lt;br /&gt;Tweak camera to show more action on the near sideline&lt;br /&gt;Throws out of bounds come in where they went out&lt;br /&gt;Pulls out of bounds respect the brick mark&lt;br /&gt;Added Huck drill&lt;br /&gt;&lt;br /&gt;AI Improvements:&lt;br /&gt;Poached players cut more aggressively&lt;br /&gt;Tone down AI poach defense and make throwers less conservative&lt;br /&gt;AI will more intelligently chase your hucks&lt;br /&gt;AI has better judgement of whether a huck is open&lt;br /&gt;&lt;br /&gt;Graphical Improvements:&lt;br /&gt;Better looking stadium&lt;br /&gt;Added stadium lights&lt;br /&gt;Added camera flyby to game intro&lt;br /&gt;Added nicer looking sky&lt;br /&gt;New buttons&lt;br /&gt;New stall counter&lt;br /&gt;&lt;br /&gt;New Teams:&lt;br /&gt;OSU Leadbelly&lt;br /&gt;CHS Varsity&lt;br /&gt;Oberlin Preying Manti&lt;br /&gt;&lt;br /&gt;Bug Fixes:&lt;br /&gt;Player numbers looked wrong when pivoting (and related problems)&lt;br /&gt;Holding down throwing arrow might lead to player switch&lt;br /&gt;Other misc. fixes&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A few things have been pushed back to 1.3, which should be a pretty exciting release as well.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-3256677198545451115?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3256677198545451115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3256677198545451115' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3256677198545451115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3256677198545451115'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/08/submitted-12.html' title='Submitted 1.2'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/THSoN1FHnXI/AAAAAAAAAHo/9nAmsOOlYIU/s72-c/iphoneultimatess.png' height='72' width='72'/><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3406122820121718184</id><published>2010-08-14T16:59:00.000-04:00</published><updated>2010-08-14T16:59:11.556-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><title type='text'>iOS 3.1 crash..and...new buttons!</title><content type='html'>There's a problem with iOS 3.1 and CU version 1.1. I've submitted a fix and it looks like they'll review it on monday. Sorry about that!&lt;br /&gt;&lt;br /&gt;Here are the new buttons I've made. I can't decide if they are too colorful. Maybe they should all be gray, and just labeled A,B, or C?&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/TGcDf_MBEjI/AAAAAAAAAHg/Gkihc58-lQU/s1600/Screen+shot+2010-08-14+at+4.55.14+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/TGcDf_MBEjI/AAAAAAAAAHg/Gkihc58-lQU/s320/Screen+shot+2010-08-14+at+4.55.14+PM.png" /&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/437911419066174428-3406122820121718184?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3406122820121718184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3406122820121718184' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3406122820121718184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3406122820121718184'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/08/ios-31-crashandnew-buttons.html' title='iOS 3.1 crash..and...new buttons!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/TGcDf_MBEjI/AAAAAAAAAHg/Gkihc58-lQU/s72-c/Screen+shot+2010-08-14+at+4.55.14+PM.png' height='72' width='72'/><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3354742090809462193</id><published>2010-08-12T15:16:00.000-04:00</published><updated>2010-08-12T15:16:23.843-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='lighting'/><title type='text'>1.1 Is Out! And...some mood lighting.</title><content type='html'>1.1 has finally been approved for the app store. Scooops!&lt;br /&gt;&lt;br /&gt;I've added some subtle stadium lights to the newest version. It doesn't jump out at you, but I think it does provide some nice graphical depth. &amp;nbsp;Actually, I think it also helps with gameplay, because depth perception is a little easier, as areas of light or dark become good reference points to judge distances.&lt;br /&gt;&lt;br /&gt;Overall, the field does look a bit darker, but I think it raises the drama.&lt;br /&gt;&lt;br /&gt;Love it? Hate it? Can hardly tell the difference?&lt;br /&gt;&lt;br /&gt;Comparison pictures: Original (Above) and Lit (Below)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/TGRGq6ZWYYI/AAAAAAAAAHY/_bMzkmJFuuw/s1600/lighting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/TGRGq6ZWYYI/AAAAAAAAAHY/_bMzkmJFuuw/s400/lighting.png" width="280" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In other news, lefties should make it into 1.2, and I've started work on multiplayer, but I need access to another ipod/phone to really make good progress there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-3354742090809462193?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3354742090809462193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3354742090809462193' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3354742090809462193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3354742090809462193'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/08/11-is-out-andsome-mood-lighting.html' title='1.1 Is Out! And...some mood lighting.'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aHXMSfhY_hY/TGRGq6ZWYYI/AAAAAAAAAHY/_bMzkmJFuuw/s72-c/lighting.png' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4261501884363566946</id><published>2010-08-06T14:12:00.000-04:00</published><updated>2010-08-06T14:12:14.133-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Git 'er done!</title><content type='html'>A few weeks ago I started using &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;, which is a source code manager, or a version control system, or maybe it has five other names. Essentially, it keeps track of every code change I make and it makes my life a whole lot easier! I can branch off in different directions for everything I do, and then merge everything back easily when it's ready. It's free and open source, and was started by Linus (the guy behind Linux). It's way superior to CVS and SVN and everything else.&lt;br /&gt;&lt;br /&gt;Here's a screenshot of my git tree for Championship Ultimate:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aHXMSfhY_hY/TFxP-Eoc3rI/AAAAAAAAAHQ/YGP_-35V8PQ/s1600/Screen+shot+2010-08-06+at+2.02.00+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/TFxP-Eoc3rI/AAAAAAAAAHQ/YGP_-35V8PQ/s320/Screen+shot+2010-08-06+at+2.02.00+PM.png" /&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/437911419066174428-4261501884363566946?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4261501884363566946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4261501884363566946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4261501884363566946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4261501884363566946'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/08/git-er-done.html' title='Git &apos;er done!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aHXMSfhY_hY/TFxP-Eoc3rI/AAAAAAAAAHQ/YGP_-35V8PQ/s72-c/Screen+shot+2010-08-06+at+2.02.00+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-1594914904348047386</id><published>2010-08-06T13:44:00.000-04:00</published><updated>2010-08-06T13:44:57.855-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>1.2 Materializes</title><content type='html'>I had to resubmit 1.1 a few days ago because of a bug I found. But again, I hope it comes out soon.&lt;br /&gt;&lt;br /&gt;The delay hasn't stopped me from working on version 1.2. It's going to have some pretty awesome and fundamental changes, and ideally it'll be ready to submit right after 1.1 is approved.&lt;br /&gt;&lt;br /&gt;For 1.2 I dramatically improved the disc flight physics. Now it flies much more realistically. You can now throw the disc at an angle and have it curve. You can also alter the angle of attack, which means hucks can either be fast, low flying throws, or you can make them sail into the air. Short throws can be either quick, zippy passes, or you can float them into a space.&lt;br /&gt;&lt;br /&gt;Sound complicated? Well, yea, it should, because throwing a real frisbee is a complicated process. I want the video game to have all the flight options that a real disc has.&lt;br /&gt;&lt;br /&gt;However, I also added optional, simplified controls. A new player can pick them up and play without much practice. An experienced player might even like them if they don't care much about the attack angle or pivoting or throwing hammers.&lt;br /&gt;&lt;br /&gt;There's also some AI improvements and a handful of bugfixes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-1594914904348047386?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/1594914904348047386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=1594914904348047386' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1594914904348047386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1594914904348047386'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/08/12-materializes.html' title='1.2 Materializes'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-9040640867649709830</id><published>2010-07-30T00:54:00.000-04:00</published><updated>2010-07-30T00:54:57.791-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Update Submitted!</title><content type='html'>I submitted version 1.1 to the App Store. I think updates get reviewed faster than new submissions, so hopefully it's out within a few days.&lt;br /&gt;&lt;br /&gt;Here's the changelog:&lt;br /&gt;&lt;br /&gt;Added iPad support&lt;br /&gt;Can now throw hammers and blades&lt;br /&gt;Simplified throwing and turning controls&lt;br /&gt;New help files to better explain the controls&lt;br /&gt;AI controlled players are more likely to chase down hucks that fly near them&lt;br /&gt;When jumping for the disc, your player has better judgement of whether to jump up or layout&lt;br /&gt;Added layout D drill&lt;br /&gt;Made a more informative tournament screen&lt;br /&gt;Can now run game in both landscape orientations&lt;br /&gt;&lt;br /&gt;fixed bug: Switching to running player caused them to stop&lt;br /&gt;fixed bug: Fast devices would run demos too fast&lt;br /&gt;fixed bug: Couldn't reliably turn left when holding disc&lt;br /&gt;fixed bug: Sometimes turnover in endzone would incorrectly result in a score&lt;br /&gt;fixed bug: Sometimes targeting control arrow would "stick"&lt;br /&gt;&lt;br /&gt;Other small fixes and tweaks&lt;br /&gt;&lt;br /&gt;Phew! It was a lot of work to get everything looking good on the iPad.&lt;br /&gt;&lt;br /&gt;Now that I'm done with that, what should go into the next release? Any great feature ideas? Any hated bugs that should be fixed?&lt;br /&gt;&lt;br /&gt;Off the top of my head, I'm thinking...&lt;br /&gt;Inside out / outside in forehands and backhands, to add some curve to throws and pulls.&lt;br /&gt;Lefties&lt;br /&gt;Mini-frolf course type training drill?&lt;br /&gt;Some iPhone 4 hi-res support&lt;br /&gt;&lt;br /&gt;Add some stuff to the list!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-9040640867649709830?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/9040640867649709830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=9040640867649709830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/9040640867649709830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/9040640867649709830'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/07/update-submitted.html' title='Update Submitted!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4402556176395446046</id><published>2010-07-25T17:20:00.001-04:00</published><updated>2010-07-25T17:27:11.516-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='controls'/><title type='text'>Simplifying the controls</title><content type='html'>I took some time recently to change the throwing controls a bit. I think the new controls make it much easier to turn and find a target, and also make everything conceptually simpler.&lt;br /&gt;&lt;br /&gt;The old controls (as seen in the current release, version 1.0) consisted of:&lt;br /&gt;1. A "rotater" control to turn and find a target.&lt;br /&gt;2. The DPad, which was used for pivoting.&lt;br /&gt;3. The targeting pad, which was either used to throw short passes (high release backhands and push passes) by itself, or was used after pivoting to throw full power backhands and forehands.&lt;br /&gt;&lt;br /&gt;The problems with the old controls...&lt;br /&gt;1. The "rotater" was awkwardly placed above the DPad, making it slow to go from turning to pivoting. It was also visually complicated.&lt;br /&gt;2. The targeting pad was too tempting for beginners. They would (understandably) use it to throw the disc without pivoting first, but that would result in short throws. I.e., "I'm dragging the arrow out pretty far, how come the disc isn't going anywhere?"&lt;br /&gt;&lt;br /&gt;Once I added hammers, I knew I had to unify all the different throws. Instead of separating the short throws from the long throws, I would put all of them (forehands, backhands, high release backhands, push passes, hammers, blades) conceptually on the same level. &lt;br /&gt;&lt;br /&gt;The new controls consist of:&lt;br /&gt;1. The DPad, used for pivoting as usual UNLESS the red Action Button is held down.&lt;br /&gt;2. The familiar red Action Button. If pressed, it will enable the DPad to turn the player.&lt;br /&gt;3. The targeting pad, which only pops up once the player has started pivoting.&lt;br /&gt;&lt;br /&gt;Benefits of the new controls:&lt;br /&gt;1. Got rid of the "rotater", and found a new use for an existing button. The fewer buttons to learn about the better. &lt;br /&gt;2. The left thumb is always positioned over the DPad; no need to move it up in order to turn.&lt;br /&gt;3. The throwing pad is no longer a big problem for new players. Instead of, "Don't use it if you haven't pivoted first", the recommendation is, "Whenever you see it, go for it!".&lt;br /&gt;&lt;br /&gt;Here's a visual explanation of the new controls:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/TEyqATUyffI/AAAAAAAAAHA/7zPO4mpv5LY/s1600/control_expl_one.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/TEyqATUyffI/AAAAAAAAAHA/7zPO4mpv5LY/s320/control_expl_one.png" /&gt;&lt;/a&gt;&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://1.bp.blogspot.com/_aHXMSfhY_hY/TEyqGUI1bdI/AAAAAAAAAHI/Y3jOA4ICYLg/s1600/control_expl_two.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/TEyqGUI1bdI/AAAAAAAAAHI/Y3jOA4ICYLg/s320/control_expl_two.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;What do you think? Is this better than the old controls?&lt;br /&gt;&lt;br /&gt;Barring any strong objections, the new controls will be available in the upcoming 1.1 release. I might include even simpler "beginner controls" as an option in a future version of the game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-4402556176395446046?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4402556176395446046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4402556176395446046' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4402556176395446046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4402556176395446046'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/07/simplifying-controls.html' title='Simplifying the controls'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/TEyqATUyffI/AAAAAAAAAHA/7zPO4mpv5LY/s72-c/control_expl_one.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4461161888728669050</id><published>2010-07-22T16:12:00.000-04:00</published><updated>2010-07-22T16:12:27.449-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='hammers'/><title type='text'>U Can't Touch This</title><content type='html'>Let's see...I guess I promised I would add more fun stuff to the next version. What should I do? Hmm...&lt;br /&gt;&lt;br /&gt;Oh right. Hammers. Everyone loves hammers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hTMNV0xFzy8&amp;amp;hl=en_US&amp;amp;fs=1?rel=0"&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/hTMNV0xFzy8&amp;amp;hl=en_US&amp;amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&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/437911419066174428-4461161888728669050?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4461161888728669050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4461161888728669050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4461161888728669050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4461161888728669050'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/07/u-cant-touch-this.html' title='U Can&apos;t Touch This'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-7443437152553951974</id><published>2010-07-17T14:52:00.000-04:00</published><updated>2010-07-17T14:52:54.466-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><title type='text'>Episode IV: A New Version</title><content type='html'>I've almost finished the first update of the game. Although it will mostly benefit people that want to play it on iPad, there will be a few more things that everyone should like.&lt;br /&gt;&lt;br /&gt;Firstly, here's the team edit screen completely redesigned to take advantage of the big iPad screen:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/TEH7JoFvoRI/AAAAAAAAAG4/kzj9QURD3vU/s1600/Screen+shot+2010-07-17+at+2.44.10+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/TEH7JoFvoRI/AAAAAAAAAG4/kzj9QURD3vU/s320/Screen+shot+2010-07-17+at+2.44.10+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Here's the rest of the change log as it stands now:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When jumping for the disc, better judgement of whether to jump up or layout&lt;br /&gt;Added layout D drill&lt;br /&gt;Can now run game in both landscape orientations&lt;br /&gt;Fixed bug: switching to running player caused them to stop&lt;br /&gt;Small fixes and tweaks&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think it will take another week to finish the ipad stuff and test it all. But, during that time, I might throw in some more fun stuff... Stay tuned.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-7443437152553951974?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/7443437152553951974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=7443437152553951974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7443437152553951974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7443437152553951974'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/07/episode-iv-new-version.html' title='Episode IV: A New Version'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/TEH7JoFvoRI/AAAAAAAAAG4/kzj9QURD3vU/s72-c/Screen+shot+2010-07-17+at+2.44.10+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-1026731433428296409</id><published>2010-07-09T23:03:00.001-04:00</published><updated>2010-07-09T23:03:50.650-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><title type='text'>Approved!</title><content type='html'>App Store Link:&lt;br /&gt;&lt;a href="http://itunes.apple.com/app/championship-ultimate/id380138173"&gt;http://itunes.apple.com/app/championship-ultimate/id380138173&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Facebook Page:&lt;br /&gt;&lt;a href="http://www.facebook.com/pages/Championship-Ultimate/137529179599095"&gt;http://www.facebook.com/pages/Championship-Ultimate/137529179599095&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-1026731433428296409?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/1026731433428296409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=1026731433428296409' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1026731433428296409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1026731433428296409'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/07/approved.html' title='Approved!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6299570877005303647</id><published>2010-07-06T14:41:00.002-04:00</published><updated>2010-07-06T14:44:43.991-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><title type='text'>iPad</title><content type='html'>Still no word on when the game will be reviewed for sale on the app store, but I have made good progress on the iPad version.&lt;br /&gt;&lt;br /&gt;I'm about halfway done reworking everything to fit in the bigger screen. After that, I could make some tweaks to take advantage of the extra space. I'm not sure whether I should bring the camera out a little to show more of the field. Right now it just seems nice to see more detail. I think I'll have to actually get hold of an iPad and play around with it to see how the bigger screen feels.&lt;br /&gt;&lt;br /&gt;I noticed that I can actually see the disc design now, so I'll have to add in different designs. Maybe as rewards for beating the game or certain training drills?&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/TDN4t5drF3I/AAAAAAAAAGw/2sdnCA2T1Dg/s1600/ipadss.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/TDN4t5drF3I/AAAAAAAAAGw/2sdnCA2T1Dg/s400/ipadss.jpg" width="400" /&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/437911419066174428-6299570877005303647?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6299570877005303647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6299570877005303647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6299570877005303647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6299570877005303647'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/07/ipad.html' title='iPad'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aHXMSfhY_hY/TDN4t5drF3I/AAAAAAAAAGw/2sdnCA2T1Dg/s72-c/ipadss.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-5193905704044064345</id><published>2010-06-29T18:24:00.000-04:00</published><updated>2010-06-29T18:24:13.914-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='championship ultimate'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Submitted!</title><content type='html'>Championship Ultimate has been submitted to the Apple iPhone App Store. I don't know how long it will take for them to approve it, but I put in a tentative release date of July 2nd. Over the past month I've put in a LOT of work finishing and polishing the game, and I think it really shows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-5193905704044064345?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/5193905704044064345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=5193905704044064345' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5193905704044064345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5193905704044064345'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/06/submitted.html' title='Submitted!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3187117894746704617</id><published>2010-06-02T21:31:00.000-04:00</published><updated>2010-06-02T21:31:00.653-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Gameplay Trailer</title><content type='html'>&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wxtvcj3e_pY&amp;hl=en_US&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/wxtvcj3e_pY&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&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/437911419066174428-3187117894746704617?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3187117894746704617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3187117894746704617' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3187117894746704617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3187117894746704617'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/06/gameplay-trailer.html' title='Gameplay Trailer'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3510427201785361841</id><published>2010-05-25T17:09:00.000-04:00</published><updated>2010-05-25T17:09:48.635-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ai'/><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>AI Gameplay Video</title><content type='html'>I've done a lot of work recently on the AI. In fact, I completely rewrote the decision making system from scratch. It's much more reliable and has fewer bugs now.&lt;br /&gt;&lt;br /&gt;I recorded a video that shows the AI playing a point without any human interaction. Obviously it can still get more sophisticated (especially on defense) but it's a good start.&amp;nbsp;I'm also showing off the new menus.&lt;br /&gt;&lt;br /&gt;Sorry about the bad video/sound quality.&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/taf4rbrGteY&amp;hl=en_US&amp;fs=1&amp;rel=0"&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/taf4rbrGteY&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&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/437911419066174428-3510427201785361841?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3510427201785361841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3510427201785361841' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3510427201785361841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3510427201785361841'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/05/ai-gameplay-video.html' title='AI Gameplay Video'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-7077172266965704372</id><published>2010-04-13T15:27:00.000-04:00</published><updated>2010-04-13T15:27:24.034-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Various Bits</title><content type='html'>I'm closing in on a release, and while I'm still hard at work, all that's really left are a bunch of smaller details. So, I'm going to cut down the number of updates here, because it's really only fun to write about big features.&lt;br /&gt;&lt;br /&gt;But anyway, here are some things I've worked on recently:&lt;br /&gt;&lt;br /&gt;Improved camera calculation (often closer now), added more drills, fixed bugs in input system, added demo playback speed setting, most of the time layout d's will knock the disc away, fixed throwing bugs, tweaked flight physics and AI throwing power.&lt;br /&gt;&lt;br /&gt;Made super cool animated menus, added documentation for the controls.&lt;br /&gt;&lt;br /&gt;I'd also like to get back to writing about other things, so this may be less of an iphone specific blog soon enough. But, rest assured that the game is still being worked on and will be ready "soon".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-7077172266965704372?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/7077172266965704372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=7077172266965704372' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7077172266965704372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7077172266965704372'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/04/various-bits.html' title='Various Bits'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-8878122443862260730</id><published>2010-03-30T14:02:00.000-04:00</published><updated>2010-03-30T14:02:10.123-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Style</title><content type='html'>Monday 3/22:  Saving user-created teams.&lt;br /&gt;&lt;br /&gt;Tuesday 3/23: Make throwing  controls more forgiving. Added in-cut drill. Added variable player  skills (i.e., difficulty levels).&amp;nbsp; Added settings page.&lt;br /&gt;&lt;br /&gt;Wednesday 3/24: Ability to save settings. Only throw to the player when they call for it.&lt;br /&gt;&lt;br /&gt;Friday 3/26: Add more teams. Can choose both teams in an exhibition game.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/S7I8WoDCwRI/AAAAAAAAAGQ/u8oZNNj2zLc/s1600/Screen+shot+2010-03-30+at+1.58.40+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/S7I8WoDCwRI/AAAAAAAAAGQ/u8oZNNj2zLc/s320/Screen+shot+2010-03-30+at+1.58.40+PM.png" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/S7I8ao-_riI/AAAAAAAAAGY/NDSa3BJvHoY/s1600/Screen+shot+2010-03-30+at+1.58.29+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/S7I8ao-_riI/AAAAAAAAAGY/NDSa3BJvHoY/s320/Screen+shot+2010-03-30+at+1.58.29+PM.png" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/S7I8d82OsPI/AAAAAAAAAGg/FogrT6PFa2Q/s1600/Screen+shot+2010-03-30+at+1.59.01+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/S7I8d82OsPI/AAAAAAAAAGg/FogrT6PFa2Q/s320/Screen+shot+2010-03-30+at+1.59.01+PM.png" /&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/437911419066174428-8878122443862260730?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/8878122443862260730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=8878122443862260730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8878122443862260730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8878122443862260730'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/03/style.html' title='Style'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/S7I8WoDCwRI/AAAAAAAAAGQ/u8oZNNj2zLc/s72-c/Screen+shot+2010-03-30+at+1.58.40+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4469286993372276897</id><published>2010-03-16T15:17:00.000-04:00</published><updated>2010-03-16T15:17:52.479-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Let's Hear It For The Boy!</title><content type='html'>Tuesday 3/9: Various small tweaks.&lt;br /&gt;&lt;br /&gt;Wednesday 3/10: Start work on getting male player model working again.&lt;br /&gt;&lt;br /&gt;Thursday 3/11: More work on male player model.&lt;br /&gt;&lt;br /&gt;Friday 3/12: Finish up male player model. Fix memory leaks and add new system for texture caching.&lt;br /&gt;&lt;br /&gt;Monday 3/15: Add division selection (open or women). Fix bugs related to team colors. AI learns to beat the poach!&lt;br /&gt;&lt;br /&gt;I personally like these big logos in the game, since it's hard to see a smaller logo on the iphone screen. But, if any team wants their logo smaller, just holler at me.&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/_aHXMSfhY_hY/S5_XxmKraWI/AAAAAAAAAF4/i6ywh-wXllk/s1600-h/Screen+shot+2010-03-16+at+3.08.54+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/S5_XxmKraWI/AAAAAAAAAF4/i6ywh-wXllk/s320/Screen+shot+2010-03-16+at+3.08.54+PM.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/S5_X2jplqzI/AAAAAAAAAGA/DGwQGbSToyU/s1600-h/Screen+shot+2010-03-16+at+3.00.44+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/S5_X2jplqzI/AAAAAAAAAGA/DGwQGbSToyU/s320/Screen+shot+2010-03-16+at+3.00.44+PM.png" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/S5_X9ahbQsI/AAAAAAAAAGI/Faen7w3LxNQ/s1600-h/Screen+shot+2010-03-16+at+3.08.21+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/S5_X9ahbQsI/AAAAAAAAAGI/Faen7w3LxNQ/s320/Screen+shot+2010-03-16+at+3.08.21+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Cornell Buds, Missouri S&amp;amp;T Miner Threat, Replicants&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NnuYhFRYbAw&amp;hl=en_US&amp;fs=1&amp;rel=0"&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/NnuYhFRYbAw&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&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/437911419066174428-4469286993372276897?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4469286993372276897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4469286993372276897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4469286993372276897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4469286993372276897'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/03/lets-hear-it-for-boy.html' title='Let&apos;s Hear It For The Boy!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aHXMSfhY_hY/S5_XxmKraWI/AAAAAAAAAF4/i6ywh-wXllk/s72-c/Screen+shot+2010-03-16+at+3.08.54+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-5534755263738190335</id><published>2010-03-09T12:07:00.000-05:00</published><updated>2010-03-09T12:07:49.322-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uniforms'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='ultimate'/><title type='text'>There's A Riot Goin' On</title><content type='html'>Here's the virtual Seattle Riot:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/S5Z_kW_mVfI/AAAAAAAAAFo/S0Z0h9NeDeM/s1600-h/Screen+shot+2010-03-08+at+1.19.53+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/S5Z_kW_mVfI/AAAAAAAAAFo/S0Z0h9NeDeM/s320/Screen+shot+2010-03-08+at+1.19.53+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/S5aAM9dua3I/AAAAAAAAAFw/0om7LLDL8O0/s1600-h/Screen+shot+2010-03-08+at+1.18.45+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/S5aAM9dua3I/AAAAAAAAAFw/0om7LLDL8O0/s320/Screen+shot+2010-03-08+at+1.18.45+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The male player model isn't finished yet, so I don't have an example for the Open teams. (Of course, some Open teams have female players, but I don't want to assume...&lt;br /&gt;&lt;br /&gt;Sunday 3/7: Add mechanism for loading pre-made teams.&lt;br /&gt;&lt;br /&gt;Monday 3/8: Add light jerseys in addition to dark.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-5534755263738190335?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/5534755263738190335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=5534755263738190335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5534755263738190335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5534755263738190335'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/03/theres-riot-goin-on.html' title='There&apos;s A Riot Goin&apos; On'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aHXMSfhY_hY/S5Z_kW_mVfI/AAAAAAAAAFo/S0Z0h9NeDeM/s72-c/Screen+shot+2010-03-08+at+1.19.53+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-8211016337580959406</id><published>2010-03-05T17:20:00.000-05:00</published><updated>2010-03-05T17:20:49.029-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>If only real life Ultimate had a "throw it to me" button</title><content type='html'>Tuesday 3/2: Added more announcing sounds (game intro, game end, stalls, handblocks).&lt;br /&gt;&lt;br /&gt;Wednesday 3/3: Fixed bugs related to menus, calling for the disc, throwing. Unification of throw calculations for in-cuts/hucks. Fixed players getting stuck in the air sometimes.&lt;br /&gt;&lt;br /&gt;Thursday 3/4: Tweaked AI throwing power.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Friday 3/5: Redesigned 'choose team' UI with integrated preview.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-8211016337580959406?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/8211016337580959406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=8211016337580959406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8211016337580959406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8211016337580959406'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/03/if-only-real-life-ultimate-had-throw-it.html' title='If only real life Ultimate had a &quot;throw it to me&quot; button'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4962338000804756311</id><published>2010-03-04T00:38:00.002-05:00</published><updated>2010-03-04T00:38:41.245-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='ultimate'/><title type='text'>Uniforms</title><content type='html'>Thanks for the uniform submissions from everyone so far. I'll put up screen shots of them in action at some point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-4962338000804756311?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4962338000804756311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4962338000804756311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4962338000804756311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4962338000804756311'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/03/uniforms.html' title='Uniforms'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-7950384353507302190</id><published>2010-03-01T23:56:00.001-05:00</published><updated>2010-03-02T16:58:15.395-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='ultimate'/><title type='text'>Small update</title><content type='html'>Wednesday 2/24: Added bracket play.&lt;br /&gt;&lt;br /&gt;Thursday 2/25: Improved bracket play.&lt;br /&gt;&lt;br /&gt;Sunday 2/28: Color selection screen loads much quicker. Added saturation slider. Added training demos. Fixed gamestate reset bug related to input (buttons being left on).&lt;br /&gt;&lt;br /&gt;Monday 2/29: Added "throw it to me" button.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/S42J04Dm5FI/AAAAAAAAAFg/TQfZ8uye0FU/s1600-h/Screen+shot+2010-03-02+at+4.49.32+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/S42J04Dm5FI/AAAAAAAAAFg/TQfZ8uye0FU/s320/Screen+shot+2010-03-02+at+4.49.32+PM.png" /&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/437911419066174428-7950384353507302190?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/7950384353507302190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=7950384353507302190' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7950384353507302190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7950384353507302190'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/03/small-update.html' title='Small update'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/S42J04Dm5FI/AAAAAAAAAFg/TQfZ8uye0FU/s72-c/Screen+shot+2010-03-02+at+4.49.32+PM.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-8878252815085762798</id><published>2010-02-23T17:15:00.000-05:00</published><updated>2010-02-23T17:15:50.293-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Bucky v2</title><content type='html'>Friday 2/19: Fixed some announcing bugs. Performance / memory fixes.&lt;br /&gt;&lt;br /&gt;Sunday 2/21:&amp;nbsp; Improved Bucky model based on feedback from Bucky. (Thanks Bucky!)&lt;br /&gt;&lt;br /&gt;Monday 2/22: Improved rendering algorithm (triangle strips).&lt;br /&gt;&lt;br /&gt;Tuesday 2/23: Added player numbers on jersey. Camera tweaks. Work on tournament bracket play.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/S4RTXqbcNMI/AAAAAAAAAFQ/gH1riyFnQI0/s1600-h/Screen+shot+2010-02-23+at+5.13.41+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/S4RTXqbcNMI/AAAAAAAAAFQ/gH1riyFnQI0/s320/Screen+shot+2010-02-23+at+5.13.41+PM.png" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/S4RTalInxZI/AAAAAAAAAFY/dNrE2x22aHU/s1600-h/Screen+shot+2010-02-23+at+5.13.39+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/S4RTalInxZI/AAAAAAAAAFY/dNrE2x22aHU/s320/Screen+shot+2010-02-23+at+5.13.39+PM.png" /&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/437911419066174428-8878252815085762798?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/8878252815085762798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=8878252815085762798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8878252815085762798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8878252815085762798'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/02/bucky-v2.html' title='Bucky v2'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/S4RTXqbcNMI/AAAAAAAAAFQ/gH1riyFnQI0/s72-c/Screen+shot+2010-02-23+at+5.13.41+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-8508259950795801029</id><published>2010-02-18T17:42:00.000-05:00</published><updated>2010-02-18T17:42:29.582-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Dress Up Bucky!</title><content type='html'>Wednesday 2/17: LOL I had the perspective calculation wrong this whole time, which caused the players to look short and fat. FIXED. Improved the model's UV mapping. Added a uniform preview button. Lots of little fixes and visual tweaks. Exhibition games configurable.&lt;br /&gt;&lt;br /&gt;Thursday 2/18: Added jersey/shorts logos (with configurable colors).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/S33B0nna_PI/AAAAAAAAAE4/6an8lhf0gPg/s1600-h/Screen+shot+2010-02-18+at+5.33.14+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/S33B0nna_PI/AAAAAAAAAE4/6an8lhf0gPg/s320/Screen+shot+2010-02-18+at+5.33.14+PM.png" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_aHXMSfhY_hY/S33B5CHjQrI/AAAAAAAAAFA/nSS6tYDBFKU/s1600-h/Screen+shot+2010-02-18+at+5.35.52+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/S33B5CHjQrI/AAAAAAAAAFA/nSS6tYDBFKU/s320/Screen+shot+2010-02-18+at+5.35.52+PM.png" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/S33B9qjSWUI/AAAAAAAAAFI/jSRMq1Vqw-o/s1600-h/Screen+shot+2010-02-18+at+5.39.02+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/S33B9qjSWUI/AAAAAAAAAFI/jSRMq1Vqw-o/s320/Screen+shot+2010-02-18+at+5.39.02+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;&lt;i&gt;Lookin' fly&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/437911419066174428-8508259950795801029?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/8508259950795801029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=8508259950795801029' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8508259950795801029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8508259950795801029'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/02/dress-up-bucky.html' title='Dress Up Bucky!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aHXMSfhY_hY/S33B0nna_PI/AAAAAAAAAE4/6an8lhf0gPg/s72-c/Screen+shot+2010-02-18+at+5.33.14+PM.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-127963575188105731</id><published>2010-02-16T17:02:00.000-05:00</published><updated>2010-02-16T17:02:09.260-05:00</updated><title type='text'>HS Hockey Stick</title><content type='html'>Wednesday 2/10: Made new female player model.&lt;br /&gt;&lt;br /&gt;Thursday 2/11: Added ability to have multiple textures on a single model.&lt;br /&gt;&lt;br /&gt;Friday 2/12: More work on model.&lt;br /&gt;&lt;br /&gt;Sunday 2/14: More work on model.&lt;br /&gt;&lt;br /&gt;Monday 2/15: Fixed bugs with multiple texture exporting from blender. Now I have the model loaded in game with multiple textures.&lt;br /&gt;&lt;br /&gt;Tuesday 2/16: Added color picker for jersey and shorts.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/S3sVqNKoJkI/AAAAAAAAAEw/lefocxBgQ3U/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/S3sVqNKoJkI/AAAAAAAAAEw/lefocxBgQ3U/s320/ss.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-127963575188105731?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/127963575188105731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=127963575188105731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/127963575188105731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/127963575188105731'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/02/hs-hockey-stick.html' title='HS Hockey Stick'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/S3sVqNKoJkI/AAAAAAAAAEw/lefocxBgQ3U/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4578561691712122397</id><published>2010-02-09T16:06:00.000-05:00</published><updated>2010-02-09T16:06:16.979-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Cause it's eleven thirty and the club is dumpin', dumpin'</title><content type='html'>Monday 2/8: Added a throwing drill. Changed drill screen to a list view. Added drill timer and personal best recording.&lt;br /&gt;&lt;br /&gt;Tuesday 2/9: Added dump cut drill. Work on AI dump throws. Added demo recording to drills. AI leads the target more accurately. Fixed Asa's crazy earthquake bug. Added debug option to show the AI's targets. AI turns to face where they are throwing. Lowered camera height a little bit.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/S3HNJg0a1DI/AAAAAAAAAEo/IeersblwtUY/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/S3HNJg0a1DI/AAAAAAAAAEo/IeersblwtUY/s320/ss.png" /&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/437911419066174428-4578561691712122397?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4578561691712122397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4578561691712122397' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4578561691712122397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4578561691712122397'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/02/cause-its-eleven-thirty-and-club-is.html' title='Cause it&apos;s eleven thirty and the club is dumpin&apos;, dumpin&apos;'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aHXMSfhY_hY/S3HNJg0a1DI/AAAAAAAAAEo/IeersblwtUY/s72-c/ss.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-2566339148321890263</id><published>2010-02-05T20:38:00.000-05:00</published><updated>2010-02-05T20:38:21.701-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Drill, Baby, Drill</title><content type='html'>Thursday 2/4: Improved toss mode AI. Added improved rotater button. Can now flick throws (if that's what you're into).&lt;br /&gt;&lt;br /&gt;Friday 2/5: Made rotater button less sensitive in the middle. Fixed bug where a held down thumb could accidentally hit a new button when the UI changes. Randomly pick which team pulls to start the game. Added a framework for training drills. Added a dump drill and a simple running drill.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/S2zHSgldJnI/AAAAAAAAAEg/bO2iYNNonlA/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/S2zHSgldJnI/AAAAAAAAAEg/bO2iYNNonlA/s320/ss.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;This is a simple drill. Run to all the markers as quickly as you can, then try again to beat your best time.&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/437911419066174428-2566339148321890263?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/2566339148321890263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=2566339148321890263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2566339148321890263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2566339148321890263'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/02/drill-baby-drill.html' title='Drill, Baby, Drill'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/S2zHSgldJnI/AAAAAAAAAEg/bO2iYNNonlA/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-335209456529050807</id><published>2010-02-03T18:55:00.000-05:00</published><updated>2010-02-03T18:55:48.175-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Addin' Some Polish</title><content type='html'>Saturday 1/30: Ever since I moved to a horizontal ("landscape") view, my coordinate systems had been a bit wonky. The graphics drawing basically had x and y-coordinates switched compared to the iphone's perspective. This made everything SUPER confusing, because in some places I added some code to switch it back automatically, and some other places I didn't. So, I never knew which was the x and which was the y axis. Today I figured out how to apply a global transformation to the entire view, so that the x and y match up for everything, which means I got to spend an hour switching everything back and removing all the bits of code that compensate for the weirdness. But boy, it was satisfying!&lt;br /&gt;&lt;br /&gt;Started converting menus over to the native iPhone UI.&lt;br /&gt;&lt;br /&gt;Monday 2/1: More work on menus.&lt;br /&gt;&lt;br /&gt;Tuesday 2/2: More work on menus. Can now finish games. Simulating computer matches.&lt;br /&gt;&lt;br /&gt;Wednesday 2/3: Harder to get hand blocks now. Finished hooking up tournament view and added some visual tweaks.&amp;nbsp; Added some visual feedback to the dpad and buttons. Better algorithm for spacing players on the line. New marking camera view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-335209456529050807?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/335209456529050807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=335209456529050807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/335209456529050807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/335209456529050807'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/02/addin-some-polish.html' title='Addin&apos; Some Polish'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3451608566515601478</id><published>2010-01-29T17:27:00.001-05:00</published><updated>2010-01-29T17:36:50.464-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Words words words</title><content type='html'>Wednesday 1/27: Work on restructuring to handle tournaments.&lt;br /&gt;&lt;br /&gt;Thursday 1/28: Convert tournament schedule screen over to the native iPhone UI.&lt;br /&gt;&lt;br /&gt;Friday 1/29: More work on tournament screen. Hook up tournament schedule to actual game.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/S2Ni76HdHTI/AAAAAAAAAEY/1vndaNGB-9w/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/S2Ni76HdHTI/AAAAAAAAAEY/1vndaNGB-9w/s320/ss.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Thoughts on the new tournament screen? Still not done, obviously.&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/437911419066174428-3451608566515601478?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3451608566515601478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3451608566515601478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3451608566515601478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3451608566515601478'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/01/words-words-words.html' title='Words words words'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/S2Ni76HdHTI/AAAAAAAAAEY/1vndaNGB-9w/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-7751339726268660004</id><published>2010-01-26T16:34:00.000-05:00</published><updated>2010-01-26T16:34:47.289-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='ultimate'/><title type='text'>Clever Title</title><content type='html'>Monday 1/25: AI reads the disc way better in the air. Better calculation of whether a throw is open.&lt;br /&gt;&lt;br /&gt;Tuesday 1/25: Fix disappearing player bug. Defense needs to see the disc to poach D it. New tournament screen.&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/_aHXMSfhY_hY/S19enoODHRI/AAAAAAAAAEI/Q9VObaFCWB0/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/S19enoODHRI/AAAAAAAAAEI/Q9VObaFCWB0/s320/ss.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;i&gt;Obviously, these team names are pretty lame. Make up some good (PG) ones and e-mail them to me, or leave them as a comment.&lt;/i&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/437911419066174428-7751339726268660004?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/7751339726268660004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=7751339726268660004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7751339726268660004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7751339726268660004'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/01/clever-title.html' title='Clever Title'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aHXMSfhY_hY/S19enoODHRI/AAAAAAAAAEI/Q9VObaFCWB0/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3892578985489778300</id><published>2010-01-23T15:03:00.000-05:00</published><updated>2010-01-23T15:03:38.642-05:00</updated><title type='text'>More Buttons = More Fun</title><content type='html'>Thursday 1/21: Fixed slow pivot speed bug. New camera angle (side view). Added an indicator to point where you are if you run off screen.&lt;br /&gt;&lt;br /&gt;Friday 1/22: Add player switch button. Action button sets the mark, or leaves it.&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/_aHXMSfhY_hY/S1tVstB7jXI/AAAAAAAAAEA/aCtHlIbhhtI/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/S1tVstB7jXI/AAAAAAAAAEA/aCtHlIbhhtI/s320/ss.png" /&gt;&lt;/a&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/437911419066174428-3892578985489778300?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3892578985489778300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3892578985489778300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3892578985489778300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3892578985489778300'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/01/more-buttons-more-fun.html' title='More Buttons = More Fun'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aHXMSfhY_hY/S1tVstB7jXI/AAAAAAAAAEA/aCtHlIbhhtI/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-8160375228670458602</id><published>2010-01-20T20:53:00.000-05:00</published><updated>2010-01-20T20:53:33.113-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='ultimate'/><title type='text'>Grainy Video Footage</title><content type='html'>&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vubY3bewWvY&amp;amp;hl=en_US&amp;amp;fs=1&amp;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/vubY3bewWvY&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yMz24_OUjJw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0"&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/yMz24_OUjJw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&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/437911419066174428-8160375228670458602?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/8160375228670458602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=8160375228670458602' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8160375228670458602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8160375228670458602'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/01/grainy-video-footage.html' title='Grainy Video Footage'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4671247733385017160</id><published>2010-01-20T16:57:00.000-05:00</published><updated>2010-01-20T16:57:08.074-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Scoooreee Boaarddd</title><content type='html'>Monday 1/18: More work on sounds. Created a scoreboard and a neat blimp camera effect between points.&lt;br /&gt;&lt;br /&gt;Tuesday 1/19: Can tap to skip through scoreboard. Fixed AI chasing after frisbee bug. Got AI players to jump for the disc. Fixed random turnover bug. Fixed player doing nothing if they weren't able to pick up the pull. (Sulking?) AI more aggressive about getting D's (including jumping for the disc).&lt;br /&gt;&lt;br /&gt;Wednesday 1/20: Much improved frisbee chasing equations (AI plays nasty defense now). Fixed marking bug. More sounds.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/S1d7xhmgdFI/AAAAAAAAAD4/Wc4mm6V9yi0/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/S1d7xhmgdFI/AAAAAAAAAD4/Wc4mm6V9yi0/s320/ss.png" /&gt;&lt;/a&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/437911419066174428-4671247733385017160?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4671247733385017160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4671247733385017160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4671247733385017160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4671247733385017160'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/01/scoooreee-boaarddd.html' title='Scoooreee Boaarddd'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aHXMSfhY_hY/S1d7xhmgdFI/AAAAAAAAAD4/Wc4mm6V9yi0/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-158293040916825200</id><published>2010-01-15T16:10:00.000-05:00</published><updated>2010-01-15T16:10:38.638-05:00</updated><title type='text'>...And He Throws the Hammer Down!</title><content type='html'>Monday 1/11: Added a bunch of announcer sounds by AI-B and MD. Made a system for loading multiple sound clips for a single situation, and then picking one at random in game.&lt;br /&gt;&lt;br /&gt;Tuesday 1/12: Started work on making the game engine reproducible, which will allow for easier debugging, demos, and instant replays. Added demo recording and playback menu options.&lt;br /&gt;&lt;br /&gt;Wednesday 1/13: More work on recording / playback.&lt;br /&gt;&lt;br /&gt;Thursday 1/14: Recording / playback is now perfectly in sync, which means the game plays out exactly the same way each time if given the same player input and random numbers. It's going to be very helpful in tweaking everything that happens in the game, because I can record a demo of a problem and then play it back as many times as I need to until it's fixed.&lt;br /&gt;&lt;br /&gt;Friday 1/15: Fixed a few small bugs. Worked on the announcing sounds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-158293040916825200?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/158293040916825200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=158293040916825200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/158293040916825200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/158293040916825200'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/01/and-he-throws-hammer-down.html' title='...And He Throws the Hammer Down!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6904754927414515498</id><published>2010-01-08T19:55:00.001-05:00</published><updated>2010-01-08T19:56:02.562-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>After much stalling, I made a stall counter</title><content type='html'>Wednesday 1/6: Added a quick flip or push pass type throw. You don't need to pivot before you throw it, but it doesn't go very far. It's useful for dumps. Brought back transition animations, which should make things look smoother.&lt;br /&gt;&lt;br /&gt;Thursday 1/7: Dump throw split into two different animations: high release backhand and push pass. HR Backhand has different release points depending on how it's thrown. Added some upward velocity to the pushpass to give it more hang time. Fixed bugs related to: turnovers, pulls, handler positioning, throw release points, AI throw targeting.&lt;br /&gt;&lt;br /&gt;Friday 1/8: Added fancy stall counter. Fixed a few bugs.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/S0fTBUxHmoI/AAAAAAAAADw/RtJBv6MyLNQ/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/S0fTBUxHmoI/AAAAAAAAADw/RtJBv6MyLNQ/s320/ss.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;This screenshot shows a high-release backhand to a handler at stall five.&lt;/i&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/437911419066174428-6904754927414515498?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6904754927414515498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6904754927414515498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6904754927414515498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6904754927414515498'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/01/after-much-stalling-i-made-stall.html' title='After much stalling, I made a stall counter'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/S0fTBUxHmoI/AAAAAAAAADw/RtJBv6MyLNQ/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-636729469824780203</id><published>2010-01-05T16:31:00.001-05:00</published><updated>2010-01-05T16:31:12.235-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Back From Holiday</title><content type='html'>Wednesday 12/23: So, as a result of the recent refactoring... Core game logic does not use global variables. Game logic can be run without loading graphics or sound systems. Game logic can be unit tested.&lt;br /&gt;&lt;br /&gt;Monday 1/4: Getting back on track after the holiday. Fixed some bugs, including a problem with the AI running simultaneous cuts. Started work on handler cuts.&lt;br /&gt;&lt;br /&gt;Tuesday 1/5: New method for turning: tap the dpad. This should work well for quickly turning toward your dump. Improved dump cuts. Added "position" settings for AI players. Fixed AI frisbee chasing bug. Handler will wait for a look before making a dump cut.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-636729469824780203?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/636729469824780203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=636729469824780203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/636729469824780203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/636729469824780203'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2010/01/back-from-holiday.html' title='Back From Holiday'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-8192018406142251880</id><published>2009-12-22T16:49:00.000-05:00</published><updated>2009-12-22T16:49:55.295-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Nothing to See Here</title><content type='html'>Wednesday 12/16: Improved field line rendering. Learned a LOT about multitexturing, which I didn't end up using, but I will when it's time to render player numbers.&lt;br /&gt;&lt;br /&gt;Thursday 12/17: Menu option size is now configurable. Added menu option for setting up a test environment. Idea: instead of spending too much time tweaking game speed and AI and everything now, I'll build a setting screen for all those variables, and then when I send it to testers they can play around with the options and tell me what they like.&lt;br /&gt;&lt;br /&gt;Friday 12/18: Started unit testing my code. Code cleanup and reorganization.&lt;br /&gt;&lt;br /&gt;Saturday 12/19: More code refactoring.&lt;br /&gt;&lt;br /&gt;Monday 12/20: More code refactoring. Finally got unit testing to work...not sure why Apple had to make it so tough.&amp;nbsp; Since I haven't been writing much lately, I'll document everything I did to get it to work.&lt;br /&gt;&lt;br /&gt;1. Read the apple doc on unit testing. Follow their instructions.&lt;br /&gt;2. Tests won't run my code. After lots of googling, I figure out I need to add my objects to the test target (wasn't mentioned in the doc).&lt;br /&gt;3. Apple doc doesn't cover debugging the tests. Look for how-to. Follow 10 steps of configuration settings.&lt;br /&gt;4. Doesn't work. Google many possible solutions. None of them work.&lt;br /&gt;5. Apparently google makes their own unit testing environment. (Obviously because the apple one doesn't really work). Run through their 10 setup steps.&lt;br /&gt;6. Errors about missing some files. Added some more files their site failed to mention.&lt;br /&gt;7. More errors. No one on the internet has heard of them before.&lt;br /&gt;8. I restart xcode and everything works.&lt;br /&gt;&lt;br /&gt;I doubt unit testing will hit the mainstream any time soon if IDE makers don't make it easy to use. But, it should be. It's pretty simple technology and it's almost 2010. &lt;br /&gt;&lt;br /&gt;Tuesday 12/22: More of the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-8192018406142251880?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/8192018406142251880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=8192018406142251880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8192018406142251880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8192018406142251880'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/12/nothing-to-see-here.html' title='Nothing to See Here'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-2802935049316981573</id><published>2009-12-15T16:32:00.000-05:00</published><updated>2009-12-15T16:32:50.947-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Little Things and a Big Thing</title><content type='html'>Friday 12/11: Fixed AI pulls. Fixed other pull related bugs. Experimented with player turning using the accelerometer (doesn't work that well). Performance improvements. Share animation objects between players. Other misc. bug fixes. Added a little rotation to pivoting.&lt;br /&gt;&lt;br /&gt;Monday 12/14: Changed implementation of player running which should yield better animation and control. Can stop marking by running away. Built a stadium.&lt;br /&gt;&lt;br /&gt;Tuesday 12/15: Improved stadium model. New stadium texture.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/SygAHgH1dXI/AAAAAAAAADo/eZH2oLjaEr0/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/SygAHgH1dXI/AAAAAAAAADo/eZH2oLjaEr0/s320/ss.png" /&gt;&lt;/a&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/437911419066174428-2802935049316981573?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/2802935049316981573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=2802935049316981573' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2802935049316981573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2802935049316981573'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/12/little-things-and-big-thing.html' title='Little Things and a Big Thing'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/SygAHgH1dXI/AAAAAAAAADo/eZH2oLjaEr0/s72-c/ss.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6595494430483195153</id><published>2009-12-10T16:30:00.000-05:00</published><updated>2009-12-10T16:30:45.883-05:00</updated><title type='text'>What's The Sound Of One Hand Catching?</title><content type='html'>Wednesday 12/9: Added infrastructure for playing sounds. Improved layout animation. Added these sounds: throw, catch, jump, land. Added placeholder commentary for hucks and layout catches. Sound effect volume based on distance from the camera. Fixed more AI throw targeting bugs. Added some visual feedback when you've pivoted far enough to throw.&lt;br /&gt;&lt;br /&gt;Thursday 12/10: Separated game state info (teams, possession, score, etc...) from world object info (player positions, physics, etc...). Added pulls. While play testing today I got my first layout D.&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/_aHXMSfhY_hY/SyFoDmJxU-I/AAAAAAAAADg/34B0RJdlKmg/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/SyFoDmJxU-I/AAAAAAAAADg/34B0RJdlKmg/s320/ss.png" /&gt;&lt;/a&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/437911419066174428-6595494430483195153?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6595494430483195153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6595494430483195153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6595494430483195153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6595494430483195153'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/12/whats-sound-of-one-hand-catching.html' title='What&apos;s The Sound Of One Hand Catching?'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aHXMSfhY_hY/SyFoDmJxU-I/AAAAAAAAADg/34B0RJdlKmg/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-842598210579272423</id><published>2009-12-08T15:22:00.001-05:00</published><updated>2009-12-08T15:27:20.164-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Choices Choices</title><content type='html'>Monday 12/7: Some internal work to hide all the math that transforms UI coordinates to iphone screen coordinates. Added menu (dynamically sized based on number of options). Cleaned up a lot of the memory management.&lt;br /&gt;&lt;br /&gt;Tuesday 12/8: Bugfix day! Fixed throwing direction bug. Added special camera mode for tossing. AI will stop throwing motion if target changed direction. Fix AI huck mistargeting in toss mode. Fixed frisbee animation when caught while jumping or diving. Improved running jump vs. layout decision when hitting action button. Improved catching formula when jumping or diving.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/Sx61HkzeDMI/AAAAAAAAADU/KckIda9SHPc/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/Sx61HkzeDMI/AAAAAAAAADU/KckIda9SHPc/s320/ss.png" /&gt;&lt;/a&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/437911419066174428-842598210579272423?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/842598210579272423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=842598210579272423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/842598210579272423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/842598210579272423'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/12/choices-choices.html' title='Choices Choices'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/Sx61HkzeDMI/AAAAAAAAADU/KckIda9SHPc/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6804215648009810180</id><published>2009-12-04T17:57:00.000-05:00</published><updated>2009-12-04T17:57:57.404-05:00</updated><title type='text'>Throwing Controls For The New Millenium</title><content type='html'>Thursday 12/3: More work on the new throwing system. Added yellow circle around the player you should guard. &lt;br /&gt;&lt;br /&gt;Friday 12/4: Finished new throwing system. Added a "tossing" mode so you can practice throwing mechanics with one other player. Added rotate button when holding the fris.&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/_aHXMSfhY_hY/SxmT0RCmvyI/AAAAAAAAADM/mg6e1TBxowI/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/SxmT0RCmvyI/AAAAAAAAADM/mg6e1TBxowI/s320/ss.png" /&gt;&lt;/a&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/437911419066174428-6804215648009810180?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6804215648009810180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6804215648009810180' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6804215648009810180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6804215648009810180'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/12/throwing-controls-for-new-millenium.html' title='Throwing Controls For The New Millenium'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aHXMSfhY_hY/SxmT0RCmvyI/AAAAAAAAADM/mg6e1TBxowI/s72-c/ss.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-8614082189951559226</id><published>2009-12-02T17:27:00.000-05:00</published><updated>2009-12-02T17:27:02.315-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>A Mature Look For The Distinguishing Gamer</title><content type='html'>Wednesday 11/25: New feature/bug fixes: If your thumb starts in the dpad, then moves outside of it, you can still control the dpad from outside of it. Also, if you then lift your thumb outside the dpad, it will stop moving. I think everyone who's played the game has requested these. It was actually really easy after I read the manual... Added some slick translucency to the UI. Added hops! Now you can sky knonners just like the real Axis.&lt;br /&gt;&lt;br /&gt;Wednesday 12/2: New grass texture made from scratch with &lt;a href="http://www.inkscape.org/"&gt;Inkscape&lt;/a&gt; and &lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt;! I'm really proud of it. Also, started an overhaul of the throwing controls.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/SxbpkuRSbII/AAAAAAAAAC8/f2O3C9N7DSM/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/SxbpkuRSbII/AAAAAAAAAC8/f2O3C9N7DSM/s320/ss.png" /&gt;&lt;/a&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/437911419066174428-8614082189951559226?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/8614082189951559226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=8614082189951559226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8614082189951559226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/8614082189951559226'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/12/mature-look-for-distinguishing-gamer.html' title='A Mature Look For The Distinguishing Gamer'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/SxbpkuRSbII/AAAAAAAAAC8/f2O3C9N7DSM/s72-c/ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3166784110082185483</id><published>2009-11-24T15:50:00.001-05:00</published><updated>2009-11-24T15:53:03.822-05:00</updated><title type='text'>Everrryybboodddyyy-- Jump! Jump! Jump!</title><content type='html'>Friday 11/20: Started work on a jump animation.&lt;br /&gt;&lt;br /&gt;Monday 11/23: Finished jump animation. Added jump action. Added action button. New dpad style. Made dpad a little bigger.&lt;br /&gt;&lt;br /&gt;Tuesday 11/24: Made jump action more responsive, like a Mario jump. Fixed up input mechanism so that it can handle dpad and button events at the same time. Added layouts.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/SwxE_RBdCBI/AAAAAAAAACc/Ap63JF4O8YE/s1600/dive1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/SwxE_RBdCBI/AAAAAAAAACc/Ap63JF4O8YE/s320/dive1.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/SwxF40_fMMI/AAAAAAAAACs/M87vURGJdg0/s1600/dive2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/SwxF40_fMMI/AAAAAAAAACs/M87vURGJdg0/s320/dive2.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/eVGMaYirbnw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0"&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/eVGMaYirbnw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Scooooooooops!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-3166784110082185483?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3166784110082185483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3166784110082185483' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3166784110082185483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3166784110082185483'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/11/everrryybboodddyyy-jump-jump-jump.html' title='Everrryybboodddyyy-- Jump! Jump! Jump!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/SwxE_RBdCBI/AAAAAAAAACc/Ap63JF4O8YE/s72-c/dive1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4040110606771101255</id><published>2009-11-19T16:06:00.000-05:00</published><updated>2009-11-19T16:06:07.936-05:00</updated><title type='text'>To Throw Or Not To Throw</title><content type='html'>Friday 11/13: AI won't dump it more than 20'. Fix bug that sometimes caused AI blindly throw into the mark. Improved AI's calculation of whether to throw a backhand or forehand. Allow AI to stop their throwing motion if the receiver turns away. Made marking with dpad a bit smoother. AI won't throw to you if you aren't running toward them. Defensive reaction time is now random.&lt;br /&gt;&lt;br /&gt;Tuesday 11/17: Added variable running speeds with the dpad.&lt;br /&gt;&lt;br /&gt;Wednesday 11/18: Started to rework the system that decides whether a throw to a cutter is open.&lt;br /&gt;&lt;br /&gt;Thursday 11/19: Finished reworking the open-throw system, which yields better calculations of whether the mark is blocking the throw, and whether to throw a forehand or backhand. Added hucks to the AI.&lt;br /&gt;&lt;br /&gt;Hmm...now that there's a deep game, I want to add jumping and diving...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-4040110606771101255?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4040110606771101255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4040110606771101255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4040110606771101255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4040110606771101255'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/11/to-throw-or-not-to-throw.html' title='To Throw Or Not To Throw'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-7905789847553435713</id><published>2009-11-12T16:22:00.001-05:00</published><updated>2009-11-12T16:23:06.193-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Don'tcha Wish You Could Play This Game?</title><content type='html'>Monday 11/9: Continued work on restructuring the AI system. I've come to realize that this is the most complicated part of the whole program and I'll probably need to completely rewrite it a handful more times before I'm done. Anyway, it's getting more flexible all the time.&lt;br /&gt;&lt;br /&gt;Tuesday 11/10: Added breakside cuts from the stack. Refactored AI loading code.&lt;br /&gt;&lt;br /&gt;Wednesday 11/11: Added a whole bunch of different strong side cuts, including a couple deep cuts. Rewrote the throwing actions so that they are easier to control.&lt;br /&gt;&lt;br /&gt;Thursday 10/12: Fixed backhand animation. Hid the status bar. AI players now throw backhands. AI now moves around a little (randomly) on the mark. Fixed some bugs (AI would sometimes run away with the disc). Turning with the disc is now done with the d-pad.&lt;br /&gt;&lt;br /&gt;This week had a bunch of small changes that really increased the playability. The controls still need some refining, but you might actually call it "fun" to play now, whereas before it was simply frustrating. (Don't get me wrong, it's still fairly frustrating)&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/_aHXMSfhY_hY/Svx8LVkzf2I/AAAAAAAAACU/3qtyUiOabCE/s1600-h/ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/Svx8LVkzf2I/AAAAAAAAACU/3qtyUiOabCE/s320/ss.png" /&gt;&lt;/a&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/437911419066174428-7905789847553435713?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/7905789847553435713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=7905789847553435713' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7905789847553435713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7905789847553435713'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/11/dontcha-wish-you-could-play-this-game.html' title='Don&apos;tcha Wish You Could Play This Game?'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aHXMSfhY_hY/Svx8LVkzf2I/AAAAAAAAACU/3qtyUiOabCE/s72-c/ss.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6190703670980578034</id><published>2009-11-06T17:52:00.000-05:00</published><updated>2009-11-06T17:52:54.524-05:00</updated><title type='text'>Sorry, Still No Screenshot</title><content type='html'>Wednesday 11/4: Human controlled players can now mark. Small tweak to AI cuts. Beginning of movement while marking. Decreased effectiveness of marks. Added a directional pad.&lt;br /&gt;&lt;br /&gt;Thursday 11/5: Added generic way for actions to access DPad data. Added mark movement.&lt;br /&gt;&lt;br /&gt;Friday 11/6: Added structure for AI choosing among different options (e.g., between force side or break side cut).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-6190703670980578034?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6190703670980578034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6190703670980578034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6190703670980578034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6190703670980578034'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/11/sorry-still-no-screenshot.html' title='Sorry, Still No Screenshot'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-1975841905160200847</id><published>2009-11-04T12:01:00.000-05:00</published><updated>2009-11-04T12:01:41.528-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='madcow'/><title type='text'>Nationals</title><content type='html'>I played in my first Club Nationals in the Open division and it was great. It was also the first trip for my team (including 26/27 members) and we finished 13th (out of 16).&lt;br /&gt;&lt;br /&gt;I've heard that playing at Nationals somehow drastically improves the game of you and your team, and I guess that's true. The long term effect on Madcow is yet to be seen, but I think my game has been improving. I think that started at Regionals however.&lt;br /&gt;&lt;br /&gt;As a rookie, Regionals was understandably a pretty nervous event for me, but by the end of it I found a comfort zone. I didn't play amazingly, but I did gain some confidence. During Nationals, I again faced a little nervousness (who wouldn't?) but I soon realized that I had control over my play. Almost all of the teams we played were at the same level as the guys I practice against all the time. The guy guarding me might be a little better or worse than average, but it's still the same game. If I run hard no one is going to shut me down.&lt;br /&gt;&lt;br /&gt;I think the magic of Nationals is that each game matters as much as the last and each game requires the same amount of effort. And, each game feels very meaningful. And it happens over a longer time-span (3 days). It gets you into a groove of playing competitive ultimate that irons out the inconsistencies in your game. Of course, I don't think that's too different from someone playing in their first college tournament, but that's why that first college tourney can also be a big step in someone's game.&lt;br /&gt;&lt;br /&gt;In the end, it's not that a new competitive experience gives you new skills, but rather it brings you mentally to a new level of play, and you see new possibilities in your game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-1975841905160200847?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/1975841905160200847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=1975841905160200847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1975841905160200847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1975841905160200847'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/11/nationals.html' title='Nationals'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-7408922977483791892</id><published>2009-11-03T16:16:00.001-05:00</published><updated>2009-11-03T16:33:46.080-05:00</updated><title type='text'>Backhands</title><content type='html'>Monday 10/26: Create backhand animation.&lt;br /&gt;&lt;br /&gt;Tuesday 10/27: Start implementing backhands in-game.&lt;br /&gt;&lt;br /&gt;Wednesday 10/28: Leave for Nationals&lt;br /&gt;&lt;br /&gt;Monday 11/2: Come back from Nationals&lt;br /&gt;&lt;br /&gt;Tuesday 11/3: Finish implementing backhands and pivot motion from forehand to backhand. Make AI defense aggressive about catching a thrown disc and getting in front of a cutter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-7408922977483791892?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/7408922977483791892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=7408922977483791892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7408922977483791892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7408922977483791892'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/11/backhands.html' title='Backhands'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-1922558288396160566</id><published>2009-10-23T16:02:00.000-04:00</published><updated>2009-10-23T16:02:46.305-04:00</updated><title type='text'>Rules rule</title><content type='html'>Thursday 10/22: Changed orientation to "landscape" to eventually make way for a D-pad in the lower left. Made texture mipmapping optional (only used on the ground now). Implemented some more rules: out of bounds, can't pick up the disc if the other team has possession. Camera can now optionally follow AI players.&lt;br /&gt;&lt;br /&gt;Friday 10/23: Changed the shape of "in" cuts. AI no longer throws it to out-of-bounds players. Added a global timer class to handle all the timer events. Added a stall count. Added a backhand animation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-1922558288396160566?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/1922558288396160566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=1922558288396160566' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1922558288396160566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1922558288396160566'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/10/rules-rule.html' title='Rules rule'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6079143966194119298</id><published>2009-10-21T17:34:00.000-04:00</published><updated>2009-10-21T17:34:15.454-04:00</updated><title type='text'>Many small improvements</title><content type='html'>Tuesday 10/20: Reworked the AI instruction system. Now each player has their own instruction queue. That allows me to add in a "freeze" instruction on the fly after marking to make the player wait a second before getting into defensive position. Also reworked (again) the way the AI chooses throwing targets. Now it basically will throw it to anyone that's open.&lt;br /&gt;&lt;br /&gt;Wednesday 10/21: Added texture mipmapping (makes the field look better in the distance). Angled the stack based on the disc position. Added a "turnover"when the disc hits the ground. AI will stop throwing motion if the target becomes no longer open.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-6079143966194119298?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6079143966194119298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6079143966194119298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6079143966194119298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6079143966194119298'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/10/many-small-improvements.html' title='Many small improvements'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-606646445130680154</id><published>2009-10-19T17:27:00.001-04:00</published><updated>2009-10-21T17:12:34.517-04:00</updated><title type='text'>Defense is hard</title><content type='html'>Thursday 10/15: Added a "Defense" object to coordinate defensive matchups and other defensive strategies. Added simple defensive positioning logic. Added another team with white jerseys.&lt;br /&gt;&lt;br /&gt;Friday 10/16: Added a little delayed reaction to defense. Created a marking pose and put it into a marking action.&lt;br /&gt;&lt;br /&gt;Monday 10/17: Improved how the AI picks a throwing target (will now check for obstacles and even the position of the mark). Added floating player names (mostly to help with debugging). Added a "setup cut" instruction that positions the player in relation to the disc before cutting.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/StzZF3kwU2I/AAAAAAAAACM/64TIzESuuXI/s1600-h/3daxis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/StzZF3kwU2I/AAAAAAAAACM/64TIzESuuXI/s320/3daxis.png" /&gt;&lt;/a&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/437911419066174428-606646445130680154?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/606646445130680154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=606646445130680154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/606646445130680154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/606646445130680154'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/10/defense-is-hard.html' title='Defense is hard'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/StzZF3kwU2I/AAAAAAAAACM/64TIzESuuXI/s72-c/3daxis.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6205907181037613498</id><published>2009-10-14T14:22:00.000-04:00</published><updated>2009-10-14T14:22:56.452-04:00</updated><title type='text'>Getting closer to playing real Ultimate...</title><content type='html'>Thursday 10/8: Don't really remember...&lt;br /&gt;Friday 10/9: Added a red circle around your player's feet, so that you can tell who you're controlling.&lt;br /&gt;Monday 10/12: Qualified for Nationals. I get a day off.&lt;br /&gt;Tuesday 10/13: Allow locations to be specified relative to the disc, and also introduced endzone directions into the AI, so that it can move downfield to try to score.&lt;br /&gt;Wednesday 10/14: Added team objects to coordinate information about the players in an 'offense'. Eventually it will have team names, colors, defensive information, score, etc... Camera angle also respects endzone direction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-6205907181037613498?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6205907181037613498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6205907181037613498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6205907181037613498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6205907181037613498'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/10/getting-closer-to-playing-real-ultimate.html' title='Getting closer to playing real Ultimate...'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-5805574541975613543</id><published>2009-10-07T23:59:00.000-04:00</published><updated>2009-10-07T23:59:33.966-04:00</updated><title type='text'>Ok, now it looks like me</title><content type='html'>Friday 10/2: Lying awake thursday night, I had an epiphany. The next day I recoded most of the AI system with the concept of "Offense" objects that allows each player to know exactly what the others are thinking. Got 12 players to work together in an attack drill.&lt;br /&gt;&lt;br /&gt;Monday 10/5: Looked for ways to improve performance. Started messing around with the model format and rendering code.&lt;br /&gt;&lt;br /&gt;Tuesday 10/6: Finished implementing indexed vertices (11 FPS -&amp;gt; 16FPS) and triangle strips (16FPS -&amp;gt; 18FPS). Started reducing the polygon count of the model.&lt;br /&gt;&lt;br /&gt;Wednesday 10/7: Reduced the poly count from 1770 to 1000. With 12 players, that's 9240 fewer polygons. 18FPS-&amp;gt;22FPS. Turned off some lighting. 22FPS -&amp;gt; 30FPS. Seems pretty good. Also, I figured out how to use projection painting to make a good model texture out of my source image.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/Ss1jEvSYIcI/AAAAAAAAACE/sI78V7PHHwM/s1600-h/3daxis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/Ss1jEvSYIcI/AAAAAAAAACE/sI78V7PHHwM/s320/3daxis.png" /&gt;&lt;/a&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/437911419066174428-5805574541975613543?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/5805574541975613543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=5805574541975613543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5805574541975613543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5805574541975613543'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/10/ok-now-it-looks-like-me.html' title='Ok, now it looks like me'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/Ss1jEvSYIcI/AAAAAAAAACE/sI78V7PHHwM/s72-c/3daxis.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-7929281768366311322</id><published>2009-10-02T00:52:00.000-04:00</published><updated>2009-10-02T00:52:23.146-04:00</updated><title type='text'></title><content type='html'>Wednesday 9/30: Someone was nice enough to line the field. Yay!&lt;br /&gt;&lt;br /&gt;Thursday 10/1: Nicer looking field. It also stretches off into the distance. AI scripts now use XML, which allows more complexity like 'situational' groups of instructions that only run if the player is in a certain position, for example. Made a model cache. Got AI players to run a simple attack drill. (Continuously! Yes!)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/SsWG5BAqtfI/AAAAAAAAABc/ZPcHxxHIPUQ/s1600-h/drillss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/SsWG5BAqtfI/AAAAAAAAABc/ZPcHxxHIPUQ/s320/drillss.png" /&gt;&lt;/a&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/437911419066174428-7929281768366311322?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/7929281768366311322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=7929281768366311322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7929281768366311322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7929281768366311322'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/10/wednesday-930-someone-was-nice-enough.html' title=''/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/SsWG5BAqtfI/AAAAAAAAABc/ZPcHxxHIPUQ/s72-c/drillss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-3551631120581881574</id><published>2009-09-29T15:46:00.000-04:00</published><updated>2009-09-29T15:46:31.607-04:00</updated><title type='text'>Run, My Minions! Run!</title><content type='html'>Monday 9/28: Added logic for the AI to wait to move to a position if it's occupied (essentially, lining up). Added 'marker' objects for use in drills. They are just red X's on the ground. Added .gam files to configure the number and positions of players on the field (for different drills).&lt;br /&gt;&lt;br /&gt;Tuesday 9/29: Added logic for the AI to wait for a clear path and a thrower before cutting. Refactored the targeting/throwing system into its own class. Changed the background color to sky blue. Used all the AI available so far to create a simple throwing drill. (Screenshot below)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/SsJjzh5iZ9I/AAAAAAAAABU/Nbdnk5O9TFk/s1600-h/drillss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/SsJjzh5iZ9I/AAAAAAAAABU/Nbdnk5O9TFk/s320/drillss.png" /&gt;&lt;/a&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/437911419066174428-3551631120581881574?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/3551631120581881574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=3551631120581881574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3551631120581881574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/3551631120581881574'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/run-my-minions-run.html' title='Run, My Minions! Run!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/SsJjzh5iZ9I/AAAAAAAAABU/Nbdnk5O9TFk/s72-c/drillss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-323655254236059058</id><published>2009-09-25T18:25:00.001-04:00</published><updated>2009-09-29T15:43:28.022-04:00</updated><title type='text'>Progress</title><content type='html'>Thursday 9/24: All-new movement system. Just tap where you want to go.&lt;br /&gt;&lt;br /&gt;Friday 9/25: More work on AI scripting. Tweaks to AI reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-323655254236059058?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/323655254236059058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=323655254236059058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/323655254236059058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/323655254236059058'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/progress.html' title='Progress'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-9105473364150312232</id><published>2009-09-24T15:17:00.001-04:00</published><updated>2009-09-24T15:17:45.574-04:00</updated><title type='text'>Intermission</title><content type='html'>Recently I've read a few stories of Ultimate players facing medical difficulties. One fought cancer and has since returned to the field. Another tore his ACL, decided it was the last straw, and hung up his cleats, after only a few years of competitive play. The former was a story of perseverance and the invincible spirit. The latter was a reminder of the fragility of athleticism, and here, I'll take his advice to heart.&lt;br /&gt;&lt;br /&gt;At the end of a recent, grueling, 4-hour practice, we ran a standard huck drill, with a small group throwing and everyone else chasing. Robbie, one of the throwers, joked that he would throw it extra far to make us run as much as possible. I countered that he couldn't overthrow me if he wanted to. It was a ridiculous challenge, given the circumstances. At one of the last throws of the drill I saw that I had lined up to cut for Robbie's huck, and of course he would try to bomb it as far as possible. &lt;br /&gt;&lt;br /&gt;I left a second early and ran as hard as I could. At some point I sighted the disc and it didn't have much float to it. I reached out my arms and leaped as the disc dove toward the ground, and barely brushed it with my fingers. It rolled to a stop a few feet away.&lt;br /&gt;&lt;br /&gt;Right now, I am as healthy as I can probably ever expect. I'm in shape. I feel fast. I fly as I chase down a disc. At any time I can tear my ACL or break my leg or whatever, but I want to note, on the record, that I do appreciate my health. I know it can crumble at any time. It is worth it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-9105473364150312232?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/9105473364150312232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=9105473364150312232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/9105473364150312232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/9105473364150312232'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/intermission.html' title='Intermission'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-1329892508208306923</id><published>2009-09-23T16:36:00.002-04:00</published><updated>2009-09-23T16:37:49.001-04:00</updated><title type='text'>Let's Play Catch</title><content type='html'>Friday 9/18: A little work on the beginning of an AI scripting system.&lt;br /&gt;Monday 9/21: Tweaked the camera and throwing mechanics. Added some space at the bottom of the screen when holding the frisbee that you can use to turn.&lt;br /&gt;Tuesday 9/22: Tweaked the AI system. Started on the frisbee reading/catching logic.&lt;br /&gt;Wednesday 9/23: Finished the frisbee reading/catching. More camera tweaks. Added a ground "shadow" to make it easier to read the frisbee.&lt;br /&gt;&lt;br /&gt;I think I'm almost to the point where I can implement a simple drill.&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/_aHXMSfhY_hY/SrqGXa0NEhI/AAAAAAAAABE/xh-Og4wVLqE/s1600-h/iuss-throw.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/SrqGXa0NEhI/AAAAAAAAABE/xh-Og4wVLqE/s200/iuss-throw.png" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_aHXMSfhY_hY/SrqGevwIjbI/AAAAAAAAABM/55GNfFmGI8E/s1600-h/iuss-read.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aHXMSfhY_hY/SrqGevwIjbI/AAAAAAAAABM/55GNfFmGI8E/s200/iuss-read.png" /&gt;&lt;/a&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/437911419066174428-1329892508208306923?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/1329892508208306923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=1329892508208306923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1329892508208306923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1329892508208306923'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/lets-play-catch.html' title='Let&apos;s Play Catch'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_aHXMSfhY_hY/SrqGXa0NEhI/AAAAAAAAABE/xh-Og4wVLqE/s72-c/iuss-throw.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-241648010170732163</id><published>2009-09-17T16:46:00.000-04:00</published><updated>2009-09-17T16:46:35.877-04:00</updated><title type='text'>Plodding along</title><content type='html'>The last week has been fairly terrible as far as visible progress is concerned, but I think I got a lot of necessary work done that will pave the way for future improvements.&lt;br /&gt;&lt;br /&gt;Thursday 9/10: Reworked the frisbee flight calculations using some actual physics equations. Added transition actions to show a smooth transition between running and standing, for instance.&lt;br /&gt;&lt;br /&gt;Friday 9/11: Started to expand the action system to allow for more complex actions.&lt;br /&gt;&lt;br /&gt;Monday 9/14: Day off.&lt;br /&gt;&lt;br /&gt;Tuesday 9/15: Used the new action system to create a more complex throwing motion, including pivoting.&lt;br /&gt;&lt;br /&gt;Wednesday 9/16: Continued working on the throwing mechanics.&lt;br /&gt;&lt;br /&gt;Thursday 9/17: Created a more advance UI display system. Finished (for now) the throwing system. Basically, a target arrow pops up after you pivot out that helps you judge the direction and distance of your throw.&lt;br /&gt;&lt;br /&gt;Next up...AI?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-241648010170732163?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/241648010170732163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=241648010170732163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/241648010170732163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/241648010170732163'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/plodding-along.html' title='Plodding along'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-2416176659295966854</id><published>2009-09-10T01:40:00.000-04:00</published><updated>2009-09-10T01:40:17.987-04:00</updated><title type='text'>I can run! I can throw!</title><content type='html'>I ran into some frustrating problems getting my animations to work. I ended up sticking with my own modeling format (instead of .md2). I might change later, but for now it serves my needs.&lt;br /&gt;&lt;br /&gt;By the way, I think I work in cycles. First, I carefully plan and execute a feature. Then, when the end is in sight, I rush to get it finished so that I can see it on the screen. Then, hopefully, I clean up my work so that it will work in the future.&lt;br /&gt;&lt;br /&gt;Tuesday 9/8: Got the run animation loaded. This took way longer than it should have.&lt;br /&gt;&lt;br /&gt;Wednesday 9/9: Made a forehand animation. Refactored the animation code to handle more than one animation in the same model. Made an action system to handle the timing of animations (as well as the actions they represent). All of this also involved animating the frisbee to act with the player. Added animation frame interpolation, so that animations are smoother and require less disk space.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/SqiQ8zTbyvI/AAAAAAAAAA0/hiRXuw6YM6I/s1600-h/runss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/SqiQ8zTbyvI/AAAAAAAAAA0/hiRXuw6YM6I/s320/runss.png" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/SqiRCFfWXII/AAAAAAAAAA8/z7fU58KgXhs/s1600-h/throwss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/SqiRCFfWXII/AAAAAAAAAA8/z7fU58KgXhs/s320/throwss.png" /&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/437911419066174428-2416176659295966854?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/2416176659295966854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=2416176659295966854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2416176659295966854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2416176659295966854'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/i-can-run-i-can-throw.html' title='I can run! I can throw!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/SqiQ8zTbyvI/AAAAAAAAAA0/hiRXuw6YM6I/s72-c/runss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4497313929803099770</id><published>2009-09-08T00:31:00.001-04:00</published><updated>2009-09-08T00:36:47.065-04:00</updated><title type='text'>Virtual Axis</title><content type='html'>Making steady progress with the graphics...&lt;br /&gt;&lt;br /&gt;Saturday 9/5: Made a skeleton for the model and bent it into a quick pose. Also made a basic texture with skin color. Got the model loaded and displaying. Added simple lighting. Made a better frisbee model and texture.&lt;br /&gt;&lt;br /&gt;Sunday 9/6: Improvements to texture loading system. Gave the field a grass texture. Added hair and eyes to the player texture.&lt;br /&gt;&lt;br /&gt;Monday 9/7: Filmed myself running around and throwing frisbees. Completed a 'run' animation, but haven't loaded it yet. I think I'm going to use .md2 models (the Quake II format), because they are pretty compact.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/SqXd2SKp9hI/AAAAAAAAAAs/6iWH5y3I-S0/s1600-h/iuss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/SqXd2SKp9hI/AAAAAAAAAAs/6iWH5y3I-S0/s320/iuss.png" /&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/437911419066174428-4497313929803099770?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4497313929803099770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4497313929803099770' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4497313929803099770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4497313929803099770'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/virtual-axis.html' title='Virtual Axis'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/SqXd2SKp9hI/AAAAAAAAAAs/6iWH5y3I-S0/s72-c/iuss.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6731099561770715460</id><published>2009-09-05T18:11:00.000-04:00</published><updated>2009-09-05T18:11:59.066-04:00</updated><title type='text'>More Lies</title><content type='html'>So, it seems I keep lying. Every time I write here I say the graphics are &lt;i&gt;good enough&lt;/i&gt;&amp;nbsp;and that I'll spend the next few days working on game mechanics. And then, invariably, inevitably, I go back to work on the graphics. Maybe it has something to do with my insecurity over the &lt;i&gt;look&lt;/i&gt;&amp;nbsp;of the game, along with my confidence in hashing out the gameplay.&lt;br /&gt;&lt;br /&gt;Wednesday 9/2: Added some structure for player AI. Currently, once the other player catches the frisbee, it will chuck it back at you as soon as it can see you, but it doesn't move at all or throw accurately. I also did some work on loading models with multiple frames (i.e., animations).&lt;br /&gt;&lt;br /&gt;Thursday 9/3: I spent the day following modeling tutorials and making something terrible from scratch. I was happy with it at the time though. I won't show the result.&lt;br /&gt;&lt;br /&gt;Friday 9/4: I spent the day modeling myself. It looks great. I also created the texture mapping.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: auto;"&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/SqLhzpUShLI/AAAAAAAAAAk/t1fBc3d-UN0/s1600-h/iu-model-shots.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/SqLhzpUShLI/AAAAAAAAAAk/t1fBc3d-UN0/s320/iu-model-shots.png" /&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/437911419066174428-6731099561770715460?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6731099561770715460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6731099561770715460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6731099561770715460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6731099561770715460'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/more-lies.html' title='More Lies'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/SqLhzpUShLI/AAAAAAAAAAk/t1fBc3d-UN0/s72-c/iu-model-shots.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-729098286344071786</id><published>2009-09-01T16:46:00.000-04:00</published><updated>2009-09-01T16:46:24.469-04:00</updated><title type='text'>Modelin'</title><content type='html'>Monday 8/31: Two-finger swipe camera panning. Model loading. Basic frisbee model.&lt;br /&gt;Tuesday 9/1: &amp;nbsp;Basic player model. Added another player to throw to. UI drawing layer, including a nice button class. Different camera modes and a change mode button (the white rectangle). Added rotation to the player based on direction.&lt;br /&gt;&lt;br /&gt;So, I lied about how long it would take to get real models in the game. The transition from Blender to OpenGL is actually pretty painless, although I don't have any animation yet. Now that it looks a bit better, I can move on to throwing / catching mechanics and basic player AI.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aHXMSfhY_hY/Sp2IAsjCBSI/AAAAAAAAAAc/y4fsleOq3Bw/s1600-h/9-1ss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aHXMSfhY_hY/Sp2IAsjCBSI/AAAAAAAAAAc/y4fsleOq3Bw/s320/9-1ss.png" /&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/437911419066174428-729098286344071786?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/729098286344071786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=729098286344071786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/729098286344071786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/729098286344071786'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/09/modelin.html' title='Modelin&apos;'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aHXMSfhY_hY/Sp2IAsjCBSI/AAAAAAAAAAc/y4fsleOq3Bw/s72-c/9-1ss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4077396209403182866</id><published>2009-08-28T15:03:00.000-04:00</published><updated>2009-08-28T15:03:54.521-04:00</updated><title type='text'>Zoomin'</title><content type='html'>Thursday 8/27: Day off (moving)&lt;br /&gt;Friday 8/28: New field class (rendered as a big green rectangle). Two-finger pinch zoom.&lt;br /&gt;&lt;br /&gt;So, after one week, there is basic code in place for graphics, input, camera control, movement, and throwing. It's not pretty, but I'll probably wait to do a whole round of graphics improvements at once. I bet that will come in week 3 at the earliest.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aHXMSfhY_hY/SpgptR0i4mI/AAAAAAAAAAU/FY4-rxKfTQ4/s1600-h/iuss.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aHXMSfhY_hY/SpgptR0i4mI/AAAAAAAAAAU/FY4-rxKfTQ4/s320/iuss.png" /&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/437911419066174428-4077396209403182866?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4077396209403182866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4077396209403182866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4077396209403182866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4077396209403182866'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/08/zoomin.html' title='Zoomin&apos;'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_aHXMSfhY_hY/SpgptR0i4mI/AAAAAAAAAAU/FY4-rxKfTQ4/s72-c/iuss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-987759385694213300</id><published>2009-08-26T16:42:00.002-04:00</published><updated>2009-08-26T16:50:40.724-04:00</updated><title type='text'>iPhone Ultimate</title><content type='html'>I'm writing an Ultimate game for iPhone. I'll blog my progress here.&lt;br /&gt;&lt;br /&gt;Monday 8/24: Project setup. Basic graphics init stuff. Made a simple Frisbee class.&lt;br /&gt;Tuesday: Set up view coordinates. Simple representation of both player and frisbee. Start processing touch events.&lt;br /&gt;Wednesday: Hook up touch events to player movement and frisbee throwing. Some simple math for frisbee flight and player running.&lt;br /&gt;&lt;br /&gt;Screenshot:&lt;br /&gt;Yellow triangle is player. Red square is frisbee.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_aHXMSfhY_hY/SpWf3_XqnfI/AAAAAAAAAAM/LIzDpwzb4PI/s1600-h/iphoneultimatess.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aHXMSfhY_hY/SpWf3_XqnfI/AAAAAAAAAAM/LIzDpwzb4PI/s320/iphoneultimatess.png" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-987759385694213300?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/987759385694213300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=987759385694213300' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/987759385694213300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/987759385694213300'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/08/iphone-ultimate.html' title='iPhone Ultimate'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_aHXMSfhY_hY/SpWf3_XqnfI/AAAAAAAAAAM/LIzDpwzb4PI/s72-c/iphoneultimatess.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-933979897068825734</id><published>2009-07-07T17:36:00.004-04:00</published><updated>2009-07-07T18:21:55.496-04:00</updated><title type='text'>Jump Rope</title><content type='html'>For July, I'll be on a pretty strict Tues / Thurs jump rope schedule. Here is my workout, and some current times:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Definitions&lt;/div&gt;&lt;div&gt;-------------&lt;/div&gt;&lt;div&gt;Single jump: jump with both feet simultaneously, one turn of the rope&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sprint: alternate feet, one rope turn per foot; basically running in place. 1 'sprint' is two rope turns, one for each foot. knees should come up high&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Double bounce: jump twice in a row on each foot. 1 double bounce is two rope turns, so double bounce x 8 is RRLLRRLLRRLLRRLL (16 total turns). keep legs straight, feet should barely leave the ground&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Combination (120 total turns):&lt;/div&gt;&lt;div&gt;Single jump x 8&lt;/div&gt;&lt;div&gt;Sprint x 8&lt;/div&gt;&lt;div&gt;Double bounce x 8&lt;/div&gt;&lt;div&gt;Sprint x 8&lt;/div&gt;&lt;div&gt;Single jump x 8&lt;/div&gt;&lt;div&gt;Sprint x 8&lt;/div&gt;&lt;div&gt;Double bounce x 8&lt;/div&gt;&lt;div&gt;Sprint x 8&lt;/div&gt;&lt;div&gt;Single jump x 8&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Warm up&lt;/div&gt;&lt;div&gt;-----------&lt;/div&gt;&lt;div&gt;Jump at a relaxed pace. I do mostly single jumps, but I mix it up to keep it from getting boring&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1 minute on&lt;/div&gt;&lt;div&gt;1:15 rest&lt;/div&gt;&lt;div&gt;1 minute on&lt;/div&gt;&lt;div&gt;1:00 rest&lt;/div&gt;&lt;div&gt;1 minute on&lt;/div&gt;&lt;div&gt;:45 rest&lt;/div&gt;&lt;div&gt;1 minute on&lt;/div&gt;&lt;div&gt;:30 rest&lt;/div&gt;&lt;div&gt;1 minute on&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Rest a few minutes, catch your breath, stretch, drink water&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Long intervals&lt;/div&gt;&lt;div&gt;-----------------&lt;/div&gt;&lt;div&gt;These should be fast, but don't kill yourself. save that for later. Each takes me around 43s-50s&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Combination&lt;/div&gt;&lt;div&gt;:30 rest&lt;/div&gt;&lt;div&gt;Combination&lt;/div&gt;&lt;div&gt;:30 rest&lt;/div&gt;&lt;div&gt;Combination&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Rest a few minutes, catch your breath, drink water&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tabata intervals&lt;/div&gt;&lt;div&gt;-------------------&lt;/div&gt;&lt;div&gt;4:00 total of short intervals. Every second sprinting should be as fast and hard as possible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;:20 sprints&lt;/div&gt;&lt;div&gt;:10 rest&lt;/div&gt;&lt;div&gt;Repeat for 4:00 total.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Rest, catch your breath, drink water&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cooldown&lt;/div&gt;&lt;div&gt;------------&lt;/div&gt;&lt;div&gt;1 Combination at a relaxed pace. I'm pretty tired for this one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think it takes about a half hour total, maybe less.&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/437911419066174428-933979897068825734?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/933979897068825734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=933979897068825734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/933979897068825734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/933979897068825734'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/07/jump-rope.html' title='Jump Rope'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-7230692371297123015</id><published>2009-06-30T18:19:00.003-04:00</published><updated>2009-06-30T18:42:44.154-04:00</updated><title type='text'>First Madcow Tournaments</title><content type='html'>A week ago, we won No Surf in Cleveland, going 8-0. Last weekend, 7-0 to win Scinny in Cincinnati. Both were fairly local tournaments, but we did beat some pretty solid teams, including Haymaker, Forge, and LouEvil. There are some more detailed write-ups on the tournaments at madcowultimate.com&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These were basically my first tournaments playing with a 'big team', by which I mean big enough to have O and D lines and big enough that fatigue wasn't a factor. I certainly felt tired and sore after No Surf, but I was at top speed even in the finals. I was an offensive line cutter and played an average of around 7 points a game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Scinny was a different story. I had a heel injury, and so didn't really play until the finals, when my parents came to watch. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It felt great to have a specific role (offensive cutting). It allowed me to narrow the focus of my game. I didn't have to be "the man" so I could be more creative with my cutting, and just assume that everyone else was doing their job. Although I didn't play as many points as I usually would in a tournament, I was free to put all of my effort into each one, without any thought for saving energy for later. Some points I would run into position after the pull, make a couple cuts, catch and throw once, and then we would score. It felt almost artistic when we executed the offense well. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What will happen when we face better competition? Will our offense break down? Will we get upset and start assigning blame? Or will they push us to new heights? Some of both? I'm excited to see it happen. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, it's early in the season, but Central Regionals looks to be a fight between Madcow, Prairie Fire, Machine, Madison Club, and Sub Zero. At least we're guaranteed three bids.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-7230692371297123015?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/7230692371297123015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=7230692371297123015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7230692371297123015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/7230692371297123015'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/06/first-madcow-tournaments.html' title='First Madcow Tournaments'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-5321897825583816937</id><published>2009-06-14T23:03:00.002-04:00</published><updated>2009-06-14T23:23:19.429-04:00</updated><title type='text'>Poultry Days</title><content type='html'>My first real tournament of the year. Injuries were no problem, excepting a small amount of shin splints at the beginning of Saturday. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In pool play Saturday, we went 3-2. I played solidly, with a couple turnovers coming on errant hucks and a couple more on miscommunications. I had a cool layout catch, but no real highlight plays. I never got winded, although we (the team) never properly warmed up. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I realized Sunday morning (after my own warm up) that there was an extra gear I hadn't hit the entire previous day. I see now that warming up (jog, plyos, sprints, drills?) enables the proper competitive mindset. However, you do need a certain level of conditioning. &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My worst showing came at the end of Sunday's only game. I got tired in a long point of a handling in a zone and became very inaccurate. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While holding the disc, I need to put myself in a more dangerous position to break the mark. People mark me very flat, but I never punish them for it.&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/437911419066174428-5321897825583816937?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/5321897825583816937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=5321897825583816937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5321897825583816937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5321897825583816937'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/06/poultry-days.html' title='Poultry Days'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4329303288521027713</id><published>2009-05-25T23:46:00.000-04:00</published><updated>2009-05-25T23:59:00.833-04:00</updated><title type='text'>Jumpin</title><content type='html'>I just completed my first Tabata workout on jump rope at full speed, which is 20s sprint / 10s rest intervals for a total of 4 minutes. This somewhat noteworthy landmark suggests the following things:&lt;br /&gt;My ankle is fairly strong (with brace)&lt;br /&gt;My adductor is fairly strong (with wrap)&lt;br /&gt;My forearm muscles have adapted to jump rope (or, my form has improved)&lt;br /&gt;I am in some basic state of conditioning&lt;br /&gt;&lt;br /&gt;So, that means it's time to push myself. I'm no longer injured and I can't use that as an excuse.&lt;br /&gt;Effective immediately: &lt;br /&gt;Hell point after practice, and hills if possible. (Tues. + Sat.)&lt;br /&gt;Same for summer league, with the addition of sprint intervals (jog endzones / sprint field x 3). This is a good yardstick because I didn't push through it at practice last week. (Mon. + Wed.)&lt;br /&gt;Thursday and Friday I jump rope or sprint intervals.&lt;br /&gt;Sunday, predictably, is a day of rest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-4329303288521027713?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4329303288521027713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4329303288521027713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4329303288521027713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4329303288521027713'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/05/jumpin.html' title='Jumpin'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-2352361832383704007</id><published>2009-05-05T20:25:00.000-04:00</published><updated>2009-05-05T20:36:35.422-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><category scheme='http://www.blogger.com/atom/ns#' term='madcow'/><title type='text'>First Practice</title><content type='html'>Just returned from my first Madcow practice. The first month or so of practices are basically "tryouts", with closed practices after that. Here's how I felt:&lt;br /&gt;&lt;br /&gt;Groin: Good. My right leg definitely comes around slower when running, but no sharp pain. &lt;br /&gt;Ankle: Fair. Definitely improved from before, but I planted hard a few times and felt sharp pain, and so I sat out a bunch of points.&lt;br /&gt;Throws: Decent. No turnovers. One break. One okay flick huck.&lt;br /&gt;Defense: Decent. I didn't guard anyone really tough. Bad handler D because I'm not conditioned. No D's.&lt;br /&gt;Cutting: I got open enough,  but didn't feel that confident.&lt;br /&gt;Conditioning: Not too bad, but we didn't run any sprints or anything. Felt winded after the drills.&lt;br /&gt;&lt;br /&gt;This week I'm jump roping every day, which I think is easier on my injuries. I will try to jump rope some HIIT.&lt;br /&gt;&lt;br /&gt;Feelin good. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-2352361832383704007?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/2352361832383704007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=2352361832383704007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2352361832383704007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/2352361832383704007'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/05/first-practice.html' title='First Practice'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-1966827735120506259</id><published>2009-04-18T21:17:00.002-04:00</published><updated>2009-04-18T21:46:01.754-04:00</updated><title type='text'>I'm back! Yeahhh!!!</title><content type='html'>As of this morning, I had gone roughly six weeks without playing ultimate. That last time was the finals of winter league. At one point in these past six weeks I played a game of goaltimate. At another I played a very grabass game of frisbee. Going further, I had gone roughly five months without feeling healthy while playing frisbee.&lt;br /&gt;&lt;br /&gt;I've been sidelined with a groin injury, which I'd like to call 'adversity in a box'.  If you think you need to work on will power and mental toughness, go out right now and strain your groin. I think it's a very interesting injury. You don't get the reality of seeing a cast on your arm, for instance, and yet it cripples your basic ability to move in an athletic manner. It's an injury to the very core strength that everyone raves about.&lt;br /&gt;&lt;br /&gt;So, a month ago I saw a doctor and then made trips to a physical therapist. She taught me how to strengthen my lower abdominals and all my groin parts, to help the injured guy along. Day after day, I coaxed my body into a healthy state. Good for me, huh?&lt;br /&gt;&lt;br /&gt;So, for all my hard work, I was rewarded today with a spring league double header.&lt;br /&gt;&lt;br /&gt;My team lost both games.&lt;br /&gt;I had fun.&lt;br /&gt;I didn't hurt.&lt;br /&gt;2 turnovers. I think I'll blame one on a slow teammate. The other I threw straight into the ground (who does that anymore?)&lt;br /&gt;1/1 hucks. It was a forehand against a light upwind breeze. It started IO and turned OI, but remained flat enough. So, an economical but not attractive throw. The mark had prevented my prefered backhand look.&lt;br /&gt;1 sick layout d. OI flick huck coming over our right shoulders. Batted the disc as it fell into his hands.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-1966827735120506259?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/1966827735120506259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=1966827735120506259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1966827735120506259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/1966827735120506259'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/04/im-back-yeahhh.html' title='I&apos;m back! Yeahhh!!!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6399412769660824605</id><published>2009-03-14T00:04:00.004-04:00</published><updated>2009-03-14T01:12:05.475-04:00</updated><title type='text'>Flight</title><content type='html'>A throw from a novice will often come in much too hard and fast, making it hard to catch.&lt;br /&gt;A throw from a more experienced player will likely have a bit of touch, but it might slow up too early and bend from lack of power.&lt;br /&gt;A throw from a master will have almost no variation in speed or angle. It's not hard to see this, because it looks unnatural. The disc seems like it should slow down, but instead it plods along at a controlled pace, perhaps even appearing to speed up at the end (because the mind expects it to slow). There's good video of this on the Dream Cup DVD, where Jeremy Cram gives throwing instruction.&lt;br /&gt;&lt;br /&gt;Lately I've tried to achieve this with my own throws. I believe I am almost successful with my backhand. Forehand seems a bit tougher. The trick seems to be adding a generous dose of torque and spin, and finding the perfect angle. That angle should be a little over 5 degrees nose up for a mid-release throw.&lt;br /&gt;&lt;br /&gt;How will I get it for my forehand? I need to apply more spin to the disc, but merely flicking it harder or cranking my wrist around won't do it. The applied force would be much too erratic. As always, it comes down to good form. The generated spin should come from core strength translated into hip, shoulder, arm, and finally wrist movement. If it all comes through even and powerful, the disc will have greater spin but an even flight path.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-6399412769660824605?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6399412769660824605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6399412769660824605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6399412769660824605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6399412769660824605'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/03/flight.html' title='Flight'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-9072246256475907808</id><published>2009-02-16T01:28:00.002-05:00</published><updated>2009-02-16T01:54:51.368-05:00</updated><title type='text'>The Little Things</title><content type='html'>Today I read an interesting article on the NBA player Shane Battier. It made the case that while almost all of his stats run from mediocre to abysmal, he really is one of the most valuable players in the game. He doesn't make huge blocks or pile on rebounds, but he studies his opponents carefully and plays intelligent defense that frustrates even the big stars. He doesn't make a bunch of shots or assists, but he always positions himself properly to help his team get the basket or the rebound. His performance does show up in more nuanced numbers like, "difference of points scored and points allowed for the whole team while Battier is in the game."&lt;br /&gt;&lt;br /&gt;I've played with frisbee players that emulate either Kobe or Battier as well. Obviously, you need some guys with huge throws and big D's, but how much do they help the team if the hucks end up being pretty low percentage, or if they are stubborn with regard to space? I think improvement in this way comes from discipline. Creating good space for your team on offense should be automatic. Moving the disc quickly should always be on your mind like an itch. Throwing down a hard mark should be biggest pleasure in defense. I think next indoor game I will start off every offensive point by telling myself, "create space, setup the continuation." As in every sport, the small improvements in frisbee add up to wins, even if your teammates only remember the layout score.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-9072246256475907808?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/9072246256475907808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=9072246256475907808' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/9072246256475907808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/9072246256475907808'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/02/little-things.html' title='The Little Things'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-4332195623297178022</id><published>2009-01-24T03:04:00.003-05:00</published><updated>2009-01-24T03:29:45.378-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><title type='text'>Learning</title><content type='html'>Although I'm not currently seeking employment, I do get notices from my old school of job postings. Some of them sound interesting until I get to the requirements section and I lose interest. They always want someone with experience with some fancy Oracle or SQL database software. I think to myself, "I've never used a database in my life and I can only assume it's very complicated. I don't think I am qualified for this job."&lt;br /&gt;&lt;br /&gt;Lately I've finally had the need for a database in one of my own projects. I'm using Ruby and heard there is a nice module for something called sqlite, so I tried it out. It's very very easy. The concepts are easy; the api is easy. All there is to it, it seems, is the SQL language, which is pretty simple. I learned everything I know from a &lt;a href="http://www.sqlcommands.net/"&gt;cheat sheet&lt;/a&gt;.&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; I had a database up and running in my project in a couple of hours, after having almost zero knowledge of how the stuff works.&lt;br /&gt;&lt;br /&gt;I think that anyone with a good background in computing / programming could pick up a working knowledge of a particular skill in a weekend. Is that the secret? Do employers know it's that easy, and yet they list a skill as a requirement in order to get you to put in some of your free time to learn it?&lt;br /&gt;&lt;br /&gt;I am simplifying things. The wikipedia &lt;a href="http://en.wikipedia.org/wiki/Sql"&gt;SQL&lt;/a&gt; article is pretty long and interesting, and contains references to a lot of things I know nothing about. But, if it involves expressing logic in a language a computer can understand to accomplish some computational objective, then there is likely nothing shockingly new there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-4332195623297178022?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/4332195623297178022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=4332195623297178022' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4332195623297178022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/4332195623297178022'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2009/01/learning.html' title='Learning'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-5558981850570136085</id><published>2008-11-29T01:58:00.000-05:00</published><updated>2008-11-29T02:07:22.174-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frisbee'/><title type='text'>Go Turkeys!</title><content type='html'>I played in a hat tournament. My team had a lot of good young players and ended up 4-1.&lt;br /&gt;&lt;br /&gt;What wasn't working for me:&lt;br /&gt;Forehand&lt;br /&gt;Hucks&lt;br /&gt;Decision making&lt;br /&gt;&lt;br /&gt;What was working for me:&lt;br /&gt;Handblocks&lt;br /&gt;Big sky&lt;br /&gt;Pulls&lt;br /&gt;Deep cuts&lt;br /&gt;&lt;br /&gt;The cold weather hurt my throws but does not excuse (other players were hucking fine). I need to come up with some way to deal with it, or else completely eliminate some throws from my game in cold weather. A missed opportunity is better than a turnover, afterall.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/437911419066174428-5558981850570136085?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/5558981850570136085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=5558981850570136085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5558981850570136085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/5558981850570136085'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2008/11/go-turkeys.html' title='Go Turkeys!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-437911419066174428.post-6933353846754986476</id><published>2008-11-26T22:43:00.000-05:00</published><updated>2008-11-26T23:10:16.865-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Oops? Scoops!</title><content type='html'>This is my blog. My name is Axis. I have no secrets; nothing to hide from the internet.&lt;br /&gt;Both &lt;a href="http://scoops.blogspot.com"&gt;scoops&lt;/a&gt; and &lt;a href="http://oopsscoops.blogspot.com"&gt;oopsscoops&lt;/a&gt; were taken, to my dismay. You may find them entirely underwhelming. Scoops, especially, must have been, like, "Scooooop--s!", and then abandoned entirely.&lt;br /&gt;&lt;br /&gt;I will write about 4 things mostly:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ultimate Frisbee : Good game. In training for spring right now.&lt;/li&gt;&lt;li&gt;Go / Baduk / Wei-Chi --&gt; Also good game. Am studying super hard.&lt;/li&gt;&lt;li&gt;Computers #&gt; You know, beep beep ERROR and such.&lt;/li&gt;&lt;li&gt;Blogging.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Everything Else&lt;/li&gt;&lt;li&gt;Maybe music I like&lt;br /&gt;&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/437911419066174428-6933353846754986476?l=scooops.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://scooops.blogspot.com/feeds/6933353846754986476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=437911419066174428&amp;postID=6933353846754986476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6933353846754986476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/437911419066174428/posts/default/6933353846754986476'/><link rel='alternate' type='text/html' href='http://scooops.blogspot.com/2008/11/oops-scoops.html' title='Oops? Scoops!'/><author><name>Axis</name><uri>http://www.blogger.com/profile/13170379242568085517</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
