    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: Iteractive Development - Prologue</title>
        <link>https://members.accu.org/index.php/articles/981</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">Project Management + CVu Journal Vol 12, #2 - Mar 2000</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c13/">Topics</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c66/">Management</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c127/">122</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/c66-127/">Any of these categories</a>

                    -                        <a href="https://members.accu.org/index.php/articles/c66+127/">All of these categories</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;Iteractive Development - Prologue</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 03 March 2000 13:15:35 +00:00 or Fri, 03 March 2000 13:15:35 +00:00</p>
<p><strong>Summary:</strong>&nbsp;<p>After reading Nigel Eke's series on Monopoly in Overload, it occurred to me that there might be interest in seeing the process of bringing a commercial game to market.</p></p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e20" id="d0e20"></a></h2>
</div>
<p>After reading Nigel Eke's series on Monopoly in Overload, it
occurred to me that there might be interest in seeing the process
of bringing a commercial game to market. I am co-founder of a very
small company, 3DE, which was put together to develop and sell
computer games. My co-founder, Duncan Macdonell, is a game designer
who has developed role-playing card games (some of you may
recognize the X-files card game, which Duncan designed). I'm the
programmer. That's the length and breadth of our company.</p>
<p>We have decided to move a game originally designed as a mass
market boardgame onto the computer. As a programmer, I realized
that development of this game would be a good teaching tool and the
ACCU is the perfect venue in which to pursue that goal. Over the
course of many more issues, I will be presenting the steps we are
going through to program the game. I'm hoping that readers will be
interested in getting involved in both the design and coding
aspects and I will discuss pros and cons of design decisions as we
progress. Since this is truly a work in progress, there are no
right answers and we should expect to explore some dead-ends during
the course of the development process.</p>
<p>Once the game has been fully developed in C++, it will be
released (probably as shareware). I would really like to release it
as a Linux game first, thus bolstering the applications available
on this wonderful operating system and supporting other open source
efforts. As the recent Linux developer conference concluded, a lack
of games available for the operating system is holding it back.
Later, the game will probably be ported to JAVA, again using this
medium, and released to a broader range of machines. Since the
source will be released regardless, it does not particularly matter
that Linux will be the target platform as the code will be
relatively easy to recompile for the platform of choice.</p>
<p>If the game actually generates revenue, then donations will be
made with some of that revenue to a charity selected by the
disabilities officer of the ACCU (a personal favorite of mine is
Project Gutenberg-<a href="http://www.gutenberg.net" target=
"_top">http://www.gutenberg.net</a>- which produces electronic
books for free). How much? Well, we can discuss that here, but it
seems that this is putting the cart well before the horse. It is
also worth noting that the game concept will be copyrighted by 3DE,
although the programs will be available through the GNU public
license.</p>
<p>The game itself, is called, &quot;Swamp.&quot; Swamp is a turn-based
strategy game, so we won't be developing 3D animations and shooting
people. The game is non-violent (in the same sense that chess is
non-violent) and encourages thinking ahead. The turn-based nature
of the game means that we won't need to build a traditional game
engine and that the game can be picked up and put down at will by
players who don't have time to play a whole game through at one
sitting. The number of players is technically unlimited so we could
explore a web-based implementation with players from all over the
world on a huge board. Practically, we will start with a simple
board construction that is limited to between two and four players.
Since a large number of players are possible, it will be necessary
to build a game Artificial Intelligence (AI) for computer
opponents.</p>
<p>So, just to get your appetite whetted, here are the rules of the
game as well as the playing pieces. If you want to jump in and send
ideas for data structures, please do so as that will be the
starting point for the next article.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e37" id="d0e37"></a>Swamp
Rules</h2>
</div>
<p>Swamp is a simple board game in which players use a
survival-of-the-fittest strategy to conquer a swamp. Players
control Flies, Frogs, and Snakes. On any given turn, each animal
may perform one of four actions. The board is comprised of 19
hexes, each of which is divided into 3-5 areas. These areas
regulate movement and if a player has captured enough areas, he or
she wins the game.</p>
<p>At the beginning of the game, players construct the board
randomly with the 19 hexes. Because the board is different each and
every game, repeat play is encouraged and players must devise new
strategies for the nuances of each new board representation. The
board is similar to the highly successful Settlers of Catan. The 19
hex board is likely to become a trend in board gaming, as the
format is extremely versatile.</p>
<p>Because the game has only three playing pieces per side, the
game can be played at a simple level. However, players that
appreciate strategic gaming will find that there are numerous
strategies and superior play will be required to defeat an adept
opponent.</p>
<p>An educational component can easily be added that will make this
property an attractive property to a variety of natural or
educational licensors. Factoids could be placed throughout the
rules and on the back of the hexes.</p>
<div class="variablelist">
<dl>
<dt><span class="term">Step 1 - Overview</span></dt>
<dd>
<p>Players start the game by building the game board. The board
consists of 19 hexes. The game board represents a swamp. Each hex
consists of areas of dirt, water, and/or lily pads. Each player
begins the game with five Fly counters. During play, Flies may turn
into Frogs. Frogs may turn into Snakes. Snakes may turn into Frogs.
Frogs may turn into Flies. This will be explained in greater detail
a bit later. Each animal has different movement and game abilities.
To win, players must get rid of their opponent's animals or occupy
35 areas of the game board.</p>
</dd>
<dt><span class="term">Step 2 - The Hexes</span></dt>
<dd>
<p>There are 19 hexes included in the game. Each hex has three to
five areas that control movement. Each area is one of three colors;
brown represents dirt, green represents lily pads, and blue
represents water.</p>
</dd>
<dt><span class="term">Step 3 - The Animal Counters</span></dt>
<dd>
<p>There are three types of animals used during the game. They are
Flies, Frogs, and Snakes. Two sided counters represent all of these
animals. On one side is a picture of the animal. On the other side
is a different picture of the animal with the word &quot;Moved.&quot; In
addition, the animal has a color to tell which player controls each
animal.</p>
</dd>
<dt><span class="term">Step 4 - Setting Up the Game
Board</span></dt>
<dd>
<p>Turn the hexes upside down and mix them. Randomly pick one
person to build the board. That player then selects one hex and
places it face up on the table. After the first hex is placed, the
player continues to randomly select hexes and place them face up
according to the diagram below.</p>
</dd>
<dt><span class="term">Step 5 - Starting Animals</span></dt>
<dd>
<p>After the Board is complete, each player selects five Fly
counters.</p>
</dd>
<dt><span class="term">Step 6 - First Player Places His
Counters</span></dt>
<dd>
<p>Randomly decide who gets to set up first. That player then
selects a three-hex group to start his five Flies. The other
players then select a three-hex group based on how many players are
playing. The three hexes must all be touching and all be on the
outside edge of the game board. After the first player selects his
three starting hexes, he then places his five Flies. He places each
Fly on a different area within his starting hexes.</p>
</dd>
<dt><span class="term">Step 7 - Next Player Places His
Counters</span></dt>
<dd>
<p>After each player selects his starting hexes, he then sets up
his five Flies before the next player selects his three hex
starting point.</p>
</dd>
<dt><span class="term">Step 8 - Who Moves First?</span></dt>
<dd>
<p>The players move in reverse order of their setup. The player who
set up last, moves first. The player that set up first, moves
last.</p>
</dd>
<dt><span class="term">Step 9 The Player Turn</span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class="emphasis"><em>Choosing an
Action for Your Animals</em></span></span></dt>
<dd>
<p>On your turn, you may move your animals in any order. Each
animal may choose one of four different Actions. You must select
one Action for each of your animals. You must complete one animal's
Action before starting another animal's Action. After completing
the animal's Action, turn the counter over to the side that says
Moved.</p>
</dd>
<dt><span class="term">Moving</span></dt>
<dd>
<p>Only one animal may occupy any one area. Snakes and Frogs may
not move into an area that they occupied at some point during their
movement.</p>
</dd>
<dt><span class="term">Eating</span></dt>
<dd>
<p>A Snake may eat a Frog or a Fly. A Frog may eat Flies. You may
not eat one of your own animals. You may eat an opponent's animal
in an area you are about to move into. To eat an animal, remove the
animal counter from the board. You must now move into that area.
Snakes can eat each other. If a Snake chooses to eat another Snake,
remove both Snakes from the board. After eating, that animal's turn
ends immediately.</p>
</dd>
<dt><span class="term">Actions</span></dt>
<dd>
<p>Choose one for each Fly</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>MOVE - The Fly may move into an adjacent area.</p>
</li>
<li>
<p>EVOLVE - The Fly may move into an adjacent Green area and Evolve
into a Frog.</p>
</li>
<li>
<p>DOUBLE - This may only be chosen if your Fly starts the turn on
a Brown area. You may place a new Fly counter on any adjacent Brown
area.</p>
</li>
<li>
<p>NO ACTION -Move the Fly's counter to the Moved side.</p>
</li>
</ol>
</div>
<p>Choose one for each Frog</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>MOVE - A Frog may Jump two areas away. The Frog may Jump over
another animal. The Frog may Eat a Fly.</p>
</li>
<li>
<p>EVOLVE - If a Frog moves or jumps two areas and ends his turn on
a Blue area, the Frog may elect to Evolve into a Snake.</p>
</li>
<li>
<p>DEVOLVE - If a Frog elects to or is forced to move only one
area, they must Devolve into a Fly. The Frog may Eat a Fly.</p>
</li>
<li>
<p>EAT - The Frog may elect to not move and simply eat any opponent
Flies that are adjacent to his area. The Frog may choose this
action even if no Flies are adjacent to him.</p>
</li>
</ol>
</div>
<p>Choose one for each Snake</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>MOVE - The Snake may choose to move three areas. The Snake may
Eat a Frog or Fly.</p>
</li>
<li>
<p>DEVOLVE - If a Snake elects to or is forced to move no more than
two areas, they must Devolve into a Frog. The Snake may Eat a Frog
or a Fly.</p>
</li>
<li>
<p>DISPLACE - The Snake may move up to three areas and displace up
to three Flies. Before entering an area occupied by an opponent
Fly, the Snake must force the opponent Fly to move. The Fly must
immediately move into an adjacent empty area. If the Fly is unable
to move into an empty adjacent area, it is eliminated. After the
Fly has been forced to move, turn that Fly's counter to its Moved
side. The Fly must choose No Action next turn. After the Snake
completes this Displacement, it must Devolve into a Frog.</p>
</li>
<li>
<p>EXCHANGE - A Snake may move 1, 2, or 3 areas and attack an
opponent's Snake. Remove both Snakes.</p>
</li>
</ol>
</div>
</dd>
<dt><span class="term">Ending Your Turn</span></dt>
<dd>
<p>Once you have moved all of your animals, tell your opponent that
you have finished your turn. Turn all your animals over to their
normal side. The next player may now take his turn.</p>
</dd>
</dl>
</div>
</dd>
<dt><span class="term">Step 10 - How To Win</span></dt>
<dd>
<p>A game can be won in one of two ways:</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>Only one player remains with animals on the game board.</p>
</li>
<li>
<p>If at the end of his turn, a player occupies 35 game areas, he
wins the game.</p>
</li>
</ol>
</div>
</dd>
</dl>
</div>
<p class="c2"><span class="remark">Editor's notes</span></p>
<i><span class="remark">You now have a couple of months to think
about how you would start developing this game for a computer. The
essence of this project is participation. As the months roll by
Brett will be inviting your comments. This time I am setting the
'homework'.</span></i>
<p class="c2"><span class="remark">Please write an overview of how
you would plan the development of this computer game. I hope that I
am swamped by your contributions (do not worry, all will be
published but some will only be restricted to electronic
publication). The great value is in trying to reduce your ideas to
words. I hope that I will receive contributions from members with
wildly different levels and areas of expertise.</span></p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
