<?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>Authoritative Opinion &#187; TODO</title>
	<atom:link href="http://authoritativeopinion.com/blog/category/todo/feed/" rel="self" type="application/rss+xml" />
	<link>http://authoritativeopinion.com/blog</link>
	<description></description>
	<lastBuildDate>Sat, 20 Mar 2010 00:55:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
		<item>
		<title>TODO: Map game</title>
		<link>http://authoritativeopinion.com/blog/2009/02/22/todo-map-game/</link>
		<comments>http://authoritativeopinion.com/blog/2009/02/22/todo-map-game/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 20:35:41 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://authoritativeopinion.com/blog/2009/02/22/todo-map-game/">chris</span></dc:creator>
				<category><![CDATA[TODO]]></category>

		<guid isPermaLink="false">http://authoritativeopinion.com/blog/?p=21</guid>
		<description><![CDATA[I have created a quick prototype for a Google Maps mashup game.

Users register and login using an OpenID login
Users accumulate points
Points are used to perform actions in the game world; examples of actions may include moving an object (which may be linked to the distance moved) or creating objects (which may have a fixed cost)

So, [...]]]></description>
			<content:encoded><![CDATA[<p>I have created a quick prototype for a <a href="http://ink.ratherinsane.com:81/">Google Maps mashup game</a>.</p>
<ol>
<li>Users register and login using an OpenID login</li>
<li>Users accumulate points</li>
<li>Points are used to perform actions in the game world; examples of actions may include moving an object (which may be linked to the distance moved) or creating objects (which may have a fixed cost)</li>
</ol>
<p>So, how can we take this concept and turn it into an actual game? First, we need to incentivize these actions (or, why does a player want to move). A first step would be to add resources, which then creates an trading economy and another action which may cost points. To check boundless resource creation, we need to add concepts of scarcity of resources. Second, we need to have a way of transforming the gathered resources into productive entities. Third, we need some sort of element of danger (combat, or what have you).</p>
<p>Finally, we need to move these abstract concepts into a game narrative.  My first intuition is to make this a post-apocalyptic kind of game, which could explain the structures, but lack of people, but it could easily be given some other interesting narrative. If anyone has thoughts on the narrative or design, I‚Äôd be interested in pursuing this further.</p>
</p>
<div class='wp_likes' id='wp_likes_post-21'><a class='like' href="javascript:wp_likes.like(21);" title='' ><img src="http://authoritativeopinion.com/blog/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(21);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://authoritativeopinion.com/blog/2009/02/22/todo-map-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TODO: A lisp-backed MySQL Storage Engine</title>
		<link>http://authoritativeopinion.com/blog/2009/01/19/todo-a-lisp-backed-mysql-storage-engine/</link>
		<comments>http://authoritativeopinion.com/blog/2009/01/19/todo-a-lisp-backed-mysql-storage-engine/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 20:44:42 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://authoritativeopinion.com/blog/2009/01/19/todo-a-lisp-backed-mysql-storage-engine/">chris</span></dc:creator>
				<category><![CDATA[TODO]]></category>

		<guid isPermaLink="false">http://authoritativeopinion.com/blog/?p=33</guid>
		<description><![CDATA[Today, I ran across an interesting problem: I have a large set (10GB) of sql queries that I wanted to filter so I could import a small subset of the data. Obviously, some kind of stream filtering would be appropriate, but because the INSERT queries were in large batches, it seemed to be a bigger [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I ran across an interesting problem: I have a large set (10GB) of sql queries that I wanted to filter so I could import a small subset of the data. Obviously, some kind of stream filtering would be appropriate, but because the INSERT queries were in large batches, it seemed to be a bigger mental exercise than I wanted to tackle (mainly, writing a complex regular expression). After ruling that simplest approach out, I thought that lua-based <a href="http://forge.mysql.com/wiki/MySQL_Proxy"><b style="color:black;background-color:#a0ffff">mysql</b>-proxy</a> might be able to do the processing for me, providing a nice place in front of the database to do that filtering. Unfortunately, it doesn‚Äôt look like it will deal with these batch inserts in a friendly manner (which is probably a good thing, certainly for the proper use of <b style="color:black;background-color:#a0ffff">mysql</b>-proxy).</p>
<p>Finally, I thought about the nuclear option, a vastly over-engineered and rather insane solution: A pluggable <b style="color:black;background-color:#99ff99">storage</b> <b style="color:black;background-color:#ff9999">engine</b> that can take in the data and simply filter the material it chooses to store. I‚Äôm positive this breaks all manner of standards, but it would be a delightfully easy solution and give me a chance to play with the new <b style="color:black;background-color:#a0ffff">MySQL</b> plugin API. Sure, some people would hack the example c module to do these tasks,  nice and easy. Boring!</p>
<p>Sometime back, I ran across Johannes Schl√ºter‚Äôs <a href="http://www.schlueters.de/blog/archives/96-MySQL-Storage-Engine-based-on-PHP.html">PHP-based <b style="color:black;background-color:#a0ffff">MySQL</b> <b style="color:black;background-color:#99ff99">Storage</b> <b style="color:black;background-color:#ff9999">engine</b></a>. I come from a PHP background, so this would obviously be the easiest <b style="color:black;background-color:#ff9999">engine</b> to hack to my purposes. But this suffers from a serious lack of documentation, which, yes, could be overcome with a little work, but my first few attempts at compiling this ended in failure.</p>
<p>So, in an effort to add complexity, I realized that lisp/scheme might be a more efficient (read: unique) way to deal with this processing. To that end, I propose a lisp-backed MySQL storage engine (mainly, I also want to have a chance to tinker with lisp). I&#8217;ve gathered the documentation, I just need a chance to write some of the glue code.</p>
<ul>
<li><a href="http://bazaar.launchpad.net/~johannes-s/mysql-php-storage/trunk/files">Source code for the MySQL PHP storage engine</a></li>
<li><a href="http://forge.mysql.com/wiki/MySQL_Internals_Custom_Engine">MySQL documentation for custom storage engines</a>, actually a very interesting read</li>
<li><a href="http://docs.plt-scheme.org/inside/index.html">Inside: PLT Scheme C API</a>,which allows the interpreter to be extended by a dynamically-loaded library, or embedded within an arbitrary C/C++ program.</li>
</ul>
<p>So, all that is missing is another long weekend for hacking this together.. February, I suppose.</p>
</p>
<div class='wp_likes' id='wp_likes_post-33'><a class='like' href="javascript:wp_likes.like(33);" title='' ><img src="http://authoritativeopinion.com/blog/wp-content/plugins/wp-likes/images/like.png" alt='' border='0'/>Like</a><span class='text'></span>
<div class='unlike'><a href="javascript:wp_likes.unlike(33);">Unlike</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://authoritativeopinion.com/blog/2009/01/19/todo-a-lisp-backed-mysql-storage-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
