<?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>Marenkay.com &#187; Spells</title>
	<atom:link href="http://www.marenkay.com/tag/spells/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marenkay.com</link>
	<description>developer, father, gamer, and nerd.</description>
	<lastBuildDate>Thu, 03 Jun 2010 10:19:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>A few more thoughts on the WoW database</title>
		<link>http://www.marenkay.com/tipsresources/application-development/a-few-more-thoughts-on-the-wow-database/</link>
		<comments>http://www.marenkay.com/tipsresources/application-development/a-few-more-thoughts-on-the-wow-database/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 12:53:01 +0000</pubDate>
		<dc:creator>Daniel S. Reichenbach</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Items]]></category>
		<category><![CDATA[NPCs]]></category>
		<category><![CDATA[PHP5]]></category>
		<category><![CDATA[Quests]]></category>
		<category><![CDATA[Spells]]></category>

		<guid isPermaLink="false">http://www.marenkay.com/?p=185</guid>
		<description><![CDATA[It seems like my post on an open source WoW database has received a bit more attention than I expected. Let me share a few additional thoughts with you. The database client While I am currently using .NET 2.0 / C# to prototype a client which takes care for downloading and updating the WoW addon [...]]]></description>
			<content:encoded><![CDATA[<p>It seems like <a href="http://www.marenkay.com/tipsresources/application-development/an-open-source-world-of-warcraft-database/">my post</a> on an open source WoW database has received a bit more <a href="http://www.wowinsider.com/2008/12/08/creating-an-open-source-wow-database/">attention</a> than I expected. Let me share a few additional thoughts with you.</p>

<p><span id="more-185"></span></p>

<h2>The database client</h2>

<p>While I am currently using .NET 2.0 / C# to prototype a client which takes care for downloading and updating the WoW addon for data gathering, I am of course aware that .NET 2.0 is not available on every platform where you can play World of Warcraft. There is Windows in various incarnations, and there is Mac OS X for us to play the game on, and some people even use Linux to play. I probably have not mentioned this, but I am using all of these platforms to play the game, and thus I am very interested in making the database client work on all of these platforms.</p>

<p>My current plan is to finish my .NET prototype, as I need some quick test tool, to define and build a proper web interface for managing the WoW addon, and to test the client updater. Once this is done, and the web interface works, I plan to turn the whole client functionality into a plain C++ library, which can be build and used on Windows, Mac OS X and Linux.</p>

<p>For now the library is supposed to contain the following features:</p>

<ul>
<li>Parsing the WDB cache: as many players know, the game client uses a simple data cache for books you have read, creatures you saw, game objects seen and used, items seen, and quests done. This data will be required for several reasons. E.g. if we want to display rendered views, we need the data from the WDB cache files.</li>
<li>Detecting WoW: of course, the library needs to find WoW on your system, and there are various different methods to do so. WoW is e.g. installed in different ways for 32-bit and 64-bit operating systems.</li>
<li>Parsing the addon <a href="http://www.lua.org/">Lua</a> data: while this is not necessary it would be beneficial to embed <a href="http://www.lua.org/">Lua</a> into the library. This would allow us to validate the saved <a href="http://www.lua.org/">Lua</a> data, and it might provide options for blocking invalid data, too. Why should we upload broken data?</li>
<li>Authentication: I would love to have the database site requiring a login. Why? Because it would be great to give credits where they are due. If someone contributes to the database, it should be recorded and visible in some place.</li>
<li>Update management: we need to keep up-to-date, and this includes both the database client, and our WoW addon. The game client changes with every release, and bugs are everywhere. There is no development method that results in zero bugs.</li>
</ul>

<p>On top of the library custom GUI clients can be used for each platform. On Windows, we could use plain C++ with MFC or a .NET GUI, on Mac OS X we can use <a href="https://developer.apple.com/referencelibrary/Carbon/">Carbon API</a> to integrate into the system.</p>

<p>Of course, suggestions are welcome.</p>

<h2>The database server</h2>

<p>Once of the things I have considered over the last few days was to turn the server into something that could run in a distributed fashion, much like the version control system <a href="http://git-scm.com/">Git</a> which I use for my own projects at <a href="http://github.com/danielsreichenbach/phparmory">home</a> and at work. Concerns have been raised that the current databases are commercial because you will have large hosting bills.</p>

<p>But what if the database server would have a central server somewhere, and all available installations would connect to this server for data sharing? Thus every installation (e.g. on guild sites) could contribute their data even without knowing the main server, and every installation would benefit from uploads.</p>

<p>Anyway, the only thing I have decided on yet is that the database server will be developed using a model-view-controller pattern. This may be done with <a href="http://www.asp.net/">ASP.NET</a>, on PHP using the <a href="http://framework.zend.com/">Zend Framework</a>, or on Python using <a href="http://djangoproject.com">Django</a>, or on Ruby using the famous <a href="http://www.rubyonrails.org/">Ruby on Rails</a>.</p>

<p>Personally I would prefer a Python or Ruby based solution. But still, for my prototyping I will stick to using PHP and the Zend Framework for one simple reason: this solution works on most hosted environments. You will not depend on owning a root server (which not everyone can afford).</p>

<h2>The code</h2>

<p>There already is a bit of code, and I am working hard to get this in a readable state and documented. It will appear in my <a href="http://github.com/danielsreichenbach/phparmory">GitHub account</a> in a few days.</p>

<p>Contributions are welcome, in the beginning I would be very interested to hear what addon developers need. E.g. what would systems like <a href="http://wow.curse.com/downloads/wow-addons/details/quest-helper.aspx">QuestHelper</a>, <a href="http://www.tekkub.net/addons/TourGuide">TourGuide</a>, or <a href="http://www.wowinterface.com/downloads/info7017-LightHeaded.html">LightHeaded</a> need? After all, quest guides are the simplest form of giving data back to the community, thus you would want to have it done right from the beginning.</p>

<p>For now, I am considering XML output in a format similar to the armory format, but would that work for addon developers?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marenkay.com/tipsresources/application-development/a-few-more-thoughts-on-the-wow-database/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>An Open Source World of Warcraft database?!</title>
		<link>http://www.marenkay.com/tipsresources/application-development/an-open-source-world-of-warcraft-database/</link>
		<comments>http://www.marenkay.com/tipsresources/application-development/an-open-source-world-of-warcraft-database/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 21:31:32 +0000</pubDate>
		<dc:creator>Daniel S. Reichenbach</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Items]]></category>
		<category><![CDATA[NPCs]]></category>
		<category><![CDATA[PHP5]]></category>
		<category><![CDATA[Quests]]></category>
		<category><![CDATA[Spells]]></category>

		<guid isPermaLink="false">http://www.marenkay.com/?p=173</guid>
		<description><![CDATA[During my adventures with the phpArmory class I have taken a look at WoW databases out there. I browsed through loads of sites to see if any of them would be Open Source or at least under a free license. The database contestants Ever since World of Warcraft became public there have been websites out [...]]]></description>
			<content:encoded><![CDATA[<p>During my adventures with the phpArmory class I have taken a look at WoW databases out there. I browsed through loads of sites to see if any of them would be Open Source or at least under a free license.</p>

<p><span id="more-173"></span></p>

<h2>The database contestants</h2>

<p>Ever since World of Warcraft became public there have been websites out there, which gathered game data by using a <a href="http://www.lua.org/">Lua</a> addon and some sort of data uploader. In the beginning there was <a href="http://thottbot.com">one database site</a> and nowadays there are many.</p>

<ul>
<li><strong>Thottbot</strong>: Probably the father of all WoW database websites. <a href="http://thottbot.com/">Thottbot.com</a> started somewhere during the World of Warcraft Closed Beta and has been a primary source of information for many players. Quests, Items, Maps, NPCs, Spells, and more await the curious player, and closely coupled with Thottbot comes Cosmos, a User Interface modifcation pack, to which players were drawn in the early days of WoW aka. the days when World of Warcraft was not available in any localization.</li>
<li><strong>Allakhazam</strong>: Allakhazam entered the market of WoW databases a bit later. They already had experience with this thing, as they started with an Everquest database. Their <a href="http://wow.allakhazam.com/">WoW site</a> has gone through various iterations, and AFAIK was the first database site to offer support for the various localizations in which WoW was made available. Another feature spearheaded by them was the monitoring of Auction House prices for items. Yay for that!</li>
<li><strong>Wowguru</strong>: Another side project of an MMO database site, and one that initially had some success. <a href="http://www.woguru.com/">WoWguru.com</a> entered the scene in Summer 2005, and later spearheaded with features like honor tracking, and most prominently with monitoring the individual realm status during the <a href="http://www.wowwiki.com/Gates_of_Ahn'Qiraj">Ahn&#8217;Qiraj War Effort</a>.</li>
<li><strong>Wowhead</strong>: Here comes an impressive contestant. Ever since their launch <a href="http://www.wowhead.com/">Wowhead</a> impressed with an information-centred design that helped users in finding the information needed very quick. Wowhead comes with a well made <a href="http://www.lua.org/">Lua</a> addon, and a sleek uploader. Once of their primal bonusses was that they had been very active with making their <a href="http://www.lua.org/">Lua</a> addon work for the Public Test Realms, and soon this resulted in Wowhead leading the WoW databases. Features like a well-designed commenting system, their item and character preview, and others still remain on top of the list.</li>
<li><strong>WoWDB</strong>: The latest entry in the list of contestants. Made by the MMO portal site Curse (which alos provides hosting for most WoW <a href="http://www.lua.org/">Lua</a> addons), <a href="http://www.wowdb.com/">WoWDB</a> entered the scene with some features that Wowhead could not offer: item comparison, wishlists, and a look more oriented on the WoW look. AFAIK their character preview was first, and Wowhead added that a bit after them.</li>
</ul>

<h2>What do all these databases share?</h2>

<p>As it seems, the market for World of Warcraft databases is a hot one. Even four years after WoW made its&#8217; initial release. And as we can see by the release of new and different databases, none of the contestants listed above yet has managed to reach a state where WoW players are satisfied.</p>

<p>If we compare the features of all available WoW databases we can see that it&#8217;s not all about features, but about design and usability, too. Some features did not really make it into the market, as players did not seem to accept them.</p>

<ul>
<li>Auction House monitoring: Yes, it is there, and some people might use it, but apparently this is not interesting or good enough to be used anywhere else than on Allakhazam. Apparently using spreadsheets still is superior. Also, there is <a href="http://auctioneeraddon.com/">Auctioneer</a> which works in-game and automates a lot of the process.</li>
<li>Crafting requirements: Wowguru introduced this quite some time ago, and I thought it was a great feature. When displaying a crafted item, you could see all the items required to create it, summing up the total vendor price for all needed materials. Nice, but oviously not needed. Gold seems to be an irrelevant factor, and thus only material lists survived.</li>
</ul>

<p>This leaves us with a list of features that seem mandatory for a mature World of Warcraft content database.</p>

<ul>
<li><strong>Searching</strong>: Of course, searching is mandatory. Every site has it, and the only difference to be found is in the way search results are returned. Older sites just take an argument to look for and return an result page with any matching object, Wowhead and WoWDB sport a bit more elegance and make use of AJAX to return drop down lists with matching data instead of requiring you to wait for a result page.</li>
<li><strong>Filtering</strong>: Even though the official forums are full of people demanding more content because the existing content would not be sufficient, a look at a database of your choice proves the opposite. There <em>is</em> lots of game content, and there is much to be seen. Even after four years, I am sure you will find content that you have not seen yet, even if you started your character in February 2005. Thus most database allow you to filter for various parameters, and most important: you can apply multiple filters to <em>any</em> kind of data. Sleak and useful.</li>
</ul>

<h2>And why would you want that Open Source&#8217;d?</h2>

<p>It&#8217;s simple. Many people contribute data to these databases, and only with your or my contributions of data gathered while playing the game, those databases exist. It&#8217;s a community effort, just like the game itself is meant to be some sort of social community. But why are all of these databases closed, or commercial? Some even want you to buy premium subscriptions to access guides or more data.</p>

<p>Now what if there was an Open Source database for World of Warcraft? Where you could not only contribute data you gathered while playing, but also access that data or even download it to your computer and do something with it? Or where you could see what you have gathered while playing?</p>

<p>So I have decided to give myself a new pet project to work on, and it will become Open Source very soon, once I have ironed out the basic details. Work already begun, and a very basic implementation is there. The tools I have used are:</p>

<ul>
<li>Visual C# 2008 Express Edition to build a .NET 2.0 client application which handles uploads,</li>
<li><a href="http://www.lua.org/">Lua</a> to write a WoW addon which gathers data while you play,</li>
<li><a href="http://framework.zend.com/">Zend Framework</a> and <a href="http://www.doctrine-project.org/">Doctrine ORM</a> to write the server-side backend which accepts uploads.</li>
</ul>

<p>The process for now is very simple:</p>

<ul>
<li>the .NET client will parse the WoW data cache (which you will find in your WoW installation directory under WDB/<em>your-locale</em>/*.wdb),</li>
<li>it can show you the contents of your WDB files, e.g. you can see which NPCs you have seen, or what books you have read,</li>
<li>it will parse the saved <a href="http://www.lua.org/">Lua</a> data generated by the addon, and can show what data besides your WDB cache is there,</li>
<li>and it can convert both WDB and <a href="http://www.lua.org/">Lua</a> data to XML,</li>
<li>and finally it can upload the data to my server (GZipped of course, to reduce bandwidth usage).</li>
</ul>

<p>Parsing the data is something that will be done next. For now my server-side application only handles storing the uploaded data, and manages updates of the client. Not very much, but at least my data is stored. Parsing will be a bit more work since I have to make a modular parser that can deal e.g. with different data formats, as the data formats may and surely will change with every WoW client update.</p>

<p>What do you think? Would you use an Open Source World of Warcraft database, where you have full access to the data you contributed? Would you like to download contributed data in a parsed format, perhaps as XML files to reuse them on your guild website or your blog?</p>

<p>More on the project soon, after the finishing touches have been put on the data client. Screenshots coming soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marenkay.com/tipsresources/application-development/an-open-source-world-of-warcraft-database/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
