<?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-6483520008883064921</id><updated>2011-08-31T16:27:48.558-07:00</updated><category term='2009 IGF'/><category term='sock monkey'/><category term='media'/><category term='merch'/><category term='sound'/><category term='news'/><category term='video'/><category term='fun'/><category term='code'/><category term='website'/><category term='cake'/><category term='GUI'/><category term='beta'/><category term='item'/><title type='text'>NimbleBit: purveyors of nimble bits</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default?start-index=101&amp;max-results=100'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>107</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-8870267825934592439</id><published>2009-03-13T16:10:00.000-07:00</published><updated>2009-03-13T16:18:23.795-07:00</updated><title type='text'>NibleBit New Site! Update your bookmarks and RSS feeds!</title><content type='html'>We have finally got the new site up and running, and we have moved everything over to it! You can track all of NimbleBit's activities on &lt;a href="http://NimbleBit.com"&gt;http://NimbleBit.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Our new RSS feed can also be accessed at &lt;a href="http://feeds2.feedburner.com/Nimblebit"&gt;http://feeds2.feedburner.com/Nimblebit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;New Blog!&lt;br /&gt;New Forums!&lt;br /&gt;New Chat!&lt;br /&gt;New GAMES!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So &lt;a href="http://nimblebit.com"&gt;head on over&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;This blog will no longer be updated. You will be re-directed in 5.. 4.. 3.. 2.. 1...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8870267825934592439?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8870267825934592439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8870267825934592439&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8870267825934592439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8870267825934592439'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/03/niblebit-new-site-update-your-bookmarks.html' title='NibleBit New Site! Update your bookmarks and RSS feeds!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-1378477659782327596</id><published>2009-03-10T17:10:00.000-07:00</published><updated>2009-03-10T17:25:10.679-07:00</updated><title type='text'>NimbleBit prepping for a big move . . .</title><content type='html'>... to a brand new NimbleBit world headquarters on the web! Brian has been smashing the heads together of technical kinks in Zero Gear, destroying bugs like a human RoboCop whose prime directive is to destroy all bugs. I have been prepping our new nimble nest to make room for all the extra content we are going to have as a result of a very special addition to the NimbleBit crew. More games! More games! More games!&lt;br /&gt;&lt;br /&gt;here is a sneak peek:&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.nimblebit.com/mystery.jpg" border="0" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-1378477659782327596?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/1378477659782327596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=1378477659782327596&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1378477659782327596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1378477659782327596'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/03/nimblebit-prepping-for-big-move.html' title='NimbleBit prepping for a big move . . .'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-2845207481423071115</id><published>2009-02-16T20:17:00.001-08:00</published><updated>2009-02-18T07:42:07.696-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Global Game Jam Postmortem</title><content type='html'>&lt;div&gt;It has now been 2 weeks since the &lt;a href="http://nimblebit.blogspot.com/2009/02/global-game-jam-result-coopetiton.html"&gt;jam&lt;/a&gt;. I am finally making the time to write about it. As a side note, I posted to twitter while at the jam (I had very little sleep during the later parts of the jam so forgive any nonsense). Check our &lt;a href="http://twitter.com/NimbleBit"&gt;twitter feed&lt;/a&gt; starting from Jan 30th for those.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://globalgamejam.org/"&gt;Global Game Jam&lt;/a&gt; in brief was like a &lt;a href="http://smithams221.files.wordpress.com/2008/05/dorkathon-5-lan-party-05.jpg"&gt;Lan Party&lt;/a&gt; but at the end you made a game instead of just played them. It was noncompetitive, the goal being to pump out as many cool games as possible.&lt;span class="Apple-style-span"  style=" ;font-family:arial;"&gt;&lt;em style="font-weight: bold; font-style: normal; text-decoration: inherit; "&gt;&lt;span class="Apple-style-span"  style=" font-weight: normal; font-family:Georgia;"&gt; I went to the &lt;a href="http://www.cogswell.edu/news/155.html"&gt;San Francisco-Silicon Valley&lt;/a&gt; jam and met a bunch of awesome people. I had an amazing time and definitely plan to do it again next year!&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" ;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;My teams room (no, that isn't a real person playing the guitar in the back, he is made out of cardboard (yes, it is a real person sleeping in the back, I don't know who that is))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_lBSHjVGvoy8/SZoZtgeCF-I/AAAAAAAAACc/8JoblFi735Y/s1600-h/Jam1.jpg"&gt;&lt;img style="display:block; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_lBSHjVGvoy8/SZoZtgeCF-I/AAAAAAAAACc/8JoblFi735Y/s400/Jam1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5303579780782888930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;LOCATION:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;My jam was located at &lt;a href="http://www.cogswell.edu/"&gt;Cogswell College&lt;/a&gt; just south of San Francisco. They did an incredible job of running the event and supporting all the participants. There was always plenty of food/drink to consume and we never had any power or networking problems. They made it easy to concentrate on making games.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;TEAMS:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There were about 35 participants at this location (hundreds of others around the globe) and we split into 7 teams of 5 people each. I think there were mostly programmers followed by artists and then a few producers and audio people.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Teams were initially (for the most part) chosen at random. You were free to move around and change up teams of course, however, it seemed like most people ended up staying with their random team which surprised me.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My team included:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.lazy8studios.com/"&gt;Rob Jagnow&lt;/a&gt;: Programmer&lt;br /&gt;&lt;/div&gt;&lt;div&gt;James Hudson: Programmer&lt;/div&gt;&lt;div&gt;Jerome Bolusan: Artist&lt;/div&gt;&lt;div&gt;&lt;a href="http://dakoder.com/"&gt;Dakota Hurst&lt;/a&gt;: Technical Artist/Programmer/Audio&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and Me, Brian Cronin: Programmer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;THEME:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;The theme set for all games was: "Whenever we are together, we will never run out of problems".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The contraints were:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;A complete play session must always last 5 minutes or less.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Have ONE of the following adjectives to incorporate in your game: thin, evolved, or rotating.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;SCHEDULE:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The whole event went from 5pm, Friday, Jan 30th to 3pm, Sunday, Feb 1st (I was told there was some important sporting event on this day involving a pig's skin that is tossed around a field with the goal of avoiding large agressive men who wish to tickle you).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Friday&lt;/span&gt; night was mostly about meeting everyone and forming teams. It was also when we learned of our theme and constraints. This was so people couldn't start working on anything before the event (it was a 48 hour jam after all) but also to force us to be creative.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We had about half an hour to talk to our team members and come up with a game idea(s). Our team worked really well together during this process and came to an agreement on a game concept very quickly. We decided that the theme called for a 2 player game. The theme also implied working together while also competing against each other. We decided that the players should be tied together with a sort of electric rubber band while trying to collect more coins than the other player. We chose the rotating adjective by having the players make turns around the level, thus causing the camera to rotate with them (turned out to be cooler than it sounds now that I type it). Our final game idea was modified very little throughout the development process as you can see:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Here's one of the game's many wild TURNS!!!&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://globalgamejam.org/games/coopetition"&gt;&lt;img style="display:block; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 440px; height: 330px;" src="http://theresprizes.com/coopetition-ss3.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After this short design meeting, the teams presented their ideas to the entire group and some feedback was given. After this, we all rushed to find the best room to begin work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The rest of the night was about setup and preparation for the next very full day of work. We decided to use &lt;a href="http://creators.xna.com/en-US/"&gt;XNA&lt;/a&gt; for the project. Only 1 of us had more than a day or two experience of with it. We decided to use it anyway as part of the point of the jam was to use and learn new technology and methods. My experience with XNA was generally good.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Our team (except for Dakota who I suspect to be a vampire, warewolf, or something) went to bed around 2am that night so we could get some rest to finish the game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Saturday&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt; was when we got most of the game done (It is mostly a blur at this point). We worked on physics, input, rendering (per pixel lighting and shadows = awesome), level design, modeling, menu flow, and probably a bunch of other stuff. There was a ton of energy and always a lot of work to do. It was a blast!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Sunday&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;, some of us got some sleep and some continued to polish up parts of the game. It was all coming together and we were really excited. The most surprising part of Sunday morning was finally playing the game with somebody else and realizing it was a lot of fun!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After putting in some final polish and fixing one last bug, we all ran down to the auditorium to see all the team's games and show ours off.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;We were very late to this final event. All my fault. It worked out though...&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_lBSHjVGvoy8/SZoc_jPSjsI/AAAAAAAAACk/eNY26WlVQP4/s1600-h/Jam2.jpg"&gt;&lt;img style="display:block; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_lBSHjVGvoy8/SZoc_jPSjsI/AAAAAAAAACk/eNY26WlVQP4/s400/Jam2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5303583389298888386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://globalgamejam.org/games?tid[]=28"&gt;All the games&lt;/a&gt; were very impressive considering they were made in less than 48 hours by teams of people who had never worked together before. Each game had at least 1 unique and interesting aspect to it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Considering I plan to do this again next year, here is a right/wrong list...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;5 things that went right:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Very little team conflict, everyone was on the same page.&lt;/li&gt;&lt;li&gt;Game design and scope, we didn't attempt to compete with Halo 4.&lt;/li&gt;&lt;li&gt;Iteration, we used XNA and SVN which allowed us to quickly iterate game ideas.&lt;/li&gt;&lt;li&gt;Communication, everyone was in the same room and was able to work together when they needed as well as, for the most part, leave somebody alone when they were working on a vital aspect of the game.&lt;/li&gt;&lt;li&gt;Fun, we weren't struggling to make the game so we were able to have fun and enjoy the experience.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;5 things that went wrong:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Level format + pipeline: some more thought up front in our level pipeline would have saved a lot of time later on.&lt;/li&gt;&lt;li&gt;XNA: it was great overall and I do not regret using it, but I did end up spending a large amount of time doing a few things that should not have taken so long (I speak only for myself on XNA).&lt;/li&gt;&lt;li&gt;Sound code: the actual audio was great but we had some issues later in the project related to stopping and starting a music track. It wasn't the end of the world, but it was annoying.&lt;/li&gt;&lt;li&gt;More time, the event was only 48 hours but because of the previously mentioned sports event, we had more like 36 hours, that meant we had less time to sleep.&lt;/li&gt;&lt;li&gt;More art help, we had only 1 dedicated artist and he definitely had too much to do, one more dedicated artist would have been nice.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In closing, it was a great Jam. I fully encourage you to look out for and take part in any future events like this. If nothing else, it was great to take a break from the &lt;a href="http://www.myzerogear.com/"&gt;big project&lt;/a&gt; and work on a &lt;a href="http://globalgamejam.org/games/coopetition"&gt;smaller game&lt;/a&gt; for a very small amount of time.&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/6483520008883064921-2845207481423071115?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2845207481423071115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2845207481423071115&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2845207481423071115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2845207481423071115'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/02/global-game-jam-postmortem_16.html' title='Global Game Jam Postmortem'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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/_lBSHjVGvoy8/SZoZtgeCF-I/AAAAAAAAACc/8JoblFi735Y/s72-c/Jam1.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-4642348688650896545</id><published>2009-02-16T10:21:00.000-08:00</published><updated>2009-02-16T10:31:08.795-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>SuperProfiler Speed Improvement and Bug Fix</title><content type='html'>Just a quick update. Here is the change list:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Changed from using std::string to using const char * to improve overall speed&lt;/li&gt;&lt;li&gt;Changed SuperRoot::PopProfile() and SuperStack::Pop() to accept a name parameter, this helps SuperProfiler to find any mismatches in pushes and pops&lt;/li&gt;&lt;li&gt;Added SuperException which is thrown if an unmatched pop is detected (really useful actually)&lt;/li&gt;&lt;li&gt;Added SUPER_PROFILE_PUSH and SUPER_PROFILE_POP macros which are useful if you want to access SuperProfile from a scripting langauge that doesn't support RAII (cough, Lua, cough), Still use SUPER_PROFILE whenever you can however&lt;/li&gt;&lt;li&gt;Fixed a bug when there was no SUPER_PROFILE in a root parent function call (such as a main function). I would suggest not profiling a main type function, anything that only returns at exit&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;If you find any issues, please post them to the bug tracker here: &lt;a href="http://code.google.com/p/superprofiler/issues/list"&gt;http://code.google.com/p/superprofiler/issues/list&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/6483520008883064921-4642348688650896545?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/4642348688650896545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=4642348688650896545&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4642348688650896545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4642348688650896545'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/02/superprofiler-speed-improvement-and-bug.html' title='SuperProfiler Speed Improvement and Bug Fix'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-8842658264273787507</id><published>2009-02-08T12:51:00.001-08:00</published><updated>2009-02-08T14:01:46.792-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>SuperProfiler Update and Screenshots</title><content type='html'>I just updated &lt;a href="http://code.google.com/p/superprofiler/"&gt;SuperProfiler&lt;/a&gt; with support for comma separated value and XML output as noted &lt;a href="http://code.google.com/p/superprofiler/source/detail?r=3"&gt;here&lt;/a&gt;. There were a few other small changes as well.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is an example of what you can do with the CSV output if you load it into a spreadsheet program:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_lBSHjVGvoy8/SY9Iyob2S4I/AAAAAAAAACU/5MHA626kxPU/s1600-h/GameClientResults.png"&gt;&lt;img style="display:block; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 378px; height: 400px;" src="http://2.bp.blogspot.com/_lBSHjVGvoy8/SY9Iyob2S4I/AAAAAAAAACU/5MHA626kxPU/s400/GameClientResults.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5300535321123244930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And here is an example of what you can do with the XML output if you load it into an awesome program like the free &lt;a href="http://symbolclick.com/"&gt;XML Marker&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_lBSHjVGvoy8/SY9GKWWv2wI/AAAAAAAAACM/LfrWtWwmxic/s1600-h/GameClientResultsXML.png"&gt;&lt;img style="display:block; margin:0px 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 342px;" src="http://2.bp.blogspot.com/_lBSHjVGvoy8/SY9GKWWv2wI/AAAAAAAAACM/LfrWtWwmxic/s400/GameClientResultsXML.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5300532430051990274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can imagine how useful this can be I am sure.&lt;br /&gt;&lt;br /&gt;Some things I plan to add in the near(ish) future are:&lt;br /&gt;&lt;br /&gt;1. Real time data (view the performance of your code while running it!)&lt;br /&gt;2. Per frame recording&lt;br /&gt;3. &lt;a href="http://moviesmedia.ign.com/movies/image/article/745/745946/top-10-bond-deaths-20061114034914884-000.jpg"&gt;SPIKE&lt;/a&gt; detection (just a way to mark a recorded frame specially if it took more processing time than the average)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8842658264273787507?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8842658264273787507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8842658264273787507&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8842658264273787507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8842658264273787507'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/02/superprofiler-update-and-screenshots.html' title='SuperProfiler Update and Screenshots'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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/_lBSHjVGvoy8/SY9Iyob2S4I/AAAAAAAAACU/5MHA626kxPU/s72-c/GameClientResults.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-1540483686420118059</id><published>2009-02-05T22:29:00.000-08:00</published><updated>2009-02-05T22:57:31.087-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>SuperProfiler to the rescue!</title><content type='html'>&lt;a href="http://code.google.com/p/superprofiler/"&gt;SuperProfiler&lt;/a&gt; is a library I wrote to help us track down performance issues in Zero Gear. It is open source so anyone can use it (and hopefully help make it better!).&lt;br /&gt;&lt;br /&gt;You simply place a piece of code at the start of any function you want to profile and SuperProfiler takes care of the rest.&lt;br /&gt;&lt;br /&gt;An example...&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;void SomeFunction2(int var1)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUPER_PROFILE("void SomeFunction2(int var1)");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var1++;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void SomeFunction1(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUPER_PROFILE("void SomeFunction1(void)");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int lala = 2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SomeFunction2(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SomeFunction1();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SuperProfiler::TextOutput textOutput("SuperProfilerResults.txt");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SuperProfiler::Root::OutputResults(textOutput));&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and in SuperProfilerResults.txt is...&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Function List | Total Run Time=0 | Total Profiled Function Calls=2&lt;br /&gt;-----------------------------------------&lt;br /&gt;void SomeFunction1(void) | Total Time=0.00 | 50.00% of time | Total Calls=1 | 50.00% of calls&lt;br /&gt;void SomeFunction2(int var1) | Total Time=0.00 | 50.00% of time | Total Calls=1 | 50.00% of calls&lt;br /&gt;&lt;br /&gt;Call Tree&lt;br /&gt;-----------------------------------------&lt;br /&gt;ROOT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void SomeFunction1(void) | Avg Time=0.0000 | Times called=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void SomeFunction2(int var1) | Avg Time=0.0000 | Times called=1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Simple and easy. Check out the &lt;a href="http://code.google.com/p/superprofiler/"&gt;Google code&lt;/a&gt; site for all the juicy details.&lt;br /&gt;&lt;br /&gt;Let me know if you find it useful!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-1540483686420118059?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/1540483686420118059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=1540483686420118059&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1540483686420118059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1540483686420118059'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/02/superprofiler-to-rescue.html' title='SuperProfiler to the rescue!'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-6201115605016456710</id><published>2009-02-04T12:34:00.001-08:00</published><updated>2009-02-04T12:37:02.283-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Progress on Space Jump</title><content type='html'>Did a little more work on the obstacle-type course in between other things. Here is a little stitched together panorama of it (click for big)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/spacejumpwide.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 512px; height: 264px;" src="http://myzerogear.com/spacejumpwide.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-6201115605016456710?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/6201115605016456710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=6201115605016456710&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6201115605016456710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6201115605016456710'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/02/progress-on-space-jump.html' title='Progress on Space Jump'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-1994925901689154762</id><published>2009-02-01T21:20:00.000-08:00</published><updated>2009-02-01T21:37:19.953-08:00</updated><title type='text'>Global Game Jam result: Coopetiton</title><content type='html'>This weekend I (Brian) participated in the &lt;a href="http://globalgamejam.org/"&gt;Global Game Jam&lt;/a&gt; in San Francisco.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was 35 people spending 48 hours (most of them awake) creating games. It was an amazing event and we all had a blast. All of the games were very impressive.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I plan to write more about the actual event but first I wanted to post the game that my team finished.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://globalgamejam.org/games/coopetition"&gt;Coopetition&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The goal of the game is to work with/against another player to collect the most coins. The 2 players are connected by a sort of electric spring. This means that each player has some influence over the movement of the other player.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Collect as many coins in your "wallet" without hitting an obstacle. If you do hit an obstacle, you lose the coins in your wallet. To deposit the coins from your wallet to your bank (the coins are safe in the bank and cannot be lost), go through a hoop that is the same color as your character. Going through the other player's hoop will cause your wallet money to be deposited in their bank. Each coin you pick up actually doubles the amount of money in your wallet. So play it safe and deposit as often as possible or walk on the wild side and try to save up for massive profits!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is best played with 2 people (1 keyboard or 2 controllers) but can be played alone as well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Our team had a great time making this game and would love to hear any feedback so please comment after playing!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some screens:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_lBSHjVGvoy8/SYaEa2WsUfI/AAAAAAAAAB8/E5EpMtDxHKk/s1600-h/screenshot03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_lBSHjVGvoy8/SYaEa2WsUfI/AAAAAAAAAB8/E5EpMtDxHKk/s400/screenshot03.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5298067608450126322" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_lBSHjVGvoy8/SYaESahhXII/AAAAAAAAAB0/X5N67JGkxdE/s1600-h/screenshot01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 301px;" src="http://3.bp.blogspot.com/_lBSHjVGvoy8/SYaESahhXII/AAAAAAAAAB0/X5N67JGkxdE/s400/screenshot01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5298067463540399234" /&gt;&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_lBSHjVGvoy8/SYaEG4OOHeI/AAAAAAAAABs/7T6TWfs4yzM/s1600-h/screenshot02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_lBSHjVGvoy8/SYaEG4OOHeI/AAAAAAAAABs/7T6TWfs4yzM/s400/screenshot02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5298067265354079714" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-1994925901689154762?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/1994925901689154762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=1994925901689154762&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1994925901689154762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1994925901689154762'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/02/global-game-jam-result-coopetiton.html' title='Global Game Jam result: Coopetiton'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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/_lBSHjVGvoy8/SYaEa2WsUfI/AAAAAAAAAB8/E5EpMtDxHKk/s72-c/screenshot03.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-1905623772825531987</id><published>2009-01-22T16:28:00.000-08:00</published><updated>2009-01-22T16:45:20.488-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Space Jump WIP video</title><content type='html'>&lt;a href="http://vimeo.com/2926470"&gt;&lt;img src="http://myzerogear.com/spacejumpvid.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a 4x speed run through of a map I am working on to test out a "gauntlet" type game mode where the goal is to be the first to get to the finish against the clock. We are planning on having checkpoints throughout the map so that if you fall off you can respawn. Brian is also anxious to add physical obstacles along the blank straight lengths that will move around which you will have to dodge.&lt;br /&gt;&lt;br /&gt;In other news, I have found a new &lt;a href="http://myzerogear.com/nimblebit_eeenmachine.jpg"&gt;place&lt;/a&gt; to work on Zero Gear - a real actual office space shared with &lt;a href="http://eeenmachine.com"&gt;my brother&lt;/a&gt;, exciting!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-1905623772825531987?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/1905623772825531987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=1905623772825531987&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1905623772825531987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1905623772825531987'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/01/space-jump-wip-video.html' title='Space Jump WIP video'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-6553464608819162523</id><published>2009-01-14T18:17:00.000-08:00</published><updated>2009-01-14T18:19:15.442-08:00</updated><title type='text'>Zero Gear now on ModDB.com</title><content type='html'>now you can keep track of Zero Gear's progress if you are part of the growing &lt;a href="http://ModDB.com"&gt;ModDB&lt;/a&gt; community. &lt;br /&gt;&lt;br /&gt;You can check out Zero Gear's ModDB game profile &lt;a href="http://www.moddb.com/games/zero-gear/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-6553464608819162523?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/6553464608819162523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=6553464608819162523&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6553464608819162523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6553464608819162523'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/01/zero-gear-now-on-moddbcom.html' title='Zero Gear now on ModDB.com'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7820582809076572429</id><published>2009-01-13T16:04:00.000-08:00</published><updated>2009-01-14T13:17:58.479-08:00</updated><title type='text'>Zero Gear on the webs</title><content type='html'>I have been on a little mini PR blitz lately, trying to increase awareness of our game. So far it has netted these little Zero Gear outposts on the tubes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gametrailers.com/game/10700.html"&gt;Zero Gear page on Gametrailers.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.n4g.com/pc/News-259226.aspx"&gt;A news story on N4G&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stevestreeting.com/2009/01/13/zerogear-the-elevator-pitch/"&gt;A shoutout from Steve Streeting&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://digg.com/pc_games/Trailer_released_for_physics_driven_PC_Kart_game_Zero_Gear"&gt;A floundering Digg submission (DIGG IT!)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://independentlyspeaking.wordpress.com/2009/01/14/exclusive-preview-taking-zero-gear-for-a-spin/"&gt;A post on independently-speaking.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://theawesomer.com/trailer-zero-gear/8664/"&gt;A link on The Awesomer&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7820582809076572429?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7820582809076572429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7820582809076572429&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7820582809076572429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7820582809076572429'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/01/zero-gear-on-webs.html' title='Zero Gear on the webs'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-3190608293474793934</id><published>2009-01-11T10:46:00.001-08:00</published><updated>2009-01-12T10:44:16.805-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>I &lt;3 fake players</title><content type='html'>Maybe there is a better term. A fake player is just like a real player as far as the server and other players can tell. It has no AI. It is just for testing. It exists only on the server. A lot of games have this feature (not claiming to have invented it or anything!).&lt;br /&gt;&lt;br /&gt;I want to express my love for fake players. I just recently (&lt;a href="http://twitter.com/NimbleBit/status/1110475201"&gt;yesterday&lt;/a&gt;) got this feature working in Zero Gear.&lt;br /&gt;&lt;br /&gt;Here are some of the advantages to adding fake players to your multiplayer game:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Makes testing bandwidth and other networking issues much easier. Even some gameplay code might only have a bug when there are X number of players on the server.&lt;/li&gt;&lt;li&gt;Obviously a MMO would benefit from having fake players to test server load and whatever else those crazy MMO devs need to test.&lt;/li&gt;&lt;li&gt;Profiling. Your game might work great with 6 people playing. What happens when there is a full server with 16? Physics might slow down, clients may not be able to render all those models, maybe too much data is being sent over the net. It is better to find these sort of issues before getting 16 real people together to test.&lt;/li&gt;&lt;li&gt;Possible to translate the fake players into bots later. No promise of this for ZG! Since the fake player acts just like a real player, all it needs to do is send input to the server and the fake player is moving around.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The implementation was pretty easy after some code restructuring. I simply moved the client networking code (networking only, no graphics, input, sound, etc) into the server. Each fake player executes the same client networking code a real client executes and just like magic (&lt;a href="http://www.bluthfamily.com/dimages/pictures/gob-amazes-and-delights-the-crowd-as-the-final-countdown-blares_468x312.jpg"&gt;Illusion, Michael&lt;/a&gt;), it works! This is because the server only really interacts with the real players through the network.&lt;br /&gt;&lt;br /&gt;Overall I wish I would have gotten this feature in ZG a lot sooner! If you are developing a networked game, do it now!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3190608293474793934?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3190608293474793934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3190608293474793934&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3190608293474793934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3190608293474793934'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/01/i-3-fake-players.html' title='I &lt;3 fake players'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-2965744103715480073</id><published>2009-01-03T15:09:00.000-08:00</published><updated>2009-01-03T15:11:35.093-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>New Character: Cacti</title><content type='html'>From the barren and windswept mesas of the desert comes our newest character Cacti. Say hello, but I wouldn't touch!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/cacti.png"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2965744103715480073?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2965744103715480073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2965744103715480073&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2965744103715480073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2965744103715480073'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2009/01/new-character-cacti.html' title='New Character: Cacti'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-1746642083298465969</id><published>2008-12-31T12:13:00.000-08:00</published><updated>2008-12-31T13:05:02.894-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Zero Gear Trailer 1</title><content type='html'>We were asked to provide a video that will be shown along with our entry for the IGF, so here is something I whipped up!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/2677585" target="new"&gt;&lt;img src="http://myzerogear.com/trailerthumb.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-1746642083298465969?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/1746642083298465969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=1746642083298465969&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1746642083298465969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1746642083298465969'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/zero-gear-trailer-1.html' title='Zero Gear Trailer 1'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7455633171066802012</id><published>2008-12-31T09:10:00.000-08:00</published><updated>2008-12-31T10:55:06.557-08:00</updated><title type='text'>Vote for Scoops!</title><content type='html'>&lt;img src="http://www.bestappever.com/images/itms/291/291591378/icon100x100.png"&gt;&lt;br /&gt;&lt;br /&gt;My brother and Zero Gear contributor Ian has had his iPhone app &lt;a href="http://l2app.com/scoops"&gt;Scoops&lt;/a&gt; nominated in 4 categories for the 2008 Best App Ever Awards! Go help him out and vote for Scoops with these links! The winners will be announced at Macworld.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bestappever.com/v/bapp/291591378/vote"&gt;Vote for Scoops&lt;/a&gt; in the "Best App Ever" category!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bestappever.com/v/gcas/291591378/vote"&gt;Vote for Scoops&lt;/a&gt; in the "Best Casual Game" category!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bestappever.com/v/gkid/291591378/vote"&gt;Vote for Scoops&lt;/a&gt; in the "Best Kids Game" category!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bestappever.com/v/kidd/291591378/vote"&gt;Vote for Scoops&lt;/a&gt; in the "Best Kid Distraction App" category!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7455633171066802012?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7455633171066802012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7455633171066802012&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7455633171066802012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7455633171066802012'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/vote-for-scoops.html' title='Vote for Scoops!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-2510879220114290631</id><published>2008-12-20T19:23:00.000-08:00</published><updated>2008-12-20T19:31:41.369-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Happy Holidays, and new character "Eye Guy"</title><content type='html'>Hope everyone is relaxing and having a great holiday instead of reading this post! Here is a little purple present in your Zero Gear stocking. This has to be our most ridiculous character yet, it's a blast to play with the colors and put items on this little dude.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/eyeguy.png"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2510879220114290631?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2510879220114290631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2510879220114290631&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2510879220114290631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2510879220114290631'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/happy-holidays-and-new-character-eye.html' title='Happy Holidays, and new character &quot;Eye Guy&quot;'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-6798777302362079278</id><published>2008-12-18T14:39:00.000-08:00</published><updated>2008-12-18T14:57:00.004-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='website'/><title type='text'>fresh lick of paint on myzerogear.com</title><content type='html'>if you direct your internet browsing machines to &lt;a href="http://myzerogear.com"&gt;MyZeroGear.com&lt;/a&gt;, the main Zero Gear website, you will see it has gotten a nice little face lift.&lt;br /&gt;&lt;br /&gt;While Brian is working on a re-write of part of the network system (keep an eye out for a blog post about that soon) I took advantage of some of the down time to doll it up a bit.&lt;br /&gt;&lt;br /&gt;Take a while to look around, let me know if you find any little typos or errors!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-6798777302362079278?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/6798777302362079278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=6798777302362079278&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6798777302362079278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6798777302362079278'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/fesh-lick-of-paint-on-myzerogearcom.html' title='fresh lick of paint on myzerogear.com'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-3158755443972526847</id><published>2008-12-17T13:01:00.000-08:00</published><updated>2008-12-18T00:49:11.703-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>NimbleTwit</title><content type='html'>In our effort to be like everyone else, we setup a &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt; account here: &lt;a href="http://twitter.com/NimbleBit"&gt;http://twitter.com/NimbleBit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check it out if you want to read about what chunk of code is currently making Brian angry or what color Dave is thinking about.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3158755443972526847?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3158755443972526847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3158755443972526847&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3158755443972526847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3158755443972526847'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/nimbletwit.html' title='NimbleTwit'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-8922267362749818366</id><published>2008-12-16T09:43:00.000-08:00</published><updated>2008-12-16T09:52:16.306-08:00</updated><title type='text'>Nominate Scoops for Best Casual Game!</title><content type='html'>Zero Gear contributor and also my brother &lt;a href="http://www.eeenmachine.com/"&gt;Ian Marsh&lt;/a&gt;, is the creator of a rather popular iPhone game called &lt;a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291591378&amp;mt=8"&gt;Scoops&lt;/a&gt; (iTunes link). If you haven't played it you should buy it, it's a great little game about stacking ice cream scoops.&lt;br /&gt;&lt;br /&gt;Here is the "scoop", &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;148apps.com has created the &lt;a href="http://www.bestappever.com/c/gcas/291591378/nonom"&gt;BestAppEver awards site&lt;/a&gt; to try and choose a list of the best apps of 2008 not based solely off sales numbers (like Apple’s).&lt;br /&gt;&lt;a href="http://www.bestappever.com/c/gcas/291591378/nonom"&gt;Click Here&lt;/a&gt; to nominate Scoops for the Best Casual Game! I think it matches the category description pretty well: “The game that is easy to pick up and play while you wait for your coffee to brew”.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8922267362749818366?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8922267362749818366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8922267362749818366&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8922267362749818366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8922267362749818366'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/nominate-scoops-for-best-casual-game.html' title='Nominate Scoops for Best Casual Game!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-869614181600307278</id><published>2008-12-13T19:59:00.000-08:00</published><updated>2008-12-13T20:03:32.304-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Beep Beep I'm a Jeep!</title><content type='html'>It's been a while, but I pulled some time out of nowhere to make a new kart model. A ww2 era Willys MB!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/willy2.png"&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-869614181600307278?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/869614181600307278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=869614181600307278&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/869614181600307278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/869614181600307278'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/beep-beep-im-jeep.html' title='Beep Beep I&apos;m a Jeep!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-3420109583369924083</id><published>2008-12-08T11:58:00.000-08:00</published><updated>2008-12-31T12:02:18.883-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><title type='text'>Zero Gear closed beta, it's go time!</title><content type='html'>&lt;span style="font-weight:bold;"&gt;**Edit 12/31/08**&lt;br /&gt;Beta spots are full for the moment, we will open up more again in the near future!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3420109583369924083?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3420109583369924083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3420109583369924083&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3420109583369924083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3420109583369924083'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/zero-gear-closed-beta-its-go-time.html' title='Zero Gear closed beta, it&apos;s go time!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-3433351685613117891</id><published>2008-12-05T10:36:00.000-08:00</published><updated>2008-12-05T10:57:40.158-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>RinkyDink level video</title><content type='html'>I needed an excuse to try out YouTube's new HD video format so I decided to try posting a short flyby of a new level I am making called RinkyDink. RinkyDink is the same "goal" mode gameplay as Kick It, only with ice and a puck. It is hard to pick out in the video but the ice in the rink is using our patented, cutting edge, "Reflect-o-Matic" reflection whizzbang technology.  &lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="360"&gt;&lt;param name="movie" value="http://www.youtube.com/v/tN0nz73LfSQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" ap="%2526fmt%3D22"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/tN0nz73LfSQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&amp;amp;ap=%2526fmt%3D22" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="360"&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/6483520008883064921-3433351685613117891?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3433351685613117891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3433351685613117891&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3433351685613117891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3433351685613117891'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/12/rinkydink-level-video.html' title='RinkyDink level video'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-2798135334896446902</id><published>2008-11-26T09:44:00.000-08:00</published><updated>2008-11-26T09:47:36.227-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='2009 IGF'/><title type='text'>IGF 2009 entries announced!</title><content type='html'>and here is Zero Gear's, &lt;a href="http://www.igf.com/php-bin/entry2009.php?id=667"&gt;entry page&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;With 226 entries this year competition will be stiff, check out the entire list of entries &lt;a href="http://www.igf.com/php-bin/entries2009.php?start=0"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2798135334896446902?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2798135334896446902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2798135334896446902&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2798135334896446902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2798135334896446902'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/11/igf-2009-entries-announced.html' title='IGF 2009 entries announced!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-3373477939292697348</id><published>2008-11-22T10:57:00.000-08:00</published><updated>2008-11-22T11:12:24.222-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='merch'/><title type='text'>someone made us some t-shirts!</title><content type='html'>It was Brian's birthday recently and he was lucky enough to receive some Zero Gear t-shirts as a present! Since Brian insists that cameras capture his soul and cause his physical body to crumble to dust, we contracted out a &lt;span style="font-style:italic;"&gt;top&lt;/span&gt; model to display them for you!&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/tshirt1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; padding: 7px 7px 7px 7px ; float: left; cursor:hand;width: 240px; height: 320px;" src="http://myzerogear.com/tshirt1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/tshirt2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; float: left; cursor:hand; padding: 7px 7px 7px 7px ;width: 240px; height: 320px;" src="http://myzerogear.com/tshirt2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3373477939292697348?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3373477939292697348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3373477939292697348&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3373477939292697348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3373477939292697348'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/11/someone-made-us-some-t-shirts.html' title='someone made us some t-shirts!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-415551090619531259</id><published>2008-11-16T16:50:00.000-08:00</published><updated>2008-11-16T16:54:32.409-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Not dead yet!</title><content type='html'>I feel happy! I feel happy!&lt;br /&gt;&lt;br /&gt;We have been keeping very busy as usual - spending a lot of time dealing with some nasty memory issues and other non-glamorous things. But to keep our spirits up we started on a new game mode, check out the screenshot and maybe you will be able to guess what it is!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/kickit.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 512px;" src="http://myzerogear.com/kickit.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-415551090619531259?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/415551090619531259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=415551090619531259&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/415551090619531259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/415551090619531259'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/11/not-dead-yet.html' title='Not dead yet!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-36883261287712186</id><published>2008-11-10T09:16:00.000-08:00</published><updated>2008-11-10T09:32:35.331-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Link (no, not the one from Zelda games)</title><content type='html'>&lt;a href="http://www.stevestreeting.com/"&gt;Steve Streeting&lt;/a&gt;, best known as the creator and lead developer of &lt;a href="http://www.ogre3d.org/"&gt;Ogre&lt;/a&gt;, posted something on his blog that I thought was interesting: &lt;a href="http://www.stevestreeting.com/2008/11/10/user-generated-content-and-centralised-control-dont-mix/"&gt;User generated content and centralised control don’t mix&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It reminded me of a &lt;a href="http://nimblebit.blogspot.com/2008/10/pc-development-braveheart.html"&gt;similar post&lt;/a&gt; we made a while back.&lt;br /&gt;&lt;br /&gt;This also reminds me that the latest version of Ogre, 1.6, was just released a few days ago. We have been using it for a while now and I can report it is scrumtralescent (very good).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-36883261287712186?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/36883261287712186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=36883261287712186&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/36883261287712186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/36883261287712186'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/11/link-no-not-one-from-zelda-games.html' title='Link (no, not the one from Zelda games)'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-2928322717439551865</id><published>2008-10-31T15:43:00.000-07:00</published><updated>2008-10-31T16:34:09.449-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Behind every great game is a great game manual</title><content type='html'>Dave has been working hard on this &lt;a href="http://myzerogear.com/zgmanual.pdf"&gt;super-duper-mega-informative-game-manual&lt;/a&gt; so check it out!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://myzerogear.com/zgmanual.pdf"&gt;&lt;img src="http://myzerogear.com/manual.jpg"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Other than that we haven't really been doing much. We haven't been working way too much this past week getting the game ready for &lt;a href="http://www.igf.com/"&gt;IGF&lt;/a&gt; submission. Nope, mostly just watching old reruns of &lt;a href="http://en.wikipedia.org/wiki/Family_Matters"&gt;Family Matters&lt;/a&gt; (so did they kill off Judy Winslow or what?).&lt;br /&gt;&lt;br /&gt;We are getting ready to begin a small beta test. We want to get more and more people involved over the next few months. For the time being we have a limited amount of keys and are looking for anyone who can host a dedicated Zero Gear game server with a fast connection (Windows only for the time being, sorry &lt;a href="http://en.wikipedia.org/wiki/Tux"&gt;Tux&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;If you are interested in helping to beta test, I would recommend joining our new &lt;a href="http://steamcommunity.com/games/zerogear"&gt;Steam game group&lt;/a&gt; and &lt;a href="http://myzerogear.com/phpBB3/"&gt;forums&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2928322717439551865?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2928322717439551865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2928322717439551865&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2928322717439551865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2928322717439551865'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/10/behind-every-great-game-is-great-game.html' title='Behind every great game is a great game manual'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-6037572866796803016</id><published>2008-10-24T12:39:00.000-07:00</published><updated>2008-10-24T13:27:48.970-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>New Steam Group and Screenshots</title><content type='html'>Just a quick note to drop off, we have a newfangled "Official" Game group on Steam, which you can join to show your support &lt;a href="http://steamcommunity.com/games/zerogear"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It has some new screenshots on it that you I also added to our official media page &lt;a href="http://myzerogear.com/media.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-6037572866796803016?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/6037572866796803016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=6037572866796803016&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6037572866796803016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6037572866796803016'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/10/new-steam-group-and-screenshots.html' title='New Steam Group and Screenshots'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-3721341636931559082</id><published>2008-10-23T15:50:00.000-07:00</published><updated>2008-10-23T15:52:59.734-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Chute Shoot video to boot!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://vimeo.com/2049829"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer" src="http://myzerogear.com/chutevideo.jpg" alt="Chute Shoot gameplay video" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here is a video we took last night while playtesting our new map, it was a blast!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3721341636931559082?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3721341636931559082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3721341636931559082&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3721341636931559082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3721341636931559082'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/10/chute-shoot-video-to-boot.html' title='Chute Shoot video to boot!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7337637009346234737</id><published>2008-10-19T09:33:00.000-07:00</published><updated>2008-10-19T09:35:32.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Chute Shoot!</title><content type='html'>Just popping in real quick to show you a screenshot of a new game mode we are hoping to have working by the first. I don't think it needs a whole lot of explanation!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/chuteshoot.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://myzerogear.com/chuteshoot.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7337637009346234737?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7337637009346234737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7337637009346234737&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7337637009346234737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7337637009346234737'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/10/chute-shoot.html' title='Chute Shoot!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-5016980180754692274</id><published>2008-10-15T16:14:00.001-07:00</published><updated>2008-10-15T20:31:56.505-07:00</updated><title type='text'>Optimization is FUN!</title><content type='html'>Well, not really at all - but it's something every project needs to stop and work on every once in a while to make sure things will run smoothly. As we race towards the deadline for submission to the IGF, we had to come to terms with the fact that performance was not where we needed it to be with 16 players on the screen. In a game which focuses so much on physics and flying and tumbling around, not to mention driving at high speeds - you really need some steady performance in order to have the most fun.&lt;br /&gt;&lt;br /&gt;So for the last week and a half we have been overhauling certain parts of the graphics in order to speed things up. With 16 players on screen at once, we were getting around 20 fps with our decent rigs, so we had a lot to work on.&lt;br /&gt;&lt;br /&gt;The thing we had to work on was the "batch count" in the game, which is basically a measure of how many tasks the computer and video card need to do in order to render everything on the screen. Ideally, grouping as many things as you can into one of these batches is the best way to make things faster. So we set upon figuring out where every single one of our batches was going. Right off the bat, we found that we could treat the level entirely as one piece, and reduce the number of batches it took to render significantly. This was our first easy fix, and as anyone in development will tell you, there is nothing quite so sweet as discovering an easy fix. Once we addressed that, things were running really fast with nobody playing. We knew the performance issues were in large part tied to the number of players in the game, so Brian hooked up a key to pop a fake client into the game. Now it was easy to drop 15 other players into the game and test performance.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/nvperf.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://myzerogear.com/nvperf.jpg" alt="" border="0" /&gt;&lt;/a&gt;Not too surprisingly, performance was still underwhelming although a bit better becuase of our changes to the environments. We decided to use &lt;a href="http://developer.nvidia.com/object/nvperfhud_home.html"&gt;NVIDIA's PerfHUD&lt;/a&gt; to step through all the rendering steps, which was pretty easy to do since &lt;a href="http://ogre3d.org/"&gt;Ogre&lt;/a&gt; already supports the tool.&lt;br /&gt;&lt;br /&gt;After some testing we figured that every new player added to the game averaged around 20 new batches to display, which multiplied by 16 added up to a lot. This was due to the fact that each players stuff was made up of a lot of different customizable items: there are separate karts, characters, hats, accessories, and wheels. Those are only 5 different items, (8 if you count every wheel) but each item could have any number of materials on it (in order to make it look awesome, of course) and also the kart and the wheels were casting a shadow,each of which made up it's own batch.&lt;br /&gt;&lt;br /&gt;So, optimally we needed each player to use the absolute minimum number of batches, which would be 5, since each player loads 5 meshes. To achieve this, we created a &lt;a href="http://myzerogear.com/NimbleShaders.cg"&gt;simple shader&lt;/a&gt; that would enable us to do the effects that we used such as color masks, environment mapping, and rim lighting - but all in one material. Each character kart hat, etc could be rendered all in once batch now since it was all inside one material. Since we are shader noobs, it took us a few days to get the shader working, as well as a few days to move all of the items we had previously made to this new material format and make sure they would work. Brian also created a shader especially for the wheels that made use of &lt;a href="http://ogre3d.org/"&gt;Ogre&lt;/a&gt;'s model instancing to render all 4 wheel models in one batch instead of four. After all these changes, we succeeded in reducing each player to 5 batches instead of 20! Huzzah!&lt;br /&gt;&lt;br /&gt;We also decided to move away from the stencil shadows we were using to create shadows under the karts and items, they looked great - but the way they are created was more and more of a bottleneck the more players that were on screen. We dug into &lt;a href="http://ogre3d.org/"&gt;Ogre&lt;/a&gt;'s texture shadow system, and set up some render to texture shadows that while not totally inexpensive, at least performs better with many shadows being cast at once.&lt;br /&gt;&lt;br /&gt;All that work, and hopefully nobody will ever know about it when they go to play the final game! Here is a screenshot with myself and 15 test players onscreen, with &lt;a href="http://ogre3d.org/"&gt;Ogre&lt;/a&gt;'s performance display.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/optimization.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://myzerogear.com/optimization.jpg" alt="" border="0" /&gt;&lt;/a&gt;We still have a lot of improvements to make, the soonest of which will probably be hooking up our new shader to utilize hardware skinning in order to move some of the animation cost to the GPU. But we are off to a good start! Already the game feels a lot more responsive with lots of players, and that's fun for everybody!&lt;br /&gt;&lt;br /&gt;p.s. here is the 3d mark score for my computer which this screenshot was taken on.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/benchmark.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://myzerogear.com/benchmark.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5016980180754692274?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5016980180754692274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5016980180754692274&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5016980180754692274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5016980180754692274'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/10/optimization-is-fun.html' title='Optimization is FUN!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-2097319921734911428</id><published>2008-10-04T21:18:00.001-07:00</published><updated>2008-10-04T21:34:39.070-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Twister Item video</title><content type='html'>I know it is sat. night, but what else would you expect us to be doing with under one month left until &lt;a href="http://www.igf.com/"&gt;IGF&lt;/a&gt; submissions are due? Tonight we took a break to make a little video showing how fun our new twister item is. It is the latest in our quest to create physics based weapons. Click to watch!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://vimeo.com/1885827"&gt;&lt;img src="http://myzerogear.com/twistervid.jpg"&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2097319921734911428?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2097319921734911428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2097319921734911428&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2097319921734911428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2097319921734911428'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/10/twister-item-video.html' title='Twister Item video'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-2841408956547268909</id><published>2008-10-03T12:06:00.000-07:00</published><updated>2008-10-03T15:26:46.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>PC Development = Braveheart</title><content type='html'>In &lt;a href="http://www.imdb.com/title/tt0112573/"&gt;Braveheart&lt;/a&gt;, William Wallace yells out "FREEEEEEEEDOOOOM!!!!" while being tortured.&lt;br /&gt;&lt;br /&gt;That is PC development.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/roboheart.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://myzerogear.com/roboheart.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The PC is an open platform which means developers can do anything they want. There is nobody telling you how big your game can be or what other people can add to your game. Openness is very important for Zero Gear. The game is built around the concept that anyone can add anything after we release it. This is simply not possible on a lot of closed platforms.&lt;br /&gt;&lt;br /&gt;This is freedom.&lt;br /&gt;&lt;br /&gt;However, because the PC is open, there are so many different configurations of what a PC actually is. A closed platform is strictly defined and so developing for a closed platform is generally easier. Zero Gear needs to run on every video card, CPU, different amounts of RAM, etc.&lt;br /&gt;&lt;br /&gt;This is torture and we are really starting to feel it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2841408956547268909?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2841408956547268909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2841408956547268909&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2841408956547268909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2841408956547268909'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/10/pc-development-braveheart.html' title='PC Development = Braveheart'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-2245181343169411361</id><published>2008-09-25T19:44:00.001-07:00</published><updated>2008-09-25T19:48:35.185-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='item'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>new item sneak peek</title><content type='html'>introducing the L.U.V. Bot:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/luvbot.png"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;The primary function or intended purpose of the L.U.V. Bot is still a little hazy. However it is known to run lustfully at any moving object and latch on in a merciless hug, until it's emotion chip shorts, resulting in a massive L.U.V.-splosion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2245181343169411361?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2245181343169411361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2245181343169411361&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2245181343169411361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2245181343169411361'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/09/new-item-sneak-peek.html' title='new item sneak peek'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-5221778421610756743</id><published>2008-09-17T19:10:00.001-07:00</published><updated>2008-09-17T19:12:12.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>quick new map</title><content type='html'>we are having a lot of fun with the tag game mode in our playtests, but we only have one map for it. So I decided to whip up another quick one for fun. This one is called the Punch Bowl:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://myzerogear.com/punchbowl.jpg"&gt;&lt;img src=http://myzerogear.com/punchbowlsml.jpg&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5221778421610756743?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5221778421610756743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5221778421610756743&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5221778421610756743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5221778421610756743'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/09/quick-new-map.html' title='quick new map'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-799914348315182863</id><published>2008-09-12T10:36:00.000-07:00</published><updated>2008-10-03T15:28:02.012-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>2020 - The year digital distribution becomes a threat</title><content type='html'>I saw &lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=20205"&gt;this&lt;/a&gt; story about how GameStop believes digital distribution won't be a threat to their current business model until 2020.&lt;br /&gt;&lt;br /&gt;Well, that sure seems like an absurd claim. They must have some data to back up that claim.&lt;br /&gt;&lt;br /&gt;McKenzie - "We've done some internal studies, really looking at the bandwidth of the internet in the U.S. as it is now, and, I mean, it's years before you would be able to take a larger game and timely download that within the current configuration of the internet,"&lt;br /&gt;&lt;br /&gt;Wait, so they are making a prediction of the trend of technology based on current figures? Surely somebody at GameStop must have heard of &lt;a href="http://en.wikipedia.org/wiki/Accelerating_change"&gt;accelerating change&lt;/a&gt; or even observed the increase in the speed of the internet over the past 10 years, right?&lt;br /&gt;&lt;br /&gt;And this doesn't even make sense right now. I regularly &lt;a href="http://www.steampowered.com/v/index.php"&gt;download&lt;/a&gt; "larger" games and I am usually playing them faster than I can go to GameStop to buy them. So their claim doesn't even hold up right now.&lt;br /&gt;&lt;br /&gt;No, they seem to believe that "the current configuration of the internet" will remain as is now for the next 12 years!&lt;br /&gt;&lt;br /&gt;GameStop, please do a little &lt;a href="http://en.wikipedia.org/wiki/The_Singularity_Is_Near"&gt;reading&lt;/a&gt; or even critical thinking before making such a claim.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-799914348315182863?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/799914348315182863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=799914348315182863&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/799914348315182863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/799914348315182863'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/09/2020-year-digital-distribution-becomes.html' title='2020 - The year digital distribution becomes a threat'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-3922795833790960526</id><published>2008-09-11T16:10:00.000-07:00</published><updated>2008-09-11T16:15:26.617-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>2 new characters</title><content type='html'>Meet Squiddles and the Brain:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/squiddles.png"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/brain.png"&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3922795833790960526?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3922795833790960526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3922795833790960526&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3922795833790960526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3922795833790960526'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/09/2-new-characters.html' title='2 new characters'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-4496123397398880810</id><published>2008-09-08T22:32:00.000-07:00</published><updated>2008-09-08T23:37:15.723-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Dedicated Server and Code</title><content type='html'>We are looking to rent a dedicated server pretty soon to host Zero Gear game servers as well as other services. We are hoping to get some suggestions from people for good (and cheap!) servers.&lt;br /&gt;&lt;br /&gt;Here is what we are basically looking for:&lt;br /&gt;1. We need full access. We have multiple software servers to run on the machine and need to be able to customize things to our liking.&lt;br /&gt;2. Windows OS is required for the time being.&lt;br /&gt;3. Hopefully around $100 a month but we are able to go a bit over if it is worth it.&lt;br /&gt;4. It needs to have enough bandwidth and speed to host a few game servers. I don't have exact numbers for this yet but think a few TF2 or CS:S servers.&lt;br /&gt;5. We want this first server to be in the L.A. or Bay Area in California.&lt;br /&gt;&lt;br /&gt;If you have a suggestion, please leave a comment or better yet, reply to this &lt;a href="http://myzerogear.com/phpBB3/viewtopic.php?f=2&amp;t=62"&gt;forum post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, on to the code!&lt;br /&gt;&lt;b&gt;Exposing the privates of a class to other classes explicitly&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I have been told that title sounds dirty. I don't understand why.&lt;br /&gt;&lt;br /&gt;This post will only be of interest to programmers who use C++ (and maybe programmers in general). No artsy fartsy stuff going on here.&lt;br /&gt;&lt;br /&gt;Say I am designing a NetworkManager class. This class has a SendPacket() function that I don't want to expose to the public. However, I do want some classes, like my GameObject class, to have access to SendPacket().&lt;br /&gt;&lt;br /&gt;The obvious solution is this:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;class NetworkManager&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;br /&gt;private:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;friend class GameObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void SendPacket(int packet);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void ManageConnections(void);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;etc...&lt;br /&gt;};&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This works but has a few problems. First of all, we don't want GameObject to have access to ManageConnections(). Also, we later discover that the ChatManager class needs access to SendPacket as well. The lesson: friendship is hard.&lt;br /&gt;&lt;br /&gt;The solution I use is to create an accessor class which is friend to NetworkManager and only exposes the SendPacket function. Then any other class can use this accessor to send a packet.&lt;br /&gt;&lt;br /&gt;The best part about this is that I can be very explicit about which parts of NetworkManager I expose.&lt;br /&gt;&lt;br /&gt;Code is the best explanation:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;class NetworkManager&lt;br /&gt;{&lt;br /&gt;private:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;friend class SendPacketAccessor;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void SendPacket(int packet)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Success!&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class SendPacketAccessor&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void SendPacket(NetworkManager &amp;amp; netManager, int packet)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//We have access to SendPacket()!&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;netManager.SendPacket(packet);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class GameObject&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Update(NetworkManager &amp;amp; netManager)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//We have access to SendPacket() though the accessor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;accessor.SendPacket(netManager, 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;private:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Our key to SendPacket()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SendPacketAccessor accessor;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class ChatManager&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void Update(NetworkManager &amp;amp; netManager)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;accessor.SendPacket(netManager, 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;private:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SendPacketAccessor accessor;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void main(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NetworkManager netManager;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GameObject obj1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ChatManager chat;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;obj1.Update(netManager);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chat.Update(netManager);&lt;br /&gt;}&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If other parts of NetworkManager needed to be exposed, those parts should have special accessors just like SendPacket() does.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-4496123397398880810?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/4496123397398880810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=4496123397398880810&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4496123397398880810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4496123397398880810'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/09/dedicated-server-and-code.html' title='Dedicated Server and Code'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-3012084812760132953</id><published>2008-09-02T21:56:00.000-07:00</published><updated>2008-09-02T22:10:47.994-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>New movin' pictures: Zero Gear race track showcase</title><content type='html'>As I have been promising for some time now we finally have a new video for everyone. This video showcases our initial 3 race maps that we are working hard to outfit with all the gameplay gears and gadgets that Brian is developing as we speak. These will be 3 of the 5 maps that we plan to have for our first beta release.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://vimeo.com/1656070"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://myzerogear.com/trackvid.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking forward to racing some of you in these soon!&lt;br /&gt;&lt;br /&gt;P.S. These beautiful levels would not be possible without the fine rendering engine &lt;a href="http://ogre3d.org/"&gt;Ogre3d&lt;/a&gt;, as well as the well crafted particle engine, &lt;a href="http://www.fxpression.com/"&gt;Particle Universe&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3012084812760132953?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3012084812760132953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3012084812760132953&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3012084812760132953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3012084812760132953'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/09/new-movin-pictures-zero-gear-race-track.html' title='New movin&apos; pictures: Zero Gear race track showcase'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-8734662937721965323</id><published>2008-09-01T12:35:00.000-07:00</published><updated>2008-09-01T12:41:10.879-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Happy 1000th revision Zero Gear!</title><content type='html'>I am happy to report that Zero Gear has just turned 1000!&lt;br /&gt;&lt;br /&gt;Well, we just made our 1000th &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; revision. Subversion is the version control tool we use to keep in sync. It is really a great tool and I recommend it to anyone who wants project management, even if you are a single developer.&lt;br /&gt;&lt;br /&gt;We will have some more exciting posts this week with actual images and maybe even a video! I know everyone is getting bored of reading by now. Boo reading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8734662937721965323?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8734662937721965323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8734662937721965323&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8734662937721965323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8734662937721965323'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/09/happy-1000th-revision-zero-gear.html' title='Happy 1000th revision Zero Gear!'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-5586296769773402923</id><published>2008-08-31T18:19:00.000-07:00</published><updated>2008-09-01T12:41:51.648-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>As I told Dave</title><content type='html'>the artist, if we start development on the remaining features now, we can make the IGF deadline in two months.&lt;br /&gt;&lt;br /&gt;Dave: “That’s why you’re no longer the producer. Two weeks! Let’s do it in two weeks! Hey!!!".&lt;br /&gt;&lt;br /&gt;At that point, "The Final Countdown" played from my computer speakers "magically". He threw 100 pennies at me as well.&lt;br /&gt;&lt;br /&gt;On a more serious note, we only have 2 months until the IGF &lt;span style="font-weight:bold;"&gt;dead&lt;/span&gt;line. Can we do it?&lt;br /&gt;&lt;br /&gt;Answer: Yes, probably...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5586296769773402923?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5586296769773402923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5586296769773402923&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5586296769773402923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5586296769773402923'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/08/as-i-told-dave.html' title='As I told Dave'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-4919291987678140797</id><published>2008-08-27T11:00:00.000-07:00</published><updated>2008-08-27T12:16:25.553-07:00</updated><title type='text'>The Secret of Zero Gear</title><content type='html'>&lt;img style="float:center; margin:0 10px 10px 0;" src="http://myzerogear.com/images/screenshot003sml.jpg" border="0" alt="" /&gt;&lt;br /&gt;I'll tell you a secret, Zero Gear is not a kart racing game.&lt;br /&gt;&lt;br /&gt;That might be surprising if you have been reading this blog for a while. All of the images and videos we have released so far make it look like a kart racing game.&lt;br /&gt;&lt;br /&gt;If it isn't a kart racing game, what is it? It is many games disguised as a kart racer. Yes, we do have a racing game mode. We also have two other game modes right now, with a few more to come before we release.&lt;br /&gt;&lt;br /&gt;Zero Gear is more of a game platform than a game itself. All of the gameplay is actually written in a script. This allows us to quickly prototype and create new games. It will also allow anyone who owns Zero Gear to create their own game and play with other people online.&lt;br /&gt;&lt;br /&gt;We aren't the &lt;a href="http://www.garrysmod.com/"&gt;first&lt;/a&gt; to do this, nor will we be the &lt;a href="http://www.littlebigplanet.com/"&gt;last&lt;/a&gt;. We see a lot of potential in kart games that hasn't really been explored yet. We hope to do that exploration through Zero Gear.&lt;br /&gt;&lt;br /&gt;By the way, &lt;a href="http://www.thebehemoth.com/"&gt;The Behemoth's&lt;/a&gt; game &lt;a href="http://www.castlecrashers.com/"&gt;Castle Crashers&lt;/a&gt; just got released on XBox Live Arcade today. So congrats to them! I personally can't wait to slash, smash, and crash some cute enemies tonight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-4919291987678140797?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/4919291987678140797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=4919291987678140797&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4919291987678140797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4919291987678140797'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/08/secret-of-zero-gear.html' title='The Secret of Zero Gear'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-2536722359696458562</id><published>2008-08-22T12:31:00.000-07:00</published><updated>2008-08-22T12:40:31.800-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Level polish time!</title><content type='html'>I have been spending a lot of time polishing up the tracks in our game in preparation for the race mode that Brian is working on. One of the fun parts is adding particles to the level, here is a shot of the mine from Spaghetti West with lots of glowy particles.&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;" src="http://myzerogear.com/mine.jpg" border="0" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2536722359696458562?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2536722359696458562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2536722359696458562&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2536722359696458562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2536722359696458562'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/08/level-polish-time.html' title='Level polish time!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-6245232266300789749</id><published>2008-08-20T15:59:00.000-07:00</published><updated>2008-08-20T16:12:54.978-07:00</updated><title type='text'>Sometimes my car crashes for no reason at all</title><content type='html'>This will only be of interest to a small group of people using &lt;a href="http://www.bulletphysics.com"&gt;Bullet&lt;/a&gt; for vehicle physics. I actually spent a few days tracking this bug down so I am posting it here just in case it helps somebody else.&lt;br /&gt;&lt;br /&gt;If you are trying to create a "sensor" or "trigger" type object using Bullet so you can detect if your vehicle enters or exits an area, you might notice your vehicle's wheels colliding with the otherwise invisible, "non-collideable" sensor. Read more about it &lt;a href="http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&amp;t=2510"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-6245232266300789749?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/6245232266300789749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=6245232266300789749&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6245232266300789749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6245232266300789749'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/08/sometimes-my-car-crashes-for-no-reason.html' title='Sometimes my car crashes for no reason at all'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-2978740860220795410</id><published>2008-08-15T14:17:00.000-07:00</published><updated>2008-08-15T14:51:04.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>bitburo interview and technical STUFF</title><content type='html'>&lt;a href="http://www.bitburo.net/"&gt;bitburo&lt;/a&gt; just posted a little interview with Dave about Zero Gear.&lt;br /&gt;&lt;a href="http://www.bitburo.net/pc-games/zero-gear-kart-racing-revolutionized/"&gt;&lt;br /&gt;Here is the full link to the article&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the technical side of things, I decided today was the day to finally get my networking code threaded. Dave is touching up some of our maps and one of them was taking a bit too long to load which caused the client's connection to the server to timeout. This no longer will happen...&lt;br /&gt;&lt;br /&gt;The latest version of &lt;a href="http://www.boost.org/"&gt;Boost&lt;/a&gt; came out yesterday for you C++ programmers who use it. The &lt;a href="http://www.boost.org/doc/libs/1_36_0/doc/html/thread.html"&gt;Thread&lt;/a&gt; library has been improved greatly from pre-1.35 versions.&lt;br /&gt;&lt;br /&gt;Also, &lt;a href="http://www.bulletphysics.com/Bullet/wordpress/uncategorized/bullet-270-released"&gt;Bullet 2.70&lt;/a&gt; was released a few days ago. I haven't updated yet but I will be soon. They are doing some really cool stuff with &lt;a href="http://en.wikipedia.org/wiki/Soft_body_dynamics"&gt;soft bodies&lt;/a&gt; in newer versions of Bullet. Check out this video:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/exss517n1I0&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/exss517n1I0&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Will you see soft bodies in Zero Gear? Perhaps ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2978740860220795410?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2978740860220795410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2978740860220795410&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2978740860220795410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2978740860220795410'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/08/bitburo-interview-and-technical-stuff.html' title='bitburo interview and technical STUFF'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-5668487092456133055</id><published>2008-08-13T10:32:00.000-07:00</published><updated>2008-08-13T11:06:44.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Zero Gear marks 1 year of development</title><content type='html'>The other day we were trying to figure out exactly how long we had been working seriously on Zero Gear, so I went into my backups folder and lo and behold - the first backup of "kart game" I have is dated August 13, 2007. Things have come a long way since then, and there is a long way to go as well.&lt;br /&gt;&lt;br /&gt;Apart from doing all we can to get a build of our game ready for the &lt;a href="http://www.igf.com/"&gt;IGF&lt;/a&gt;, we have been distributing alpha builds of our garage editor to salivating artists who are hell-bent on creating all sorts of custom items for the game. As part of that process I have been writing documentation for creating those assets on our new &lt;a href="http://myzerogear.com/wiki"&gt;Wiki&lt;/a&gt;. We are already building a great community with lots of talented artists around Zero Gear which is very exciting. Here is just a sampling!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/customstuff.jpg"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;If you would like to see what other stuff these talented guys are cooking up, go check out the &lt;a href="http://boards.polycount.net/showthread.php?t=50426"&gt;polycount thread&lt;/a&gt; (23 pages long! might want to skip towards the end ;) &lt;br /&gt;&lt;br /&gt;Also, a sneak peek of our main menu:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/evilsock.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 512px;" src="http://myzerogear.com/evilsock.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5668487092456133055?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5668487092456133055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5668487092456133055&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5668487092456133055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5668487092456133055'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/08/zero-gear-marks-1-year-of-development.html' title='Zero Gear marks 1 year of development'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7893535316156338544</id><published>2008-08-05T20:32:00.000-07:00</published><updated>2008-08-05T20:35:10.721-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cake'/><title type='text'>Delicious Zero Gear cake</title><content type='html'>Last weekend was my birthday, and in celebration my girlfriend made me this awesome Zero Gear cake! How cool is that? &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/cake.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://myzerogear.com/cake.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7893535316156338544?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7893535316156338544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7893535316156338544&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7893535316156338544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7893535316156338544'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/08/delicious-zero-gear-cake.html' title='Delicious Zero Gear cake'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-4743109927781681024</id><published>2008-07-27T18:50:00.000-07:00</published><updated>2008-07-27T18:52:40.879-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Skullkar lives!!!</title><content type='html'>Something a little darker than usual happened to show up in the garage today, check out these shots!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/skullcargarage1.jpg"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/skullcargarage2.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-4743109927781681024?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/4743109927781681024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=4743109927781681024&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4743109927781681024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4743109927781681024'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/07/skullkar-lives.html' title='Skullkar lives!!!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-8087735191786584565</id><published>2008-07-26T10:53:00.000-07:00</published><updated>2008-07-26T10:56:02.063-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><category scheme='http://www.blogger.com/atom/ns#' term='sock monkey'/><title type='text'>Latest out of the monkey mill</title><content type='html'>Here is another fabulous sock monkey whipped up by the lovely Chelsea Heyneman. Hopeully you will have a chance to bid on some of them soon to help us raise development funds!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/monkey3.jpg"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/monkey4.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8087735191786584565?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8087735191786584565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8087735191786584565&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8087735191786584565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8087735191786584565'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/07/latest-out-of-monkey-mill.html' title='Latest out of the monkey mill'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-8725215516283148966</id><published>2008-07-25T16:43:00.000-07:00</published><updated>2008-07-25T16:57:38.033-07:00</updated><title type='text'>Vimeo</title><content type='html'>As you have noticed by now, we like to use &lt;a href="http://www.vimeo.com/"&gt;Vimeo&lt;/a&gt; to host our videos. It is an awesome service.&lt;br /&gt;&lt;br /&gt;Recently the Vimeo staff have &lt;a href="http://www.vimeo.com/blog:140"&gt;announced&lt;/a&gt; that "game videos" will not longer be hosted on the site. Their reasoning is valid, however the announcement was a little vague in regard to people like us. We own the content we are taking video of and we very much feel the content we are recording is creative in nature (and not a recording of gameplay footage from a 360 game).&lt;br /&gt;&lt;br /&gt;So what we have done is simply setup a group on Vimeo for game developers. If you are a developer and use Vimeo, you should join this group. Our hope is that the Vimeo admins will see that the content in this group deserves to be hosted by them and maybe it will become a sort of filter.&lt;br /&gt;&lt;br /&gt;Here is the link: &lt;a href="http://www.vimeo.com/groups/gamedevelopers"&gt;Game Developers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;NOTE: This is for game developers only (indie or otherwise). So if you wish to join, please provide a link in your Vimeo profile, or better yet, a video. Anyone is able to view the videos from this group of course.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8725215516283148966?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8725215516283148966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8725215516283148966&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8725215516283148966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8725215516283148966'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/07/vimeo.html' title='Vimeo'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-9063006542028403734</id><published>2008-07-24T13:14:00.000-07:00</published><updated>2008-07-27T18:53:01.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Video: Garage Editor</title><content type='html'>Here is our latest video!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://vimeo.com/1402027"&gt;&lt;img src="http://myzerogear.com/garagevideo.jpg"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Here we are showcasing the garage portion of the game which will allow players to customize their kart and character. We built this portion of the game with heavy utilization of &lt;a href="http://nimblebit.blogspot.com/2008/06/hikari-in-game-flash-gui.html"&gt;Hikari&lt;/a&gt; which enabled Zero Gear developer &lt;a href="http://eeenmachine.com/"&gt;Ian Marsh&lt;/a&gt; to engineer the gui elements in flash and actionscript. We are using the open source &lt;a href="http://ogre3d.org/"&gt;Ogre3d&lt;/a&gt; to render the characters and environment. Also you will hear some great sound effects by Tapio Liukkonen of &lt;a href="http://kaamossound.com/"&gt;Kaamos Sound&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you are interested in getting the the garage and toy with creating your own special character, stay tuned! You just might get the chance soon!&lt;br /&gt;&lt;br /&gt;P.S. If you are in the United States remember to check out the latest issue of 3D World which has just hit newsstands! It features Zero Gear in their feature of open source software!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-9063006542028403734?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/9063006542028403734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=9063006542028403734&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/9063006542028403734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/9063006542028403734'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/07/video-garage-editor.html' title='Video: Garage Editor'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-4007761578887987973</id><published>2008-07-14T10:51:00.000-07:00</published><updated>2008-07-14T10:57:11.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><title type='text'>Look-Back and status update</title><content type='html'>It has been a little while since we posted an update - Brian has been a little bogged down moving to another apartment in San Fransisco, and I have been slightly derailed doing some non game related contract work to bring in some more development funds.&lt;br /&gt;&lt;br /&gt;But here is just a little feature we got working last weekend, a "look-back" key that you can press to check out what it going on behind you. I think it will be very useful!&lt;br /&gt;&lt;br /&gt;&lt;object width="507" height="285"&gt; &lt;param name="allowfullscreen" value="true" /&gt; &lt;param name="allowscriptaccess" value="always" /&gt; &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=1329610&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt; &lt;embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1329610&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="507" height="285"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/1329610?pg=embed&amp;sec=1329610"&gt;Zero Gear Look-Back&lt;/a&gt; from &lt;a href="http://www.vimeo.com/user296464?pg=embed&amp;sec=1329610"&gt;marshmonkey&lt;/a&gt; on &lt;a href="http://vimeo.com?pg=embed&amp;sec=1329610"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-4007761578887987973?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/4007761578887987973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=4007761578887987973&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4007761578887987973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4007761578887987973'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/07/look-back-and-status-update.html' title='Look-Back and status update'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-1475059476346126639</id><published>2008-07-04T11:49:00.000-07:00</published><updated>2008-07-04T11:57:41.254-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>America is so indie</title><content type='html'>Today marks the anniversary of America going independent, and to celebrate, I thought I would show you a bunch of new stuff we have been working on lately. This morning I woke up and realized we had no 4th of July themed hat, so I took care of &lt;span style="font-style:italic;"&gt;that&lt;/span&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/july.png"&gt;&lt;br /&gt;Also, I have been working on a cool pirate ship kart as well:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/shiptextured.jpg"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Finally, a very enthusiastic Zero Gear fan (ok, my wonderful girlfriend) decided to make an entirely physical version of our &lt;a href="http://nimblebit.blogspot.com/2008/06/rock-em-sock-em-monkey.html"&gt;sock monkey character&lt;/a&gt;, complete with a Zero Gear butt-label! Awesome!!!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/monkey1.jpg"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/monkey2.jpg"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Have a happy and safe 4th of July everyone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-1475059476346126639?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/1475059476346126639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=1475059476346126639&amp;isPopup=true' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1475059476346126639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1475059476346126639'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/07/america-is-so-indie.html' title='America is so indie'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-7011598570076665692</id><published>2008-07-01T10:33:00.001-07:00</published><updated>2008-07-01T10:39:50.079-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>holy custom-content batman!</title><content type='html'>Beyond all our expectations, the artists on the glorious game-art forum &lt;a href="http://boards.polycount.net/index.php"&gt;Polycount&lt;/a&gt; have &lt;a href="http://boards.polycount.net/showthread.php?t=50426"&gt;started making&lt;/a&gt; custom content for Zero Gear before they have even been able to play the game themselves. &lt;br /&gt;Here is a little collage showcasing some of the work they have already started on:&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/polycountrox.jpg"&gt;&lt;/center&gt;&lt;br /&gt;The people are hungry for Zero Gear!!! I had better get back to work. &lt;a href="http://boards.polycount.net/showthread.php?t=50426"&gt;Here is the Zero Gear thread&lt;/a&gt; on polycount if you want to see what people are making, or are interested in making something yourself!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7011598570076665692?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7011598570076665692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7011598570076665692&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7011598570076665692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7011598570076665692'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/07/holy-custom-content-batman.html' title='holy custom-content batman!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-2418227750495730272</id><published>2008-06-30T13:21:00.000-07:00</published><updated>2008-06-30T13:27:31.161-07:00</updated><title type='text'>Zero Gear spotted in 3DWorld magazine!</title><content type='html'>We have small mention in this month's computer graphics magazine 3DWorld! The issue focuses on open source technology, a lot of which we use in Zero Gear. If you see it on news stands, check it out! &lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/magazine.png"&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2418227750495730272?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2418227750495730272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2418227750495730272&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2418227750495730272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2418227750495730272'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/zero-gear-spotted-in-3dworld-magazine.html' title='Zero Gear spotted in 3DWorld magazine!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-8898175349913794592</id><published>2008-06-25T14:13:00.000-07:00</published><updated>2008-06-25T14:17:20.608-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>custom character crafting</title><content type='html'>Pior Oberson is the first person to make some custom content for Zero Gear! He has modeled a new character and hat for the game which I got into the engine today, check it out!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/spacebunny.png"&gt;&lt;img src="http://myzerogear.com/spacebunnyhelm.png"&gt;&lt;br /&gt;&lt;br /&gt;here is a video of it in action&lt;br /&gt;&lt;object width="507" height="382"&gt; &lt;param name="allowfullscreen" value="true" /&gt; &lt;param name="allowscriptaccess" value="always" /&gt; &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=1220911&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt; &lt;embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1220911&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="507" height="382"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/1220911?pg=embed&amp;sec=1220911"&gt;Zero Gear: Space Bunny custom character by Pior Oberson&lt;/a&gt; from &lt;a href="http://www.vimeo.com/user296464?pg=embed&amp;sec=1220911"&gt;marshmonkey&lt;/a&gt; on &lt;a href="http://vimeo.com?pg=embed&amp;sec=1220911"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8898175349913794592?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8898175349913794592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8898175349913794592&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8898175349913794592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8898175349913794592'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/custom-character-crafting.html' title='custom character crafting'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-243010188810501047</id><published>2008-06-23T10:01:00.000-07:00</published><updated>2008-06-23T10:06:07.713-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>I wear Eyewear</title><content type='html'>A few pieces to go into the garage that I did this weekend:&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/acc006.png"&gt;&lt;img src="http://myzerogear.com/acc007.png"&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/acc008.png"&gt;&lt;img src="http://myzerogear.com/steamgoggles.png"&gt;&lt;br /&gt;&lt;br /&gt;and a Shoe car!&lt;br /&gt;&lt;img src="http://myzerogear.com/gumshoe.jpg"&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-243010188810501047?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/243010188810501047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=243010188810501047&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/243010188810501047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/243010188810501047'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/i-wear-eyewear.html' title='I wear Eyewear'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-2923270981299682294</id><published>2008-06-20T10:16:00.000-07:00</published><updated>2008-06-23T17:06:55.761-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Go-Juice!!!</title><content type='html'>&lt;center&gt;&lt;img src="http://myzerogear.com/boombox.png"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Here is a list of some of the fuel that is driving development right now:&lt;br /&gt;&lt;a href="http://www.myspace.com/grandoleparty"&gt;Grand Ole Party&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Arcade_Fire"&gt;Arcade Fire&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/DeVotchKa"&gt;DeVotchKa&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Kills"&gt;The Kills&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Nick_Cave_and_the_Bad_Seeds"&gt;Nick Cave and the Bad Seeds&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Pixies"&gt;Pixies&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Presidents_of_the_United_States_of_America_(band)"&gt;The Presidents of the United States of America&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Spoon_(band)"&gt;Spoon&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Yeah_Yeah_Yeahs"&gt;Yeah Yeah Yeahs&lt;/a&gt;&lt;br /&gt;Led Zeppelin (You don't need a link)&lt;br /&gt;Nine Inch Nails&lt;br /&gt;R.E.M.&lt;br /&gt;&lt;br /&gt;We listen to a lot of &lt;a href="http://kexp.org"&gt;KEXP&lt;/a&gt;.&lt;br /&gt;Dave is listening to a &lt;a href="http://www.pandora.com"&gt;Pandora&lt;/a&gt; station he created: &lt;a href="http://www.pandora.com/?sc=sh24848726565721427"&gt;Whiskey In The Jar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And I get to listen to a jackhammer outside my window every day until they have decided they had enough fun breaking up cement...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2923270981299682294?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2923270981299682294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2923270981299682294&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2923270981299682294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2923270981299682294'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/go-juice.html' title='Go-Juice!!!'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-8817751929073362656</id><published>2008-06-18T15:13:00.000-07:00</published><updated>2008-06-18T15:15:07.491-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Rock 'em Sock 'em Monkey</title><content type='html'>Just a short note to show you another character I made today, a sock monkey!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://myzerogear.com/sockmonkey.png"&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8817751929073362656?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8817751929073362656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8817751929073362656&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8817751929073362656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8817751929073362656'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/rock-em-sock-em-monkey.html' title='Rock &apos;em Sock &apos;em Monkey'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-8606001969374404456</id><published>2008-06-16T18:31:00.000-07:00</published><updated>2008-06-16T18:38:29.746-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Garage part deux</title><content type='html'>Woohoo! This is our 50th post since we started the Zero Gear development blog! I am just taking a quick moment to post a revised GUI mockup of how we want the garage to function. This will hopefully be another GUI programmed in flash, and will feature floating elements that can be positioned by the user. Hopefully you will be tooling around in this garage soon!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://myzerogear.com/garage2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://myzerogear.com/garage2sml.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8606001969374404456?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8606001969374404456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8606001969374404456&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8606001969374404456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8606001969374404456'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/garage-part-deux.html' title='Garage part deux'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-869847661756770602</id><published>2008-06-13T18:07:00.000-07:00</published><updated>2008-06-13T18:58:04.965-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>A Mini Map With Maximum Enjoyment</title><content type='html'>After getting &lt;a href="http://nimblebit.blogspot.com/2008/06/hikari-in-game-flash-gui.html"&gt;Hikari&lt;/a&gt; working, we wanted to test it.&lt;br /&gt;&lt;br /&gt;We wanted to create something we could use in game. Something that would be difficult or time consuming to create manually. We also wanted to see how well it held up. What better test than a &lt;a href="http://nimblebit.blogspot.com/2008/06/race-gui-mock-up.html"&gt;Mini Map&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;First, here is the Mini Map in action:&lt;br /&gt;&lt;object width="507" height="286"&gt; &lt;param name="allowfullscreen" value="true" /&gt; &lt;param name="allowscriptaccess" value="always" /&gt; &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=1167456&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt; &lt;embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1167456&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="507" height="286"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/1167456?pg=embed&amp;sec=1167456"&gt;&lt;/a&gt;&lt;br /&gt;It was created by Dave's brother &lt;a href="http://www.eeenmachine.com/"&gt;Ian&lt;/a&gt; and supports rotating, zooming, and any number of icons on the map. It was written in &lt;a href="http://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html"&gt;ActionScript 3&lt;/a&gt; and is a Flash element that is being rendering in our game using &lt;a href="http://nimblebit.blogspot.com/2008/06/hikari-in-game-flash-gui.html"&gt;Hikari&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It performs quite well. There is barely a &lt;a href="http://en.wikipedia.org/wiki/Frame_rate#Frame_rates_in_video_games"&gt;FPS&lt;/a&gt; drop and it is pretty smooth.&lt;br /&gt;&lt;br /&gt;You can see the full source &lt;a href="http://eeenmachine.com/code/zerogear/MiniMap.as"&gt;here&lt;/a&gt; and the data file &lt;a href="http://eeenmachine.com/code/zerogear/MiniMap.xml"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is a quick summery of what I needed to do to get it working in game.&lt;br /&gt;&lt;br /&gt;I call the ActionScript&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;loadMap(imageUrl:String, mapWidth:Number, mapHeight:Number):void&lt;/span&gt;&lt;br /&gt;function from &lt;a href="http://www.lua.org/"&gt;Lua&lt;/a&gt;, passing in the name of the mini map image, the width of the map in game units (1 unit is a meter), and the height (or depth in 3D).&lt;br /&gt;&lt;br /&gt;I can then call the ActionScript&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;setPlayerPosition(x:Number, y:Number, rot:Number, zoom:Number):void&lt;/span&gt;&lt;br /&gt;function, passing in the x position, y position (or z in 3D), the degrees rotated around the y axis, and a zoom amount (based on speed of the player).&lt;br /&gt;&lt;br /&gt;There is a similar function for setting data related to other players called &lt;span style="font-weight:bold;"&gt;setObjectPosition()&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;From there Ian takes care of the rest and that means I have time to watch an episode of &lt;a href="http://en.wikipedia.org/wiki/Dexter_(TV_series)"&gt;Dexter&lt;/a&gt; instead of writing a Mini Map in C++. Yay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-869847661756770602?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/869847661756770602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=869847661756770602&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/869847661756770602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/869847661756770602'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/mini-map-with-maximum-enjoyment.html' title='A Mini Map With Maximum Enjoyment'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-2452161852976606190</id><published>2008-06-12T13:54:00.000-07:00</published><updated>2008-06-12T13:57:25.946-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>race GUI mock-up</title><content type='html'>As we are starting to build pieces of the GUI for the much anticipated race mode for our game, I spent some time mocking up a general outline of what it might look like. What do you think? We will use this as a guide to build the real pieces. Click to see the bigger picture.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://myzerogear.com/position.jpg"&gt;&lt;img src="http://myzerogear.com/positionsml.jpg"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2452161852976606190?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2452161852976606190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2452161852976606190&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2452161852976606190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2452161852976606190'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/race-gui-mock-up.html' title='race GUI mock-up'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-596625963535832296</id><published>2008-06-11T11:14:00.000-07:00</published><updated>2008-06-11T11:16:17.883-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>more screenshots added to media page</title><content type='html'>&lt;center&gt;&lt;a href="http://myzerogear.com/media.html"&gt;&lt;img src="http://myzerogear.com/newscreens.png"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;I have added 6 more screenshots to the Zero Gear &lt;a href="http://myzerogear.com/media.html"&gt;media page&lt;/a&gt;. Go check them out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-596625963535832296?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/596625963535832296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=596625963535832296&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/596625963535832296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/596625963535832296'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/more-screenshots-added-to-media-page.html' title='more screenshots added to media page'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-3456302412159633012</id><published>2008-06-10T10:44:00.000-07:00</published><updated>2008-06-10T10:56:11.693-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sound'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Screeeeech! Tink! Boooom!</title><content type='html'>As you may have noticed in our last video, we have finally gotten some sound effects for Zero Gear. This is all due to our partnership with &lt;a href="http://kaamossound.com/english/index.html"&gt;Kaamos Sound&lt;/a&gt;, which is run by &lt;a href="http://kaamossound.com/english/history/history.html"&gt;Tapio Liukkonen&lt;/a&gt;, a friendly and frosty fellow who lives down the street from Santa Claus in North Finland near the arctic circle. &lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://myzerogear.com/kaamos.png" border="0" alt="" /&gt;&lt;br /&gt;Tapio found our game online and was very excited to help, we are excited to be working with him because he is very passionate about his work. Here is a sound sample of some of the work he has done for Zero Gear:&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;embed src= "http://www.odeo.com/flash/audio_player_standard_gray.swf" quality="high" width="300" height="52" allowScriptAccess="always" wmode="transparent"  type="application/x-shockwave-flash" flashvars= "valid_sample_rate=true&amp;external_url=http://myzerogear.com/kaamos.mp3" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt; &lt;/embed&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Tapio braves bears, junkyards and go-kart dealerships on a regular basis to find and record the source material he needs to transform into crisp, clear sounds. Here is a picture of him with his giant fuzzy microphone.&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://myzerogear.com/tapio.JPG" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;You can look forward to some of Tapio's great sounds in Zero Gear!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3456302412159633012?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3456302412159633012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3456302412159633012&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3456302412159633012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3456302412159633012'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/screeeeech-tink-boooom.html' title='Screeeeech! Tink! Boooom!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7357038928083305089</id><published>2008-06-09T08:47:00.000-07:00</published><updated>2008-06-09T09:06:09.307-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>New Video! Fallout gameplay mode and 3 Items!</title><content type='html'>Thanks for patiently waiting, (well most of you) we have reached another milestone in the development of the game. This video was from an online playtest we held to test out a fresh gameplay mode called "Fallout" (where the object is not to fall out of the level) along with our very first implementations of 3 different items. There are also a few new characters thrown in and some other things we have added along the way. You might also notice another new thing for Zero Gear, sounds! We have been working with a mysterious character from the icy north to provide Zero Gear with sounds. We will reveal all about him in another post soon! Enjoy the video!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/1141627"&gt;&lt;img src="http://myzerogear.com/falloutvid.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/1141627"&gt;Click to play video&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7357038928083305089?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7357038928083305089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7357038928083305089&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7357038928083305089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7357038928083305089'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/new-video-fallout-gameplay-mode-and-3.html' title='New Video! Fallout gameplay mode and 3 Items!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-5355593163785416978</id><published>2008-06-08T11:41:00.000-07:00</published><updated>2008-06-08T12:05:01.367-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>Hikari - In Game Flash GUI</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ogre3d.org/phpBB2/viewtopic.php?t=41999"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_lBSHjVGvoy8/SEwtPyf6-LI/AAAAAAAAAAc/oVwNBZnPvH4/s320/hikari-logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5209588618237769906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;It seems lately the Holy Grail of game &lt;a href="http://en.wikipedia.org/wiki/Graphical_user_interface"&gt;GUIs&lt;/a&gt; has been &lt;a href="http://en.wikipedia.org/wiki/Adobe_Flash"&gt;Flash&lt;/a&gt;. &lt;a href="http://www.scaleform.com/"&gt;Scaleform&lt;/a&gt; is an example of a commercial GUI based on Flash. This does not work for indies because of the cost.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ogre3d.org/phpBB2/viewtopic.php?t=41999"&gt;Hikari&lt;/a&gt; is a great option for &lt;a href="http://www.ogre3d.org/"&gt;Ogre&lt;/a&gt; users. It was just released yesterday and I already have it integrated into Zero Gear. It is still new and needs a little work but thanks to it being open source (&lt;a href="http://www.gnu.org/licenses/lgpl.html"&gt;LGPL&lt;/a&gt;), we should start seeing a lot of support from the community.&lt;br /&gt;&lt;br /&gt;P.S. One thing to mention is Hikari only works on Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5355593163785416978?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5355593163785416978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5355593163785416978&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5355593163785416978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5355593163785416978'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/hikari-in-game-flash-gui.html' title='Hikari - In Game Flash GUI'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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://bp3.blogger.com/_lBSHjVGvoy8/SEwtPyf6-LI/AAAAAAAAAAc/oVwNBZnPvH4/s72-c/hikari-logo.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-8892316905648829429</id><published>2008-06-04T15:58:00.000-07:00</published><updated>2008-06-04T15:59:12.596-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>I like turtles</title><content type='html'>see!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/turtle.png"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8892316905648829429?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8892316905648829429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8892316905648829429&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8892316905648829429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8892316905648829429'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/i-like-turtles.html' title='I like turtles'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-6081708362933330827</id><published>2008-06-03T09:51:00.000-07:00</published><updated>2008-06-03T09:59:56.240-07:00</updated><title type='text'>Join our Steam Group!</title><content type='html'>We want Zero Gear to be available on Steam when it is ready to be unleashed on the world. Until that happens, you can show your support and desire to see a game like Zero Gear on Steam by &lt;a href="http://steamcommunity.com/groups/zerogear"&gt;joining our Steam Group&lt;/a&gt;! Brian and I are usually in the group chat room as well, so stop by and say hello!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/steamgroup.jpg"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-6081708362933330827?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/6081708362933330827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=6081708362933330827&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6081708362933330827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6081708362933330827'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/06/join-our-steam-group.html' title='Join our Steam Group!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-84284412109059777</id><published>2008-05-29T17:22:00.000-07:00</published><updated>2008-05-29T18:41:04.008-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>everybody &lt;3's pandas!</title><content type='html'>At least that is what I gathered becuase when people would suggest characters for the game, a panda was always one of the first blurted out. So I made a panda character! Here it is!&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/panda.png"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-84284412109059777?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/84284412109059777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=84284412109059777&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/84284412109059777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/84284412109059777'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/05/everybody-3s-pandas.html' title='everybody &lt;3&apos;s pandas!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-3458264481133052183</id><published>2008-05-27T16:23:00.000-07:00</published><updated>2008-05-27T16:24:47.025-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>icon a go go</title><content type='html'>Today I was working on a design for an icon for the game executable, this is much larger version of the design but I think it scales down pretty well&lt;br /&gt;&lt;br /&gt;&lt;img src="http://myzerogear.com/zgicon_256.png"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3458264481133052183?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3458264481133052183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3458264481133052183&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3458264481133052183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3458264481133052183'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/05/icon-go-go.html' title='icon a go go'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-5383211494436304445</id><published>2008-05-26T16:57:00.000-07:00</published><updated>2008-05-26T17:01:00.053-07:00</updated><title type='text'>Zero Gear forums launched!</title><content type='html'>While moving the Zero Gear site to it's own server (no more piggybacking off DevBump!), I also have set up a forum for Zero Gear supporters and fans to talk as well as a place to organize future tests and events. &lt;a href="http://myzerogear.com/phpBB3/index.php"&gt;Go register&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5383211494436304445?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5383211494436304445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5383211494436304445&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5383211494436304445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5383211494436304445'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/05/zero-gear-forums-launched.html' title='Zero Gear forums launched!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-1323753769495162432</id><published>2008-05-23T10:07:00.000-07:00</published><updated>2008-05-26T10:35:32.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>First big internet test a grand ole party!</title><content type='html'>We had our first big (8 people) internet test last night. There were a few issues that we were able to fix while the test was going on thanks to a &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; build deployment system. The biggest issue was the lack of bandwidth on our home internet connections which caused lag.&lt;br /&gt;&lt;br /&gt;So we are shopping for a service to host game servers for future tests. &lt;a href="http://aws.amazon.com/ec2"&gt;Amazon EC2&lt;/a&gt; seems perfect for us. Does anyone have any other suggestions? (We need full access to the server to configure the game server and other services). If you do, post a comment please!&lt;br /&gt;&lt;br /&gt;And now for something completely different...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/skele.png"&gt;&lt;img style="float:middle; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://nimblebit.com/skele.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This little guy wants you to join our &lt;a href="http://steamcommunity.com/groups/zerogear"&gt;Steam Zero Gear group&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;P.S. If you like music I recommend &lt;a href="http://www.myspace.com/grandoleparty"&gt;Grand Ole Party!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-1323753769495162432?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/1323753769495162432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=1323753769495162432&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1323753769495162432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1323753769495162432'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/05/first-big-internet-test-grand-ole-party.html' title='First big internet test a grand ole party!'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-1009414668660677258</id><published>2008-05-18T16:40:00.000-07:00</published><updated>2008-05-18T16:44:51.046-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Welcome to San Francisco</title><content type='html'>In celebration of my recent move to SF, my girlfriend created a new background image for my computer. I thought it was so awesome that I wanted to share it with the world.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_lBSHjVGvoy8/SDC_Pmgh1sI/AAAAAAAAAAM/WtWwtRDY2Hg/s1600-h/san_fran_lombard_street.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_lBSHjVGvoy8/SDC_Pmgh1sI/AAAAAAAAAAM/WtWwtRDY2Hg/s320/san_fran_lombard_street.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5201867844368848578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ENJOY&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-1009414668660677258?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/1009414668660677258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=1009414668660677258&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1009414668660677258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/1009414668660677258'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/05/welcome-to-san-francisco.html' title='Welcome to San Francisco'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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://bp1.blogger.com/_lBSHjVGvoy8/SDC_Pmgh1sI/AAAAAAAAAAM/WtWwtRDY2Hg/s72-c/san_fran_lombard_street.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-3650931881462978840</id><published>2008-05-14T20:07:00.001-07:00</published><updated>2008-05-14T20:10:30.785-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>space ride peek!</title><content type='html'>Inspired by the space stage we have been working on, I decided to whip up an appropriate themed kart. Click for big!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/moonbuggy2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://nimblebit.com/moonbuggy2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3650931881462978840?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3650931881462978840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3650931881462978840&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3650931881462978840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3650931881462978840'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/05/space-ride-peek.html' title='space ride peek!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-3435584079806191276</id><published>2008-05-09T09:59:00.000-07:00</published><updated>2008-05-09T10:00:43.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>zero gear . . . in spaaaaaaace!</title><content type='html'>real quick post, we just got our new level up and running for the next game mode we are building for the next video. Wanted to post a screenshot. Click for big.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/spacebig.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://nimblebit.com/spacebig.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3435584079806191276?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3435584079806191276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3435584079806191276&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3435584079806191276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3435584079806191276'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/05/zero-gear-in-spaaaaaaace.html' title='zero gear . . . in spaaaaaaace!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-8586139945341590889</id><published>2008-05-02T13:07:00.000-07:00</published><updated>2008-05-02T13:09:19.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>items teaser</title><content type='html'>we've been working on 3 items lately for our next video, along with a new gameplay mode. Here is a little teaser for the items: &lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://nimblebit.com/itemicons.png" border="0" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8586139945341590889?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8586139945341590889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8586139945341590889&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8586139945341590889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8586139945341590889'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/05/items-teaser.html' title='items teaser'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-8239750058387383477</id><published>2008-04-29T12:53:00.000-07:00</published><updated>2008-04-29T13:10:05.013-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>particles! particles! particles!</title><content type='html'>As some of you might have noticed in our last video, we have started putting particles in our game. For the non-developers out there, particles are how we create effects such as explosions, weather, dust or any situation where we need to animate some kind of graphical effect using many graphics moving together in a certain way. We are using an excellent particle library called &lt;a href="http://fxpression.com/"&gt;Particle Universe&lt;/a&gt; which allows you to create these effects in a script type format. Here are a couple of effects I have been working on lately using this system.&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.devbump.com/nimblebit.com/particle1.gif" border="0" alt="" /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.devbump.com/nimblebit.com/particle2.gif" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;Here is a snippet of the script of the bottom explosion effect, detailing how the system should animate the fireball part of the explosion:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt; // --------------- fireball ---------------&lt;br /&gt; technique&lt;br /&gt; {&lt;br /&gt;  use_alias    $defaultBillboardRenderer&lt;br /&gt;  material    fireball&lt;br /&gt;  default_particle_width   25&lt;br /&gt;  default_particle_height   25&lt;br /&gt;  visual_particle_quota   500&lt;br /&gt;  emitter     Point  &lt;br /&gt;  {&lt;br /&gt;   emission_rate   1&lt;br /&gt;   force_emission   true&lt;br /&gt;   velocity   0&lt;br /&gt;   time_to_live   1&lt;br /&gt;  }  &lt;br /&gt;  &lt;br /&gt;  // expand quickly then slow&lt;br /&gt;  affector    Scale&lt;br /&gt;  {&lt;br /&gt;   xyz_scale   dyn_curved_linear&lt;br /&gt;  {&lt;br /&gt;       control_point       0 1&lt;br /&gt;       control_point       0.1 4500&lt;br /&gt;       control_point       0.3 500&lt;br /&gt;  }&lt;br /&gt;  }&lt;br /&gt;  // change color over time&lt;br /&gt;  affector    Colour&lt;br /&gt;  {&lt;br /&gt;   colour_aff_time_colour  0  1 1 1&lt;br /&gt;   colour_aff_time_colour  0.1  1 1 1&lt;br /&gt;   colour_aff_time_colour  0.3  .8 .6 .6&lt;br /&gt;   colour_aff_time_colour  0.45  .2 .2 .2&lt;br /&gt;   colour_aff_time_colour  0.65  0 0 0&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8239750058387383477?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8239750058387383477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8239750058387383477&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8239750058387383477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8239750058387383477'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/04/particles-particles-particles.html' title='particles! particles! particles!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7812308892417813702</id><published>2008-04-22T09:27:00.000-07:00</published><updated>2008-04-22T09:31:34.577-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>New Video! Basic Gameplay tag-test</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.vimeo.com/926898"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://nimblebit.com/tagvideo.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this video we are using a “Tag” type game mode as an intitial test of our gameplay scripting system. Using the experience from this we will design bigger and more exciting gameplay!&lt;br /&gt;&lt;br /&gt;In this mode, players compete for the longest amount of time being "IT". The longer you are "IT" the more points you rack up. There is also a 3 second immunity after you have become "IT". For this level, we also made points accumulate faster the closer you are to the middle, to encourage people to duke it out in the middle ring.&lt;br /&gt;&lt;br /&gt;The test was a lot of fun, and gave us a lot of ideas and feedback for how we are going to implement more gameplay features in the near future!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7812308892417813702?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7812308892417813702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7812308892417813702&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7812308892417813702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7812308892417813702'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/04/new-video-basic-gameplay-tag-test.html' title='New Video! Basic Gameplay tag-test'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-5717768599501818501</id><published>2008-04-15T17:36:00.000-07:00</published><updated>2008-04-15T17:56:52.252-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>a couple menu mock-ups</title><content type='html'>I just made a few menu mockups, to start thinking more in depth about what we want to do for them.  Here is one for the main menu as well as one for the customize garage. As always, click for the full sized versions!&lt;br /&gt;&lt;br /&gt;The idea for the main menu is that the elements fly in from the edges of the screen, and a model of your character / kart on a stand screws into place from the bottom off screen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/main_screen.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://nimblebit.com/main_screen.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The customization menu will be able to handle all your kart and character customization or tuning. The left of the screen is where you will pick which element you are changing, and you can browse through your options on the right side, as well and pull it out further like a drawer with the red arrow to view more options at one time. The bottom of the screen is where your customizable color swatch options will appear for the item you have selected.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/customize_screen.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://nimblebit.com/customize_screen.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5717768599501818501?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5717768599501818501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5717768599501818501&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5717768599501818501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5717768599501818501'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/04/couple-menu-mock-ups.html' title='a couple menu mock-ups'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7499483785787594114</id><published>2008-04-11T19:29:00.000-07:00</published><updated>2008-04-11T19:34:01.811-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>just putzing around in the garage</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/garage1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.devbump.com/nimblebit.com/garage1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Here is a screenshot of the garage environment I have been working on this week. This is the area where you will be able to tweak, color, and change everything about your kart and character's look and performance. Click on the image to see a bigger version!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7499483785787594114?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7499483785787594114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7499483785787594114&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7499483785787594114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7499483785787594114'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/04/just-putzing-around-in-garage.html' title='just putzing around in the garage'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-377115029420787865</id><published>2008-04-01T14:46:00.000-07:00</published><updated>2008-04-01T16:37:12.458-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>You can't do it alone...</title><content type='html'>...unless you have some help.&lt;br /&gt;&lt;br /&gt;Zero Gear is being created by two people. One artist and one programmer.&lt;br /&gt;&lt;br /&gt;That is not entirely true however. We are making use of many, many tools to help us create this game. These tools have large communities of people creating them. I wanted to give some credit to these people and also just show how we are doing this so others might see how they can speed up their development with free tools.&lt;br /&gt;&lt;br /&gt;Programming Language:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B"&gt;C++&lt;/a&gt;&lt;br /&gt;C++ is a very popular programming language and we use it. Most of these tools (not all!) apply to C++.&lt;br /&gt;&lt;br /&gt;3D Rendering:&lt;br /&gt;&lt;a href="http://www.ogre3d.org/"&gt;Ogre3D&lt;/a&gt;&lt;br /&gt;Every game needs to draw stuff on the screen. For 3D graphics Ogre is a great library. It has been in development for 6 years and been used in a lot of projects. Check it out, it will make your life easier.&lt;br /&gt;&lt;br /&gt;GUI:&lt;br /&gt;&lt;a href="http://navi.agelessanime.com/wiki/index.php/Main_Page"&gt;Navi&lt;/a&gt;&lt;br /&gt;Navi is fairly new but a great solution if you want to get complex &lt;a href="http://en.wikipedia.org/wiki/Graphical_user_interface"&gt;GUIs&lt;/a&gt; in game very fast. It uses the &lt;a href="http://en.wikipedia.org/wiki/Gecko_(layout_engine)"&gt;Gecko&lt;/a&gt; renderer (Firefox uses this renderer too) to render webpages to a texture. This allows you to create a GUI in something like Dreamweaver or any standard HTML, CSS, JavaScript tools. The only catch is that it is a bit slow for any real time displays. Note: This only works with Ogre.&lt;br /&gt;&lt;br /&gt;Particles:&lt;br /&gt;&lt;a href="http://fxpression.com/"&gt;Particle Universe&lt;/a&gt;&lt;br /&gt;The very FIRST thing that any game should have is &lt;a href="http://en.wikipedia.org/wiki/Particle_system"&gt;PARTICLES&lt;/a&gt;. This is a great system to create awesome looking effects quickly. I am told that an editor is in the works. Note: This also only works with Ogre.&lt;br /&gt;&lt;br /&gt;Texture Maps:&lt;br /&gt;&lt;a href="http://www.xnormal.net/"&gt;xNormal&lt;/a&gt;&lt;br /&gt;xNormal is a great little tool that is kind of the swiss army knife of baking and displaying maps on 3D models. We use it to bake &lt;a href="http://en.wikipedia.org/wiki/Ambient_occlusion"&gt;Ambient Occlusion&lt;/a&gt; into the textures of many of our models.&lt;br /&gt;&lt;br /&gt;Physics:&lt;br /&gt;&lt;a href="http://www.bulletphysics.com"&gt;Bullet&lt;/a&gt;&lt;br /&gt;A game where nothing moves isn't very fun. Bullet will make things move. You can see it in action in our last &lt;a href="http://nimblebit.blogspot.com/2008/03/multi-player-mayhem.html"&gt;video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Networking:&lt;br /&gt;&lt;a href="http://enet.bespin.org/"&gt;ENet&lt;/a&gt;&lt;br /&gt;ENet is a simple &lt;a href="http://en.wikipedia.org/wiki/User_Datagram_Protocol"&gt;UDP&lt;/a&gt; networking library. It is a layer on top of UDP that adds reliability and ordered packets when needed and basic connection management. It is great if you want something easy to use but plan to implement most networking features yourself.&lt;br /&gt;&lt;br /&gt;Network Prediction:&lt;br /&gt;&lt;a href="http://www.mindcontrol.org/~hplus/epic/"&gt;EPIC&lt;/a&gt;&lt;br /&gt;EPIC is a class to &lt;a href="http://en.wikipedia.org/wiki/Extrapolation"&gt;extrapolate&lt;/a&gt; the players on the client past the most current physics update from the server. See &lt;a href="http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking"&gt;this&lt;/a&gt; great article for some tips on how Valve does this.&lt;br /&gt;&lt;br /&gt;Scripting:&lt;br /&gt;&lt;a href="http://www.lua.org/"&gt;Lua&lt;/a&gt;&lt;br /&gt;Lua is a &lt;a href="http://en.wikipedia.org/wiki/Scripting_language"&gt;scripting language&lt;/a&gt; we have embedded in our game. We plan to have all gameplay coded in Lua. This will mean that it will be very easy to add new game modes, items, GUIs, animations, etc during development and perhaps even allow the community to create these too. It also helps speed up development as we don't have to recompile the game every time we want to change a single value or algorithm.&lt;br /&gt;&lt;br /&gt;Script Binding:&lt;br /&gt;&lt;a href="http://www.rasterbar.com/products/luabind.html"&gt;luabind&lt;/a&gt;&lt;br /&gt;luabind helps us connect Lua to our game. It uses C++ templates to generate binding code for your classes (Really good use of &lt;a href="http://en.wikipedia.org/wiki/Template_metaprogramming"&gt;TMP&lt;/a&gt;!!). There are a few options for doing this. We decided luabind was best for us.&lt;br /&gt;&lt;br /&gt;Script Debugger:&lt;br /&gt;&lt;a href="http://www.unknownworlds.com/decoda"&gt;Decoda&lt;/a&gt;&lt;br /&gt;This is a great tool to debug code written in Lua. It allows the standard debugging operations such as call stack, breakpoints, watch, etc. It is great if you have a lot of code written in Lua and you aren't a perfect human. This is not free however (but it is cheap and useful!).&lt;br /&gt;&lt;br /&gt;XML Parsing:&lt;br /&gt;&lt;a href="http://www.grinninglizard.com/tinyxml/"&gt;TinyXML&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/XML"&gt;XML&lt;/a&gt; is a really great way to store data in a &lt;a href="http://en.wikipedia.org/wiki/Human"&gt;human&lt;/a&gt; readable format. Just use it...&lt;br /&gt;&lt;br /&gt;General Code Support:&lt;br /&gt;&lt;a href="http://www.boost.org/"&gt;Boost&lt;/a&gt;&lt;br /&gt;Boost is actually a large collection of different libraries for C++.&lt;br /&gt;We use:&lt;br /&gt;&lt;a href="http://boost.org/doc/libs/1_35_0/libs/smart_ptr/smart_ptr.htm"&gt;shared_ptr&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.boost.org/doc/libs/1_35_0/libs/bind/bind.html"&gt;bind&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.boost.org/doc/libs/1_35_0/doc/html/function.html"&gt;function&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.boost.org/doc/libs/1_35_0/doc/html/signals.html"&gt;signal&lt;/a&gt;&lt;br /&gt;I will have to do another post about these as they are a bit more complicated...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-377115029420787865?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/377115029420787865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=377115029420787865&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/377115029420787865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/377115029420787865'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/04/you-cant-do-it-alone.html' title='You can&apos;t do it alone...'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-2984813932722243643</id><published>2008-03-24T14:53:00.000-07:00</published><updated>2008-03-24T15:00:42.799-07:00</updated><title type='text'>Zero Gear website up!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="nimblebit.com/site.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.devbump.com/nimblebit.com/site.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Last week I worked on creating a website to showcase a little bit of what Zero Gear is all in one place. You can view it &lt;a href="http://myzerogear.com"&gt;here&lt;/a&gt;, at &lt;a href="http://myzerogear.com"&gt;http:myZeroGear.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2984813932722243643?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2984813932722243643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2984813932722243643&amp;isPopup=true' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2984813932722243643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2984813932722243643'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/03/zero-gear-website-up.html' title='Zero Gear website up!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7051019041025153452</id><published>2008-03-16T15:12:00.000-07:00</published><updated>2008-03-16T16:36:52.629-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Templatize your factories</title><content type='html'>In &lt;a href="http://en.wikipedia.org/wiki/Object-oriented_programming"&gt;Object Oriented Programming&lt;/a&gt; we create systems that manage objects. However, it is always a good idea to separate the implementation of the objects from the systems. This way, we can add or change objects&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;and the system&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;doesn't need to change.&lt;br /&gt;&lt;br /&gt;This post is related to object &lt;a href="http://en.wikipedia.org/wiki/Factory_method_pattern"&gt;Factories&lt;/a&gt;. A factory is responsible for creating objects. Here is a very simple example of an object factory:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;IObject * ObjectFactory::CreateObject(const string &amp;amp; objectType)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (objectType == "Model")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new Model();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else if (objectType == "Sound")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new Sound();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else if (objectType == "Light")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new Light();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return NULL;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Each of these 3 objects derive from the IObject interface. Based on the type of the object ("Model", "Sound", or "Light") we create that object (new  Model(), etc).&lt;br /&gt;&lt;br /&gt;This is great. But we can improve...&lt;br /&gt;&lt;br /&gt;What if we want to get a list of object types that the factory is able to create? This was my question and here is the way I solved the problem.&lt;br /&gt;&lt;br /&gt;First we create an interface for our object factory. This would allow us to create multiple object factories for different parts of an application (one for the map editor, one for the driving level, etc) or for different applications all together.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;class IObjectFactory&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IObject *(*Creator)(void);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;virtual ~IObjectFactory() = 0 { }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Returns a list of objects that this factory can create&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;**/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;list&amp;lt;string&amp;gt; GetCreationTypes(void);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Create an object of the type passed in&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;**/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IObject * CreateObject(const string &amp;amp; objectType);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void RegisterCreator(const std::string &amp;amp; objectType, IObjectFactory::Creator creator);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void UnregisterCreator(const std::string &amp;amp; objectType);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IObjectFactory::Creator * GetCreator(const std::string &amp;amp; objectType);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;map&amp;lt;string, IObjectFactory::Creator&amp;gt; objectCreators;&lt;br /&gt;};&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The concept is that we can Register a Creator into the IObjectFactory and then the factory will handle everything for us. We can create an object or get a list of object types that the factory can create at runtime without any additional modifications from us. The implementation for this interface is trivial...&lt;br /&gt;&lt;br /&gt;This line is important:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;typedef IObject *(*Creator)(void);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This defines a &lt;a href="http://www.newty.de/fpt/index.html"&gt;function pointer&lt;/a&gt; to a "Creator" function. This is a function that will create a specific object for us.&lt;br /&gt;&lt;br /&gt;Here is a templated "Creator" for you to use:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;template &amp;lt;typename T&amp;gt;&lt;br /&gt;IObject * ObjectCreateFunction(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return new T();&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then simply inherit from IObjectFactory in your concrete object factory and define a constructor similar to this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ConcreateObjectFactory::ConcreateObjectFactory()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RegisterCreator("Model", &amp;amp;ObjectCreateFunction&amp;lt;Model&amp;gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RegisterCreator("Sound", &amp;amp;ObjectCreateFunction&amp;lt;Sound&amp;gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RegisterCreator("Light", &amp;amp;ObjectCreateFunction&amp;lt;Light&amp;gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;P.S. I know that the IObjectFactory isn't a purely an interface but I am still going to call it an interface. Deal with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7051019041025153452?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7051019041025153452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7051019041025153452&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7051019041025153452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7051019041025153452'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/03/templatize-your-factories.html' title='Templatize your factories'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-757425892081180001</id><published>2008-03-15T12:32:00.000-07:00</published><updated>2008-03-15T13:28:48.672-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>more pretty pictures for you to eat</title><content type='html'>first up, we have 3 screenshots I put together, click to enlarge.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/screenshot003.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://www.devbump.com/nimblebit.com/screenshot003sml.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/screenshot002.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://www.devbump.com/nimblebit.com/screenshot002sml.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/screenshot001.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://www.devbump.com/nimblebit.com/screenshot001sml.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I also assembled 3 wallpapers (people always want wallpapers) in a veritable cornucopia of different resolutions.&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;width: 320px;" src="http://www.devbump.com/nimblebit.com/zerogear1_thumb.png" border="0" alt="" /&gt;&lt;br /&gt;standard ratio: &lt;a href="http://www.devbump.com/nimblebit.com/zerogear1_1024x768.png"&gt;1024x768&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear1_1280x960.png"&gt;1280x960&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear1_1600x1200.png"&gt;1600x1200&lt;/a&gt;&lt;br /&gt;widescreen ratio: &lt;a href="http://www.devbump.com/nimblebit.com/zerogear1_1280x800.png"&gt;1280x800&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear1_1440x900.png"&gt;1440x900&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear1_1680x1050.png"&gt;1680x1050&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear1_1920x1200.png"&gt;1920x1200&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear1_2560x1600.png"&gt;2560x1600&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;width: 320px;" src="http://www.devbump.com/nimblebit.com/zerogear2_thumb.png" border="0" alt="" /&gt;&lt;br /&gt;standard ratio: &lt;a href="http://www.devbump.com/nimblebit.com/zerogear2_1024x768.png"&gt;1024x768&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear2_1280x960.png"&gt;1280x960&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear2_1600x1200.png"&gt;1600x1200&lt;/a&gt;&lt;br /&gt;widescreen ratio: &lt;a href="http://www.devbump.com/nimblebit.com/zerogear2_1280x800.png"&gt;1280x800&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear2_1440x900.png"&gt;1440x900&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear2_1680x1050.png"&gt;1680x1050&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear2_1920x1200.png"&gt;1920x1200&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear2_2560x1600.png"&gt;2560x1600&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;width: 320px;" src="http://www.devbump.com/nimblebit.com/zerogear3_thumb.png" border="0" alt="" /&gt;&lt;br /&gt;standard ratio: &lt;a href="http://www.devbump.com/nimblebit.com/zerogear3_1024x768.png"&gt;1024x768&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear3_1280x960.png"&gt;1280x960&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear3_1600x1200.png"&gt;1600x1200&lt;/a&gt;&lt;br /&gt;widescreen ratio: &lt;a href="http://www.devbump.com/nimblebit.com/zerogear3_1280x800.png"&gt;1280x800&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear3_1440x900.png"&gt;1440x900&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear3_1680x1050.png"&gt;1680x1050&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear3_1920x1200.png"&gt;1920x1200&lt;/a&gt;,&lt;a href="http://www.devbump.com/nimblebit.com/zerogear3_2560x1600.png"&gt;2560x1600&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-757425892081180001?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/757425892081180001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=757425892081180001&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/757425892081180001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/757425892081180001'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/03/more-pretty-pictures-for-you-to-eat.html' title='more pretty pictures for you to eat'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-5126132981172516229</id><published>2008-03-09T18:56:00.000-07:00</published><updated>2008-03-09T19:46:48.099-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>multi-player mayhem</title><content type='html'>Brian has been working a ton of hours getting the networking portion of our game far along enough to have our first Zero Gear play test, which we hosted at a LAN party this weekend. It seemed to be a great success and everyone seemed to have a great time driving around their characters even if we didn't have any real race rules in place yet. I was able to grab a lot of footage and I pieced together a little video, click the image below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.vimeo.com/769438"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://www.devbump.com/nimblebit.com/vidthumb.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are a few action photos of the Zero Gear party in progress, thanks to everyone who came and played!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/lan1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.devbump.com/nimblebit.com/lan1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/lan2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.devbump.com/nimblebit.com/lan2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/lan3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.devbump.com/nimblebit.com/lan3.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5126132981172516229?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5126132981172516229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5126132981172516229&amp;isPopup=true' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5126132981172516229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5126132981172516229'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/03/multi-player-mayhem.html' title='multi-player mayhem'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-5545431429366012874</id><published>2008-03-07T10:54:00.000-08:00</published><updated>2008-03-07T10:58:24.273-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>New character poster, Robo Viking!</title><content type='html'>Here is another poster I whipped up after finishing the robot character. This little guy will pillage his way into your heart &lt;3&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://nimblebit.com/ZGposter2_small.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.devbump.com/nimblebit.com/ZGposter2_thumb.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devbump.com/nimblebit.com/ZGposter2_small.png"&gt;small image&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devbump.com/nimblebit.com/ZGposter2_med.png"&gt;medium image&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devbump.com/nimblebit.com/ZGposter2_large.png"&gt;large image&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/6483520008883064921-5545431429366012874?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5545431429366012874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5545431429366012874&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5545431429366012874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5545431429366012874'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/03/new-character-poster-robo-viking.html' title='New character poster, Robo Viking!'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-5522841857033830519</id><published>2008-03-04T14:38:00.000-08:00</published><updated>2008-03-04T14:43:44.227-08:00</updated><title type='text'>new character, now with 100% more robot</title><content type='html'>here is a quick look at a new character I just finished up&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://www.devbump.com/nimblebit.com/robo5.png" alt="" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Here are a few more peeks at him with some different color schemes, of course you will be able to choose whatever combination you would like!&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width:512px;" src="http://www.devbump.com/nimblebit.com/robo6.png" alt="" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5522841857033830519?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5522841857033830519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5522841857033830519&amp;isPopup=true' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5522841857033830519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5522841857033830519'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/03/new-character-now-with-100-more-robot.html' title='new character, now with 100% more robot'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-5901833420165090624</id><published>2008-02-26T09:28:00.000-08:00</published><updated>2008-02-26T10:19:00.581-08:00</updated><title type='text'>Nine Paths To Indie Game Greatness</title><content type='html'>I wrote an article a few months ago about some methods independents are utilizing to develop games with a very limited amount of resources. Many of these ideas are things that we try to follow to develop Zero Gear in an efficient manner. The article just went up on Gamasutra, &lt;a href="http://www.gamasutra.com/view/feature/3547/nine_paths_to_indie_game_greatness.php"&gt;check it out!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5901833420165090624?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5901833420165090624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5901833420165090624&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5901833420165090624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5901833420165090624'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/02/nine-paths-to-indie-game-greatness.html' title='Nine Paths To Indie Game Greatness'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-4905422923906360545</id><published>2008-02-22T18:14:00.000-08:00</published><updated>2008-02-22T19:17:27.931-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>re-vamped character model and animations</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/edwinchar.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://www.devbump.com/nimblebit.com/edwinchar.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The last week or so I have been taking a shot at re-doing our first player model for Zero Gear, the original model didn't sit right with a lot of people or me included. Luckily I stumbled into contact with &lt;a href="http://rhemdoodles.blogspot.com/"&gt;Edwin Rhemrev&lt;/a&gt;, a concept artist in Rotterdam. We talked about how much we enjoyed kart racing games, and offered to do some concept pieces for us. He came up with a lot of differently styled and awesome looking characters. This is the one that I based my character model from. After a couple days of modeling I had the base model done that everything else would build upon.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/newchar_sml.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.devbump.com/nimblebit.com/newchar_sml.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once this step is complete, I unwrapped and textured the body and head. This step involves some tricky and/or tedious work assigning how the flat 2d texture is wrapped around the 3d model. Luckily there are a lot of different tools to help you do this, just imagine trying to cut out a set of skin tight clothes out of a piece of paper for a doll, in a shape so that all the seams match up perfectly to fit the contours of the body. Sounds pretty tricky, doesn't it! These are the flat textures I created to wrap around my character&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://www.devbump.com/nimblebit.com/flat.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Here is what he looks like with the textures applied.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://www.devbump.com/nimblebit.com/newchar2_sml.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Now we have something that looks like a character, the next step is making him &lt;span style="font-style: italic;"&gt;move&lt;/span&gt; like one.&lt;br /&gt;To animate the character, I make a skeleton that fits the proportions of the body and has joints in all the proper places. Then I have to assign all the verticies to correct bones in the skeleton, and after that is done I can animate the bones in the skeleton to move in whatever way I wish and the body will follow. The entire animation process is something I have been learning as go, and it has filled me with a lot of respect for animators, as it is clearly a discipline to master in and of itself. Here is a screenshot of the program I use to animate the skeleton:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.devbump.com/nimblebit.com/maya.jpg"&gt;&lt;img src="http://www.devbump.com/nimblebit.com/mayasml.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The animation is done using "key-frames" on a timeline. In a nutshell this involves moving something to a position and setting a "key" and then moving  the same thing to a different position and setting another "key" farther down the timeline. Using this process, the animation between those two keys are filled in for you and the result is a smooth transition between the two positions. Here is a short video I created of some animations I created for this character.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="http://www.vimeo.com/moogaloop.swf?clip_id=718649&amp;amp;server=www.vimeo.com&amp;amp;fullscreen=1&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF" height="225" width="400"&gt; &lt;param name="quality" value="best"&gt; &lt;param name="allowfullscreen" value="true"&gt; &lt;param name="scale" value="showAll"&gt; &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=718649&amp;amp;server=www.vimeo.com&amp;amp;fullscreen=1&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF"&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/718649/l:embed_718649"&gt;Zero Gear character animation&lt;/a&gt; from &lt;a href="http://www.vimeo.com/user296464/l:embed_718649"&gt;marshmonkey&lt;/a&gt; on &lt;a href="http://vimeo.com/l:embed_718649"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;There are still some additional steps to be taken to get the character into the game, but it is mostly complete at this stage. I will be following this same process to create multiple other new characters for the game. After finishing this guy, I posed him in a little scene and rendered out a poster-type image for fun. Click on the links to the right of the image for a number of different sizes.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://www.devbump.com/nimblebit.com/ZGposter_small.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.devbump.com/nimblebit.com/ZGposter_thumb.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devbump.com/nimblebit.com/ZGposter_small.png"&gt;small image&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devbump.com/nimblebit.com/ZGposter_med.png"&gt;medium image&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devbump.com/nimblebit.com/ZGposter_large.png"&gt;large image&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/6483520008883064921-4905422923906360545?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/4905422923906360545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=4905422923906360545&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4905422923906360545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/4905422923906360545'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/02/re-vamped-character-model-and.html' title='re-vamped character model and animations'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7183468439529927009</id><published>2008-02-20T10:24:00.000-08:00</published><updated>2008-02-20T11:02:41.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>MVC LUA GUI FTW!!!</title><content type='html'>This is a more technical post but don't run away!&lt;br /&gt;&lt;br /&gt;When designing a game (or any application) we tend to want to separate the graphical user interface (GUI) from the game logic. A way of doing this is called &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;Model-View-Controller&lt;/a&gt; (or MVC). Here is a summery of what this means:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MODEL&lt;/span&gt;: This is the code and data that controls your game. An example could be setting the color of the player.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VIEW&lt;/span&gt;: This is your GUI. An example is a GUI widget to select a color and a button to apply that color to the player.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CONTROLLER&lt;/span&gt;: This is what ties the &lt;span style="font-weight: bold;"&gt;MODEL&lt;/span&gt; and the &lt;span style="font-weight: bold;"&gt;VIEW&lt;/span&gt; together. It is some logic that takes the color selected from the GUI and applies it to the Player in game.&lt;br /&gt;&lt;br /&gt;The reason for doing this is that is separates the &lt;span style="font-weight: bold;"&gt;MODEL&lt;/span&gt; from the &lt;span style="font-weight: bold;"&gt;VIEW&lt;/span&gt;. This means we can easily change the &lt;span style="font-weight: bold;"&gt;VIEW&lt;/span&gt; without changing the &lt;span style="font-weight: bold;"&gt;MODEL&lt;/span&gt; and vice versa by only changing the &lt;span style="font-weight: bold;"&gt;CONTROLLER&lt;/span&gt;. And most the time we don't even need to change the &lt;span style="font-weight: bold;"&gt;CONTROLLER&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Here is the way I am handling this:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MODEL&lt;/span&gt;: In C++ I have code that sets a player's color Player::SetColor(colorVal)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VIEW&lt;/span&gt;: Using &lt;a href="http://nimblebit.blogspot.com/2007/11/webify-your-gui.html"&gt;Navi&lt;/a&gt;, we have created a simple &lt;a href="http://nimblebit.blogspot.com/2007/12/customization-gui-video.html"&gt;GUI&lt;/a&gt; to pick a color. This has some code in JavaScript that gets called when you change the color which sends an &lt;span style="font-style: italic;"&gt;event&lt;/span&gt; telling us the color has changed and what color it changed to.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CONTROLLER&lt;/span&gt;: This is where &lt;a href="http://www.lua.org/"&gt;Lua&lt;/a&gt; comes into play. Lua is the &lt;span style="font-weight: bold;"&gt;CONTROLLER&lt;/span&gt; that receives this &lt;span style="font-style: italic;"&gt;event &lt;/span&gt;from the &lt;span style="font-weight: bold;"&gt;VIEW&lt;/span&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;The Lua code calls the C++ code Player::SetColor(colorVal) with the color from the &lt;span style="font-style: italic;"&gt;event. &lt;/span&gt;This modifies the &lt;span style="font-weight: bold;"&gt;MODEL&lt;/span&gt; which changes the color of the player on screen.&lt;br /&gt;&lt;br /&gt;It might seem complicated but it actually simplified things greatly and allows us to change one aspect of the game without affecting other things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7183468439529927009?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7183468439529927009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7183468439529927009&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7183468439529927009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7183468439529927009'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/02/mvc-lua-gui-ftw.html' title='MVC LUA GUI FTW!!!'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-5988610935228151763</id><published>2008-02-07T17:17:00.000-08:00</published><updated>2008-02-11T12:23:56.002-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>rim lighting extravabonanzathon</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/kartrim.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://www.devbump.com/nimblebit.com/kartrim.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;While Brian has been toiling away at the bolts and gears under the hood of our game to implement our networking system, I have been working on getting our environments polished up and in the game. While I was playing around with &lt;a href="http://ogre3d.org/"&gt;Ogre&lt;/a&gt;'s fixed-function &lt;a href="http://www.ogre3d.org/docs/manual/manual_17.html#SEC81"&gt;environment mapping&lt;/a&gt; features, I noticed a method of environment mapping listed that I had never tried out before, cubic_normal mapping. According to the manual: " Generates 3D texture coordinates containing the camera space normal vector from the normal information held in the vertex data." While that is pretty self explanatory, let me explain to you how it is different from most of the environment mapping utilized by Zero Gear. The environment mapping I use a lot to make things look shiny, simulates a cube sitting around whatever it is applied to. I basically use a black cube with a few white highlights  around the top panel of the cube, and when applied to an object, a white highlight appears reflected as from the top of the scene. In this method, the cube is static. However, using this cubic_normal method, the cube that objects are reflecting is locked to the camera, so wherever you move around in the scene, the cube moves with you. An easy way to look at it, is one method the cube is a room you stand in, and the other method the cube is a box you wear on your head that moves around with you. This is significant becuase I can easily use this second method to simulate rim lighting. Since the environment map is locked to your view, it will always be facing in one direction, and you would just need to build a cube map that simulates a halo of light on all sides. Here is the cubemap that I came up with:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/cubemap.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://www.devbump.com/nimblebit.com/cubemap.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;To create this cubemap, I built a scene in maya of a hollow white sphere, with a black dot on the front face. Since you are always looking through the "front" of the cube, when this is applied to objects it will apply that light gradient around the top, bottom, left and right of it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is a screenshot of what this environment map looks like applied to an object, with both the cubic_normal and cubic_reflection methods:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.devbump.com/nimblebit.com/rimtest.jpg"&gt;&lt;img style="cursor: pointer;" src="http://www.devbump.com/nimblebit.com/rimtest.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;The environment map on the left remains relative to the model, and using the method on the right, remains relative to the camera.&lt;br /&gt;&lt;br /&gt;This method has some advantages and some drawbacks.&lt;br /&gt;&lt;br /&gt;The advantages:&lt;ul&gt;&lt;li&gt;It's fixed-function which means it is fast and will work on low end hardware. Also it does not require another pass for cards that support multi-texturing (almost all of them).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It can be implemented using Ogre's material script, which means I don't have to mess with a shader language.&lt;/li&gt;&lt;li&gt;Artist control. I can change the cubemap face assets, and the resulting effect without touching a line of script or code.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It looks pretty good!&lt;/li&gt;&lt;/ul&gt;The disadvantages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It's not per-pixel. This means that the effect relies on the verticies of the model to figure out how to apply the map. This means that the effect will be less accurate on very low poly objects.&lt;/li&gt;&lt;li&gt;Cubemap asset takes up memory. If this were done using a shader there would be no memory hit, but using this method requires 6 textures - one for each face of the cubemap.&lt;/li&gt;&lt;/ul&gt;After getting this effect on a lot of things in the game and some tweaking and tuning, I made some screenshots / wallpapers of the rimlighting in action for everyone to enjoy. They come in 1280x720 and 1920x1080 flavors:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; " src="http://www.devbump.com/nimblebit.com/rim_west_thumb.jpg" alt="" border="0" /&gt;&lt;br /&gt;click -&gt; &lt;a href="http://www.devbump.com/nimblebit.com/rim_west_720.jpg"&gt;720&lt;/a&gt; , &lt;a href="http://www.devbump.com/nimblebit.com/rim_west_1080.jpg"&gt;1080&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0pt 10px 10px 0pt; " src="http://www.devbump.com/nimblebit.com/rim_champ_thumb.jpg" alt="" border="0" /&gt;&lt;br /&gt;click -&gt; &lt;a href="http://www.devbump.com/nimblebit.com/rim_champ_720.jpg"&gt;720&lt;/a&gt; , &lt;a href="http://www.devbump.com/nimblebit.com/rim_champ_1080.jpg"&gt;1080&lt;/a&gt;&lt;br /&gt;&lt;img style="margin: 0pt 10px 10px 0pt; " src="http://www.devbump.com/nimblebit.com/rim_chill_thumb.jpg" alt="" border="0" /&gt;&lt;br /&gt;click -&gt; &lt;a href="http://www.devbump.com/nimblebit.com/rim_chill_720.jpg"&gt;720&lt;/a&gt; , &lt;a href="http://www.devbump.com/nimblebit.com/rim_chill_1080.jpg"&gt;1080&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-5988610935228151763?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/5988610935228151763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=5988610935228151763&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5988610935228151763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/5988610935228151763'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/02/rim-lighting-extravabonanzathon.html' title='rim lighting extravabonanzathon'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-6157884625683881859</id><published>2008-01-24T23:58:00.001-08:00</published><updated>2008-01-25T00:03:54.903-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Champion Circuit and first look at kart driving</title><content type='html'>Since getting back from our holiday hiatus, we have been working on our vehicle physics as well as a new track to test them on. Here is a look at another new track, Champion Circuit, as well as a preliminary glimpse at the basic implementation of our driving model using &lt;a href="http://www.bulletphysics.com/Bullet/"&gt;Bullet&lt;/a&gt; physics. Still lots of things to come! &lt;a href="http://www.vimeo.com/634940"&gt;Click here&lt;/a&gt; to see the video in higher resolution on vimeo.&lt;br /&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="http://www.vimeo.com/moogaloop.swf?clip_id=634940&amp;amp;server=www.vimeo.com&amp;amp;fullscreen=1&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=01AAEA" height="225" width="400"&gt; &lt;param name="quality" value="best"&gt; &lt;param name="allowfullscreen" value="true"&gt; &lt;param name="scale" value="showAll"&gt; &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=634940&amp;amp;server=www.vimeo.com&amp;amp;fullscreen=1&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=01AAEA"&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/634940/l:embed_634940"&gt;Zero Gear - Champion Circuit&lt;/a&gt; from &lt;a href="http://www.vimeo.com/user296464/l:embed_634940"&gt;marshmonkey&lt;/a&gt; on &lt;a href="http://vimeo.com/l:embed_634940"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-6157884625683881859?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/6157884625683881859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=6157884625683881859&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6157884625683881859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6157884625683881859'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2008/01/champion-circuit-and-first-look-at-kart.html' title='Champion Circuit and first look at kart driving'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6483520008883064921.post-2357500383979144933</id><published>2007-12-22T16:13:00.000-08:00</published><updated>2007-12-22T16:28:38.380-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>Customization GUI video</title><content type='html'>As a little holiday present we have whipped up a little video of the customization menu we created hooked up and working in the game. &lt;a href="http://www.vimeo.com/448510"&gt;View it on Vimeo&lt;/a&gt; for better quality.&lt;br /&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" width="640" height="360" data="http://www.vimeo.com/moogaloop.swf?clip_id=448510&amp;amp;server=www.vimeo.com&amp;amp;fullscreen=1&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=01AAEA"&gt; &lt;param name="quality" value="best" /&gt; &lt;param name="allowfullscreen" value="true" /&gt; &lt;param name="scale" value="showAll" /&gt; &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=448510&amp;amp;server=www.vimeo.com&amp;amp;fullscreen=1&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=01AAEA" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/448510/l:embed_448510"&gt;Zero Gear player customization video&lt;/a&gt; from &lt;a href="http://www.vimeo.com/user296464/l:embed_448510"&gt;marshmonkey&lt;/a&gt; on &lt;a href="http://vimeo.com/l:embed_448510"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Happy Holidays from NimbleBit!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2357500383979144933?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2357500383979144933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2357500383979144933&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2357500383979144933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2357500383979144933'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2007/12/customization-gui-video.html' title='Customization GUI video'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-6268748903239062955</id><published>2007-12-17T17:10:00.000-08:00</published><updated>2007-12-17T17:30:10.852-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>I like GUI things</title><content type='html'>I spent the last week immersing myself in css and hacking together some javascript in order to make our GUIs that are &lt;a href="http://nimblebit.blogspot.com/2007/11/webify-your-gui.html"&gt;rendered in Navi&lt;/a&gt;.  After learning a little bit and checking out what kind of neat javascript stuff is out there, I put together a tabbed scrolling menu that will allow the user to browse through different models to customize their kart / character.&lt;br /&gt;&lt;br /&gt;&lt;a href="#" OnClick="window.open('http://www.devbump.com/nimblebit.com/customization/customizekarts.html', 'pagetitle', 'height=332, width=600');"&gt;&lt;img src="http://www.devbump.com/nimblebit.com/gui.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;click on the window above to launch a working popup version of the gui.&lt;br /&gt;&lt;br /&gt;The neat thing about using the Gecko engine to render your gui in your game is that if you are using the Firefox browser, you are using the same rendering technology as you are seeing the gui with now.  The only difference will be that the things that don't do anything when you click on them in your browser, will be tirggering functions in the game through Lua.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-6268748903239062955?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/6268748903239062955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=6268748903239062955&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6268748903239062955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/6268748903239062955'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2007/12/i-like-gui-things.html' title='I like GUI things'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-2981410360498160594</id><published>2007-12-10T15:18:00.000-08:00</published><updated>2007-12-10T15:20:39.847-08:00</updated><title type='text'>a few wheels</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/wheels.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://nimblebit.com/wheels.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Here are a couple different wheel variations I did this morning.  I also added some color on the wheel to be customizable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2981410360498160594?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2981410360498160594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2981410360498160594&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2981410360498160594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2981410360498160594'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2007/12/few-wheels.html' title='a few wheels'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7712935925205966481</id><published>2007-12-07T09:29:00.000-08:00</published><updated>2007-12-07T15:32:15.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>I wanna pick the color</title><content type='html'>In taking the &lt;a href="http://nimblebit.blogspot.com/2007/11/colors.html"&gt;kart color concept&lt;/a&gt; a bit further, we spent some time last night working on a color picker GUI. You can see the results of our work in this video.&lt;br /&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" width="506" height="354" data="http://www.vimeo.com/moogaloop.swf?clip_id=421774&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=01AAEA"&gt; &lt;param name="quality" value="best" /&gt; &lt;param name="allowfullscreen" value="true" /&gt; &lt;param name="scale" value="showAll" /&gt; &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=421774&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=01AAEA" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/421774/l:embed_421774"&gt;ZeroGear color picker&lt;/a&gt; from &lt;a href="http://www.vimeo.com/user296464/l:embed_421774"&gt;marshmonkey&lt;/a&gt; on &lt;a href="http://vimeo.com/l:embed_421774"&gt;Vimeo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now here is why this is cool. We did this using &lt;a href="http://nimblebit.blogspot.com/2007/11/webify-your-gui.html"&gt;Navi + Lua&lt;/a&gt;. The C++ framework only needed slight modifications. I feel this was done extremely quick and has a nice, clean result. Here is how we did it.&lt;br /&gt;&lt;br /&gt;We got the color picker html + javascript code from &lt;a href="http://www.nofunc.com/Color_Picker_%28Square%29/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And here is the part that I added to the color picker javascript:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function HSVupdate(v)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;var tempColor = HSV=v?v:slideHSV;&lt;br /&gt;&amp;nbsp;&amp;nbsp;v = hsv2hex(tempColor);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;$('plugHEX').innerHTML=v;&lt;br /&gt;&amp;nbsp;&amp;nbsp;$S('plugCUR').background='#'+v;&lt;br /&gt;&amp;nbsp;&amp;nbsp;$S('plugID').background='#'+v;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;$ND('HandleEvent', {LUAFUNC: 'SetKartColor', Color: v}).send();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;return(v);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This function is called whenever the user changes the color in the GUI. The line that starts with "$ND" is the message from the Navi GUI to Lua. "$ND" is the javascript code included with Navi that sends the message. "HandleEvent" is the function that Navi calls in C++ and LUAFUNC is the Lua function that "HandleEvent" will call when this event happens. "SetKartColor" is the name of the Lua function and it is passed the new color as a parameter.&lt;br /&gt;&lt;br /&gt;Here is that Lua function:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function SetKartColor(guiArgs)&lt;br /&gt;&lt;br /&gt;    &amp;nbsp;&amp;nbsp;local colorValue = GetNaviMultiValue(guiArgs, "Color")&lt;br /&gt;    &amp;nbsp;&amp;nbsp;local color = colorValue:str()&lt;br /&gt;    &amp;nbsp;&amp;nbsp;local colorNum = hex.to_dec("0x" .. color)&lt;br /&gt;&lt;br /&gt;    &amp;nbsp;&amp;nbsp;local red = bit.brshift(colorNum, 16) / 255&lt;br /&gt;    &amp;nbsp;&amp;nbsp;local green = bit.brshift(colorNum, 8)&lt;br /&gt;    &amp;nbsp;&amp;nbsp;green = bit.band(green, 255) / 255&lt;br /&gt;    &amp;nbsp;&amp;nbsp;local blue = bit.band(colorNum, 255) / 255&lt;br /&gt;    &amp;nbsp;&amp;nbsp;local alpha = 1&lt;br /&gt;    &amp;nbsp;&amp;nbsp;kart:SetColor(red, green, blue, alpha)&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It is basically just a conversion function. The javascript code gives the color as a hex value in this format "4499FF". So I do some conversion with &lt;a href="http://luaforge.net/projects/bit"&gt;this&lt;/a&gt; lua bit library to get the color as red, green, and blue float values to pass to the C++ code.&lt;br /&gt;&lt;br /&gt;And here is the SetColor C++ code that changes the color of the kart:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;void OGREPlayerKart::SetColor(float red, float green, float blue, float alpha)&lt;br /&gt;{&lt;br /&gt;  &amp;nbsp;&amp;nbsp;Ogre::Entity * testEnt = kart-&amp;gt;GetEntity();&lt;br /&gt;  &amp;nbsp;&amp;nbsp;for (unsigned int i = 0; i &amp;lt;&amp;gt;getNumSubEntities(); i++)&lt;br /&gt;     &amp;nbsp;&amp;nbsp;{&lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ogre::SubEntity * testSubEnt =         testEnt-&amp;gt;getSubEntity(i);&lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ogre::MaterialPtr testMatPtr =         testSubEnt-&amp;gt;getMaterial();&lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ogre::Technique * testTech =         testMatPtr-&amp;gt;getBestTechnique();&lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ogre::Pass * testPass =         testTech-&amp;gt;getPass(&amp;quot;ColorTweak&amp;quot;);&lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ogre::TextureUnitState * testTUS =         testPass-&amp;gt;getTextureUnitState(&amp;quot;ColorTweak&amp;quot;);&lt;br /&gt;        &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testTUS-&amp;gt;setColourOperationEx(Ogre::LBX_BLEND_TEXTURE_ALPHA,  Ogre::LBS_MANUAL, Ogre::LBS_CURRENT, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ogre::ColourValue(red, green,  blue, alpha), Ogre::ColourValue(1, 1, 1, 1), 0);&lt;br /&gt;     &amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This C++ function is where I want to improve. I want to support changing colors on different parts of the player and karts (shirt, skin, paint, windshield, whatever). Also, different karts will have different parts that you can change the color of.&lt;br /&gt;&lt;br /&gt;As you can see, this was all done in only a few lines of code. I bet you can see how easy something like a color picker is when you are using HTML/JS/CSS and Lua for your GUI.&lt;br /&gt;&lt;a href="http://nimblebit.blogspot.com/2007/11/webify-your-gui.html"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7712935925205966481?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7712935925205966481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7712935925205966481&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7712935925205966481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7712935925205966481'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2007/12/i-wanna-pick-color.html' title='I wanna pick the color'/><author><name>Brian Cronin</name><uri>http://www.blogger.com/profile/10505672356273635766</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-6483520008883064921.post-3128698438809797835</id><published>2007-12-06T18:49:00.000-08:00</published><updated>2007-12-06T18:53:18.571-08:00</updated><title type='text'>NimbleBit website goes live</title><content type='html'>If you check out &lt;a href="http://nimblebit.com"&gt;http://www.NimbleBit.com&lt;/a&gt; you will see that I have added some much needed content.  It's not much, but it will do for our first little homestead on the world wide web.  A word of advice: don't ride the elephant!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-3128698438809797835?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/3128698438809797835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=3128698438809797835&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3128698438809797835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/3128698438809797835'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2007/12/nimblebit-website-goes-live.html' title='NimbleBit website goes live'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-2194646966838757482</id><published>2007-12-04T16:55:00.000-08:00</published><updated>2007-12-04T17:05:11.156-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>if you can read this, tip me over</title><content type='html'>This one is in memory of the dune buggy we used to have when I was a kid.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/kart006a.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://nimblebit.com/kart006a.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/kart006b.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://nimblebit.com/kart006b.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/kart006show.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://nimblebit.com/kart006show.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-2194646966838757482?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/2194646966838757482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=2194646966838757482&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2194646966838757482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/2194646966838757482'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2007/12/if-you-can-read-this-tip-me-over.html' title='if you can read this, tip me over'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-8775614827747055272</id><published>2007-12-04T11:11:00.000-08:00</published><updated>2007-12-04T11:14:54.392-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>saftey first</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/charshow.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://nimblebit.com/charshow.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Just a quick post to show what the new character I did looks like modeling the default helmet and goggles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-8775614827747055272?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/8775614827747055272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=8775614827747055272&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8775614827747055272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/8775614827747055272'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2007/12/saftey-first.html' title='saftey first'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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-6483520008883064921.post-7723996006098493747</id><published>2007-11-30T11:46:00.000-08:00</published><updated>2007-12-04T11:15:07.163-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='media'/><title type='text'>more color customization examples</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://nimblebit.com/rodcolors.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 512px;" src="http://nimblebit.com/rodcolors.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The hotrod kart is a great example of how the color customization system could really shine, so I added a customizable color for the flames and took some pictures of a few combinations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6483520008883064921-7723996006098493747?l=nimblebit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nimblebit.blogspot.com/feeds/7723996006098493747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6483520008883064921&amp;postID=7723996006098493747&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7723996006098493747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6483520008883064921/posts/default/7723996006098493747'/><link rel='alternate' type='text/html' href='http://nimblebit.blogspot.com/2007/11/more-color-customization-examples.html' title='more color customization examples'/><author><name>David Marsh</name><uri>http://www.blogger.com/profile/09363782511533454475</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>
