<?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>Celsius Game Studios</title>
	<atom:link href="http://www.celsiusgs.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.celsiusgs.com/blog</link>
	<description>Garage Development Without The Garage</description>
	<lastBuildDate>Thu, 12 Aug 2010 15:41:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>He Who Hesitates is Lost</title>
		<link>http://www.celsiusgs.com/blog/?p=114</link>
		<comments>http://www.celsiusgs.com/blog/?p=114#comments</comments>
		<pubDate>Wed, 11 Aug 2010 23:42:44 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[chance]]></category>
		<category><![CDATA[choice]]></category>
		<category><![CDATA[dreams]]></category>
		<category><![CDATA[hope]]></category>
		<category><![CDATA[love]]></category>
		<category><![CDATA[passion]]></category>
		<category><![CDATA[risk]]></category>
		<category><![CDATA[start-up]]></category>
		<category><![CDATA[tyrrany]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=114</guid>
		<description><![CDATA[This post doesn&#8217;t have much to do with software development, but I&#8217;d like to talk a little bit about motivation and start-ups. I&#8217;m sure most can relate (I mean about the motivation part), but it&#8217;s definitely something I&#8217;ve struggled with over the years.
To begin at the beginning, here&#8217;s a great quote relating to motivation and [...]]]></description>
			<content:encoded><![CDATA[<p>This post doesn&#8217;t have much to do with software development, but I&#8217;d like to talk a little bit about motivation and start-ups. I&#8217;m sure most can relate (I mean about the motivation part), but it&#8217;s definitely something I&#8217;ve struggled with over the years.</p>
<p>To begin at the beginning, here&#8217;s a great quote relating to motivation and the origin of the title of this post:</p>
<p><em>&#8220;He who hesitates is lost. Swift and resolute action leads to success; self-doubt is a prelude to disaster.&#8221; -‘Cato’ (1713) by English essayist and poet Joseph Addison.</em></p>
<p>This is something my father used to say (well, more succinctly the first sentence), but I never really got to know him very well before he passed away. That being said, that saying has stuck with me throughout my life, and as I get older the more and more I&#8217;ve come to appreciate it. Sometimes (read: a lot of the time) I have not heeded its warning, but I really think that it&#8217;s an essential attitude to have in life in general, and especially when trying to follow your own path.</p>
<p>One of the biggest problems I&#8217;ve faced so far has been the so called &#8220;tyranny of choice&#8221; because all growing up I wanted to be a scientist, and that focus narrowed to Physics as I approached the end of my High School years. In the meantime I had also picked up a keen interest in computers and programming at an early age.</p>
<p>So I was faced with a decision. &#8220;What should I focus on?&#8221; I asked myself.</p>
<p>Unfortunately, I didn&#8217;t have an answer.</p>
<p>Part of me wanted to start a company making video games, but I felt that I probably wasn&#8217;t ready for that because most of my self-started projects would end up being too ambitious or I&#8217;d become distracted and start some other pie-in-the-sky project instead of trying to finish what I had started. Another part of me wanted to do the noble thing and pursue a career in Physics, to try and unravel the secrets of the universe. So, as a bit of a compromise, I told myself that I&#8217;d get a joint degree in Physics and Computer Science and delay making a decision until after I graduated.</p>
<p>So I graduated.</p>
<p>I was still in the same ridiculous situation.</p>
<p>I was too afraid to make a choice, because, &#8220;Oh god, what if I make the wrong choice?!&#8221; In retrospect, this was stupid, but stupid things happen. So I decided to get a job doing corporate software development so I could pull in some money while I sat on my hands waiting for an epiphany, or a sign, or maybe someone to come and hit me in the head with a shovel for being so ridiculous.</p>
<p>Another seven years or so passed of me coasting along, unmotivated to make a decision and take charge of my life. Part way through I even toyed with the idea of becoming a professional photographer, which did not help me make that decision in the least. Mind you, I would never count these years spent in university and in the corporate world as &#8220;wasted&#8221; as I did learn an awful lot about myself, computers and the world in general. That being said, I was in a rut, and sick and tired of not trying to do something about it.</p>
<p>So, as you may have noticed, I decided to try my hand at this video game thing. It may not be as &#8220;noble&#8221; as a career in physics, but if there&#8217;s something other than science that I&#8217;m truly passionate about, it&#8217;s computers and video games.</p>
<p>While many people might think it&#8217;s scary to try and start your own business, I think that at least for me, I would rather at least try and live with the potential of failure than end up living a life filled with regrets. Would you rather look back on your life and say &#8220;What if I had tried to do something exciting with my life instead of taking the easy route?&#8221; Sure I will have to look back and say &#8220;What if I had pursued a career in physics and/or academia?&#8221; but you can&#8217;t do everything at once, and I am genuinely happy and excited to be following this seemingly crazy path in life.</p>
<p>So, if you&#8217;re hesitating on doing something daring and exciting that you know in your heart you can do, don&#8217;t hesitate too long or you may live to regret it.</p>
<p>If you&#8217;re in a similar situation to me, I&#8217;d highly recommend reading the <a href="http://www.paulgraham.com/articles.html">many essays</a> by serial tech entrepreneur <a href="http://www.paulgraham.com/">Paul Graham</a>. <a href="http://www.paulgraham.com/wealth.html">One thing</a> I definitely took away from his writing, that relates to motivation and doing your own thing, is the proposition:</p>
<p><em>&#8220;Economically, you can think of a startup as a way to compress your whole working life into a few years. Instead of working at a low intensity for forty years, you work as hard as you possibly can for four. This pays especially well in technology, where you earn a premium for working fast.&#8221;<br />
</em></p>
<p>I really like the idea of that, and he also talks a lot about <a href="http://www.paulgraham.com/love.html">doing what you love</a> in the context of start-ups and working hard to make a comfortable living doing the things you love.</p>
<p>Mind you I&#8217;m not saying that my primary motivation in this is to get rich quick or some other malarky like that. What I&#8217;m saying is, if you can do something that you love, and turn that thing you love into a way to support yourself, then why not try and do that?</p>
<p>Another thing Paul talks about is not giving up, and he could not be any closer to the truth of the matter. Realizing of course that money is always an issue with these sorts of things, as long as you don&#8217;t give up, eventually you&#8217;ll succeed as long as you have good ideas and a passion for what you&#8217;re doing.</p>
<p>That being said, one thing that usually keeps me from doing anything too risky is that I&#8217;m a fairly shy person, though I do like to think of myself as more daring and brash than I probably am usually. However being the head of a start-up is not a place for shy people, so I am actually pushing myself outside my comfort zone on a daily basis. As odd as it sounds, I think I may be a closet extrovert. Would that be ironic? All I know is I do get a bit of a kick out of pushing my boundaries, even by a little bit, every day.</p>
<p><strong>TL;DR</strong></p>
<p>So, if this meandering beast of a blog post could be summed up, I think ultimately I&#8217;d like to say that you should never give up on your dreams and passions, turning your dreams and passions into your job might be scary but in the end you&#8217;ll be a better person for it, don&#8217;t be afraid to push your boundaries because you might actually enjoy it, and in the immortal words of a great physicist, trickster, raconteur and personal hero of mine, Richard Feynman:</p>
<p><em>&#8220;What do you care what other people think?&#8221;</em></p>
<p>Don&#8217;t let the fear of failure, judgment, or &#8220;what if?&#8221; smother your potential.</p>
<p>Don&#8217;t be lost.</p>
<p><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="celsiusgs">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=114</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Blender Export Scripts</title>
		<link>http://www.celsiusgs.com/blog/?p=102</link>
		<comments>http://www.celsiusgs.com/blog/?p=102#comments</comments>
		<pubDate>Tue, 13 Jul 2010 17:02:36 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[lisp]]></category>
		<category><![CDATA[mesh]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[refreshing tab]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[yo dawg]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=102</guid>
		<description><![CDATA[Inspired by the idea behind iDevBlogADay I have decided to continue to blog more, as I enjoy writing and sharing useful (and not so useful) information.
Today I&#8217;m going to talk about adapting Blender for use in game development, specifically for exporting textured 3D models from Blender for use in our games.
I am assuming you know [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by the idea behind <a href="http://idevblogaday.com">iDevBlogADay</a> I have decided to continue to blog more, as I enjoy writing and sharing useful (and not so useful) information.</p>
<p>Today I&#8217;m going to talk about adapting <a href="http://blender.org">Blender</a> for use in game development, specifically for exporting textured 3D models from Blender for use in our games.</p>
<p>I am assuming you know how to make Blender work and have created a mesh with a UV texture map. The problem you&#8217;re having specifically is getting that mesh out of Blender. You could of course use one of the built in exporters, but this way is more educational, also sometimes it is good to have control over the format your mesh data is stored in. The file described here is pretty basic, but hopefully this gives you enough working knowledge of Blender&#8217;s guts to use this as a springboard to create awesomer things. Another thing to take into consideration is that Blender and OpenGL use slightly different coordinate spaces, but it is not hard to work around.</p>
<p>Anyway, the language of choice for Blender is Python. If you like tabs, you will like Python. Much like how <a href="http://yoyodawgdawg.com/pics/yo-dawg-lisp.jpg">LISP</a> was invented by <a href="http://i.techrepublic.com.com/blogs/lisp_cycles.png">parenthesis fetishists</a>, I suspect that Guido van Rossum has a thing for <a href="http://en.wikipedia.org/wiki/Tab_%28soft_drink%29">tabs</a>.</p>
<p>So, let&#8217;s get crackin&#8217;! Fire up your <a href="http://www.vim.org">favorite text editor</a> and do the following:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!BPY</span>
<span style="color: #483d8b;">&quot;&quot;&quot;
Name: 'MyMeshExport'
Blender: 248
Group: 'Export'
Tooltip: 'Export a MyMesh File'
&quot;&quot;&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> Blender
<span style="color: #ff7700;font-weight:bold;">import</span> bpy</pre></div></div>

<p>What this does is tells Blender that it&#8217;s a Blender Python script named &#8220;MyMeshExport&#8221;, runs on at least Blender 2.48 (you can change this as you see fit), and goes in the &#8220;Export&#8221; group. The imports hook into a bunch of Blender specific stuff including the scene.</p>
<p>Next, we&#8217;re going to specify the &#8220;write&#8221; function for the script. This is what is run automatically when you choose this script to export it.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> write<span style="color: black;">&#40;</span>filename<span style="color: black;">&#41;</span>:
	out = <span style="color: #008000;">file</span><span style="color: black;">&#40;</span>filename, <span style="color: #483d8b;">&quot;w&quot;</span><span style="color: black;">&#41;</span>
	sce = bpy.<span style="color: black;">data</span>.<span style="color: black;">scenes</span>.<span style="color: black;">active</span>
	ob = sce.<span style="color: black;">objects</span>.<span style="color: black;">active</span>
	mesh = ob.<span style="color: black;">getData</span><span style="color: black;">&#40;</span>mesh=<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span></pre></div></div>

<p>What this does is opens a file for writing, and hooks it to <em>out</em>, takes the currently active scene assigning it to <em>sce</em>, the currently active object and assigns it to <em>ob</em>, and then assigns the first mesh in <em>ob</em> to <em>mesh</em>. This assumes you have selected your object before you exported, and that object only has one mesh.</p>
<p>Next we&#8217;ll put in how many vertexes and faces there are in our mesh into the file. This will make life easier for our file loader:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">	out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'%i Vertexes<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span>mesh.<span style="color: black;">verts</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
	out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'%i Faces<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span>mesh.<span style="color: black;">faces</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Next we insert vertex co-ordinates:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">	<span style="color: #ff7700;font-weight:bold;">for</span> vert <span style="color: #ff7700;font-weight:bold;">in</span> mesh.<span style="color: black;">verts</span>:
		out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'v %f %f %f<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>vert.<span style="color: black;">co</span>.<span style="color: black;">x</span>, vert.<span style="color: black;">co</span>.<span style="color: black;">y</span>, vert.<span style="color: black;">co</span>.<span style="color: black;">z</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>This goes through each vertex in the mesh and inserts &#8220;v <em>x y z</em>&#8221; where x, y, and z represent the co-ordinates of the vertex.</p>
<p>Finally we write in information for each face in the mesh, including what vertexes make up the face, the vertex normals for that face, and the UV coordinates.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">	<span style="color: #ff7700;font-weight:bold;">for</span> face <span style="color: #ff7700;font-weight:bold;">in</span> mesh.<span style="color: black;">faces</span>:
		out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'f'</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> vert <span style="color: #ff7700;font-weight:bold;">in</span> face.<span style="color: black;">v</span>:
			out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">' %i'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>vert.<span style="color: black;">index</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: black;">&#41;</span>
		out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'n %f %f %f<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>, face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>, face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
		out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'n %f %f %f<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>, face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>, face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
		out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'n %f %f %f<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">%</span><span style="color: black;">&#40;</span>face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>, face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>, face.<span style="color: black;">no</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> uv <span style="color: #ff7700;font-weight:bold;">in</span> face.<span style="color: black;">uv</span>:
			out.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'uv %f %f<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>uv<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>, uv<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
	out.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
Blender.<span style="color: black;">Window</span>.<span style="color: black;">FileSelector</span><span style="color: black;">&#40;</span>write, <span style="color: #483d8b;">&quot;Export&quot;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>This is where the per-polygon information is spat out into your file. For each face it outputs &#8220;f <em>v1 v2 v3</em>&#8221; where v1, v2, and v3 are the indexes of the vertexes we exported previously.</p>
<p>Next we output the normals. In this simple example we&#8217;re going to assign the face normals to each of the vertex normals. This is because whatever Blender thinks the &#8220;smooth&#8221; per-vertex normals are has no basis in reality what-so-ever. If you want to get smooth normals, you will have to compute them yourselves. The normals are encoded as &#8220;n <em>fn1 fn2 fn3</em>&#8221; on 3-separate lines (one per vertex) where fn1, fn2, and fn3 is the face normal.</p>
<p>Finally we output the UV coordinates of the texture map. For each vertex in the face we get &#8220;uv <em>uv1 uv2</em>&#8221; where uv1 and uv2 are the UV coordinates of that vertex.</p>
<p>The last line in the file tells Blender to open it&#8217;s File Selector window and call &#8216;write&#8217;.</p>
<p>Once you save your file with an imaginative name like &#8216;myfileexport.py&#8217; you can copy it to wherever Python keeps its scripts. This is different under different platforms obviously, though you can get that information <a href="http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Advanced_Tutorials/Python_Scripting/Export_scripts">here</a>, which incidentally I discovered after writing all this is practically identical to my post, except I cover exporting UV coordinates. Possibly because this is where I learned this over a year ago and subsequently forgot. <a href="http://jessenoller.com/wp-content/uploads/2008/06/sorry.jpg">Mea Culpa</a>.</p>
<p><em>Anyway</em>, let&#8217;s finish this up. So you&#8217;ve put your script into your scripts folder. Now you need to update the menus in Blender to tell it that it&#8217;s there. So you go to the Python pane and go to <em>Scripts > Update Menus</em>. Then you can go to your scene, select your object then go to <em>File > Export > MyMeshExport</em> to save your new mesh for inclusion in your game.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=102</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GameFontMaker</title>
		<link>http://www.celsiusgs.com/blog/?p=89</link>
		<comments>http://www.celsiusgs.com/blog/?p=89#comments</comments>
		<pubDate>Wed, 07 Jul 2010 22:50:36 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[gamefontmaker]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=89</guid>
		<description><![CDATA[July 9th Update: GamefontMaker is now at 1.0.0 beta 2 and it’s also been released under the GPLv2. You can find the latest version and source over here!
It&#8217;s been a while since I&#8217;ve posted anything to the blog, so I figured I&#8217;d do something a bit special to try and get into the swing of [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 266px"><img title="GameFontMaker" src="http://celsiusgs.com/gfm/images/gfmicon256.png" alt="GameFontMaker Icon" width="256" height="256" /><p class="wp-caption-text">GameFontMaker</p></div>
<p><b>July 9th Update:</b> GamefontMaker is now at 1.0.0 beta 2 <i>and</i> it’s also been released under the GPLv2. <a href="http://celsiusgs.com/gfm/">You can find the latest version and source over here</a>!</p>
<p>It&#8217;s been a while since I&#8217;ve posted anything to the blog, so I figured I&#8217;d do something a bit special to try and get into the swing of things. So, I present to you what I think may be the first native Cocoa bitmap font creation tool for games, GameFontMaker!</p>
<p>At least, I think it is&#8230; Maybe&#8230; I didn&#8217;t do a lot of research, but I have seen a lot of fellow iOS devs wishing something like this existed for OS X, as the only other alternative runs under Windows.</p>
<p>Even if it isn&#8217;t, I was getting sick and tired of my really awful bitmap font creation tool that used FTGL, SDL and duct tape and generally produced hideous bitmaps without a lot of fudging of numbers. This is much, much better than that.</p>
<p>Anyway, GameFontMaker is currently in &#8220;beta&#8221; so don&#8217;t come crying to me if your computer explodes or anything. Though in my defense it hasn&#8217;t caused my MacBook to explode, and it was way less stable when I started it about 12 hours ago!</p>
<p>This is also my first Cocoa app, so forgive me if it&#8217;s a bit rough around the edges.</p>
<p>That being said, if you do find a bug or have a suggestion you could always drop me an email at: <a href="mailto:colin[at]celsiusgs[dot]com">colin[at]celsiusgs[dot]com</a>.</p>
<p>So, you&#8217;re itching to create some decent bitmap fonts for your game? Well, GameFontMaker is pretty easy to use. From the main window:</p>
<div class="wp-caption aligncenter" style="width: 570px"><img title="GameFontMaker Main Window" src="http://celsiusgs.com/gfm/images/gfmscreen.png" alt="GameFontMaker Main Window" width="560" height="558" /><p class="wp-caption-text">GameFontMaker Main Window</p></div>
<p>You can select the font by clicking on the &#8220;Fonts&#8221; toolbar button, doing so updates the preview. Once you&#8217;re satisfied with your selection, click &#8220;Export Font&#8221; which opens a file dialog. Choose the file name here, it will automatically choose a .png extension. Once you make sure you&#8217;re not overwriting an important system file or your taxes or what have you, click &#8220;Save&#8221;. This will invoke <a href="http://jwz.livejournal.com/628853.html">an ancient spell designed to end the world</a> (and generate fonts) and will cause GFM to spit out a PNG file with all the printable ASCII characters in a line, also it will produce &lt;filename&gt;.png.xml which is an XML file that describes all the character dimensions. It has the following format:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fontdata<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;glyph<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;character<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/character<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;width<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>7<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/width<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;height<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>25<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/height<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;offset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/offset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/glyph<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fontdata<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Right now the output isn&#8217;t ideal for using directly as a texture atlas, but hopefully the PNG plus the XML file can be put to some good use. Once I get some more time I will add support for defining the PNG size and altering the XML output.</p>
<p>Anyway, GameFontMaker is free to use for all sorts of purposes, however if you do find it useful you could always have a look at <a href="http://celsiusgs.com/games.php">my games</a> or maybe <a href="http://twitter.com/celsiusgs">follow me on The Twitters</a>. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=89</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Genesis</title>
		<link>http://www.celsiusgs.com/blog/?p=85</link>
		<comments>http://www.celsiusgs.com/blog/?p=85#comments</comments>
		<pubDate>Thu, 13 May 2010 12:57:50 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[celsius game studios]]></category>
		<category><![CDATA[dream]]></category>
		<category><![CDATA[genesis centre]]></category>
		<category><![CDATA[hot plasma death]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[progress]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[space]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=85</guid>
		<description><![CDATA[I just wanted to make a quick post saying that I am very pleased (and excited!) to announce that Celsius Game Studios is the latest client of The Genesis Centre. The centre is a technology start-up incubator run by Memorial University and seems to be a pretty awesome place to get my bearings as I [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 250px"><a href="http://farm3.static.flickr.com/2392/2538786477_a23bc30372_m.jpg"><img title="The Genesis Centre is in the Inco Innovation Building" src="http://farm3.static.flickr.com/2392/2538786477_a23bc30372_m.jpg" alt="The Genesis Centre is in the Inco Innovation Building" width="240" height="160" /></a><p class="wp-caption-text">The Genesis Centre</p></div>
<p>I just wanted to make a quick post saying that I am very pleased (and excited!) to announce that Celsius Game Studios is the latest client of <a href="http://www.genesis.mun.ca/">The Genesis Centre</a>. The centre is a technology start-up incubator run by <a href="http://www.mun.ca/">Memorial University</a> and seems to be a pretty awesome place to get my bearings as I try to develop and grow CGS as a company.</p>
<p>Also <a href="http://celsiusgs.com/chromodyne/">Chromodyne HD</a> had a nice positive review from <a href="http://simple-reviews.com/2010/04/chromodyne-hd-2/">Simple Reviews</a> last month, which is pretty cool! Thanks Parth!</p>
<p>In the meantime, my next mini-project is coming along nicely. I don&#8217;t want to say too much at this point as it&#8217;s very prototype-y but let&#8217;s just say it will involve shooting hot plasma death at evil aliens and blowing them the hell up. Oh yes.</p>
<p>I may have some screenshots by the weekend depending on how quickly I can finish these last few art assets to make it sexy and awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=85</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chromodyne Lite</title>
		<link>http://www.celsiusgs.com/blog/?p=76</link>
		<comments>http://www.celsiusgs.com/blog/?p=76#comments</comments>
		<pubDate>Fri, 30 Apr 2010 02:53:50 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[celsius game studios]]></category>
		<category><![CDATA[chromodyne]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[lite]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=76</guid>
		<description><![CDATA[
In an effort to try and increase the visibility of Chromodyne, I&#8217;ve done gone and created a Lite version! As it is FREE, I ask you kindly to check it out, as maybe you&#8217;ll like what you see  
You can get Chromodyne Lite on the App Store here: itms://itunes.apple.com/us/app/chromodyne-lite/id369298294?mt=8
The Chromodyne Lite Press Release Follows:
Celsius [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.celsiusgs.com/blog/wp-content/uploads/2010/04/chromodyne-lite-icon-512.png"><img class="alignleft size-full wp-image-82" style="border: 10px solid white;" title="Chromodyne Lite" src="http://www.celsiusgs.com/blog/wp-content/uploads/2010/04/chromodyne-lite-icon-512.png" alt="Chromodyne Lite Icon" width="128" height="128" /></a></p>
<p>In an effort to try and increase the visibility of Chromodyne, I&#8217;ve done gone and created a Lite version! As it is FREE, I ask you kindly to check it out, as maybe you&#8217;ll like what you see <img src='http://www.celsiusgs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You can get Chromodyne Lite on the App Store here: <a href="itms://itunes.apple.com/us/app/chromodyne-lite/id369298294?mt=8">itms://itunes.apple.com/us/app/chromodyne-lite/id369298294?mt=8</a></p>
<p>The Chromodyne Lite Press Release Follows:</p>
<p>Celsius Game Studios is proud to present Chromodyne Lite, the free version of its unique and exciting match-3 puzzle game, Chromodyne! Chromodyne Lite is available for the iPhone and iPod Touch, on the Apple App Store.</p>
<p>Chromodyne Lite features a brand new 5 chapter story introducing the player to the Chromodyne as they work their way through the Chromodynamic Academy&#8217;s accredited Accelerated Chromodyne Operator&#8217;s Course. Through this program, you too can learn the skills necessary to save the world from impending doom from outer space!</p>
<p>&#8220;Course?&#8221; You say.</p>
<p>&#8220;That sounds like it might be expensive…&#8221; You say.</p>
<p>You would say that, wouldn&#8217;t you?</p>
<p>Well, you might expect to pay tens of thousands of dollars and rack up years of crushing student debt at some &#8220;university&#8221; to learn how to save the world. Not so at the Chromodynamic Academy. No, you too can learn all this today for the low, low price of FREE!</p>
<p>Not only do you get this valuable training, but you&#8217;ll also find that Chromodyne Lite offers fun and challenging 3D match-3 gameplay, colourful and striking visual effects, and an awesome soundtrack by Kevin MacLeod.</p>
<p>If you&#8217;re saying: &#8220;Well, I can&#8217;t possibly go wrong with that! Plus I can&#8217;t argue with free… Especially when you put it in all caps like that!&#8221; I&#8217;d suggest you follow this link and give it a try: <a href="itms://itunes.apple.com/us/app/chromodyne-lite/id369298294?mt=8">itms://itunes.apple.com/us/app/chromodyne-lite/id369298294?mt=8</a></p>

<a href='http://www.celsiusgs.com/blog/?attachment_id=77' title='Chromodyne Lite 01'><img width="150" height="150" src="http://www.celsiusgs.com/blog/wp-content/uploads/2010/04/Chromodyne-Lite-01-150x150.png" class="attachment-thumbnail" alt="" title="Chromodyne Lite 01" /></a>
<a href='http://www.celsiusgs.com/blog/?attachment_id=78' title='Chromodyne Lite 02'><img width="150" height="150" src="http://www.celsiusgs.com/blog/wp-content/uploads/2010/04/Chromodyne-Lite-02-150x150.png" class="attachment-thumbnail" alt="" title="Chromodyne Lite 02" /></a>
<a href='http://www.celsiusgs.com/blog/?attachment_id=79' title='Chromodyne Lite 03'><img width="150" height="150" src="http://www.celsiusgs.com/blog/wp-content/uploads/2010/04/Chromodyne-Lite-03-150x150.png" class="attachment-thumbnail" alt="" title="Chromodyne Lite 03" /></a>
<a href='http://www.celsiusgs.com/blog/?attachment_id=80' title='Chromodyne Lite 04'><img width="150" height="150" src="http://www.celsiusgs.com/blog/wp-content/uploads/2010/04/Chromodyne-Lite-04-150x150.png" class="attachment-thumbnail" alt="" title="Chromodyne Lite 04" /></a>
<a href='http://www.celsiusgs.com/blog/?attachment_id=81' title='Chromodyne Lite 05'><img width="150" height="150" src="http://www.celsiusgs.com/blog/wp-content/uploads/2010/04/Chromodyne-Lite-05-150x150.png" class="attachment-thumbnail" alt="" title="Chromodyne Lite 05" /></a>
<a href='http://www.celsiusgs.com/blog/?attachment_id=82' title='Chromodyne Lite'><img width="150" height="150" src="http://www.celsiusgs.com/blog/wp-content/uploads/2010/04/chromodyne-lite-icon-512-150x150.png" class="attachment-thumbnail" alt="" title="Chromodyne Lite" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=76</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Also Sprach Zarathustra</title>
		<link>http://www.celsiusgs.com/blog/?p=74</link>
		<comments>http://www.celsiusgs.com/blog/?p=74#comments</comments>
		<pubDate>Fri, 23 Apr 2010 19:36:41 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[celsius game studios]]></category>
		<category><![CDATA[chromodyne]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[lite]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=74</guid>
		<description><![CDATA[For shits and giggles I decided to try and emulate the opening of 2001: A Space Odyssey in Blender. I present to you Chromodyne: A Match-3 Odyssey. I think I did a pretty good job, don&#8217;t you?
With (many) apologies to Mr. Kubrick.
In other, more serious news not related to me cocking about making movies, I [...]]]></description>
			<content:encoded><![CDATA[<p>For shits and giggles I decided to try and emulate the opening of 2001: A Space Odyssey in <a href="http://blender.org/">Blender</a>. I present to you <a href="http://www.youtube.com/watch?v=7yiSyYI8Z7w&amp;fmt=22">Chromodyne: A Match-3 Odyssey</a>. I think I did a pretty good job, don&#8217;t you?</p>
<p>With (many) apologies to Mr. Kubrick.</p>
<p>In other, more serious news not related to me <a href="http://www.topgear.com">cocking about</a> making movies, I submitted Chromodyne Lite to Apple for approval in the wee hours of the morning. Here&#8217;s hoping it won&#8217;t be stuck there for long!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=74</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Did Not Finish</title>
		<link>http://www.celsiusgs.com/blog/?p=63</link>
		<comments>http://www.celsiusgs.com/blog/?p=63#comments</comments>
		<pubDate>Thu, 08 Apr 2010 12:38:08 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[bottom]]></category>
		<category><![CDATA[celsius game studios]]></category>
		<category><![CDATA[chromodyne]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[price]]></category>
		<category><![CDATA[race]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=63</guid>
		<description><![CDATA[They call it the &#8220;Race to the Bottom&#8221; on the App store, where everyone tends to price their app towards 99 cents because they feel that will compel people to buy their app because it&#8217;s so cheap. Well, I&#8217;m not so sure that is working anymore. Also with the new finish line apparently being set [...]]]></description>
			<content:encoded><![CDATA[<p>They call it the &#8220;Race to the Bottom&#8221; on the App store, where everyone tends to price their app towards 99 cents because they feel that will compel people to buy their app because it&#8217;s so cheap. Well, I&#8217;m not so sure that is working anymore. Also with the new finish line apparently being set at $0, I think I&#8217;m going to pull out of this race.</p>
<p>Put a big &#8220;Did Not Finish&#8221; next to Celsius Game Studios in the Great Race to the Bottom as even if we reached the finish line, nobody is winning.</p>
<p>Partially inspired by <a href="http://www.gamasutra.com/blogs/AdamSaltsman/20091206/3743/Bytes_The_099_Problem.php">this Gamasutra article</a> &#8220;The 0.99 Problem&#8221; by Canabalt Co-creator Adam Saltsman, the huge amount of noise at the 99 cent level, and by the fact that if people want to play my games they&#8217;ll also more than likely pay a reasonable price for it, CGS games going forward will not be priced permanently at $0.99. To prevent future cries of hypocrisy I&#8217;ll state now that you may see a sale at $0.99, but at the very least that&#8217;s the new Free for a Day as far as I&#8217;m concerned.</p>
<p>On my part I promise I&#8217;ll continue to deliver games that are worth more than 99 cents to you, my wonderful audience.</p>
<p>To that end, the $0.99 &#8220;introductory sale&#8221; on <a href="http://celsiusgs.com/chromodyne/">Chromodyne</a> for the iPhone and iPod Touch will be ending this weekend and as of Monday, April 12th, it will be priced at the still inexpensive $1.99.</p>
<div class="wp-caption aligncenter" style="width: 567px"><img title="Mark it in your calendar. Or not." src="http://celsiusgs.com/images/chromodynepricing.png" alt="Mark it in your calendar. Or not." width="557" height="130" /><p class="wp-caption-text">Mark it in your calendar. Or not.</p></div>
<p>Thank you for your continued support <img src='http://www.celsiusgs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=63</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Everyone Loves a Good Statistic or Two</title>
		<link>http://www.celsiusgs.com/blog/?p=56</link>
		<comments>http://www.celsiusgs.com/blog/?p=56#comments</comments>
		<pubDate>Mon, 05 Apr 2010 18:29:13 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=56</guid>
		<description><![CDATA[Thanks again to David Frampton of Majic Jungle Software for providing a beta version of MajicRank with iPad chart support!
Day two has come and gone, and Chromodyne HD poked back into the (currently meaningless) category charts again during the day on Sunday. Thank you, people who bought my game, your appreciation did not go un-noticed.
As [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks again to David Frampton of <a href="http://majicjungle.com/">Majic Jungle Software</a> for providing a beta version of <a href="http://majicjungle.com/majicrank.html">MajicRank</a> with iPad chart support!</p>
<p>Day two has come and gone, and Chromodyne HD poked back into the (currently meaningless) category charts again during the day on Sunday. Thank you, people who bought my game, your appreciation did not go un-noticed.</p>
<p>As mentioned in my last post the reason these chart listings are meaningless is because there&#8217;s no way to view the Top 100 in any category for iPad apps in iTunes, and from hearsay at least, you can only view into the Top 50 on the iPad itself. Disclosure: I don&#8217;t own an iPad so I&#8217;m just going from what I heard from other people who do. Please correct me if I&#8217;m wrong <img src='http://www.celsiusgs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Let&#8217;s look at a graph shall we:</p>
<div class="wp-caption aligncenter" style="width: 524px"><a href="http://celsiusgs.com/images/majicgraph2.png"><img title="Exciting but meaningless." src="http://celsiusgs.com/images/majicgraph2-thumb.png" alt="" width="514" height="267" /></a><p class="wp-caption-text">#75 in Arcade?! Exciting but meaningless.</p></div>
<p>This activity was caused by a grand total of 2 sales on Sunday. I mean, I increased my sales by 100% over Saturday, which is impressive (yay percentages!), however this still brings home a few&#8230; troubling conclusions:</p>
<p>1) Currently iPad developers can&#8217;t even rely on the Top 100 lists in categories to help them generate sales. This is bad for people with small advertising budgets.</p>
<p>2) There are quite a few games not generating any sales at all on the iPad side of the App Store currently. This is unfortunate <img src='http://www.celsiusgs.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>If people are still interested I&#8217;ll make the occasional post on this, but Chromodyne HD has since last night dropped unceremoniously out of the charts so I&#8217;m not sure I&#8217;ll actually be generating any useful statistics&#8230; certainly no one wants to see an empty line graph <img src='http://www.celsiusgs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In the meantime, my current plan is to keep supporting Chromodyne/HD and to forge ahead into other new projects with the hopes of making a living doing what I love while bringing awesome games into the world. Also, at least until things stabilize a bit, I think my primary target will still continue be the iPhone/iPod Touch but I will still continue to write my games with the intent of being portable to as many platforms as possible, including of course the iPad.</p>
<p>Until next time!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=56</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Too Good to be True (So Far)</title>
		<link>http://www.celsiusgs.com/blog/?p=50</link>
		<comments>http://www.celsiusgs.com/blog/?p=50#comments</comments>
		<pubDate>Sun, 04 Apr 2010 15:56:06 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[chromodyne]]></category>
		<category><![CDATA[disappointment]]></category>
		<category><![CDATA[excitement]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[majicrank]]></category>
		<category><![CDATA[rank]]></category>
		<category><![CDATA[sales]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=50</guid>
		<description><![CDATA[So yesterday I started using a beta version of MajicRank by the most excellent David Frampton of Majic Jungle Software. MajicRank is a tool that scours the App Store for your apps and checks to see if they&#8217;re in the Top 100 in any of the categories on the App Store. It&#8217;s pretty awesome.
Yesterday being [...]]]></description>
			<content:encoded><![CDATA[<p>So yesterday I started using a beta version of <a href="http://majicjungle.com/majicrank.html">MajicRank</a> by the most excellent David Frampton of <a href="http://majicjungle.com/">Majic Jungle Software</a>. MajicRank is a tool that scours the App Store for your apps and checks to see if they&#8217;re in the Top 100 in any of the categories on the App Store. It&#8217;s pretty awesome.</p>
<p>Yesterday being the launch of the iPad in the US, and I having <a href="http://celsiusgs.com/chromodyne/">Chromodyne HD</a> available along with the launch of said iPad.</p>
<p>However, whereas the iPad launch was hugely successful, Chromodyne HD? Not so much.</p>
<p>Now from my frantic Twittering, you probably wouldn&#8217;t be able to tell&#8230; as for most of yesterday evening Chromodyne broke into the Top 100 in Arcade and Puzzle for iPad games. That felt great let me tell you!</p>
<p>Great right up until I got the daily sales summary this morning, that is! Apparently that slight surfacing into the top 100 amounted to 1 sale. Kinda sucks, hey?</p>
<p>I suspect the reason I&#8217;m ranking so high in those categories is that there aren&#8217;t that many games in those categories (yet) and that Chromodyne is near the bottom of the pile, but the bottom of the pile is so close to the 100 point that a single sale will do something like this. This is quite possibly also why Apple is hiding category views for iPad apps in iTunes and only showing the Top 50 on the device itself.</p>
<p>What sucks for me, with my currently lousy non-existent advertising budget and lack of coverage due to bigger titles getting the spotlight yesterday, is that I can&#8217;t actually take advantage of that placement in those categories. Nobody can actually see that my cool little game is in the Top 100!</p>
<p style="text-align: center;"><a href="http://celsiusgs.com/images/majicgraph.png"><img class="aligncenter" title="I'm at the top, of the bottom!" src="http://celsiusgs.com/images/majicgraph-thumb.png" alt="I'm at the top, of the bottom!" width="516" height="264" /></a>This is what excitement looks like.</p>
<p>It&#8217;s still early days yet and my porting of Chromodyne to the iPad was a fun experience, which effectively didn&#8217;t cost me anything except a few days of time. So I&#8217;m not upset or anything, and I wasn&#8217;t expecting miracles. There are a few pending reviews of Chromodyne so I hope they come out eventually, and that should help <img src='http://www.celsiusgs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In the meantime, I do want to thank everyone who shared my (misplaced) excitement last night, at least I can say that Chromodyne made it into a Top 100 list!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=50</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Chromodyne&#8230; HD!</title>
		<link>http://www.celsiusgs.com/blog/?p=47</link>
		<comments>http://www.celsiusgs.com/blog/?p=47#comments</comments>
		<pubDate>Sat, 03 Apr 2010 19:13:59 +0000</pubDate>
		<dc:creator>Colin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[celsius game studios]]></category>
		<category><![CDATA[chromodyne]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[porting]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.celsiusgs.com/blog/?p=47</guid>
		<description><![CDATA[Well, the iPad is out and Chromodyne was successfully ported after a marathon session of epic proportions. Amusingly, Chromodyne HD was submitted after Chromodyne v1.1 and was approved before. Some may say I amuse easily, but I was amused.
The Port

Thanks to some experience writing game engines for other platforms before, about 90-95% of Chromodyne&#8217;s graphics [...]]]></description>
			<content:encoded><![CDATA[<p>Well, the iPad is out and Chromodyne was successfully ported after a marathon session of epic proportions. Amusingly, Chromodyne HD was submitted <em>after</em> Chromodyne v1.1 and was approved <em>before</em>. Some may say I amuse easily, but I was <em>amused.</em></p>
<p><strong>The Port</strong><em><br />
</em></p>
<p>Thanks to some experience writing game engines for other platforms before, about 90-95% of Chromodyne&#8217;s graphics code was already resolution independent. After updating my XCode to the 3.2 Gold Master, I clicked the handy little &#8220;Convert this project to iPad&#8221; menu option and was playing Chromodyne in the simulator in mere minutes! Though everything else was really horrible looking because none of the 2D assets were scaled properly and some of the menus looked like crap on the huge screen.</p>
<p>So really, most of my time was spent creating high-res 2D graphics (even though the cutscenes are pixel art, for the most part, those are seriously high-def pixels!) and fiddling with the perspective/view on the gamefield because it was way too freaking big keeping the same perspective as the iPhone version.</p>
<p>I don&#8217;t know about the final build yet, but the simulator in the GM release of the SDK didn&#8217;t have 3D acceleration! I can understand why some devs were reluctant to release their apps sight-unseen to the App Store.</p>
<p><strong>The iPad Only Version</strong></p>
<p>If anyone actually wonders why I went with a stand-alone iPad version of Chromodyne, the biggest motivator is that the app bundle for the HD version with its 1024&#215;768 graphics assets is larger than the 20 MB OTA limit. Basically I still want people to be able to get the iPhone version over 3G.</p>
<p><strong>The Price</strong></p>
<p>I&#8217;m also selling Chromodyne HD for $1.99 instead of 99 cents. I figure the larger, higher resolution game experience warrants a slightly higher price point. We&#8217;ll see how that plays out in the days to come anyway&#8230; at least I can have a sale at some point without going directly to free. Definitely something I regret when I priced Chromodyne originally.</p>
<p><strong>The Numbers</strong></p>
<p>I&#8217;m half-tempted to post sales numbers for Chromodyne HD as time wears on. If anything to see how things are going. I&#8217;ve seen that the game lists for the iPad don&#8217;t have any top lists for subcategories yet, which is pretty bad news for small devs such as myself. Sales for Chromodyne have not been anything to write home about, but they&#8217;ve been steady at least.</p>
<p>Anyway it&#8217;s been a fairly exciting few days, and at least I can say I was here from the start. Whatever that actually means, only time will tell.</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.celsiusgs.com/blog/?feed=rss2&amp;p=47</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.099 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-07 02:44:28 -->
