<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://oldwiki.devbox.themanaworld.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nym</id>
	<title>The Mana World - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://oldwiki.devbox.themanaworld.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nym"/>
	<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/wiki/Special:Contributions/Nym"/>
	<updated>2026-05-06T01:02:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Ports&amp;diff=3026</id>
		<title>Archive:Ports</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Ports&amp;diff=3026"/>
		<updated>2005-11-11T12:53:16Z</updated>

		<summary type="html">&lt;p&gt;Nym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;The Mana World is known to work on the following systems:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Windows XP/2K/9x (either Dev-C++ or MSVC)&lt;br /&gt;
* GNU/Linux x86 and amd64&lt;br /&gt;
* FreeBSD 5.4&lt;br /&gt;
* Mac OS X ([[MacOSX port]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;The following need testing or are in progress:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* GNU (aka GNU/HURD)&lt;br /&gt;
* BeOS (BeOS Max 3.1 beta 1) ([[BeOS port]])&lt;br /&gt;
* Zeta (BeOS based)&lt;br /&gt;
* GNU/Linux PPC&lt;br /&gt;
* OpenBSD 3.8&lt;br /&gt;
* NetBSD 2.0 ([[NetBSD port]])&lt;br /&gt;
* Mac OS X x86&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=User:Nym&amp;diff=2148</id>
		<title>User:Nym</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=User:Nym&amp;diff=2148"/>
		<updated>2005-07-16T10:23:09Z</updated>

		<summary type="html">&lt;p&gt;Nym: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name:&#039;&#039;&#039; Aaron Marks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Australia&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Occupation:&#039;&#039;&#039; Student (studying I.T.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Email:&#039;&#039;&#039; nymacro * gmail * com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Working on:&#039;&#039;&#039; Server mainly, various fixes and updates to client.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[http://satgnu.org/nym/ Homepage]&lt;br /&gt;
&lt;br /&gt;
[http://www.nongnu.org/gpack/ GPack Package Manager]&lt;br /&gt;
&lt;br /&gt;
[http://gusanos.sourceforge.net/ Gusanos]&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=User:Nym&amp;diff=472</id>
		<title>User:Nym</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=User:Nym&amp;diff=472"/>
		<updated>2005-07-16T10:22:34Z</updated>

		<summary type="html">&lt;p&gt;Nym: /* About */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name:&#039;&#039;&#039; Aaron Marks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Australia&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Occupation:&#039;&#039;&#039; Student (studying I.T.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Email:&#039;&#039;&#039; nymacro * gmail * com&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Working on:&#039;&#039;&#039; Server mainly, various fixes and updates to client.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[http://www.nongnu.org/gpack/ GPack Package Manager]&lt;br /&gt;
&lt;br /&gt;
[http://gusanos.sourceforge.net/ Gusanos]&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Update_system&amp;diff=385</id>
		<title>Archive:Update system</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Update_system&amp;diff=385"/>
		<updated>2005-07-05T06:56:33Z</updated>

		<summary type="html">&lt;p&gt;Nym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Update System ==&lt;br /&gt;
&lt;br /&gt;
The Mana World plans to be an constantly expanding game, with new features, maps and other game media being added all the time. This constant addition requires some way to distribute new material. The Mana World up to this point has been using a monthly release cycle to update the game, but this distribution method suffers in the following ways:&lt;br /&gt;
&lt;br /&gt;
* Data redundancy - This is a major concern for those who have slower connections to the Internet.&lt;br /&gt;
* Releases aren&#039;t frequent enough - Players want new material as fast as they can get it. Players like a fast updated, dynamically changing game world in which they can immerse themselves - any stagnation can lead to player loss.&lt;br /&gt;
* Bad releases hard to update - Once a package has been released, soon after its release some major problems may be found, which may require immediate attention. The old package must then be removed and replaced with a new fixed package, by this time many people would have downloaded it and would probably not know about the new updated release. This is a major problem in itself.&lt;br /&gt;
&lt;br /&gt;
Regarding the last topic, we discussed it a bit, and thought that first of all, we need a version checking, so that everyone is informed about a new release. In windows we were evaluating the possibility of directly replacing the binary, while this won&#039;t be possible in GNU/linux. I guess we will continue with monthly releases, and will discuss in this article only static data updates. --[[User:ElvenProgrammer|ElvenProgrammer]] 02:08, 4 Jul 2005 (PDT)&lt;br /&gt;
&lt;br /&gt;
The Mana World wishes to address this by using an in-built update system which will automatically download the latest game media. By doing this, the second and third points noted above are eliminated. This update system should provide the following features:&lt;br /&gt;
&lt;br /&gt;
* Smart updating - the updater should be able to find files which need to be updated and update them, without trying to update files which are already up to date.&lt;br /&gt;
* Cumulative patches (Optional)&lt;br /&gt;
* Media updates - should be able to fetch new and updated game media.&lt;br /&gt;
* Executable updates - should be able to update the binary executables appropriately.&lt;br /&gt;
&lt;br /&gt;
The option of using a built-in updater is meaningful if using bitTorrent protocol (even if not necessary). If using HTTP/FTP, it could be valuable using an external application to avoid increasing the number of dependencies/size of executable in the client. About executable updates, see comment above. --[[User:ElvenProgrammer|ElvenProgrammer]] 02:08, 4 Jul 2005 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Update Format ==&lt;br /&gt;
&lt;br /&gt;
The patch format must be easy to use and flexible, and should support the required features mentioned above.&lt;br /&gt;
&lt;br /&gt;
* The format will be added here.&lt;br /&gt;
&lt;br /&gt;
The patches will be released using compressed archives. Probably using bzip compression is a wise choice to reduce downloads size. I suggest that every client keeps a local copy of the version of each file:&lt;br /&gt;
&#039;&#039;/data/items.xml 0.12&#039;&#039;&lt;br /&gt;
&#039;&#039;/data/music/Faith.ogg 0.3&#039;&#039;&lt;br /&gt;
and every patch file will have a list of the changes, let&#039;s say changes.txt:&lt;br /&gt;
&#039;&#039;/data/items.xml U 0.13&#039;&#039; means it was updated, check version anyway.&lt;br /&gt;
&#039;&#039;/data/music/desert.ogg R&#039;&#039; the file should be removed, no longer used&lt;br /&gt;
&#039;&#039;/data/graphics/avatars/hammerbearcaricature.png A 0.1&#039;&#039; new file, needs to be added to local list&lt;br /&gt;
Using those infos, the previous data packages could be easily merged with the patch.&lt;br /&gt;
Note: this is a quick suggestion, we could think of a lot of better ways. --[[User:ElvenProgrammer|ElvenProgrammer]] 02:08, 4 Jul 2005 (PDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;This could be changed to:&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Updates come in compressed archives, probably .zip files as they are easy to create and allow individual files to be read directly from them (this is already being abstracted using PhysFS, so there is no need to inflate the archives after downloading). Initially, the client will retrieve an ordered list of archives that is should load, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tmw-base-1.0.zip&lt;br /&gt;
tmw-base-patch-1.1.zip&lt;br /&gt;
tmw-tonori-region-1.0.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The client will check whether all the listed zip files are present in its data directory, and attempt to download any missing ones (see update distribution below). Once downloaded, it will put each archive in the virtual file system provided by PhysFS. Once a data file is loaded, the archives are search bottom to top so that the file will be loaded from the last archive that provided it. This allows us to patch big data archives with a small archive that contains just the modified files.&lt;br /&gt;
&lt;br /&gt;
Correct me if I&#039;m wrong, but this won&#039;t keep all the old data? Or maybe old packages will be overwritten by new ones?&lt;br /&gt;
If not just think that having 3 different versions of a song would lead for example to not required 6-9 MBs. --[[User:ElvenProgrammer|ElvenProgrammer]] 12:55, 4 Jul 2005 (PDT)&lt;br /&gt;
&lt;br /&gt;
This ordered list could should contain protocol information for file retrieval and information concerning the platform which the patch can be used. Such a list could look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
win32 http://themanaworld.org/updates/tmw-base-binary-win32-1.1.zip&lt;br /&gt;
osx http://themanaworld.org/updates/tmw-base-binary-osx-1.1.zip&lt;br /&gt;
all ftp://themanaworld.org/updates/tmw-maps-tonori-1.3.zip&lt;br /&gt;
all http://themanaworld.org/updates/tmw-gfx-items-1.1.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is also suggested that the updates can be used in the configuration director (~/.tmw) on UNIX based platforms, as root priveleges would be required to install the updates correctly otherwise.&lt;br /&gt;
[[User:Nym|Nym]] 23:56, 4 Jul 2005 (PDT)&lt;br /&gt;
&lt;br /&gt;
== Update Distribution ==&lt;br /&gt;
&lt;br /&gt;
Updates must be distributed fast and effectively, providing a decent throughput even when the update server is under a high load. The Mana World development team has decided that the [http://www.bittorrent.com Bit Torrent] protocol will be utilised for update distribution. BitTorrent is a distributed peer-to-peer protocol which utilises the bandwidth of all users. For more information about [http://www.bittorrent.com Bit Torrent], see the [http://www.bittorrent.com/introduction.html Bit Torrent Introduction].&lt;br /&gt;
&lt;br /&gt;
To easily utilize to the Bit Torrent protocol, one of the following libraries can be used:&lt;br /&gt;
* [http://libbt.sourceforge.net/ libbt] - C&lt;br /&gt;
* [http://libtorrent.sourceforge.net/ libtorrent] - C++&lt;br /&gt;
&lt;br /&gt;
Yeah I know we already choosed for bitTorrent, anyway we shouldn&#039;t discard HTTP/FTP both because some people don&#039;t want to be forced to share their bandwidth or if they&#039;re having problems. Someone also asked for the possibility to stop sharing patches (in case updater is built-in). A noticeable example is WoW updater which both allows for bitTorrent or HTTP downloads. And the patch sharing is limited to the time you download the patch (until you don&#039;t press &amp;quot;Play game!&amp;quot; I guess). A deeper evaluation of band usage and lag problems should be provided.--[[User:ElvenProgrammer|ElvenProgrammer]] 02:08, 4 Jul 2005 (PDT)&lt;br /&gt;
&lt;br /&gt;
Because both libbt and libtorrent still seem immature and have annoying dependencies, I would suggest to hold off from BitTorrent for now and use [http://curl.haxx.se/ libcurl] to retrieve the updated data files through HTTP or FTP. --[[User:BjÃ¸rn|BjÃ¸rn]] 12:06, 4 Jul 2005 (PDT)&lt;br /&gt;
&lt;br /&gt;
I agree, libcurl is at least used by libbt so if we&#039;re going to use it, it will be required anyway. I&#039;d like also to say that libcurl it&#039;s really easy and could help us to create the HTTP/FTP updater in no time.--[[User:ElvenProgrammer|ElvenProgrammer]] 12:55, 4 Jul 2005 (PDT)&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Update_system&amp;diff=376</id>
		<title>Archive:Update system</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Update_system&amp;diff=376"/>
		<updated>2005-07-04T07:57:11Z</updated>

		<summary type="html">&lt;p&gt;Nym: Initial edit of update system!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Update System ==&lt;br /&gt;
The Mana World plans to be an constantly expanding game, with new features, maps and other game media being added all the time. This constant addition requires some way to distribute new material. The Mana World up to this point has been using a monthly release cycle to update the game, but this distribution method suffers in the following ways:&lt;br /&gt;
&lt;br /&gt;
* Data redundancy - This is a major concern for those who have slower connections to the Internet.&lt;br /&gt;
* Releases aren&#039;t frequent enough - Players want new material as fast as they can get it. Players like a fast updated, dynamically changing game world in which they can immerse themselves - any stagnation can lead to player loss.&lt;br /&gt;
* Bad releases hard to update - Once a package has been released, soon after its release some major problems may be found, which may require immediate attention. The old package must then be removed and replaced with a new fixed package, by this time many people would have downloaded it and would probably not know about the new updated release. This is a major problem in itself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Mana World wishes to address this by using an in-built update system which will automatically download the latest game media. By doing this, the second and third points noted above are eliminated. This update system should provide the following features:&lt;br /&gt;
&lt;br /&gt;
* Smart updating - the updater should be able to find files which need to be updated and update them, without trying to update files which are already up to date.&lt;br /&gt;
* Cumulative patches (Optional)&lt;br /&gt;
* Media updates - should be able to fetch new and updated game media.&lt;br /&gt;
* Executable updates - should be able to update the binary executables appropriately.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update Format ==&lt;br /&gt;
The patch format must be easy to use and flexible, and should support the required features mentioned above.&lt;br /&gt;
&lt;br /&gt;
* The format will be added here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update Distribution ==&lt;br /&gt;
Updates must be distributed fast and effectively, providing a decent throughput even when the update server is under a high load. The Mana World development team has decided that the [http://www.bittorrent.com Bit Torrent] protocol will be utilised for update distribution. BitTorrent is a distributed peer-to-peer protocol which utilises the bandwidth of all users. For more information about [http://www.bittorrent.com Bit Torrent], see the [http://www.bittorrent.com/introduction.html Bit Torrent Introduction].&lt;br /&gt;
&lt;br /&gt;
To easily utilize to the Bit Torrent protocol, one of the following libraries can be used:&lt;br /&gt;
* [http://libbt.sourceforge.net/ libbt] - C&lt;br /&gt;
* [http://libtorrent.sourceforge.net/ libtorrent] - C++&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Main_Page&amp;diff=391</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Main_Page&amp;diff=391"/>
		<updated>2005-07-04T07:25:10Z</updated>

		<summary type="html">&lt;p&gt;Nym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; margin: 20px; font-style: italic;&amp;quot;&amp;gt;Welcome to The Mana World wiki! This wiki is meant to provide information to our players, to provide an easy way to contribute to the development of certain parts of the game and to improve collaboration between people on the development team. We hope you will find what you are looking for. To be able to edit you have to login, but signing up is free and requires no activation.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;3&amp;quot; cellpadding=&amp;quot;5&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border: 1px solid #e0c8b8; color: #000; background-color: #faeee6&amp;quot;|&lt;br /&gt;
&amp;lt;h2&amp;gt;Project information&amp;lt;/h2&amp;gt;&lt;br /&gt;
* [[Project description]]&lt;br /&gt;
* [[Developers]]&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
* [[Dependencies]]&lt;br /&gt;
* [[System requirements]]&lt;br /&gt;
* [[Roadmap]]&lt;br /&gt;
* [[Ports]]&lt;br /&gt;
* [http://cvs.sourceforge.net/viewcvs.py/themanaworld/tmw/ChangeLog?rev=HEAD&amp;amp;view=markup Change log]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;References&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Guilds]]&lt;br /&gt;
* [[Quest list]]&lt;br /&gt;
* [[Monster reference]]&lt;br /&gt;
* [[Item reference]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Organization&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Suggestions]]&lt;br /&gt;
* [http://themanaworld.org/archive/galerie.php Gallery]&lt;br /&gt;
* [[Developer meetings]]&lt;br /&gt;
* [[Quotes]]&lt;br /&gt;
* &#039;&#039;&#039;[[Summer 2005 real life developer meeting]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; style=&amp;quot;border: 1px solid #c9c9ff; color: #000; background-color: #f3f3ff&amp;quot;|&lt;br /&gt;
&amp;lt;h2&amp;gt;Development&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;World&#039;&#039;&#039;&lt;br /&gt;
:[[World development]], [[World backstory]], [[Map development]], [[Landmarks]], [[Kingdoms]], [[Important NPCs]], [[Finished NPCs]], [[Quest development|Quests]], [[Calendar]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Graphics&#039;&#039;&#039;&lt;br /&gt;
:[[Guidelines]], [[Concept art]], [[Tileset development|Tilesets]], [[Playerset development|Playerset]], [[NPC development|NPCs]], [[Monsterset development|Monsters]], [[Hairset development|Hairsets]], [[Itemset development|Itemsets]], [[Equipment development|Equipment]], [[:Special:Newimages|New images gallery]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GUI&#039;&#039;&#039;&lt;br /&gt;
:[[GUI development]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sound&#039;&#039;&#039;&lt;br /&gt;
:[[SFX]], [[Music]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Game&#039;&#039;&#039;&lt;br /&gt;
:[[Game systems]], [[Update system]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Server&#039;&#039;&#039;&lt;br /&gt;
:[[Server development]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=User:Nym&amp;diff=471</id>
		<title>User:Nym</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=User:Nym&amp;diff=471"/>
		<updated>2005-06-13T09:27:44Z</updated>

		<summary type="html">&lt;p&gt;Nym: Added :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name:&#039;&#039;&#039; Aaron Marks&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Location:&#039;&#039;&#039; Australia&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Occupation:&#039;&#039;&#039; Student (studying I.T.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Email:&#039;&#039;&#039; nymacro * gmail * com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[http://www.nongnu.org/gpack/ GPack Package Manager]&lt;br /&gt;
&lt;br /&gt;
[http://gusanos.sourceforge.net/ Gusanos]&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Developers&amp;diff=256</id>
		<title>Development:Developers</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Development:Developers&amp;diff=256"/>
		<updated>2005-06-13T09:21:28Z</updated>

		<summary type="html">&lt;p&gt;Nym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#efdead;&amp;quot; width=&amp;quot;75px&amp;quot; align=&amp;quot;left&amp;quot; | Name&lt;br /&gt;
! style=&amp;quot;background:#efdead;&amp;quot; width=&amp;quot;200px&amp;quot; align=&amp;quot;left&amp;quot; | Occupation&lt;br /&gt;
! style=&amp;quot;background:#efdead;&amp;quot; width=&amp;quot;200px&amp;quot; align=&amp;quot;left&amp;quot; | Location&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Bear|Bear]]&lt;br /&gt;
| Scripter&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:BjÃ¸rn|BjÃ¸rn Lindeijer]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Lead Programmer&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | The Netherlands&lt;br /&gt;
|-&lt;br /&gt;
| [[User:ElvenProgrammer|ElvenProgrammer]]&lt;br /&gt;
| Project leader, programmer&lt;br /&gt;
| Italy&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:Demon|Demon]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Pixel artist&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| [[User:deviexx|deviexx]]&lt;br /&gt;
| Content manager&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:Golgo|Golgo]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Pixel artist&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Irukard|Irukard]]&lt;br /&gt;
| Pixel artist&lt;br /&gt;
| Poland&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:Javila|Javila]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Programmer&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| [[User:kindjal|kindjal]]&lt;br /&gt;
| Programmer&lt;br /&gt;
| Italy&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:Kyokai|Kyokai]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Game systems designer&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| [[User:maci|maci]]&lt;br /&gt;
| User support&lt;br /&gt;
| Germany&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:Magick|Magick]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Musician&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Modanung|Modanung]]&lt;br /&gt;
| Pixel artist&lt;br /&gt;
| The Netherlands&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:Mra|Mra]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Programmer&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Nym|nym]]&lt;br /&gt;
| Programmer&lt;br /&gt;
| Australia&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:Pajarico|Pajarico]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Concept artist, writer&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Spain&lt;br /&gt;
|-&lt;br /&gt;
| [[User:Rotonen|Rotonen]]&lt;br /&gt;
| Head of art, story and music&lt;br /&gt;
| Finland&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | [[User:Clef|Clef]]&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | Pixel artist&lt;br /&gt;
| style=&amp;quot;background:#f6f0e0;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| [[User:Talaroc|Talaroc]]&lt;br /&gt;
| Pixel artist&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-bottom: 2px solid #efdead; background:#f6f0e0;&amp;quot; | [[User:Usiu|Usiu]]&lt;br /&gt;
| style=&amp;quot;border-bottom: 2px solid #efdead; background:#f6f0e0;&amp;quot; | Programmer&lt;br /&gt;
| style=&amp;quot;border-bottom: 2px solid #efdead; background:#f6f0e0;&amp;quot; | Poland&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Server_development&amp;diff=346</id>
		<title>Archive:Server development</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Server_development&amp;diff=346"/>
		<updated>2005-06-07T08:42:15Z</updated>

		<summary type="html">&lt;p&gt;Nym: /* Scripting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Related subtopics ==&lt;br /&gt;
&lt;br /&gt;
* [[Player control]]&lt;br /&gt;
* [[Client-server message list]]&lt;br /&gt;
* [[Pixel based players in a tile based world]]&lt;br /&gt;
* [[Main server loop]]&lt;br /&gt;
* [[Account creation]]&lt;br /&gt;
* [[Database specifications]]&lt;br /&gt;
&lt;br /&gt;
== Very global idea of some of the main components of the server ==&lt;br /&gt;
&lt;br /&gt;
http://www.lindeijer.nl/~bjorn/globalidea.png&lt;br /&gt;
&lt;br /&gt;
=== Connection Handler ===&lt;br /&gt;
&lt;br /&gt;
The connection handler has one thread to listen for incoming connections, and one thread for each connected client. I think it&#039;s best to use TCP as the basis of our protocol, because I&#039;d like the reliability which saves a lot of trouble.&lt;br /&gt;
&lt;br /&gt;
The listening threads will drop incoming messages in a message queue, which is processed in the main thread. The incoming messages are then dispatched to a message handler (described below), which won&#039;t have to deal with the threading issues.&lt;br /&gt;
&lt;br /&gt;
=== Message Handler ===&lt;br /&gt;
&lt;br /&gt;
Actually multiple messages handlers (classes implementing handler interface) can register themselves at the connection handler to handle a certain kind of message. An &#039;&#039;IncomingMessage&#039;&#039; class will be used to pass the message around which contains the data, information about the sender and methods to conveniently extract primitive datatypes from the raw message data.&lt;br /&gt;
&lt;br /&gt;
Here is a small diagram to illustrate the role of the connection and messages handlers:&lt;br /&gt;
&lt;br /&gt;
http://www.lindeijer.nl/~bjorn/network.png&lt;br /&gt;
&lt;br /&gt;
=== Message Types ===&lt;br /&gt;
&lt;br /&gt;
This provides an overview of the messages which the server will send and/or receive.&lt;br /&gt;
&lt;br /&gt;
The various types of messages the server will recieve include:&lt;br /&gt;
  - Login&lt;br /&gt;
  - Logout&lt;br /&gt;
  - Player chat: a player wants to send a message to other players.&lt;br /&gt;
  - Object action: the client has performed a certain action on an object.&lt;br /&gt;
&lt;br /&gt;
The various types of messages the server will send to client include:&lt;br /&gt;
  - Player chat: another player has chatted.&lt;br /&gt;
  - NPC Dialog: notify the client about in-game dialog.&lt;br /&gt;
  - Create object: notify the client about a new object.&lt;br /&gt;
  - Update object: notify the client about updated player information.&lt;br /&gt;
  - New map: notify the player to load a new map.&lt;br /&gt;
&lt;br /&gt;
(We must create a formal specification of protocol for server)&lt;br /&gt;
&lt;br /&gt;
=== World ===&lt;br /&gt;
&lt;br /&gt;
The server maintains the world state, or a designated part of it (in the case of multiple map servers). This includes a list of active maps (maps without players could be unloaded to save cpu and memory), and a list of all active beings and objects. For the beings and objects, it will also need to know about all possible types of beings and objects. These types will be defined with a combination of XML data and scripts.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;OutgoingMessage&#039;&#039; class is used to construct messages to be sent towards the clients. A mechanism is required to conveniently determine for which clients a certain message is relevant. These messages will be dropped in an outgoing messages queue (or one for each client, not sure yet), and finally be sent.&lt;br /&gt;
&lt;br /&gt;
=== Persistent Storage ===&lt;br /&gt;
&lt;br /&gt;
When the server crashes or needs to be restarted for other reasons, it would be rather inconvenient if this resulted in a world reset. Because of this we need a persistent storage of world data that includes all active beings and objects, that is continuously (but at a slow pace) being kept up to date. At the same time this means this will also be the place where character data is kept, and when a client reconnects he can expect the player to be still at the same spot as when he left through this method.&lt;br /&gt;
&lt;br /&gt;
This last thing will need a special notice, because the above describes a server that is potentially cooperating with other servers in order to together be able to handle the required bandwidth and processing resources. Hence it would be convenient when the persistent storage was a centralized database used by all map servers. This is unfeasable and too unreliable though, so we&#039;ll probably need to use a mixture of slow-pace updating of a local database, and very-slow-pace updating of a central database. Or probably better than the last thing, very-slow-pace replication to other servers.&lt;br /&gt;
&lt;br /&gt;
=== Scripting ===&lt;br /&gt;
&lt;br /&gt;
The Mana World aims to be a dynamic, ever improving game. Scripting allows more flexible control over various components of the game, such as enemy behaviours and in-game events. Scripting will be implemented server side (although in the future some scripting features may be migrated to the client), this allows a greater control over in-game objects, events, and various other components of the game.&lt;br /&gt;
&lt;br /&gt;
Many scripting languages would be suitable for embedding in the server, such as Lua, Io and Ruby (plus alot more). Each language has their pros and cons, and some are larger and more featureful than others. It is also possible to use a language interface such as SWIG to take care of the language implementation details, allowing a multitude of languages to be used. More research must be done into the suitability of various scripting languages for use in The Mana World.&lt;br /&gt;
&lt;br /&gt;
Suggested suitable languages:&lt;br /&gt;
* [http://www.lua.org/ Lua]&lt;br /&gt;
* [http://www.iolanguage.com/ Io]&lt;br /&gt;
* [http://www.ruby-lang.org/ Ruby]&lt;br /&gt;
&lt;br /&gt;
UPDATE: Ruby has been chosen as the language for use in TMW server.&lt;br /&gt;
&lt;br /&gt;
Suitable uses of scripting:&lt;br /&gt;
* Enemy behaviour&lt;br /&gt;
* Dynamic NPC behaviour&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;- [[User:BjÃ¸rn | BjÃ¸rn Lindeijer]] &amp;amp; [[User:Nym | Aaron Marks]]&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Database_specifications&amp;diff=202</id>
		<title>Archive:Database specifications</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Database_specifications&amp;diff=202"/>
		<updated>2005-06-07T08:39:14Z</updated>

		<summary type="html">&lt;p&gt;Nym: (fixed up last update)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server Database Specification: ==&lt;br /&gt;
&#039;&#039;&#039;SQL[ite] Table Specifications:&#039;&#039;&#039;&lt;br /&gt;
* Account Information Table&lt;br /&gt;
create table tmw_accounts (&lt;br /&gt;
    -- Username&lt;br /&gt;
    user varchar(32) unique primary key not null,&lt;br /&gt;
    -- Password hash&lt;br /&gt;
    password varchar(32) not null,&lt;br /&gt;
    -- Email address&lt;br /&gt;
    email varchar(128) unique not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
* Character/Player Information Table&lt;br /&gt;
create table tmw_characters (&lt;br /&gt;
    -- [Unique] character name&lt;br /&gt;
    name varchar(32) unique primary key not null,&lt;br /&gt;
    -- Username&lt;br /&gt;
    user varchar(32) not null,&lt;br /&gt;
    -- Player information&lt;br /&gt;
    gender int not null,&lt;br /&gt;
    level int not null,&lt;br /&gt;
    money int not null,&lt;br /&gt;
    -- Coordinates &amp;amp; map&lt;br /&gt;
    x int not null,&lt;br /&gt;
    y int not null,&lt;br /&gt;
    map text not null,&lt;br /&gt;
    -- Statistics&lt;br /&gt;
    strength int not null,&lt;br /&gt;
    agility int not null,&lt;br /&gt;
    vitality int not null,&lt;br /&gt;
    intelligence int not null,&lt;br /&gt;
    dexterity int not null,&lt;br /&gt;
    luck int not null,&lt;br /&gt;
    -- Player equipment&lt;br /&gt;
    --inventory blob not null,&lt;br /&gt;
    --equipment blob not null,&lt;br /&gt;
    -- Table relationship&lt;br /&gt;
    foreign key(user) references tmw_accounts(user)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
* Item type table&lt;br /&gt;
create table tmw_base_items (&lt;br /&gt;
    -- Name of item&lt;br /&gt;
    name varchar(32) unique primary key not null,&lt;br /&gt;
    -- Item attributes here&lt;br /&gt;
    weight int not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
* In-game object table&lt;br /&gt;
create table tmw_items (&lt;br /&gt;
    id int unique primary key not null,&lt;br /&gt;
    name varchar(32) not null,&lt;br /&gt;
    -- Special (unique) item attribues&lt;br /&gt;
    -- Table relationship&lt;br /&gt;
    foreign key (name) references tmw_base_items(name)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
* Character inventory table&lt;br /&gt;
create table tmw_inventory (&lt;br /&gt;
    -- Item&lt;br /&gt;
    id int not null,&lt;br /&gt;
    -- Character who has the item&lt;br /&gt;
    name varchar(32) not null,&lt;br /&gt;
    -- Table relationship&lt;br /&gt;
    foreign key(id) references tmw_items(id),&lt;br /&gt;
    foreign key(name) references tmw_characters(name)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
* Character equipment table (items which are equipped)&lt;br /&gt;
create table tmw_equipment (&lt;br /&gt;
    -- Item&lt;br /&gt;
    id int not null,&lt;br /&gt;
    -- Character who has item&lt;br /&gt;
    name varchar(32) not null,&lt;br /&gt;
    -- Item slot equipped on&lt;br /&gt;
    slot int not null,&lt;br /&gt;
    -- Table relationship&lt;br /&gt;
    foreign key(id) references tmw_items(id),&lt;br /&gt;
    foreign key(name) references tmw_characters(name)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Example queries&#039;&#039;&lt;br /&gt;
* Count total number of in-game objects&lt;br /&gt;
    select count(*) from tmw_items;&lt;br /&gt;
&lt;br /&gt;
* Count total number of item types&lt;br /&gt;
    select count(*) from tmw_base_items;&lt;br /&gt;
&lt;br /&gt;
* List player inventory&lt;br /&gt;
    select distinct tmw_items.id, tmw_items.name&lt;br /&gt;
    from tmw_items, tmw_inventory&lt;br /&gt;
    where tmw_items.id = tmw_inventory.id&lt;br /&gt;
    and tmw_inventory.name = &#039;nym the great&#039;;&lt;br /&gt;
&lt;br /&gt;
* Find weight of player inventory&lt;br /&gt;
    select sum(tmw_base_items.weight)&lt;br /&gt;
    from tmw_base_items, tmw_items, tmw_inventory&lt;br /&gt;
    where tmw_base_items.name = tmw_items.name&lt;br /&gt;
    and tmw_items.id = tmw_inventory.id&lt;br /&gt;
    and tmw_inventory.name = &#039;nym the great&#039;;&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Database_specifications&amp;diff=198</id>
		<title>Archive:Database specifications</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Database_specifications&amp;diff=198"/>
		<updated>2005-05-23T08:24:06Z</updated>

		<summary type="html">&lt;p&gt;Nym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server Database Specification: ==&lt;br /&gt;
&#039;&#039;&#039;SQL[ite] Table Specifications:&#039;&#039;&#039;&lt;br /&gt;
* Account Information Table&lt;br /&gt;
create table tmw_accounts&lt;br /&gt;
(&lt;br /&gt;
    -- Username&lt;br /&gt;
    user varchar(32) unique primary key not null,&lt;br /&gt;
    -- Password hash&lt;br /&gt;
    password varchar(32) not null,&lt;br /&gt;
    -- Email address&lt;br /&gt;
    email varchar(128) not null&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
* Character/Player Information Table&lt;br /&gt;
create table tmw_characters&lt;br /&gt;
(&lt;br /&gt;
    -- Character name&lt;br /&gt;
    name varchar(32) unique primary key not null,&lt;br /&gt;
    -- Username&lt;br /&gt;
    user varchar(32) not null,&lt;br /&gt;
    -- Player information&lt;br /&gt;
    gender int not null,&lt;br /&gt;
    level int not null,&lt;br /&gt;
    money int not null,&lt;br /&gt;
    -- Coordinates &amp;amp; map&lt;br /&gt;
    x int not null,&lt;br /&gt;
    y int not null,&lt;br /&gt;
    map text not null,&lt;br /&gt;
    -- Statistics&lt;br /&gt;
    strength int not null,&lt;br /&gt;
    agility int not null,&lt;br /&gt;
    vitality int not null,&lt;br /&gt;
    intelligence int not null,&lt;br /&gt;
    dexterity int not null,&lt;br /&gt;
    luck int not null,&lt;br /&gt;
    -- Player equipment&lt;br /&gt;
    inventory blob not null,&lt;br /&gt;
    equipment blob not null,&lt;br /&gt;
    -- Table relationship&lt;br /&gt;
    foreign key(user) references tmw_accounts(user)&lt;br /&gt;
)&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Database_specifications&amp;diff=30</id>
		<title>Archive:Database specifications</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Database_specifications&amp;diff=30"/>
		<updated>2005-05-23T08:23:36Z</updated>

		<summary type="html">&lt;p&gt;Nym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server Database Specification: ==&lt;br /&gt;
&#039;&#039;&#039;SQL[ite] Table Specifications:&#039;&#039;&#039;&lt;br /&gt;
* Account Information Table&lt;br /&gt;
create table tmw_accounts&lt;br /&gt;
(&lt;br /&gt;
    -- Username&lt;br /&gt;
    user varchar(32) unique primary key not null,&lt;br /&gt;
&lt;br /&gt;
    -- Password hash&lt;br /&gt;
    password varchar(32) not null,&lt;br /&gt;
&lt;br /&gt;
    -- Email address&lt;br /&gt;
    email varchar(128) not null&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
* Character/Player Information Table&lt;br /&gt;
create table tmw_characters&lt;br /&gt;
(&lt;br /&gt;
    -- Character name&lt;br /&gt;
    name varchar(32) unique primary key not null,&lt;br /&gt;
    -- Username&lt;br /&gt;
    user varchar(32) not null,&lt;br /&gt;
    -- Player information&lt;br /&gt;
    gender int not null,&lt;br /&gt;
    level int not null,&lt;br /&gt;
    money int not null,&lt;br /&gt;
&lt;br /&gt;
    -- Coordinates &amp;amp; map&lt;br /&gt;
    x int not null,&lt;br /&gt;
    y int not null,&lt;br /&gt;
    map text not null,&lt;br /&gt;
&lt;br /&gt;
    -- Statistics&lt;br /&gt;
    strength int not null,&lt;br /&gt;
    agility int not null,&lt;br /&gt;
    vitality int not null,&lt;br /&gt;
    intelligence int not null,&lt;br /&gt;
    dexterity int not null,&lt;br /&gt;
    luck int not null,&lt;br /&gt;
&lt;br /&gt;
    -- Player equipment&lt;br /&gt;
    inventory blob not null,&lt;br /&gt;
    equipment blob not null,&lt;br /&gt;
&lt;br /&gt;
    -- Table relationship&lt;br /&gt;
    foreign key(user) references tmw_accounts(user)&lt;br /&gt;
)&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Server_development&amp;diff=31</id>
		<title>Archive:Server development</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Server_development&amp;diff=31"/>
		<updated>2005-05-23T08:22:50Z</updated>

		<summary type="html">&lt;p&gt;Nym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Database Specifications]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Nym|Nym]] 01:21, 23 May 2005 (PDT)&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
	<entry>
		<id>https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Server_development&amp;diff=29</id>
		<title>Archive:Server development</title>
		<link rel="alternate" type="text/html" href="https://oldwiki.devbox.themanaworld.org/index.php?title=Archive:Server_development&amp;diff=29"/>
		<updated>2005-05-23T08:21:21Z</updated>

		<summary type="html">&lt;p&gt;Nym: Server Development Information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Server Database Specification: ==&lt;br /&gt;
&#039;&#039;&#039;SQL[ite] Table Specifications:&#039;&#039;&#039;&lt;br /&gt;
* Account Information Table&lt;br /&gt;
create table tmw_accounts&lt;br /&gt;
(&lt;br /&gt;
    -- Username&lt;br /&gt;
    user varchar(32) unique primary key not null,&lt;br /&gt;
    -- Password hash&lt;br /&gt;
    password varchar(32) not null,&lt;br /&gt;
    -- Email address&lt;br /&gt;
    email varchar(128) not null&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
* Character/Player Information Table&lt;br /&gt;
create table tmw_characters&lt;br /&gt;
(&lt;br /&gt;
    -- Character name&lt;br /&gt;
    name varchar(32) unique primary key not null,&lt;br /&gt;
    -- Username&lt;br /&gt;
    user varchar(32) not null,&lt;br /&gt;
    -- Player information&lt;br /&gt;
    gender int not null,&lt;br /&gt;
    level int not null,&lt;br /&gt;
    money int not null,&lt;br /&gt;
    -- Coordinates &amp;amp; map&lt;br /&gt;
    x int not null,&lt;br /&gt;
    y int not null,&lt;br /&gt;
    map text not null,&lt;br /&gt;
    -- Statistics&lt;br /&gt;
    strength int not null,&lt;br /&gt;
    agility int not null,&lt;br /&gt;
    vitality int not null,&lt;br /&gt;
    intelligence int not null,&lt;br /&gt;
    dexterity int not null,&lt;br /&gt;
    luck int not null,&lt;br /&gt;
    -- Player equipment&lt;br /&gt;
    inventory blob not null,&lt;br /&gt;
    equipment blob not null,&lt;br /&gt;
    -- Table relationship&lt;br /&gt;
    foreign key(user) references tmw_accounts(user)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
--[[User:Nym|Nym]] 01:21, 23 May 2005 (PDT)&lt;/div&gt;</summary>
		<author><name>Nym</name></author>
	</entry>
</feed>