<?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>LegacyWorlds Beta 6 &#187; Development</title>
	<atom:link href="http://blog.legacyworlds.com/index.php/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.legacyworlds.com</link>
	<description>Updates on the new version&#039;s design and progress</description>
	<lastBuildDate>Sat, 26 Mar 2011 10:18:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Milestone 2 – Database contents – Ships</title>
		<link>http://blog.legacyworlds.com/index.php/2011-01-15/milestone-2-database-contents-ships/</link>
		<comments>http://blog.legacyworlds.com/index.php/2011-01-15/milestone-2-database-contents-ships/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 09:00:33 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[fleets]]></category>
		<category><![CDATA[milestone 2]]></category>
		<category><![CDATA[ship design]]></category>
		<category><![CDATA[ships]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=263</guid>
		<description><![CDATA[This eighth post in the Milestone 2 database structure series describes the elements used to store ship designs &#8211; whether they are provided by the game as &#8220;defaults&#8221; or customised by players &#8211; and ships, as well as fleets and their current state (which, since there is no Hyperspace stand-by for now, is limited to [...]]]></description>
			<content:encoded><![CDATA[<p>This eighth post in the <a title="Milestone 2 - Database contents - Introduction" href="http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-introduction/">Milestone 2 database structure</a> series describes the elements used to store ship designs &#8211; whether they are provided by the game as &#8220;defaults&#8221; or customised by players &#8211; and ships, as well as fleets and their current state (which, since there is no Hyperspace stand-by for now, is limited to either &#8220;orbiting a planet&#8221; or &#8220;moving&#8221;).<span id="more-263"></span></p>
<p><strong>Ship design definition</strong></p>
<p>The <span style="text-decoration: underline;">definition of a ship design</span> is the list of ship parts which are needed for the construction of a specific type of ship. Such a definition includes <span style="text-decoration: underline;">a hull</span>, at least one <span style="text-decoration: underline;">engine</span>, and it may include an arbitrary <span style="text-decoration: underline;">amount</span> of <span style="text-decoration: underline;">other ship parts</span> (generators, weapons, defences and any other kind of stuff).</p>
<p>Three constraints on valid ship designs exist:</p>
<ul>
<li>the total energy consumed by the various parts must be lower than or equal to the amount of energy generated by included generators,</li>
<li>the total space consumed by the various parts multiplied by a “miniaturisation factor” (and empire-wide production) must be lower than or equal to the space provided by the ship&#8217;s hull,</li>
<li>the ship must have a non-zero normal space thrust.</li>
</ul>
<p><strong>Predefined ship designs</strong></p>
<p>The game includes a set of predefined ship designs. A <span style="text-decoration: underline;">predefined ship design</span> is a <span style="text-decoration: underline;">ship design definition</span> associated with a <span style="text-decoration: underline;">name</span> and <span style="text-decoration: underline;">description</span> from the internationalisation system. Since all predefined ship designs are considered to be valid, the minimal miniaturisation factor for a predefined ship design can be computed directly from the list of parts.</p>
<p><strong>Empire ship designs</strong></p>
<p>An <span style="text-decoration: underline;">empire ship design</span> is a <span style="text-decoration: underline;">ship design definition</span> identified by a <span style="text-decoration: underline;">name</span> and associated with an <span style="text-decoration: underline;">empire</span>. It includes a free text <span style="text-decoration: underline;">description</span>, as well as a flag that indicates <span style="text-decoration: underline;">whether the design has been declared as being obsolete</span>. Empire ship designs may only be deleted if no ship is actually using the design. Their names or descriptions may be changed at any time, however the design definition itself may not be modified if there are ships using the design.</p>
<p><strong>Ships</strong></p>
<p>A <span style="text-decoration: underline;">ship</span> is identified by an arbitrary <span style="text-decoration: underline;">sequence number</span>. It is based on an <span style="text-decoration: underline;">empire ship design</span>. It may be given a <span style="text-decoration: underline;">name</span> for identification purposes. In addition, a ship possesses <span style="text-decoration: underline;">hit points</span> which must be lower than or equal to the amount of maximal hit points defined by its design, and <span style="text-decoration: underline;">experience points</span>, acquired when the ship participates in battles. Ships also include a <span style="text-decoration: underline;">status information</span> which indicates whether they are available, being deployed after construction, being redeployed after movements or mode switches, being redirected, undergoing repairs, being refitted or decommissioned, and a <span style="text-decoration: underline;">penalty</span> which indicates the time required for a ship in any non-available status to be available again.</p>
<p><strong>Fleets</strong></p>
<p>A <span style="text-decoration: underline;">fleet</span> is identified by an arbitrary <span style="text-decoration: underline;">sequence number</span>. It consists of at least one <span style="text-decoration: underline;">ship</span> (all ships in a fleet must use designs belonging to the same empire, as this determines the fleet&#8217;s ownership). It may have a <span style="text-decoration: underline;">name</span> for identification purposes. A fleet has an <span style="text-decoration: underline;">attack strategy</span> and a <span style="text-decoration: underline;">defence strategy</span>, as well as tactics settings (target <span style="text-decoration: underline;">selection criterion</span> and target <span style="text-decoration: underline;">selection mode</span>). The <span style="text-decoration: underline;">game update identifier at which each strategy was last changed</span> as well as the <span style="text-decoration: underline;">game update identifier corresponding to the latest tactics adjustment</span> are stored, to prevent players from constantly switching these values.</p>
<p>A fleet may be <span style="text-decoration: underline;">orbiting a planet</span>. In this case, all fleets belonging to the same empire have a <span style="text-decoration: underline;">mode</span>, which is either attack or defence. The <span style="text-decoration: underline;">game update identifier at which the last mode change occurred</span> is stored, to prevent players from switching from attack to defence and vice-versa too rapidly.</p>
<p>Fleets that are not orbiting planets are <span style="text-decoration: underline;">moving fleets</span>. Such a fleet has a <span style="text-decoration: underline;">planet of origin</span>; however, this information is insufficient, as fleets may be redirected at any time. A fleet&#8217;s actual origin is either an in-system location (which consists in a <span style="text-decoration: underline;">planet</span> and a <span style="text-decoration: underline;">distance indication</span>, that last part being positive if the origin was in the direction of the star, negative if it was in the direction of outer space, or zero if the fleet&#8217;s movement originated from the planet itself) or an outer space location (a set of <span style="text-decoration: underline;">x and y coordinates</span> expressed as real numbers, since the redirection may occur at any point when moving in outer space). The <span style="text-decoration: underline;">time elapsed since the last movement order</span> is required to estimate the fleet&#8217;s current actual location. Finally, the <span style="text-decoration: underline;">requested fleet mode on arrival</span> is included.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2011-01-15/milestone-2-database-contents-ships/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 – Database contents – Empires &amp; alliances</title>
		<link>http://blog.legacyworlds.com/index.php/2011-01-13/milestone-2-database-contents-empires-alliances/</link>
		<comments>http://blog.legacyworlds.com/index.php/2011-01-13/milestone-2-database-contents-empires-alliances/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 09:00:58 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[alliances]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[empire]]></category>
		<category><![CDATA[enemy lists]]></category>
		<category><![CDATA[milestone 2]]></category>
		<category><![CDATA[planets]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[trusted allies]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=259</guid>
		<description><![CDATA[This post, the seventh in a series about Milestone 2&#8242;s database structure, describes the elements that are used to store information about empires. This includes the description of an empire itself, information about planets owned or visited by an empire, and diplomatic relations (enemies, allies and alliances). An empire is identified through its empire name. [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p { margin-bottom: 0.08in; } -->This post, the seventh in a series about <a title="Milestone 2 - Database contents - Introduction" href="http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-introduction/">Milestone 2&#8242;s database structure</a>, describes the elements that are used to store information about empires. This includes the description of an empire itself, information about planets owned or visited by an empire, and diplomatic relations (enemies, allies and alliances).<span id="more-259"></span></p>
<p>An <span style="text-decoration: underline;">empire</span> is identified through its <span style="text-decoration: underline;">empire name</span>. There may only be one empire using a name from a single account at any given time. An empire possesses various <span style="text-decoration: underline;">quantities</span> of different <span style="text-decoration: underline;">resource types</span>. These quantities are always greater than or equal to 0, as debts are handled by damaging fleets and buildings.</p>
<p><strong>Research</strong></p>
<p>An empire may have implemented a <span style="text-decoration: underline;">set of technologies</span>, and it may also be researching technologies. For each <span style="text-decoration: underline;">technology being researched</span>, it is necessary to know the amount of <span style="text-decoration: underline;">accumulated research points</span>. A <span style="text-decoration: underline;">priority</span> (low, normal or high) may be assigned to a technology being researched.</p>
<p><strong>Empire-controlled planets</strong></p>
<p>An empire may own planets. Each <span style="text-decoration: underline;">owned planet</span> may be in the process of being abandoned, which implies knowing the <span style="text-decoration: underline;">amount of game updates left before actual abandon</span>.</p>
<p>All <span style="text-decoration: underline;">planets currently or formerly owned</span> by an empire still include the empire&#8217;s configuration of the planet. This “configuration” includes:</p>
<ul>
<li>the <span style="text-decoration: underline;">extraction priority</span> for each <span style="text-decoration: underline;">type of resource</span>,</li>
<li>the default <span style="text-decoration: underline;">name</span>, 	tactics 	(<span style="text-decoration: underline;">target selection criterion</span> and <span style="text-decoration: underline;">target selection mode</span>), <span style="text-decoration: underline;">attack strategy</span> and <span style="text-decoration: underline;">defence strategy</span> of fleets produced by the planet,</li>
<li>the planet&#8217;s battle tactics (<span style="text-decoration: underline;">target 	selection criterion</span> and <span style="text-decoration: underline;">target selection mode</span>),</li>
<li><em>the 	<span style="text-decoration: underline;">building priority</span> for both the <span style="text-decoration: underline;">civilian and the military build queues</span>.</em></li>
</ul>
<p><strong>Visited / known planets</strong></p>
<p>The <span style="text-decoration: underline;">last known status</span> of any <span style="text-decoration: underline;">planet</span> visited or formerly owned by an empire is stored. In addition to the <span style="text-decoration: underline;">game update identifier at which the information was last obtained</span>, this includes information about the planet&#8217;s <span style="text-decoration: underline;">population</span>, <span style="text-decoration: underline;">buildings</span> on the surface and, if the planet had been scanned for resources, the <span style="text-decoration: underline;">amount</span> and <span style="text-decoration: underline;">type</span> of <span style="text-decoration: underline;">detected resources</span>.<strong> </strong><span style="text-decoration: underline;">Fleet information</span> is also included: for each <span style="text-decoration: underline;">empire</span> possessing fleets at the planet, the <span style="text-decoration: underline;">amount of ships</span> and <span style="text-decoration: underline;">current mode</span> are retained.</p>
<p><strong>Empire-level diplomacy</strong></p>
<p>An <span style="text-decoration: underline;">empire</span> may define two types of <span style="text-decoration: underline;">enemy lists</span>: enemy <span style="text-decoration: underline;">empires</span> and enemy <span style="text-decoration: underline;">alliances</span>.</p>
<p>An <span style="text-decoration: underline;">empire</span> may define up to 5 ordered <span style="text-decoration: underline;">trusted allies</span>, which are other empires to which an empire grants the privilege to move its fleets. A trusted ally entry is <span style="text-decoration: underline;">either pending or validated</span>. Each empire may also define a <span style="text-decoration: underline;">T.A. blacklist</span>, the list of all empires which are not allowed to give an empire trusted ally status.</p>
<p><strong>Alliances</strong></p>
<p>An <span style="text-decoration: underline;">alliance</span> is identified by an <span style="text-decoration: underline;">alliance name</span>. It must have at least one <span style="text-decoration: underline;">member </span><span style="text-decoration: underline;">empire</span>, and one of the member empires must be the alliance&#8217;s <span style="text-decoration: underline;">leader</span>. In addition, an empire that is not a member of an alliance may be requesting to join one alliance. An empire may only belong to or be requesting to join one alliance at any given time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2011-01-13/milestone-2-database-contents-empires-alliances/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 – Database contents – Universe</title>
		<link>http://blog.legacyworlds.com/index.php/2011-01-11/milestone-2-database-contents-universe/</link>
		<comments>http://blog.legacyworlds.com/index.php/2011-01-11/milestone-2-database-contents-universe/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 09:00:22 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[build queues]]></category>
		<category><![CDATA[buildings]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[milestone 2]]></category>
		<category><![CDATA[planets]]></category>
		<category><![CDATA[systems]]></category>
		<category><![CDATA[universe]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=255</guid>
		<description><![CDATA[This sixth post from the Milestone 2 database structure series describes the information that is associated with the universe: the map and the objects that are on it, as well as the description of a planet&#8217;s surface and operation. Map The map consists in two major entities: stellar systems and planets. A stellar system consists [...]]]></description>
			<content:encoded><![CDATA[<p>This sixth post from the <a title="Milestone 2 - Database contents - Introduction" href="http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-introduction/">Milestone 2 database structure</a> series describes the information that is associated with the universe: the map and the objects that are on it, as well as the description of a planet&#8217;s surface and operation.<span id="more-255"></span></p>
<p><!-- p { margin-bottom: 0.08in; } --><strong>Map</strong><br />
The map consists in two major entities: stellar systems and planets.</p>
<p>A <span style="text-decoration: underline;">stellar system</span> consists in a <span style="text-decoration: underline;">pair of coordinates</span>, representing the system&#8217;s location on the map.</p>
<p>A <span style="text-decoration: underline;">planet</span> is found at a specific <span style="text-decoration: underline;">orbit</span> of a <span style="text-decoration: underline;">stellar system</span> (each system has 5 orbits). It is identified through an unique <span style="text-decoration: underline;">map object name</span> and includes a <span style="text-decoration: underline;">picture identifier</span> to be used when displaying the planet. A planet has a <span style="text-decoration: underline;">population</span>; a portion of this population is <span style="text-decoration: underline;">happy</span>, the rest isn&#8217;t.</p>
<p><span style="text-decoration: underline;">Planets</span> may feature any amount of <span style="text-decoration: underline;">resource providers</span> (at most one per <span style="text-decoration: underline;">type of resource</span>); each resource provider includes its <span style="text-decoration: underline;">maximal amount</span>, <span style="text-decoration: underline;">current amount</span>, <span style="text-decoration: underline;">extraction difficulty</span> and <span style="text-decoration: underline;">regeneration factor</span>.</p>
<p>In addition to basic information regarding a planet, its infrastructure and current tasks must be described.</p>
<p><strong>Buildings</strong></p>
<p>The infrastructure of a planet consists in a set of buildings. A <span style="text-decoration: underline;">building</span> is associated to a specific <span style="text-decoration: underline;">planet</span> and <span style="text-decoration: underline;">building type</span>. The record includes the building&#8217;s <span style="text-decoration: underline;">current hit points</span>, used to determine whether it should be destroyed or not, and affecting its production level.</p>
<p><strong>Civilian queues</strong></p>
<p>A planet may possess a civilian build queue which lists which actions are being performed with regards to the planet&#8217;s buildings. An <span style="text-decoration: underline;">civilian build queue entry</span> is specific to a <span style="text-decoration: underline;">planet</span> and is identified by its <span style="text-decoration: underline;">queue order</span>. It indicates the <span style="text-decoration: underline;">type of work</span> being performed (construction, repair, destruction) and includes information regarding the <span style="text-decoration: underline;">amount of work</span> which was already processed.</p>
<p>Construction is associated with a <span style="text-decoration: underline;">type of building</span> and a <span style="text-decoration: underline;">quantity</span> of buildings to construct, as well as the <span style="text-decoration: underline;">amount of work</span> which was already performed on the current building. Destruction and repair operations may be associated with either a <span style="text-decoration: underline;">type of building</span> and a <span style="text-decoration: underline;">quantity</span> (in which case the game update should select the most damaged buildings) or an <span style="text-decoration: underline;">actual building</span>.</p>
<p>Repair and destruction operations are updated when buildings are destroyed by external causes (inability to pay for the buildings&#8217; upkeep or battle damage).</p>
<p><strong>Military queues</strong></p>
<p>A planet may possess a military queue which lists which actions are being performed by the planet&#8217;s shipyards; military queues are only supported for planets actually owned by an empire. A <span style="text-decoration: underline;">military queue entry</span> is specific to an <span style="text-decoration: underline;">empire-controlled p</span><span style="text-decoration: underline;">lanet</span> and identified by its <span style="text-decoration: underline;">queue order</span>. Each queue entry is associated with an <span style="text-decoration: underline;">action being performed</span> (construction, repair, refit, decommission). There are two different types of military queue entries:</p>
<ul>
<li>some entries are associated with an <span style="text-decoration: underline;">empire ship design</span>; 	these entries also include the <span style="text-decoration: underline;">amount of ships</span> that should be affected by the action (this information is updated as ships are processed),</li>
<li>some entries are associated with an actual <span style="text-decoration: underline;">ship</span>.</li>
</ul>
<p>In addition, ship refitting operations are associated with a second <span style="text-decoration: underline;">empire ship design</span> which indicates the type of ship the operation will produce.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2011-01-11/milestone-2-database-contents-universe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 – Database contents – Naming</title>
		<link>http://blog.legacyworlds.com/index.php/2011-01-09/milestone-2-database-contents-naming/</link>
		<comments>http://blog.legacyworlds.com/index.php/2011-01-09/milestone-2-database-contents-naming/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 09:00:43 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[milestone 2]]></category>
		<category><![CDATA[names]]></category>
		<category><![CDATA[naming system]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=253</guid>
		<description><![CDATA[This fifth post from the Milestone 2 database structure series describes the elements of the naming system. This system is used to store all names that may be modified by players (empires, alliances and &#8220;map objects&#8221;) and will be visible by everyone. Using a separate component for this makes administration a little easier. Banned names [...]]]></description>
			<content:encoded><![CDATA[<p>This fifth post from the <a title="Milestone 2 - Database contents - Introduction" href="http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-introduction/">Milestone 2 database structure</a> series describes the elements of the naming system. This system is used to store all names that may be modified by players (empires, alliances and &#8220;map objects&#8221;) and will be visible by everyone. Using a separate component for this makes administration a little easier.<span id="more-253"></span></p>
<p><strong>Banned names</strong></p>
<p>A <span style="text-decoration: underline;">banned name</span> is a 20-character <span style="text-decoration: underline;">string</span> that has been banned by an <span style="text-decoration: underline;">administrator</span> from ever being used in any type of name.</p>
<p><strong>Empire names</strong></p>
<p>An <span style="text-decoration: underline;">empire name</span> consists in an <span style="text-decoration: underline;">unique, 20-character string</span>. It is associated with the account that created it. In addition, empire names need to be inspected by the administration team. Once an empire name has been inspected, it is associated with the <span style="text-decoration: underline;">administrative account</span> which inspected it, the <span style="text-decoration: underline;">time and date of the inspection</span> as well as <span style="text-decoration: underline;">whether it was reset or kept</span>.</p>
<p><strong>Alliance names</strong></p>
<p>An <span style="text-decoration: underline;">alliance name</span> actually consists in two strings: the <span style="text-decoration: underline;">tag</span>, a 5-character string which uniquely identifies the alliance, and the <span style="text-decoration: underline;">description</span>, a 40-character string which does not need to be unique. They are associated with the <span style="text-decoration: underline;">account owning the empire who created the alliance</span>. Alliance names need to be inspected by the administration team – if a name is rejected, the alliance is disbanded. If it is validated, however, the <span style="text-decoration: underline;">administrative account</span> which inspected it as well as the <span style="text-decoration: underline;">time and date of the inspection</span> are associated with it.</p>
<p>While an alliance&#8217;s tag cannot be changed, its description may be modified by the alliance&#8217;s current leader. When that happens, the previous validation information is removed and the “account to blame” is updated accordingly.</p>
<p><strong>Map objects names</strong></p>
<p>A <span style="text-decoration: underline;">map object name</span> is, at the moment, the name given to a planet. It consists in the actual <span style="text-decoration: underline;">name</span> (which is a 20-character string), originally generated by the game when creating the map. To prevent players who just gained control on a planet from renaming it immediately, the <span style="text-decoration: underline;">minimal next renaming time and date</span> are associated with name records and updated every time the corresponding map object changes owner or when the object is renamed.</p>
<p>When a map object name is changed by a <span style="text-decoration: underline;">user</span>, it must be validated by an <span style="text-decoration: underline;">administrator</span>, who may choose to keep it or to reset it. A map object name that was reset must still undergo the wait until the minimal next renaming time. Changing an already validated map name removes the inspection information.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2011-01-09/milestone-2-database-contents-naming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 – Database contents – Administration</title>
		<link>http://blog.legacyworlds.com/index.php/2011-01-07/milestone-2-database-contents-administration/</link>
		<comments>http://blog.legacyworlds.com/index.php/2011-01-07/milestone-2-database-contents-administration/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 09:00:37 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[administrators]]></category>
		<category><![CDATA[banhammer]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[milestone 2]]></category>
		<category><![CDATA[user accounts]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=249</guid>
		<description><![CDATA[This fourth post about Milestone 2&#8242;s database structure describes all administration-related information. This includes administrative accounts (which are tied to, but separate from user accounts), the administration log, and of course the banhammer. Administrators An administrative account is an account to which special privileges (stored through a bit mask) are given. Administrative accounts are identified [...]]]></description>
			<content:encoded><![CDATA[<p>This fourth post about Milestone 2&#8242;s database structure describes all administration-related information. This includes administrative accounts (which are tied to, but separate from user accounts), the administration log, and of course the banhammer.<span id="more-249"></span></p>
<p><!-- p { margin-bottom: 0.08in; } --><strong>Administrators</strong></p>
<p>An <span style="text-decoration: underline;">administrative account</span> is an <span style="text-decoration: underline;">account</span> to which special <span style="text-decoration: underline;">privileges</span> (stored through a bit mask) are given. Administrative accounts are identified by a <span style="text-decoration: underline;">name</span> and can connect to a specific administration interface using a password (which must differ from the administrator&#8217;s “normal” password), for which a <span style="text-decoration: underline;">SHA1 hash</span> and a <span style="text-decoration: underline;">MD5 hash</span> are stored.</p>
<p><strong>Administrative log</strong></p>
<p>In order to make administrators accountable for their actions, a log of all administrative actions is kept. An <span style="text-decoration: underline;">administrative log entry</span> consists in a <span style="text-decoration: underline;">time and date</span>, a <span style="text-decoration: underline;">log level</span> and a <span style="text-decoration: underline;">message</span>. Each log entry is linked to the <span style="text-decoration: underline;">administrator</span> whose actions are being logged. Administrative log entries are purged on a regular basis by the game server.</p>
<p><strong>The banhammer</strong></p>
<p>The “banhammer” (which is the tool used to ban users from the game) is more complex that the name would indicate. In the description below, “an administrator” means “an administrator with the proper privileges”.</p>
<p>A <span style="text-decoration: underline;">ban request</span> is emitted <span style="text-decoration: underline;">by an administrator</span> regarding a <span style="text-decoration: underline;">validated account</span>. The request includes a <span style="text-decoration: underline;">reason</span> why the account should be banned, as well as the <span style="text-decoration: underline;">time and date</span> at which it was emitted. There can be only one ban request for a given account at any time; in addition, it is impossible to request a ban on an account which is already banned.</p>
<p>If no action is taken within one week (that is the default value, as determined by the game&#8217;s parameters – it may change within a single run of the game) of a request&#8217;s emission, the request is archived. Its <span style="text-decoration: underline;">expiration time and date</span> are stored.</p>
<p>A ban request may be rejected by any administrator, including the administrator who initially requested the ban. When this happens, the request is archived, along with the <span style="text-decoration: underline;">time and date</span> at which it was rejected and the <span style="text-decoration: underline;">reason</span> for which it was rejected.</p>
<p>Finally, a ban request may be validated by an administrator (as long as the validating administrator is not the one who originally requested the ban). In this case, the <span style="text-decoration: underline;">time and date</span> at which the request was validated, as well as the <span style="text-decoration: underline;">validating administrator</span> are stored. The account becomes banned as soon as the request is validated.</p>
<p>If the account that was banned was still active, it is “redeemable” for the next 48h – the associated empire is not deleted. After 48h, or if the account was originally disabled, it becomes fully banned. In any case, a ban may be lifted, in which case the ban request is archived (along with the <span style="text-decoration: underline;">time and date</span> at which it was lifted) and the account is returned to its previous state.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2011-01-07/milestone-2-database-contents-administration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 &#8211; Database contents &#8211; Users</title>
		<link>http://blog.legacyworlds.com/index.php/2011-01-05/milestone-2-database-contents-users/</link>
		<comments>http://blog.legacyworlds.com/index.php/2011-01-05/milestone-2-database-contents-users/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 09:27:58 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[account states]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[milestone 2]]></category>
		<category><![CDATA[user accounts]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=240</guid>
		<description><![CDATA[This third, and rather late, post about Milestone 2&#8242;s database structure describes the various elements that are part of the user account storage and management system. This includes accounts themselves, of course; however, a lot more is needed to fully describe the state of an account, and there is additional information to retain &#8211; for [...]]]></description>
			<content:encoded><![CDATA[<p>This third, and rather late, post about Milestone 2&#8242;s <a title="Milestone 2 - Database contents - Introduction" href="http://blog.legacyworlds.com/?p=219">database structure</a> describes the various elements that are part of the user account storage and management system. This includes accounts themselves, of course; however, a lot more is needed to fully describe the state of an account, and there is additional information to retain &#8211; for example, password recovery or e-mail address change requests require some more data.<span id="more-240"></span></p>
<p><!-- p { margin-bottom: 0.08in; } --><strong>Accounts</strong></p>
<p>An <span style="text-decoration: underline;">user account</span> is identified by its <span style="text-decoration: underline;">e-mail address</span>. It may authenticate using a password whose <span style="text-decoration: underline;">SHA1 hash</span> and <span style="text-decoration: underline;">MD5 hash</span> are associated with the account.</p>
<p>The state of an account changes over time, depending on player actions and administrative action, as shown by the diagram below.</p>
<div id="attachment_241" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.legacyworlds.com/wp-content/uploads/2011/01/account-states.png" rel="lightbox[240]" title="Account states"><img class="size-medium wp-image-241" title="Account states" src="http://blog.legacyworlds.com/wp-content/uploads/2011/01/account-states-300x206.png" alt="" width="300" height="206" /></a><p class="wp-caption-text">The various states of an account and transitions between these states.</p></div>
<p style="text-align: center;">
<p><!-- p { margin-bottom: 0.08in; } -->When an account is first created, the only possible action is to validate it. This validation is performed through a <span style="text-decoration: underline;">validation key</span> (a random, 64-character string). Accounts that have not been validated have an <span style="text-decoration: underline;">expiration date and time</span> past which they are deleted.</p>
<p>All validated accounts have some arbitrary amount of <span style="text-decoration: underline;">game credits</span>, <em>which may be used to “buy” extra features</em>. In addition, currently active accounts accumulate <span style="text-decoration: underline;">vacation credits</span> which can be used to enter vacation mode.</p>
<p>Accounts which have been disabled as well as active accounts which are being disabled by their owners are associated to the <span style="text-decoration: underline;">time and date</span> at which the account was (respectively “will be”) disabled. They may include a <span style="text-decoration: underline;">reason</span> – a short text from the user explaining why he chose to disable his account.</p>
<p>The owner of a disabled account may request its re-activation. This is done using a new <span style="text-decoration: underline;">validation key</span> which, if not used within <span style="text-decoration: underline;">some time</span>, will expire (the account would then return to its previous state).</p>
<p>An active account may be entering vacation mode or in vacation mode. In both cases, the <span style="text-decoration: underline;">date and time </span>at which vacation mode will be / has been enabled needs to be stored.</p>
<p>An active account to which there has been no connection for the past 3 weeks enters the unused state, at which point an e-mail is sent; the <span style="text-decoration: underline;">date and time</span> at which the e-mail is sent is stored. If there has been no connection 1 week after the account entered the unused state, the account is disabled.</p>
<p><!-- p { margin-bottom: 0.08in; } --><em><strong>Extra features</strong></em></p>
<p><em>An extra feature is some improvement to the game&#8217;s interface (e.g. tools, storage space) which may be “bought” by a player using game credits.</em></p>
<p><em><strong>Feature definition</strong></em></p>
<p><em>An <span style="text-decoration: underline;">extra feature definition</span> is identified by a <span style="text-decoration: underline;">code name</span>, which will be used to refer to the feature in the game server&#8217;s code; it is associated with a <span style="text-decoration: underline;">name</span> and a <span style="text-decoration: underline;">description</span> from the internationalisation system. An extra feature has a <span style="text-decoration: underline;">cost</span> in game credits.</em></p>
<p><em>There are two types of extra features:</em></p>
<ul>
<li><em><span style="text-decoration: underline;">features which may be bought</span> include a <span style="text-decoration: underline;">maximal       quantity</span> (for example, it is     possible to buy up to four T.A. list extensions) and a <span style="text-decoration: underline;">savings        factor</span> (which is applied         when buying multiple features of a given type in one operation); in     addition, such a feature may <span style="text-decoration: underline;">depend on another feature</span> of the same type,</em></li>
<li><em><span style="text-decoration: underline;">features which use    a subscription model</span> do not      include any additional information.</em></li>
</ul>
<p><em><strong>User features</strong></em></p>
<p><em>A <span style="text-decoration: underline;">user feature</span> is a <span style="text-decoration: underline;">feature</span> that has been bought or subscribed to by the owner of an <span style="text-decoration: underline;">account</span>.</em></p>
<p><em><span style="background-color: red; color: yellow;">M3 should also include some form of credits history</span></em></p>
<p><!-- p { margin-bottom: 0.08in; } --><strong>Sessions history</strong></p>
<p>An <span style="text-decoration: underline;">entry of the sessions history</span> is linked to an <span style="text-decoration: underline;">account</span>. It stores the game server&#8217;s <span style="text-decoration: underline;">session identifier</span> and <span style="text-decoration: underline;">IP address</span> (for reference purposes), as well as the <span style="text-decoration: underline;">type of the session</span> and the <span style="text-decoration: underline;">time and date at which the session was initialised</span>. If the session is no longer active, the <span style="text-decoration: underline;">time and date at which it ended</span> as well as the <span style="text-decoration: underline;">reason why it ended</span> (manual disconnection, automatic disconnection because of exclusive sessions, expiration or server restart) are stored.</p>
<p><strong>Warnings</strong></p>
<p>Warnings may be given to an active account by the administration team. No warnings may be given in the hour after another warning has been given. In addition, warnings are removed after 2 months. Warnings are kept even if the account becomes disabled.</p>
<p>A <span style="text-decoration: underline;">warnings record</span> is therefore associated to each <span style="text-decoration: underline;">user account</span> that received at least one warning; the record stores the <span style="text-decoration: underline;">amount</span> of warnings received, the <span style="text-decoration: underline;">date and time at which the last warning was received</span> and the <span style="text-decoration: underline;">date and time at which the warnings count will be decreased</span> (this value is initialised when a warning is received, and then updated when a new warning is received or when the counter is decreased).</p>
<p><!-- p { margin-bottom: 0.08in; } --><strong>User log</strong></p>
<p>A log of all account-related actions is kept. An <span style="text-decoration: underline;">user log entry</span> consists in a <span style="text-decoration: underline;">time and date</span>, a <span style="text-decoration: underline;">log level</span> and a <span style="text-decoration: underline;">message</span>. Of course, such an entry is linked to an <span style="text-decoration: underline;">account</span>. All entries pertaining to an account will be deleted when the account itself is deleted; logs are otherwise purged at a regular interval.</p>
<p><strong>Password recovery requests</strong></p>
<p>A <span style="text-decoration: underline;">password recovery request</span> is associated with a <span style="text-decoration: underline;">validated</span><span style="text-decoration: underline;"> account</span> that requested it – there can only be one at any given time. Because the functionality could be used to “spam” the game&#8217;s users, requests on an account are <span style="text-decoration: underline;">locked for some time</span>, even if password recovery is indeed validated. When such a request has not been validated yet, it also includes a <span style="text-decoration: underline;">recovery key</span> – a random 64-character string.</p>
<p><strong>Address change requests</strong></p>
<p>An <span style="text-decoration: underline;">address change request</span> may be requested by any <span style="text-decoration: underline;">active account</span>. The <span style="text-decoration: underline;">new e-mail address</span> must not be used by any other account (and it may not be used by any other address change request). To prevent users from using the address change system to “spam”, an address change request (whether it is confirmed, cancelled or simply ignored) <span style="text-decoration: underline;">expires after a few hours</span>. Finally, pending address change requests are associated with a <span style="text-decoration: underline;">validation key</span> (a random, 64-character string).</p>
<p><strong>Preferences</strong></p>
<p>In order to store user preferences, the database should store a list of preference definitions. A <span style="text-decoration: underline;"> preference definition</span> is identified by an unique <span style="text-decoration: underline;">code name</span> and belongs to a <span style="text-decoration: underline;">preference group</span> which is also identified by a separate <span style="text-decoration: underline;">code name</span> (and features a <span style="text-decoration: underline;">display name</span> and a <span style="text-decoration: underline;">description</span> as strings from the internationalisation system). A preference definition also includes a <span style="text-decoration: underline;">name</span> and a <span style="text-decoration: underline;">description</span> (both being strings from the internationalisation system). The definition may correspond to a <span style="text-decoration: underline;">general preference</span>, or be specific to a <span style="text-decoration: underline;">session type</span>. Finally, a <span style="text-decoration: underline;">type identifier</span> and a <span style="text-decoration: underline;">default value</span> are associated with the definition. Both are actually strings, to be interpreted by the game server.</p>
<p>An actual <span style="text-decoration: underline;">user preference</span> associates a <span style="text-decoration: underline;">user account</span> with a <span style="text-decoration: underline;">preference definition</span> and specifies the preference&#8217;s <span style="text-decoration: underline;">value</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2011-01-05/milestone-2-database-contents-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 &#8211; Database contents &#8211; Application data</title>
		<link>http://blog.legacyworlds.com/index.php/2010-11-03/milestone-2-database-contents-application-data/</link>
		<comments>http://blog.legacyworlds.com/index.php/2010-11-03/milestone-2-database-contents-application-data/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 08:09:20 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[application data]]></category>
		<category><![CDATA[application status]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[game parameters]]></category>
		<category><![CDATA[game update status]]></category>
		<category><![CDATA[milestone 2]]></category>
		<category><![CDATA[system logs]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=233</guid>
		<description><![CDATA[This is the second part of a series of post about the structure of the Beta 6 Milestone 2 database, which describes the various structures required to store and control the state of the game server. Names and descriptions in this section do not use the internationalisation system, as they are not meant to be [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p { margin-bottom: 0.08in; } --><span>This is the second part of a series of post about the <a href="http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-introduction/">structure of the Beta 6 Milestone 2 database</a>, which describes the various structures required to store and control the state of the game server. Names and descriptions in this section do not use the internationalisation system, as they are not meant to be seen by players.</span></p>
<p><span><span id="more-233"></span></span> <span style="font-size: medium;"><strong>Application status</strong></span></p>
<p><span>Information regarding the <span style="text-decoration: underline;">application&#8217;s state</span> include the <span style="text-decoration: underline;">identifier of the next game update</span>, the <span style="text-decoration: underline;">identifier of the current game update</span> if one is being processed at the time, the date and time at which each type of recapitulation e-mail was last sent (<span style="text-decoration: underline;">administrative</span>, <span style="text-decoration: underline;">server errors</span>, <span style="text-decoration: underline;">player messages</span>), and information about maintenance mode, if enabled (<span style="text-decoration: underline;">start date &amp; time</span>, <span style="text-decoration: underline;">scheduled end date &amp; time</span>, <span style="text-decoration: underline;">reason</span>).</span></p>
<p><!-- p { margin-bottom: 0.08in; } --><span style="font-size: medium;"><strong>System logs</strong></span></p>
<p><span><span style="text-decoration: underline;">Entries in the system log</span> include a <span style="text-decoration: underline;">time stamp</span>, a <span style="text-decoration: underline;">level</span> (trace, debugging, information, warning or error), a <span style="text-decoration: underline;">component identifier</span> and a <span style="text-decoration: underline;">message</span>. In addition, a log entry may be associated with an exception record. Such a record includes the <span style="text-decoration: underline;">list of exceptions</span> in the proper <span style="text-decoration: underline;">order</span>, with the exception&#8217;s <span style="text-decoration: underline;">class</span> and <span style="text-decoration: underline;">message</span>, and the stack trace for each exception. An <span style="text-decoration: underline;">entry of the stack trace</span> may contain a <span style="text-decoration: underline;">location</span> (class and method), a <span style="text-decoration: underline;">file name</span> and a <span style="text-decoration: underline;">line number</span>.</span></p>
<p><span style="font-size: medium;"><strong>Ticker status</strong></span></p>
<p><span>The “ticker” is the server component which fires the various tasks that ensure the game&#8217;s proper functioning. A <span style="text-decoration: underline;">ticker task</span> is identified by its <span style="text-decoration: underline;">name</span>. It may be <span style="text-decoration: underline;">running, stopped or scheduled</span> to start automatically at a <span style="text-decoration: underline;">later date and time</span>.</span></p>
<p><span style="font-size: medium;"><strong>Game update status</strong></span></p>
<p><span>When the various game updates are being executed, it is necessary to store their current status in order to make sure that an error during a game update can be recovered from. Information regarding a game update includes the <span style="text-decoration: underline;">type of update</span> (e.g. fleet movement, battle computations, empire research&#8230;), the <span style="text-decoration: underline;">last game update</span> at which the update was last executed, and <span style="text-decoration: underline;">whether the update has been processed, is being processed, or is scheduled for processing</span>. Finally, there are two major types of updates – updates which affect planets and updates which affect empires; this implies storing a reference to the <span style="text-decoration: underline;">planet</span> or <span style="text-decoration: underline;">empire</span> affected by the update, respectively.</span></p>
<p><span style="font-size: medium;"><strong>Game and system parameters</strong></span></p>
<p><span>A <span style="text-decoration: underline;">game or system parameter</span> is identified by a <span style="text-decoration: underline;">code name</span> (which is used in the game&#8217;s code to refer to the parameter). It possesses both a <span style="text-decoration: underline;">name</span> and a <span style="text-decoration: underline;">description</span>, which are stored as text (only administrators will see these strings). A parameter belongs to a <span style="text-decoration: underline;">category</span> identified by a <span style="text-decoration: underline;">name</span>. It may include a <span style="text-decoration: underline;">lower bound</span> and / or a <span style="text-decoration: underline;">higher bound,</span> and of course has a <span style="text-decoration: underline;">value</span>.</span></p>
<p><span style="font-size: medium;"><strong>Session types</strong></span></p>
<p><span>The game will, in the future, allow for various types of sessions (in addition to sessions from the usual web interface). A <span style="text-decoration: underline;">session type</span> is defined by a <span style="text-decoration: underline;">code</span> (e.g. “web” in the case of the web interface), associated to a flag indicating <span style="text-decoration: underline;">whether the session type is exclusive</span>. An exclusive session will automatically terminate any concurrent, exclusive session.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2010-11-03/milestone-2-database-contents-application-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 &#8211; Database contents &#8211; Game definitions</title>
		<link>http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-game-definitions/</link>
		<comments>http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-game-definitions/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 10:03:37 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[buildings]]></category>
		<category><![CDATA[capabilities]]></category>
		<category><![CDATA[countermeasures]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[fleet strategies]]></category>
		<category><![CDATA[game definitions]]></category>
		<category><![CDATA[internationalisation]]></category>
		<category><![CDATA[milestone 2]]></category>
		<category><![CDATA[productions]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[ship parts]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[weapons]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=222</guid>
		<description><![CDATA[A lot of what goes on in the game follows rules which imply values which may be changed during the game for balancing reasons, or simply to fix a mistake. In this post: Internationalisation Resource types Natural resources Types of weaponry and defences Production and capability types Technologies Fleet strategies Defence strategies Attack strategies Relative [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p { margin-bottom: 0.08in; } --><span>A lot of what goes on in the game follows rules which imply values which may be changed during the game for balancing reasons, or simply to fix a mistake.</span></p>
<p><span>In this post:</span></p>
<ul>
<li><span>Internationalisation</span></li>
<li><span>Resource types</span>
<ul>
<li><span>Natural resources</span></li>
</ul>
</li>
<li><span>Types of weaponry and defences</span></li>
<li><span>Production and capability types</span></li>
<li><span>Technologies</span></li>
<li><span>Fleet strategies</span>
<ul>
<li><span>Defence strategies</span></li>
<li><span>Attack strategies</span></li>
<li><span>Relative strengths</span></li>
</ul>
</li>
<li><span>Stuff that can be built</span>
<ul>
<li><span>Building types</span></li>
<li><span>Ship parts</span></li>
</ul>
</li>
</ul>
<p><span><span id="more-222"></span></span></p>
<p><!-- p { margin-bottom: 0.08in; } --><span style="font-size: medium;"><strong>Internationalisation</strong></span></p>
<p><span>All text that is independent from the interface used to access the game is stored in the database. Each <span style="text-decoration: underline;">string</span> is identified by a <span style="text-decoration: underline;">code</span>, and associated to <span style="text-decoration: underline;">translations</span> in various <span style="text-decoration: underline;">languages</span>. Each language is identified by an <span style="text-decoration: underline;">ISO code</span> and a <span style="text-decoration: underline;">name</span> (in the language itself). The set of translations available in a given language may be incomplete, for example when a new language is being added.</span></p>
<p><span>All definitions which require a name or a description in fact use the internationalisation system.</span></p>
<p><!-- p { margin-bottom: 0.08in; } --><span style="font-size: medium;"><strong>Resource types</strong></span></p>
<p><span>The various types of resources which empire may possess and use are defined in the database. Each <span style="text-decoration: underline;">resource type</span> is identified by its <span style="text-decoration: underline;">name</span>; in addition, it carries a <span style="text-decoration: underline;">description</span> as another string from the internationalisation system. It belongs to a <span style="text-decoration: underline;">resource category</span>, itself identified by yet another string. All resources are given a <span style="text-decoration: underline;">value</span> which is used to compute e.g. player rankings. Finally, advanced types of resources only become visible when some <span style="text-decoration: underline;">technology</span> has been discovered.</span></p>
<p><a name="__RefHeading__3648_2003532168"></a> <span style="font-size: medium;">Natural resources</span></p>
<p><span>Some types of resources can be found in the game universe and can be extracted through mining operations. These <span style="text-decoration: underline;">natural resources</span> are added to the map when it is generated. Each type of natural resource has a non-zero <span style="text-decoration: underline;">probability</span> of being found at a location; in addition, the map generator should enforce an <span style="text-decoration: underline;">average quantity</span> and <span style="text-decoration: underline;">average extraction difficulty</span>.</span></p>
<p><!-- p { margin-bottom: 0.08in; } --><span style="font-size: medium;"><strong>Types of weaponry &amp; defences</strong></span></p>
<p><span>There are three categories of weaponry (beam weapons, mass drivers and missiles) and their respective countermeasures (shields, armours and point defence systems). Each <span style="text-decoration: underline;">weaponry or defence category</span> should be identified by its <span style="text-decoration: underline;">general type</span> and by <span style="text-decoration: underline;">whether it is a weapon or a countermeasure</span>. In addition, a <span style="text-decoration: underline;">name</span> and a <span style="text-decoration: underline;">description</span> need to be associated with each category.</span></p>
<p><a name="__RefHeading__3652_2003532168"></a> <span style="font-size: medium;"><strong>Production and capability types</strong></span></p>
<p><span>Productions and capabilities, whether they apply to whole empires, planets or ships, are described in the exact same way.</span></p>
<p><span>Generally speaking, a <span style="text-decoration: underline;">production or capability</span> is identified by a <span style="text-decoration: underline;">code name</span>. It possesses a <span style="text-decoration: underline;">display name</span> and a <span style="text-decoration: underline;">description</span>. It carries a flag indicating whether <span style="text-decoration: underline;">it is an additive or exclusive property</span> – for example, ship components providing automated repairs have an additive effect, while mineral scanners are either present or not.</span></p>
<p><span>The value of a production may not be meaningful to the player. In order to display that value, a production definition includes a non-zero <span style="text-decoration: underline;">display multiplier</span>, and may use a <span style="text-decoration: underline;">prefix</span> and / or a <span style="text-decoration: underline;">suffix</span>. If there is a suffix, then a <span style="text-decoration: underline;">suffix tooltip text</span> may be included. The prefix, suffix and suffix tooltip text are of course internationalised strings.</span></p>
<p><span>While empire and ship productions do not include any additional data, a <span style="text-decoration: underline;">planet production or capability definition</span> features a flag that indicates <span style="text-decoration: underline;">whether the production is local or global</span>. A local production is used at the planet&#8217;s level only, while a global production is computed at the owning empire&#8217;s level.</span></p>
<p><!-- p { margin-bottom: 0.08in; } --><span style="font-size: medium;"><strong>Technologies</strong></span></p>
<p><span>A <span style="text-decoration: underline;">technology</span> is identified by its <span style="text-decoration: underline;">name</span>. It carries a <span style="text-decoration: underline;">description</span>, and requires an amount of <span style="text-decoration: underline;">research points</span> to be accumulated before it is discovered. Each technology belongs to a <span style="text-decoration: underline;">technology category</span>, identified by its <span style="text-decoration: underline;">name</span>. A technology has an <span style="text-decoration: underline;">implementation price</span>, defined by at least one <span style="text-decoration: underline;">type of resource</span> and a positive <span style="text-decoration: underline;">quantity</span>. Finally, a technology may only be researched once its <span style="text-decoration: underline;">dependencies</span> (a set of other technologies) have been discovered.</span></p>
<p><span>In addition, a technology may provide some <span style="text-decoration: underline;">amount</span> of an <span style="text-decoration: underline;">empire production</span>.</span></p>
<p><a name="__RefHeading__3656_2003532168"></a> <span style="font-size: medium;"><strong>Fleet strategies</strong></span></p>
<p><span>Generally speaking, a <span style="text-decoration: underline;">fleet strategy</span> is described by a <span style="text-decoration: underline;">name</span> and a <span style="text-decoration: underline;">description</span>. In addition, all fleet strategies include a <span style="text-decoration: underline;">probability of intercepting shots to other fleets</span>, an <span style="text-decoration: underline;">advantage threshold</span> used to determine whether ground armies should be dropped to the planet&#8217;s surface, and an <span style="text-decoration: underline;">advantage multiplier</span> which indicates how much support a ship of size 1 gives to the ground armies. All strategies also include a <span style="text-decoration: underline;">probability of changing targets</span>.</span></p>
<p><a name="__RefHeading__3658_2003532168"></a> <span style="font-size: medium;">Defence strategies</span></p>
<p><span>A <span style="text-decoration: underline;">defence strategy</span> <span style="text-decoration: underline;">is a strategy</span> which can be used by fleets in defensive mode. In addition to the common strategy information, it also includes a <span style="text-decoration: underline;">probability of intercepting shots to the planet</span>.</span></p>
<p><a name="__RefHeading__3660_2003532168"></a> <span style="font-size: medium;">Attack strategies</span></p>
<p><span>An <span style="text-decoration: underline;">attack strategy</span> <span style="text-decoration: underline;">is a strategy</span> which can be used by attacking fleets. In addition to the common strategy information, attack strategies also include information related to attacking the planet: a <span style="text-decoration: underline;">weight modifier for ground structures</span>, which determines how likely a fleet using the strategy is to target the planet&#8217;s buildings; a <span style="text-decoration: underline;">military objectives modifier</span>, which indicates how likely the fleet is to target civilian structures, and a <span style="text-decoration: underline;">civilian casualties modifier</span>, which will be used to compute civilian casualties when firing at ground structures. In addition, because planets do not have strategies, the information regarding attack strategies&#8217; relative efficiency opposed to planets is included along with attack strategies. This information consists in 4 modifiers: <span style="text-decoration: underline;">aim</span> and <span style="text-decoration: underline;">damage</span> modifiers for the fleets, and <span style="text-decoration: underline;">aim</span> and <span style="text-decoration: underline;">damage</span> modifiers for planets.</span></p>
<p><!-- p { margin-bottom: 0.08in; } --><span style="font-size: medium;">Relative strengths</span></p>
<p><span>Each <span style="text-decoration: underline;">combination</span> of <span style="text-decoration: underline;">an attack strategy</span> with a <span style="text-decoration: underline;">defence strategy</span> is described through 2 sets of modifiers: <span style="text-decoration: underline;">aim and damage modifiers</span> for both the <span style="text-decoration: underline;">attacking</span> and the <span style="text-decoration: underline;">defending</span> sides.</span></p>
<p><a name="__RefHeading__3664_2003532168"></a> <span style="font-size: medium;"><strong>Stuff that can be built</strong></span></p>
<p><span>The database should contain the definition of all “<span style="text-decoration: underline;">buildable</span>” items. Such an item is always identified by a <span style="text-decoration: underline;">name</span>; it is associated with a <span style="text-decoration: underline;">description</span>, and its construction requires a positive amount of <span style="text-decoration: underline;">work</span>. In addition, all items which can be built carry a <span style="text-decoration: underline;">construction price</span> and a <span style="text-decoration: underline;">maintenance price</span>, both being a non-empty set of <span style="text-decoration: underline;">resource types</span> associated with positive <span style="text-decoration: underline;">quantities</span>.</span></p>
<p><a name="__RefHeading__3666_2003532168"></a> <span style="font-size: medium;">Building types</span></p>
<p><span>A <span style="text-decoration: underline;">building type</span> <span style="text-decoration: underline;">is a buildable item</span>. It generates at least one type of <span style="text-decoration: underline;">planet production</span>, with a <span style="text-decoration: underline;">maximal quantity</span> associated to each type of production. Each type of building provides <span style="text-decoration: underline;">a quantity of jobs</span> to be manned by the planets&#8217; population, and possesses a <span style="text-decoration: underline;">maximal amount of hit points</span>.</span></p>
<p><span>Buildings may also provide planet-side weaponry. A building may be associated with a <span style="text-decoration: underline;">type of weapon</span>, along with weapon characteristics – <span style="text-decoration: underline;">accuracy</span>, <span style="text-decoration: underline;">base damage</span>, <span style="text-decoration: underline;">charge time</span> and <span style="text-decoration: underline;">cool-down time</span>.</span></p>
<p><a name="__RefHeading__3668_2003532168"></a> <span style="font-size: medium;">Ship part types</span></p>
<p><span>A <span style="text-decoration: underline;">ship part</span> <span style="text-decoration: underline;">is a buildable item</span>. It belongs to a <span style="text-decoration: underline;">ship parts category</span> identified by a <span style="text-decoration: underline;">name</span> (a category may be a <span style="text-decoration: underline;">sub-category of another category</span>).</span></p>
<p><span>There are different types of ship part types, which correspond to major elements of a ship&#8217;s design.</span></p>
<p><span><strong>Rationale regarding the hybrid direct/meta modelling of ship parts:</strong> some of the ship parts&#8217; characteristics are essential in that they provide the basic description of a ship design; most of these characteristics are used as constraints during the design of a ship (for example, available hull space must be greater than / equal to the amount of used hull space multiplied by the empire&#8217;s miniaturisation capabilities). In addition, these basic characteristics should not change in further versions of LW. However, other characteristics corresponding to various special abilities are not necessary in most operations, and are likely to evolve as development progresses. The latter are stored using meta-modelling while the former are stored directly.</span></p>
<p><a name="__RefHeading__3670_2003532168"></a> <span style="font-size: small;"><strong>Hulls</strong></span></p>
<p><span>A <span style="text-decoration: underline;">hull</span> <span style="text-decoration: underline;">is a type of ship part</span> which <span style="text-decoration: underline;">provides space</span> for other parts. It is either <span style="text-decoration: underline;">mechanical or biological</span><em> </em>in nature, and defines the <span style="text-decoration: underline;">amount of hit points</span> as well as the basic <span style="text-decoration: underline;">manoeuvrability</span> of a ship. In addition, a hull may <span style="text-decoration: underline;">provide energy</span>. Finally, it <span style="text-decoration: underline;">may provide ship capabilities</span> in <span style="text-decoration: underline;">various quantities</span>.</span></p>
<p><a name="__RefHeading__3672_2003532168"></a> <span style="font-size: small;"><strong>Generators</strong></span></p>
<p><span>A <span style="text-decoration: underline;">generator</span> <span style="text-decoration: underline;">is a type of ship part</span> which <span style="text-decoration: underline;">consumes space</span> in a ship&#8217;s hull and <span style="text-decoration: underline;">provides energy</span>. It <span style="text-decoration: underline;">may require the ship to be mechanical or biological</span>.</span></p>
<p><a name="__RefHeading__3674_2003532168"></a> <span style="font-size: small;"><strong>Normal space engine</strong></span></p>
<p><span>A <span style="text-decoration: underline;">normal space engine</span> <span style="text-decoration: underline;">is a type of ship part</span> which <span style="text-decoration: underline;">consumes space</span> in a ship&#8217;s hull and <span style="text-decoration: underline;">requires energy</span>. It provides <span style="text-decoration: underline;">thrust</span>. It <span style="text-decoration: underline;">may require the ship to be mechanical or biological</span>.</span></p>
<p><span style="font-size: small;"><em><strong>Hyperspace engines</strong></em></span></p>
<p><span><em>A <span style="text-decoration: underline;">Hyperspace engine</span> <span style="text-decoration: underline;">is a type of ship part</span> which <span style="text-decoration: underline;">consumes space</span> in a ship&#8217;s hull and <span style="text-decoration: underline;">requires energy</span>. It provides <span style="text-decoration: underline;">Hyperspace displacement power</span>. It <span style="text-decoration: underline;">may require the ship to be mechanical or biological</span>.</em></span></p>
<p><span style="font-size: small;"><em><strong>Hybrid engines</strong></em></span></p>
<p><span><em>A <span style="text-decoration: underline;">hybrid engine</span> is an engine that is <span style="text-decoration: underline;">both a normal space engine and a Hyperspace engine</span>.</em></span></p>
<p><a name="__RefHeading__3676_2003532168"></a> <span style="font-size: small;"><strong>Weapons</strong></span></p>
<p><span>A <span style="text-decoration: underline;">weapon</span> <span style="text-decoration: underline;">is a type of ship part</span> which <span style="text-decoration: underline;">consumes space</span> in a ship&#8217;s hull and <span style="text-decoration: underline;">requires energy</span>. It is associated with a <span style="text-decoration: underline;">weapon type</span>, and possesses a <span style="text-decoration: underline;">charge time</span>, a <span style="text-decoration: underline;">cool-down time</span>, an <span style="text-decoration: underline;">accuracy</span> value (which is a probability) and a <span style="text-decoration: underline;">base damage</span>.</span></p>
<p><a name="__RefHeading__3678_2003532168"></a> <span style="font-size: small;"><strong>Countermeasures</strong></span></p>
<p><span>A <span style="text-decoration: underline;">countermeasure</span> <span style="text-decoration: underline;">is a type of ship part</span> which <span style="text-decoration: underline;">consumes space</span> in a ship&#8217;s hull and <span style="text-decoration: underline;">requires energy</span>. It is associated with a <span style="text-decoration: underline;">defence type</span> and possesses an <span style="text-decoration: underline;">absorption probability</span>, a <span style="text-decoration: underline;">maximal absorption value</span> and a <span style="text-decoration: underline;">per-minute absorption recovery value</span>.</span></p>
<p><a name="__RefHeading__3680_2003532168"></a> <span style="font-size: small;"><strong>Other ship parts</strong></span></p>
<p><span>Any <span style="text-decoration: underline;">other type of ship part</span> is a <span style="text-decoration: underline;">ship part</span> which <span style="text-decoration: underline;">consumes space</span> in a ship&#8217;s hull and <span style="text-decoration: underline;">may require </span>energy to function. It <span style="text-decoration: underline;">may provide ship capabilities</span> in <span style="text-decoration: underline;">various quantities</span>.</span></p>
<p><!-- td p { margin-bottom: 0in; }td p.western { font-size: 7pt; }td p.cjk { font-size: 10pt; }th p { margin-bottom: 0in; }th p.western { font-size: 8pt; }th p.cjk { font-size: 10pt; }p { margin-bottom: 0.08in; } --><span style="font-size: small;"><strong>Summary of ship part “types” and associated information</strong></span></p>
<p><span>The table below is a summary of the information required by the various “families” of ship parts listed above.</span></p>
<div style="overflow:auto">
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="28*"></col>
<col width="24*"></col>
<col width="26*"></col>
<col width="27*"></col>
<col width="29*"></col>
<col width="30*"></col>
<col width="28*"></col>
<col width="35*"></col>
<col width="28*"></col>
<thead>
<tr valign="TOP">
<th width="11%">Information</th>
<th width="9%">Hulls</th>
<th width="10%">Generator</th>
<th width="11%">N.S. engine</th>
<th width="11%">H.S. engine</th>
<th width="12%">Hybrid engine</th>
<th width="11%">Weapon</th>
<th width="14%">Countermeasure</th>
<th width="11%">Other</th>
</tr>
</thead>
<tbody>
<tr valign="TOP">
<td width="11%">Available space</p>
<p>Ship basics</td>
<td width="9%">Always</td>
<td width="10%"></td>
<td width="11%"></td>
<td width="11%"></td>
<td width="12%"></td>
<td width="11%"></td>
<td width="14%"></td>
<td width="11%"></td>
</tr>
<tr valign="TOP">
<td width="11%">Used space</td>
<td width="9%"></td>
<td width="10%">Always</td>
<td width="11%">Always</td>
<td width="11%">Always</td>
<td width="12%">Always</td>
<td width="11%">Always</td>
<td width="14%">Always</td>
<td width="11%">Always</td>
</tr>
<tr valign="TOP">
<td width="11%">Provided energy</td>
<td width="9%">Sometimes</td>
<td width="10%">Always</td>
<td width="11%"></td>
<td width="11%"></td>
<td width="12%"></td>
<td width="11%"></td>
<td width="14%"></td>
<td width="11%"></td>
</tr>
<tr valign="TOP">
<td width="11%">Used energy</td>
<td width="9%"></td>
<td width="10%"></td>
<td width="11%">Always</td>
<td width="11%">Always</td>
<td width="12%">Always</td>
<td width="11%">Always</td>
<td width="14%">Always</td>
<td width="11%">Always</td>
</tr>
<tr valign="TOP">
<td width="11%">Capabilities</td>
<td width="9%">Sometimes</td>
<td width="10%">Sometimes</td>
<td width="11%">Sometimes</td>
<td width="11%">Sometimes</td>
<td width="12%">Sometimes</td>
<td width="11%">Sometimes</td>
<td width="14%">Sometimes</td>
<td width="11%">At least 1</td>
</tr>
<tr valign="TOP">
<td width="11%">Hyperspace power</td>
<td width="9%"></td>
<td width="10%"></td>
<td width="11%"></td>
<td width="11%">Always</td>
<td width="12%">Always</td>
<td width="11%"></td>
<td width="14%"></td>
<td width="11%"></td>
</tr>
<tr valign="TOP">
<td width="11%">Normal space thrust</td>
<td width="9%"></td>
<td width="10%"></td>
<td width="11%">Always</td>
<td width="11%"></td>
<td width="12%">Always</td>
<td width="11%"></td>
<td width="14%"></td>
<td width="11%"></td>
</tr>
<tr valign="TOP">
<td width="11%">Weapons</td>
<td width="9%"></td>
<td width="10%"></td>
<td width="11%"></td>
<td width="11%"></td>
<td width="12%"></td>
<td width="11%">Always</td>
<td width="14%"></td>
<td width="11%"></td>
</tr>
<tr valign="TOP">
<td width="11%">Countermeasures</td>
<td width="9%"></td>
<td width="10%"></td>
<td width="11%"></td>
<td width="11%"></td>
<td width="12%"></td>
<td width="11%"></td>
<td width="14%">Always</td>
<td width="11%"></td>
</tr>
<tr valign="TOP">
<td width="11%">Type requirement</td>
<td width="9%"></td>
<td width="10%">Sometimes</td>
<td width="11%">Sometimes</td>
<td width="11%">Sometimes</td>
<td width="12%">Sometimes</td>
<td width="11%">Sometimes</td>
<td width="14%">Sometimes</td>
<td width="11%">Sometimes</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-game-definitions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 &#8211; Database contents &#8211; Introduction</title>
		<link>http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-introduction/</link>
		<comments>http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-introduction/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 10:03:31 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Milestones]]></category>
		<category><![CDATA[database contents]]></category>
		<category><![CDATA[milestone 2]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=219</guid>
		<description><![CDATA[I am mostly over with the listing of all database contents. While the &#8220;real thing&#8221; is a 20-page document, I am going to post it on this blog as a series of posts. Some of the data listed here will not be used in Milestone 2, but will be useful for M3 and beyond &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>I am mostly over with the listing of all database contents. While the &#8220;real thing&#8221; is a 20-page document, I am going to post it on this blog as a series of posts. Some of the data listed here will not be used in Milestone 2, but will be useful for M3 and beyond &#8211; the descriptions for these items are in italic.</p>
<p>Here is a list of the various parts that will be posted. I will update this list by adding links to the relevant posts when they are published.</p>
<ul>
<li><a title="Database contents - Game definitions" href="http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-game-definitions">Game definitions</a> &#8211; data that is required to make the game work, but is never changed.</li>
<li><a href="http://blog.legacyworlds.com/index.php/2010-11-03/milestone-2-database-contents-application-data/">Application data</a> &#8211; data used to store the current state of the game server.</li>
<li><a title="Milestone 2 - Database contents - Users" href="http://blog.legacyworlds.com/?p=240">Users</a> &#8211; accounts and account management data.</li>
<li><a title="Milestone 2 - Database contents - Administration" href="http://blog.legacyworlds.com/index.php/2011-01-07/milestone-2-database-contents-administration/">Administration</a> &#8211; administrative accounts and related information.</li>
<li><a title="Milestone 2 - Database contents - Naming" href="http://blog.legacyworlds.com/index.php/2011-01-09/milestone-2-database-contents-naming/">Naming</a> &#8211; data regarding empire, alliance and map object names.</li>
<li><a title="Milestone 2 - Database contents - Universe" href="http://blog.legacyworlds.com/index.php/2011-01-11/milestone-2-database-contents-universe/">Universe</a> &#8211; the universe&#8217;s map and the planets&#8217; states.</li>
<li>Empires &amp; alliances.</li>
<li>Ship designs, ships and fleets.</li>
<li>Battles &#8211; everything that has to do with storing battle reports.</li>
<li>Communications &#8211; internal messages as well as player communications.</li>
<li>Bug tracking system.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2010-10-30/milestone-2-database-contents-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milestone 2 &#8211; Ground combat</title>
		<link>http://blog.legacyworlds.com/index.php/2010-08-12/milestone-2-ground-combat/</link>
		<comments>http://blog.legacyworlds.com/index.php/2010-08-12/milestone-2-ground-combat/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 08:09:45 +0000</pubDate>
		<dc:creator>TSeeker</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Milestones]]></category>
		<category><![CDATA[battles]]></category>
		<category><![CDATA[buildings]]></category>
		<category><![CDATA[drop pods]]></category>
		<category><![CDATA[ground armies]]></category>
		<category><![CDATA[ground combat]]></category>
		<category><![CDATA[planets]]></category>
		<category><![CDATA[ships]]></category>

		<guid isPermaLink="false">http://blog.legacyworlds.com/?p=209</guid>
		<description><![CDATA[I had thought this would be posted on Monday, but I didn&#8217;t have the time to do so &#8211; my apologies. This post will explain the basics of the ground combat system, which consists in three major steps: computing the &#8220;advantage&#8221; value, deciding which armies to drop to / to extract from the planet, and [...]]]></description>
			<content:encoded><![CDATA[<p>I had thought this would be posted on Monday, but I didn&#8217;t have the time to do so &#8211; my apologies. This post will explain the basics of the ground combat system, which consists in three major steps: computing the &#8220;advantage&#8221; value, deciding which armies to drop to / to extract from the planet, and computing the results of the fight.</p>
<p>Before I start, two important precisions are necessary. First, while there <em>is</em> actual ground combat (which is quite different from previous versions), players have no <em>direct</em> influence over it &#8211; everything is based on fleet strategies, and there are no actual ground units. Second, this ground combat system is definitely not the final version, it will be rewritten for M3 when the &#8220;real&#8221; planet management system is added.</p>
<p><span id="more-209"></span><strong>Origins of ground armies</strong></p>
<p>Ground armies come from 3 different sources.</p>
<ul>
<li>The planet itself provides a ground army, whose size depend on the planet&#8217;s population and happiness at the beginning of the battle.</li>
<li>Buildings may provide ground armies.</li>
<li>All ships (both defensive and offensive) may carry ground army drop pods.</li>
</ul>
<p>﻿<strong>Advantage index</strong></p>
<p>The advantage index is a value between 0 and 1 that determines which side has the advantage. It is initially slightly in favour of defensive armies. However, it is affected by ships and buildings on both sides. Each ship increases the advantage for its side by a value that is determined by its fleet&#8217;s strategy; of course, buildings provide a fixed, pre-defined advantage increase for the defenders. The closer the value is to 0.5, the less clear the ground situation is &#8211; casualties will be high on both sides. If the value gets close to 0, then the attackers gain the advantage and they can inflict massive damage without suffering too much in return. Of course, the situation is reversed if the value is close to 1.</p>
<p><strong>Dropping and extracting armies</strong></p>
<p>Ships carrying armies will drop or extract their armies depending on this advantage index and on a setting that is determined by the fleet&#8217;s strategy. For example, in the current simulations, attacking fleets drop their armies below 0.55 while defending fleets drop theirs above .3 (they will therefore defend as long as the situation isn&#8217;t too desperate). Of course, this does not apply to armies provided by the planet itself or by buildings, which will always be present on the planet&#8217;s surface.</p>
<p><strong>Damage</strong></p>
<p>Damage to ground armies is partially determined by the advantage index. It is also strongly affected by the armies&#8217; size: a very small army will probably lose against a much bigger one, even if the advantage index is totally in its favour &#8211; while it will inflict quite a lot of damage to the big army and not lose much at each battle update, it will end up dead eventually.</p>
<p>In the case of ground armies provided by ships and building, any  damage to the army will translate back to its &#8220;container&#8221;, and  vice-versa (any damage to the ship or building will reduce the size of  the army).</p>
<p><strong>Conquest</strong></p>
<p>A planet is conquered when defending ground armies have been killed. The major consequence of this is that it is now entirely possible to conquer a planet while the battle is still being fought in orbit. I am still hesitating about what to do when this happens regarding the status of fleets &#8211; the best thing being to make it a setting.</p>
<p><strong>Next time&#8230;</strong></p>
<p>Unless you have questions or suggestions, which you should post as comments, the next post will not appear for quite a while. It will be about the battle computation&#8217;s implementation or about the database&#8217;s structure in M2, whichever comes first&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.legacyworlds.com/index.php/2010-08-12/milestone-2-ground-combat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

