<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Crown and Cutlass Blog</title>
	<atom:link href="http://www.crownandcutlass.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crownandcutlass.com/blog</link>
	<description>The Crown and Cutlass Developer's Blog</description>
	<lastBuildDate>Sat, 20 Jun 2009 21:20:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Introducing Broad Shoulder Development</title>
		<link>http://www.crownandcutlass.com/blog/2009/06/20/introducing-broad-shoulder-development/</link>
		<comments>http://www.crownandcutlass.com/blog/2009/06/20/introducing-broad-shoulder-development/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 21:20:45 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[Protocce]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/?p=46</guid>
		<description><![CDATA[We are excited to announce a new project of ours, Broad Shoulder Development.  Our initial focus is to publish iPhone games.  We have a pretty complete 2D engine, and are hoping to get a simple game published soon. You can follow our progress using twitter @BroadShoulder.  Eventually, we would like to publish a version of [...]]]></description>
			<content:encoded><![CDATA[<p>We are excited to announce a new project of ours, <a id="c475" title="Broad Shoulder Development" href="http://www.broadshoulder.com/">Broad Shoulder Development</a>.  Our initial focus is to publish iPhone games.  We have a pretty complete 2D engine, and are hoping to get a simple game published soon. You can follow our progress using twitter @<a href="http://twitter.com/broadshoulder">BroadShoulder</a>.  Eventually, we would like to publish a version of Crown and Cutlass for the iPhone but we want to get a feel for the platform first.</p>
<p>Now, this raises questions about what is going on with Crown and Cutlass and how Broad Shoulder Development will relate to the Crown and Cutlass project.  We don&#8217;t have all the details ironed out, but really this is just a way for us to focus our development efforts.  None of the Crown and Cutlass source will be closed, none of the artwork licenses will change.  Unfortunately, in order to recover the cost of Apple&#8217;s developer program and other business expenses, we are planning to charge for the iPhone games we develop.  We will have to see exactly how this works out, but we&#8217;d like to do something along the lines of Ogre&#8217;s dual-license (perhaps GPL?) with commercial support.</p>
<p>Our current 2D iPhone engine is really a port of the work we did for Protocce, our new Crown and Cutlass engine.  We have simplified a lot due to the hardware restrictions, but I&#8217;m hoping that we can use the experience we gain actually using the engine on the iPhone to improve Crown and Cutlass itself.  As I said, we would love to get a version of Crown and Cutlass running on the iPhone too.  While the gameplay might have to be rethought a little, I think that would be very doable and really fun to play!  Anyway, all that is to say, we are branching out and trying some new stuff, but don&#8217;t worry Crown and Cutlass isn&#8217;t going away.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2009/06/20/introducing-broad-shoulder-development/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MacBook Pro Troubles</title>
		<link>http://www.crownandcutlass.com/blog/2008/07/08/macbook-pro-troubles/</link>
		<comments>http://www.crownandcutlass.com/blog/2008/07/08/macbook-pro-troubles/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 21:37:00 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/?p=42</guid>
		<description><![CDATA[As I mentioned before, I recently made the switch to a mac.  I have been pretty happy, although I still don&#8217;t quite feel at home in terms of my development environment.  Xcode and CMake don&#8217;t quite seem to get along (and yes it is still broken with CMake 2.6.0, I just tried it), [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned before, I <a href="http://www.crownandcutlass.com/blog/2007/10/31/i-made-the-switch-or-i-am-trying-to/">recently made the switch to a mac</a>.  I have been pretty happy, although I still don&#8217;t quite feel at home in terms of my development environment.  <a href="http://www.cmake.org/pipermail/cmake/2008-January/019091.html">Xcode and CMake don&#8217;t quite seem to get along</a> (and yes it is still broken with CMake 2.6.0, I just tried it), so I&#8217;m actually using the CMake Makefile generator and Eclipse as my IDE.  I could probably still use Xcode, but I&#8217;m comfortable with Eclipse from linux.  Also, it appears that the provided al.h has a pragma that is unrecognized by Apple&#8217;s gcc, so it generates a warning.  I should report that&#8230;</p>
<p>Anyway, the other day, I shut my laptop so it went to sleep, put it in my bag, and ate lunch.  After lunch, I opened the lid and found that my keyboard and trackpad no longer worked.  I tried rebooting, etc. and even a workaround that I found on the apple support forums, but nothing made any difference.  I was pretty sure it was hardware, since I couldn&#8217;t even get the a boot menu for bootcamp.  I managed to find a USB keyboard and mouse on campus, and confirm that the system still worked otherwise.</p>
<p>I was near an apple store, so I just ran over there and had one of their &#8220;geniuses&#8221; look at it.  That name kills me, but I think it&#8217;s just a part of the sort of smug apple culture.  My &#8220;genius&#8221; was helpful, but all he did was confirm it didn&#8217;t work.  He didn&#8217;t seem at all surprised so I don&#8217;t think this is a rare issue.  Apparently, a keyboard firmware update was supposed to prevent this from happening, but I had it installed and it didn&#8217;t do me any good.</p>
<p>They ordered me a new keyboard and trackpad, and I kept my laptop until it came in, so I only had to be without my computer for a day once the part got there.  After that it worked fine for a few weeks.  However, it has stopped working again.  At first, I would be using the trackpad and somehow OS X would think I was trying to eject the CD drive so I&#8217;d see the eject icon on the screen.  A little while after that, I would get a kernel panic with a stack trace in the trackpad driver.  From there, it just kind of slowly degraded to not working at all.  For a little while, it worked in XP but not OS X, but now it doesn&#8217;t work in either OS.  That means I get to have another appointment to see a genius this week.</p>
<p>That is pretty inconvienient.  I am trying to do work on campus this summer for a research project, but I can&#8217;t when my keyboard isn&#8217;t working.  I also need to be able to VPN in to work in case an issue comes up, but again, I can&#8217;t do that without my laptop working.  I thought Macs were supposed to be wonderful pieces of hardware (and that was why I paid extra for it), but after talking to the Mac owners I know it seems like almost every one of them has had to have their system replaced at least once since they got it.  Maybe we are all witless users who screw up our systems so badly they can&#8217;t be salvaged.  However, I never had these sorts of issues with my old Dell.  I am pretty disappointed in Apple at the moment&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2008/07/08/macbook-pro-troubles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Python and Crown and Cutlass</title>
		<link>http://www.crownandcutlass.com/blog/2008/06/17/python-and-crown-and-cutlass/</link>
		<comments>http://www.crownandcutlass.com/blog/2008/06/17/python-and-crown-and-cutlass/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 16:00:32 +0000</pubDate>
		<dc:creator>collin</dc:creator>
				<category><![CDATA[Protocce]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/?p=43</guid>
		<description><![CDATA[David has posted a couple times now about python. We certainly had a good time going to PyCon and had a good time doing PyWeek. I really am a fan of Python. I think it worked really well for us during PyWeek and the other times I&#8217;ve used it. I have other thoughts on both items, [...]]]></description>
			<content:encoded><![CDATA[<p id="rmf3">David has posted a <a href="http://www.crownandcutlass.com/blog/2008/04/17/pyweek-6/">couple times</a> now about <a href="http://www.crownandcutlass.com/blog/2008/02/28/pycon-2008/">python</a>. We certainly had a good time going to PyCon and had a good time doing PyWeek. I really am a fan of Python. I think it worked really well for us during PyWeek and the other times I&#8217;ve used it. I have other thoughts on both items, but I think they&#8217;re better left for another day. What I want to focus on is how is all this affects our work on Crown and Cutlass.  </p>
<p id="w9di">If anyone is still with us, watching the blog or the forums for activity, you probably have noticed a considerable slowdown in work. This has been caused by a couple things. First, and I think most importantly, is that fact that David went <a href="http://www.crownandcutlass.com/blog/2007/06/14/quick-update/">back to school</a> 8 months ago. Since we work together on Crown and Cutlass quite a bit, our motivation often ebbs and flows together. Since David has less time to work on it, I find myself with less motivation. The other issue I have, is that when I take time off from Crown and Cutlass, I have a very hard time jumping back into the code. Getting back into a C++ mindframe from Delphi (which I use at work) is really difficult.  </p>
<p id="oc2v">Based on that, we&#8217;re going to be writing as much of the game play code as possible in Python. By exposing our Protocce engine to Python, we&#8217;ll be taking advantage of the rewrite work we&#8217;ve been doing as well as moving to a more hospitable development environment. I think this will speed up development on Crown and Cutlass by removing <a href="http://en.wikipedia.org/wiki/Accidental_complexity">accidental complexity</a>.</p>
<p id="qov9">We&#8217;ve long talked about scripting as a major component to our game engine, but have always put it off for another day. Now, by using Python, all (or most) of our actual game code will be done in script. It gains us the flexibility of Python, while maintaining the speed of C++ in the engine. Anything that needs to be sped up can be implemented in C++.</p>
<p id="xmp_">I think is an exciting development for Crown and Cutlass. It gives us more opportunity to think about the gameplay and avoid the problems we&#8217;ve had at times in C++. You should be seeing more exciting developments over the summer as we make more progress on Crown and Cutlass.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2008/06/17/python-and-crown-and-cutlass/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PyWeek 6</title>
		<link>http://www.crownandcutlass.com/blog/2008/04/17/pyweek-6/</link>
		<comments>http://www.crownandcutlass.com/blog/2008/04/17/pyweek-6/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 00:26:24 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/2008/04/17/pyweek-6/</guid>
		<description><![CDATA[Collin and I participated in PyWeek6 (week long challenge to make a game with Python) with a mutual friend who has a Python game project he is working on in his spare time.  He actually went to PyCon with us, so that was where this idea came up.  It was interesting and we [...]]]></description>
			<content:encoded><![CDATA[<p>Collin and I participated in <a href="http://www.pyweek.org/6/">PyWeek6</a> (week long challenge to make a game with Python) with a mutual friend who has a Python game project he is working on in his spare time.  He actually went to <a href="http://www.crownandcutlass.com/blog/2008/02/28/pycon-2008/">PyCon with us</a>, so that was where this idea came up.  It was interesting and we put in a lot of time on it.  Unfortunately, I had a test and two projects due for school that week too, so I didn&#8217;t end up sleeping much&#8230;  We did come up with a game (you can see it <a href="http://www.pyweek.org/e/binary-defense/">here</a>), although I think we all wish we could have had another day or two.  We are getting together this weekend to have a post-mortem.  I think a lot of stuff went well (and we actually got something done in a week!), and of course I think a lot of stuff could have gone better.  For example, I spent a good chunk of the week working on a quadtree for culling the world.  The world ended up being much smaller than we originally planned so the overhead of the quadtree (implemented in Python) killed any potential performance gains.  It also turns out we also unwittingly used some 3rd party <a href="http://www.pyweek.org/d/1722/#comment-3584">libs that were released after the library deadline</a> (a month before the start of the competition), so we technically could be disqualified.  Oh well.  I don&#8217;t think any of us really cares about winning the competition, we were more in it for the challenge.  However, I am looking forward to hearing some feedback from the other contestants.<br id="ih7z" /><br id="r5wq" />That was by far the largest Python project that I have worked on, so it was a real learning experience for me.   Python has some great stuff and some really frustrating stuff.  I learned that this is not the correct way to use assert:</p>
<pre>assert(False, 'error')</pre>
<p>That will never be triggered because assert is actually a statement, not a built in function.  This is the correct way to use assert:</p>
<pre>assert False, 'error'</pre>
<p>Note the lack of parentheses.  With the parentheses, it evaluates the tuple &#8220;(False, &#8216;error&#8217;)&#8221; as True since it is not an empty tuple, so it effectively becomes &#8220;assert True&#8221;. I&#8217;ve heard <a href="http://www.python.org/dev/peps/pep-3000/">Python 3000</a> will <a href="http://www.python.org/dev/peps/pep-3105/">change &#8220;print&#8221; to a function</a> instead of a statement, but I haven&#8217;t heard anything about &#8220;assert&#8221;.  Ugh. We also encountered some issues with performance doing &#8220;engine-level&#8221; stuff in Python.  However, for a lot of what we required to make a game, Python let us do it quickly and easily.  Integrating the different stuff we all worked on went well.  <a href="http://en.wikipedia.org/wiki/Duck_typing">Duck typing</a> makes development much easier than having to use interfaces/templates/inheritance/whatever (although it seems like it really requires good automated testing to be safe).<br id="i2mp" /><br id="dhpl" />Perhaps I&#8217;ll post more after our post-mortem, but try out our entry if you want.   There are installation instructions included with the tar.gz file (also <a href="http://pyweek.org/d/1711/">read the errata</a> since there are a few errors in the readme).  You will need Python 2.5, but beyond that setuputil will install the other dependencies automatically.  If you try it, give us some feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2008/04/17/pyweek-6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PyCon 2008</title>
		<link>http://www.crownandcutlass.com/blog/2008/02/28/pycon-2008/</link>
		<comments>http://www.crownandcutlass.com/blog/2008/02/28/pycon-2008/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 00:38:37 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[Protocce]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/2008/02/28/pycon-2008/</guid>
		<description><![CDATA[Collin and I are both signed up to go to PyCon 2008.  While we don&#8217;t use Python in the Crown and Cutlass code itself, we have used it for several utilities to support our development.  For example, we wrote a script to update CMake build numbers that gets used in the Protocce build [...]]]></description>
			<content:encoded><![CDATA[<p>Collin and I are both signed up to go to <a href="http://us.pycon.org/2008/about/">PyCon 2008</a>.  While we don&#8217;t use Python in the Crown and Cutlass code itself, we have used it for several utilities to support our development.  For example, we wrote a <a href="http://crownandcutlass.svn.sourceforge.net/viewvc/crownandcutlass/trunk/Protocce/cmake/IncBuildNumber.py?view=markup">script to update CMake build numbers</a> that gets used in the Protocce build (here is the <a href="http://crownandcutlass.svn.sourceforge.net/viewvc/crownandcutlass/trunk/Protocce/src/CMakeLists.txt?view=markup">CMake file that uses it</a>).  We also have a <a href="http://crownandcutlass.svn.sourceforge.net/viewvc/crownandcutlass/trunk/copyright.py?view=markup">script that updates the year in the license text</a> in all of our source code.  None of that is too complicated and none of it took very long to develop, but Python has made it pretty easy.  I&#8217;ve done a few other little odd scripts in Python, and I use it at work whenever I need to do quick one-time text munging for some reason.  Basically, I use Python for everything I used to do with Perl except it doesn&#8217;t take me an hour to remember how to get started and when I return to the code a few weeks/months later it still makes some sense to me.</p>
<p>Anyway, we are excited about PyCon.  I am looking forward to learning about <a href="http://www.stackless.com">Stackless</a> and there is a talk about embedding Python in Counter-Strike: Source which should be really interesting.  Plus there is a bunch of stuff about <a href="http://www.jython.org/Project/index.html">Jython</a> (&#8220;Jython on the Joint Strike Fighter&#8221;, how cool is that?!?), <a href="http://www.codeplex.com/IronPython">IronPython</a>, and a many other talks that look good.  Unfortunately, it doesn&#8217;t look like you can link to descriptions of individual talks, but if you are interested you should be able to find what I have mentioned in the <a href="http://us.pycon.org/2008/conference/talks/">complete list of scheduled talks</a> without much effort.</p>
<p>If anyone reading this wants to get together at the conference, let us know.  I&#8217;d enjoy meeting some people who have interest in Crown and Cutlass, and you could give us a hard time about not making more progress on the game!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2008/02/28/pycon-2008/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wiki Update</title>
		<link>http://www.crownandcutlass.com/blog/2008/01/10/wiki-update/</link>
		<comments>http://www.crownandcutlass.com/blog/2008/01/10/wiki-update/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 19:26:56 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/2008/01/10/wiki-update/</guid>
		<description><![CDATA[As you may have noticed, we recently had some issues with our wiki.  We were using a wiki system that we could install from the web host&#8217;s control panel.  However, it did not get automatically updated.  I guess someone exploited a security flaw in the wiki software and the host noticed unusual load on the [...]]]></description>
			<content:encoded><![CDATA[<p>As you may have noticed, we recently had some issues with our wiki.  We were using a wiki system that we could install from the web host&#8217;s control panel.  However, it did not get automatically updated.  I guess someone exploited a security flaw in the wiki software and the host noticed unusual load on the server machine from our account.  Rather than continue to mess around with our own wiki, we decided to just transition over to a new <a href="http://crownandcutlass.wiki.sourceforge.net/">Crown and Cutlass wiki</a> hosted by SF.net.</p>
<p>The other day I got the content from the old site running on a local linux box so I started transitioning content to the new wiki.  I also wrote a PHP script to forward links from the old wiki to the new wiki pages.  I don&#8217;t have all the content there yet, but I think it will be fairly painless to move it over.  This is also a good opportunity for us to flush out some old stuff from the wiki and update the content.  If you notice a missing page or have questions about the wiki, leave a comment here or email me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2008/01/10/wiki-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment Spam</title>
		<link>http://www.crownandcutlass.com/blog/2008/01/09/comment-spam/</link>
		<comments>http://www.crownandcutlass.com/blog/2008/01/09/comment-spam/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 21:31:29 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/2008/01/09/comment-spam/</guid>
		<description><![CDATA[When we originally set up this blog, we had all comments go into the moderation queue so that we could catch spam or inappropriate comments.  After a few weeks, we started getting dozens of spam comments a day, so Collin installed the reCAPTCHA plugin.  We both liked the idea of helping to digitize books and [...]]]></description>
			<content:encoded><![CDATA[<p>When we originally set up this blog, we had all comments go into the moderation queue so that we could catch spam or inappropriate comments.  After a few weeks, we started getting dozens of spam comments a day, so Collin installed the <a href="http://recaptcha.net/">reCAPTCHA </a>plugin.  We both liked the idea of helping to digitize books and get rid of our spam at the same time.  However, the spam comments kept appearing in our moderation queue so ever few months one of us would have to go clear out hundreds of spam comments (it even broke a thousand at least once).  That was annoying but not bad enough that either of us cared enough to figure it out.</p>
<p>The other day, I finally got tired of the spam and read some of the <a href="http://groups.google.com/group/recaptcha/topics">reCAPTCHA support forum</a> posts and think we got the problem figured out.  It sounds like reCAPTCHA allows comments to go through that fail the CAPTCHA but it will mark the comment as spam automatically.  I guess Wordpress was putting the comments into the moderation queue before reCAPTCHA could mark them as spam though.  Anyway, I hope I really got it right and we won&#8217;t all of a sudden get flooded with spam comments.  So far so good&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2008/01/09/comment-spam/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Semester done</title>
		<link>http://www.crownandcutlass.com/blog/2007/12/10/semester-done/</link>
		<comments>http://www.crownandcutlass.com/blog/2007/12/10/semester-done/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 21:59:38 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[Protocce]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/2007/12/10/semester-done/</guid>
		<description><![CDATA[I finished the first semester of my MS program.  It was interesting in some ways, frustrating in some ways, and overall just kind of weird to be back in school.  I may write more about my thoughts of coming back into academia (while also trying to stay in the business world and keep a small [...]]]></description>
			<content:encoded><![CDATA[<p>I finished the first semester of my MS program.  It was interesting in some ways, frustrating in some ways, and overall just kind of weird to be back in school.  I may write more about my thoughts of coming back into academia (while also trying to stay in the business world and keep a small open-source project running) at some point.  But for now, I&#8217;m excited to finally have time to work on getting Protocce to build in osx.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2007/12/10/semester-done/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I made the switch (or I am trying to)&#8230;</title>
		<link>http://www.crownandcutlass.com/blog/2007/10/31/i-made-the-switch-or-i-am-trying-to/</link>
		<comments>http://www.crownandcutlass.com/blog/2007/10/31/i-made-the-switch-or-i-am-trying-to/#comments</comments>
		<pubDate>Wed, 31 Oct 2007 21:04:50 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ogre]]></category>
		<category><![CDATA[Protocce]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/2007/10/31/i-made-the-switch-or-i-am-trying-to/</guid>
		<description><![CDATA[I have finally done it, I bought a Mac. A few weekends ago, I bought a MacBook Pro and then last weekend I upgraded to Leopard. The computer was expensive (I got an academic discount and the upgrade to Leopard was basically free, but still&#8230;) but it sure is a nice machine.  I now [...]]]></description>
			<content:encoded><![CDATA[<p>I have finally done it, I bought a Mac. A few weekends ago, I bought a MacBook Pro and then last weekend I upgraded to Leopard. The computer was expensive (I got an academic discount and the upgrade to Leopard was basically free, but still&#8230;) but it sure is a nice machine.  I now have a video card with decent shader support, so I am excited to play around with that.  It is also nice to have a unix-based machine with decent driver support out of the box.  The wireless card actually works!  Amazing!  However, I really feel lost trying to do development in OS X and in some ways I feel lost just trying to use the computer.</p>
<p>I really have not quite gotten used to the way the filesystem is arranged.  I guess I am comfortable with it not being like Windows, but I want it to be like linux.  In Windows, there is no &#8220;/usr/lib/&#8221; or &#8220;/usr/local/lib/&#8221; for libraries so you put them somewhere else (like &#8220;C:\OgreSDK&#8221; or in program files or something).  In OS X there is a &#8220;/usr/lib/&#8221; and &#8220;/usr/local/lib/&#8221; but it looks like the preferred place to install libraries is into &#8220;/Libraries/&#8221; which is just weird. Which should I use?  Should I treat it as a unix machine, or embrace the weird OS X stuff?</p>
<p>The keyboard also is a little annoying.  I want a &#8220;home&#8221; and an &#8220;end&#8221; key.  I want a &#8220;del&#8221; key that is separate from the backspace key.  I guess you can do &#8220;command-right&#8221; to get to the end of the line, but that does not seem to work consistently in all applications. I also really think only putting one mouse button on the laptops is a poor decision.  And no, I don&#8217;t buy the argument that using modifier keys for things like that or to get a right-click is somehow more efficient.</p>
<p>I am also trying to figure out how to get dependencies for Protocce installed.  Ogre was really easy since they provide a framework. If I remember correctly from his blog, Steve Streeting got a Mac recently so OS X has a higher priority on the Ogre team.  The ogg and vorbis packages came with XCode projects to make frameworks, so building and installing them was really easy.  I couldn&#8217;t find a binary boost distribution, so I built/installed it just like I would have in linux (&#8220;./configure &amp;&amp; make &amp;&amp; make install&#8221;). That is what boost recommends, but I&#8217;m not sure that is the OS X way to do things.  At this point though, I don&#8217;t think there is reason to go through the trouble of making a framework (and really figuring out what frameworks are all about, how they differ from bundles, what a bundle is, etc.).  Unfortunately, OS X support in CEGUI seems to be lagging behind.  CEGUI seems to be kind of quiet lately anyway (Crazy Eddie appears to have left the project, hopefully it can rise from the ashes and continue strongly eventually).  I am going to try building it from SVN where I hope the OS X support is a little better.</p>
<p>XCode seems like it will be nice.  I need to try a &#8220;hello world&#8221; project in it, but it looks like CMake can generate XCode projects.  That will be save a lot of work, since it will shield me from having to set up a project manually until after I see how Xcode handles projects a little.  I&#8217;m sure it&#8217;ll still take some getting used to, but I&#8217;m interested to see how it compares to Eclipse with the CDT and Visual Studio.</p>
<p>Anyway, if you have tips on getting started with development is OS X, let me know. I found Apple&#8217;s <a href="http://developer.apple.com/gettingstarted/">getting started</a> page and it seems there could be some good stuff in there., but I have a lot to learn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2007/10/31/i-made-the-switch-or-i-am-trying-to/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Unit Test Framework</title>
		<link>http://www.crownandcutlass.com/blog/2007/08/30/unit-test-framework/</link>
		<comments>http://www.crownandcutlass.com/blog/2007/08/30/unit-test-framework/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 20:51:28 +0000</pubDate>
		<dc:creator>David Thulson</dc:creator>
				<category><![CDATA[Protocce]]></category>

		<guid isPermaLink="false">http://www.crownandcutlass.com/blog/2007/08/30/unit-test-framework/</guid>
		<description><![CDATA[In my previous post about why I&#8217;m excited for our rewrite, I forgot to mention our unit test framework.  It is really quick and dirty, and we don&#8217;t do anything fancy to get around the fact that certain things are just hard to deal with (e.g. &#8220;did that sound right?&#8221; or &#8220;did that draw [...]]]></description>
			<content:encoded><![CDATA[<p>In my previous <a href="http://www.crownandcutlass.com/blog/2007/08/23/why-im-excited-about-the-rewrite/">post about why I&#8217;m excited for our rewrite</a>, I forgot to mention our <a href="http://en.wikipedia.org/wiki/Unit_test">unit test</a> framework.  It is really quick and dirty, and we don&#8217;t do anything fancy to get around the fact that certain things are just hard to deal with (e.g. &#8220;did that sound right?&#8221; or &#8220;did that draw correctly on screen?&#8221;).  However, the unit test framework has really allowed us to be sure what we are building on is solid and behaves as we expect it.  It has also great been really great for testing a change quickly.  For example, the other day <a href="http://www.crownandcutlass.com/blog/2007/08/22/sound-system-progress/">I gutted our LoadOgg helper function</a>, but since we had tests written for it it was really easy to be sure I had not broken it.  Before our rewrite, we would have to run the whole game, get to the place in-game where our change came into play, and then see if it was right.  Now we can just write a test or two for the new change and if we want to we can disable all the other tests.  That really speeds up debugging.</p>
<p>Also, because we are making heavy use of the event system, we can test the event sender and the receiver separately.  For example, the SoundBuffer and SoundStream classes basically just send events to the sound system telling it to play/pause/stop a sound.  In the test, I set my own listener for those events and verified that they are being sent correctly.  Another place where the event system was useful was in the initialization of the input system.  The input system needs some kind of window handle to give to OIS.  Collin set it up so that the input system sends an event with a Variant window handle field.  If it is initialized, the render subsystem receives that event and sets the window handle value.  However, if you do not have the render system running for whatever reason (like in the input test), you can just register your own handler for that event.  So in the input test, Collin creates a simple little window just to get input with raw X11 or Win32 code, and his test receives the event and returns the proper handle.  The input system doesn&#8217;t care whether the render system created the window, or you did yourself.  All it cares about is that something provided it with a window handle.  That is pretty slick.</p>
<p>As I mentioned earlier, we aren&#8217;t doing anything fancy for user input/output tests for things like sound, graphics, or input.  We basically do what we want and then ask the user &#8220;did that seem right?&#8221;  That can get annoying if you are working on something like the sound system.  Testing it is a lot of &#8220;did the music start?&#8221;, &#8220;did it stop?&#8221;, &#8220;did it start again?&#8221; kind of questions.  It&#8217;s not perfect, but it is a simple way to verify that the code works.  Compared to what we had it is a huge step forward.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crownandcutlass.com/blog/2007/08/30/unit-test-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.059 seconds -->
