<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://planet-soc.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Planet SoC - </title>
 <link>http://planet-soc.com/organization/Thousand+Parsec/planet</link>
 <description>Planet view per organization</description>
 <language>en</language>
<item>
 <title>== July 4 == Ye Famous Travelling StarFleet Problem :)</title>
 <link>http://planet-soc.com/node/2666</link>
 <description>&lt;p&gt;It&amp;#8217;s that time &amp;#8216;o week again for me to write about my progress. The previous post is only three days old, but I got some stuff to blah about ;].&lt;/p&gt;

&lt;p&gt;So, for the most part I&amp;#8217;ve been splitting my time between getting the client ready, and preparing the actual robot for some action. I&amp;#8217;ve been having some issues with the ruleset and the low-level library (see last post), but mostly they&amp;#8217;ve been resolved (except for the annoying bug of being unable to colonize!), and now it&amp;#8217;s a matter of some time until the client gains complete functionality.&lt;/p&gt;

&lt;p&gt;In parallel to that, I&amp;#8217;ve started to work on the actual AI mechanism and infrastructure (by infrastructure, I mean creating the necessary framework for the robot to function). I have decided to forgo the original plan of running a natural-selection mechanism for actions on each and every move for the sake of a simpler, more conventional, but still (I think) very  elegant solution (which still implements a genetic selection process, only this time during its creation).&lt;/p&gt;

&lt;p&gt;The reason for this was twofold: first of all, I discovered a couple of problems in the design that were hard to overcome; the simulation of each move would&amp;#8217;ve been a real issue, and the mechanism for illegal-move sifting would not have been very difficult to implement, due to &amp;#8220;hypothesizing&amp;#8221; game-eventualities many moves ahead. Another, equally important reason for me to change the plan, is that this was really a two-fold project, as I had to spend (and still do, to some extent) an incredible amount of work on getting the Java client started, even before getting started on the robot. Hence, de-facto I&amp;#8217;ve only started work on the robot almost at the midterm-point, and I need to simplify the design a bit to get it in good shape before the fat lady sings! ;].&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll have much more to say on the alternative solution by next Friday, but in short it will be a four-part project: a) the client and game library, b) robot logic, c) a robot-factory for creating new robots, and d) an evolutionary framework for optimizing them. Each robot will have &amp;#8216;behavioural characteristics&amp;#8217;, by which its behavior will be guided, and which will be susceptible to mutation in the evolution-simulator.&lt;/p&gt;

&lt;p&gt;Here, I guess that&amp;#8217;s it for this week.&lt;/p&gt;

&lt;p&gt;PS - Do check out the code in the repo in the &amp;#8220;ActionMethods&amp;#8221; class for a home-brewed solution of  Ye Famous Travelling StarFleet Problem + some mathematical analysis on it! (It&amp;#8217;s not very tested yet, but I&amp;#8217;ve got faith in it).&lt;/p&gt;

&lt;p&gt;Till the dolphins leave,&lt;br /&gt;____________________&lt;/p&gt;

&lt;p&gt;Victor Ivri (vi1985)&lt;br /&gt;Blog address: &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=gencon-rfts-ai.git;a=summary&quot;&gt;BLOG&lt;/a&gt;&lt;br /&gt;You can find the project in the git repo here: &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=gencon-rfts-ai.git;a=summary&quot;&gt;REPO&lt;/a&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2666#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Sat, 05 Jul 2008 02:19:00 +0200</pubDate>
 <dc:creator>vi1985</dc:creator>
 <guid isPermaLink="false">2666 at http://planet-soc.com</guid>
</item>
<item>
 <title>Weekly Report (June 30 - July 4)</title>
 <link>http://planet-soc.com/node/2660</link>
 <description>&lt;p&gt;This week I got the turn structure finalized by&lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=04132f62cc30fcde0daf3beef82ffcbbecaff344&quot;&gt; processing orders one player at a time and rotating that order&lt;/a&gt; each turn.  You can read more about my reasoning to do this in &lt;a href=&quot;http://nuleren.blogspot.com/2008/05/thoughts-on-simultaneous-turns.html&quot;&gt;this blog post&lt;/a&gt;.  I also &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=8d3fde0eaeaf153e13300c1058d493533d2718e6&quot;&gt;fixed a couple bugs&lt;/a&gt; which arose from processing orders in this way.&lt;/p&gt;

&lt;p&gt;Each player should have 6 colonist ships at the beginning of each turn.  I &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=f5f2c3e1d6d036bb39d86a467041b613746e57c3&quot;&gt;implemented the code to replenish&lt;/a&gt; these ships as they are used.  While doing this I also &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=346efed6f9fde6d3693c14f4ee443fec14f39409&quot;&gt;moved the fleet creation code into its own class&lt;/a&gt;.  This helped to make the code more readable, easier to modify and easier to extend.&lt;/p&gt;

&lt;p&gt;I have almost everything done for the midterm.  I would like to add a message when the game over conditions are reached.  I would also like to create a better default map for the game.  I should have this done early next week.  In addition to this I will be finishing anything else that crops up and submitting my midterm evaluation.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2660#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Fri, 04 Jul 2008 23:03:00 +0200</pubDate>
 <dc:creator>Nuleren</dc:creator>
 <guid isPermaLink="false">2660 at http://planet-soc.com</guid>
</item>
<item>
 <title>Weekly Report 8</title>
 <link>http://planet-soc.com/node/2655</link>
 <description>&lt;p&gt;Seeing that midterms evaluations lay so near things have started to get exciting again! This week saw the transition from private alpha testing to actual player testing, a good deal of C++ reading, and the start of planning for the second half of the term. I have to say my spirits were starting to wane, alpha testing was getting very dull and dreary. I wasn&amp;#8217;t quite sure if I was testing wrong, if the stage of testing was nearing an end, or if I was just running out of ideas. &lt;/p&gt;

&lt;p&gt;A brief letter to Tyler (my mentor - have to say it :P) and a break to finish reading the last 2/3rds of &lt;a href=&quot;http://www.amazon.com/Effective-Specific-Addison-Wesley-Professional-Computing/dp/0321334876&quot; title=&quot; Books&quot;&gt;Effective C++&lt;/a&gt; revitalized my spirits while I awaited Tyler&amp;#8217;s reply. Tyler informed me I was most likely ready to start having other players test the game and my feelings weren&amp;#8217;t unusual. Soon after I recruited my wife to help me playtest. Once I got Jackie (my wife) rolling, and introduced to Thousand Parsec in general, things started going really well. Playing with someone else almost instantly illuminated quite a few more glaring bugs and errors I didn&amp;#8217;t notice before. The two games we played helped me fix up some message formatting, improve the accuracy of Attack moves (particularly conquering planets,) gain more information on my &amp;#8220;view&amp;#8221; bugs and finally, revealed a SUPER BUG I&amp;#8217;m calling &amp;#8220;Phantom Ownership.&amp;#8221; Jackie also helped me to notice parts of my documentation that could be less ambiguous, and other areas that need work. She also noted the disappointing lack a connectivity map, something I need to work on next half-term.&lt;br /&gt;
As for how I&amp;#8217;m actually FEELING about GSoC this week&amp;#8230; better, much better. Testing was/is pretty hard; I found myself getting bored of playing Risk and running out of things to test for (as well as becoming &amp;#8220;blind&amp;#8221; to errors I should have noticed.) My time spent reading Effective C++ was excellent, and I&amp;#8217;d like to continue reading bits and pieces of various C++/programming books as I keep working on my project. The benefit have been noticeable, and I should be able to improve my coding in the rest of GSoC, as well as fixing/revising older code. I&amp;#8217;m excited that next week marks the start of mid-term evaluations; I feel as if I underestimated myself when I initially scoped out my project. As a result I&amp;#8217;m a bit ahead of schedule: I have a fairly stable game, needing only a few more features to be complete. The focus of the second half of my term will be on XML map import, increased clarity in the visual presentation, and improving documentation.&lt;br /&gt;
Now for the week:&lt;br /&gt;
&lt;strong&gt;Monday:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Read the middle ~1/3 of Effective C++. Monday was a shorter day due to a family visit.
&lt;/li&gt;
&lt;li&gt;
A bit of testing. No new bugs discovered, documented more on &amp;#8220;view&amp;#8221; bugs in bugs.txt. &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=b0e23a56d8b7f5b16758b3626fd5baffd44ee437&quot; title=&quot;git.thousandparsec.net Git - tpserver-cpp.git/commit&quot;&gt;commit&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tuesday:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Family visit + Canada day.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Wednesday:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Finished Effective C++. Otherwise a very slow day (spoke with Tyler about testing, &lt;a href=&quot;http://www.hammerofcode.com/2008/07/canada-day/#more-48&quot; title=&quot;canada day -  Hammer of Code&quot;&gt;post&lt;/a&gt;.)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Thursday:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Did a lot of research and thinking about XML and Map import. &lt;a href=&quot;http://www.hammerofcode.com/2008/07/xml-and-the-like/&quot; title=&quot;xml and the like -  Hammer of Code&quot;&gt;See post&lt;/a&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Friday:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did play testing with wife:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Fixed bug where player created extra units when conquering a planet. &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=f2ee71901de5c3f1c03ff3a87eaa6000306c440e&quot; title=&quot;git.thousandparsec.net Git - tpserver-cpp.git/commit&quot;&gt;commit&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;
Fixed formatting issue for origin player on Move order. &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=bdd5a51a29352a74abff94e8f5a50b52bb4fb724&quot; title=&quot;git.thousandparsec.net Git - tpserver-cpp.git/commit&quot;&gt;commit&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;
Fixed logical error where player could receive better odds by attacking as a &amp;#8220;last stand&amp;#8221;. &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=de8752ad8cabb19bfdeca93716c980af45de323c&quot; title=&quot;git.thousandparsec.net Git - tpserver-cpp.git/commit&quot;&gt;commit&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;
Added more info on Bug. 1 - &amp;#8220;View&amp;#8221; bug -&amp;gt; Will be putting together Mailing list post to ask for help.
&lt;/li&gt;
&lt;li&gt;
Discovered &amp;#8220;Phantom Ownership&amp;#8221;: A player retains the ability to issue orders on a planet after it has been captured. Also asking for help with this on the ML.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/ul&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next Week:&lt;/strong&gt;&lt;br /&gt;
Seeing as next week marks the beginning of midterm evaluations it seems appropriate to start work on XML map importing. After an excellent comment from &lt;a href=&quot;http://www.codesynthesis.com/~boris/blog/&quot; title=&quot;A Sense of Design&quot;&gt;Boris Kolpackov&lt;/a&gt; I have good insight into what parser I will be using, and as such can develop an &lt;a href=&quot;http://www.w3.org/XML/Schema&quot; title=&quot;W3C XML Schema&quot;&gt;XML Schema&lt;/a&gt; for the map specifications and evaluate the suitability of &lt;a href=&quot;http://www.codesynthesis.com/products/xsd/&quot; title=&quot;CodeSynthesis XSD - XML Data Binding for C++&quot;&gt;CodeSynthesis&amp;#8217; XSD&lt;/a&gt;. I will also continue testing with my wife, and anyone who cares to give me their time to playtest with! In addition I will enhance Getting_Started documentation to be more clear and unambiguous.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2655#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Fri, 04 Jul 2008 22:08:50 +0200</pubDate>
 <dc:creator>jphr</dc:creator>
 <guid isPermaLink="false">2655 at http://planet-soc.com</guid>
</item>
<item>
 <title>xml and the like</title>
 <link>http://planet-soc.com/node/2643</link>
 <description>&lt;p&gt;Contrary to what I expected I ended up spending the day looking into XML, xml-parsers and map importing. I kicked things off by familiarizing myself with XML; turns out I had a decent grasp on how XML worked already. I did, however, learn that it was possible to define a &amp;#8220;Document Type Definition&amp;#8221; or DTD to specify which tags have what, which attributes exist of tags, and the like. I threw together a simple DTD for the map metalanguage; It allows the map to have multiple constellations, each with a name attribute. Those constellations can then have multiple planets. Each planet has a name, id, x, y attribute, as well as any number of &amp;#8220;id&amp;#8221;s of adjacent planets. &lt;/p&gt;

&lt;p&gt;Here is the DTD for those versed in XML:&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;
!DOCTYPE MAP [
!ELEMENT MAP (CNST&lt;em&gt;)&amp;gt;
!ELEMENT CNST (PLNT&lt;/em&gt;)&amp;gt;
    !ATTLIST CNST name CDATA #REQUIRED&amp;gt;
!ELEMENT PLNT (ID*)&amp;gt;
    !ATTLIST PLNT name CDATA #REQUIRED&amp;gt;
    !ATTLIST PLNT id CDATA #REQUIRED&amp;gt;
    !ATTLIST PLNT x CDATA #REQUIRED&amp;gt;
    !ATTLIST PLNT y CDATA #REQUIRED&amp;gt;
!ELEMENT ID (#PCDATA)&amp;gt;
]&amp;gt;
&lt;/pre&gt;&lt;p&gt;(I had to remove the beginning braces because of display issues)&lt;br /&gt;
The only issue a predefined DTD raises is that it creates the need for a more sophisticated xml parser. My original intention was to use the &lt;a href=&quot;http://www.grinninglizard.com/tinyxml/&quot; title=&quot;TinyXml Main Page&quot;&gt;TinyXml&lt;/a&gt; parser, but in its frugality it omits DTD validation of XML. DTD is a feature I think is fairly important for a map import class, primarily because a validated XML doc should THEORETICALLY contain a valid map (if my DTD does the job correctly.) That valid XML could then be imported via &lt;a href=&quot;http://en.wikipedia.org/wiki/Document_Object_Model&quot; title=&quot;Document Object Model - Wikipedia, the free encyclopedia&quot;&gt;DOM&lt;/a&gt;, possibly directly, into the game. While a DOM import would be nice, it may not be possible. My backup plan would be the following:&lt;/p&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do a pass over all constellations. Create each one (using name), and add a pointer to it to a set.&lt;/li&gt;
&lt;li&gt;Do a pass through each constellation, over all planets. Create each planet (using name, x, y and parent constellation) and map the specified id to the planets TRUE in-game ID.&lt;/li&gt;
&lt;li&gt;Do another pass. This time adding adjacencies from the parsed XML to the game. This can be accomplished by using the ID map to relate xml IDs to true IDs.&lt;/li&gt;
&lt;li&gt;Done. At this point a valid map should have been created&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Going back to &lt;strong&gt;choosing&lt;/strong&gt; an XML parser; My next candidate to investigate, and the #1 result when you search for &amp;#8220;XML C++ Parser&amp;#8221; is the &lt;a href=&quot;http://xerces.apache.org/xerces-c/&quot; title=&quot;Xerces C++ Parser&quot;&gt;Xerces C++ Parser&lt;/a&gt;. From what I understand, Xerces is a little bit more robust XML parser. While TinyXML is under a fairly loose license, Xerces is under the &lt;a href=&quot;http://www.fsf.org/licensing/licenses/&quot; title=&quot;Licenses - Free Software Foundation&quot;&gt;Apache General License&lt;/a&gt;, so I&amp;#8217;m not entirely sure about its usability.&lt;br /&gt;
In other news: I just received an EZFLASH 3-in-1 GBA cart for my Nintendo DS, and so I will be bidding you all adieu to muck around with all the GBA homebrew (and other stuff) I can!&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2643#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Fri, 04 Jul 2008 00:13:40 +0200</pubDate>
 <dc:creator>jphr</dc:creator>
 <guid isPermaLink="false">2643 at http://planet-soc.com</guid>
</item>
<item>
 <title>Have you got a 27B/6?</title>
 <link>http://planet-soc.com/node/2641</link>
 <description>&lt;p&gt;I think the first half of my GSoC project, comprising the &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=documents.git;a=blob;f=protocol/admin.xml;h=112049dd2198a507248519aa640076d59645feef;hb=e54464acadfbb83e59b2d8aa158d5ce653f07338&quot;&gt;administration protocol&lt;/a&gt;, the modifications to tpserver-cpp and libtpproto-cpp to support it, and the standalone tpadmin-cpp administration client, is ready for prime time, or at least a half-hour spot at 3:00 AM on the public access channel.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll still be hammering it for bugs over the next day or two, but fingers crossed, it looks good right now. There are still a few gaps in functionality that will probably be added at some point; notably, the local command set is only updated at login currently, but eventually the client may want to watch for changes in the server-side list and update.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;d like to try it out, compile the config branches of &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=summary&quot;&gt;tpserver-cpp&lt;/a&gt; and &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=libtpproto-cpp.git;a=summary&quot;&gt;libtpproto-cpp&lt;/a&gt;, as well as &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpadmin-cpp.git;a=summary&quot;&gt;tpadmin-cpp&lt;/a&gt;. Note that this version of tpserver-cpp runs as a daemon, but you can disable that behavior with the &lt;code&gt;-d&lt;/code&gt; switch. Issuing &lt;code&gt;open localhost&lt;/code&gt; and &lt;code&gt;login admin admin&lt;/code&gt; to tpadmin-cpp should give you access to a set of commands on the server (type &lt;code&gt;help&lt;/code&gt; to see them all).&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll greatly appreciate any feedback, especially suggestions and bug reports.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2641#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Thu, 03 Jul 2008 20:15:55 +0200</pubDate>
 <dc:creator>ezod</dc:creator>
 <guid isPermaLink="false">2641 at http://planet-soc.com</guid>
</item>
<item>
 <title>canada day</title>
 <link>http://planet-soc.com/node/2627</link>
 <description>&lt;p&gt;You may have been wondering where I disappeared to the last two days. The combination of a slow Monday and family visiting on Tuesday made for little to write about, and consequently I forgot to write, about anything! Rest assured I have been working. The start of my week has been occupied largely by reading, and I can gladly announce that I finished reading (for the first time :P) Effective C++ by Scott Meyers.&lt;br /&gt;
As Tyler told me when he recommended the book, &amp;#8220;it will transform a novice/intermediate C++ programmer into an advanced one,&amp;#8221; something I can now retrospectively agree with. While a single read through hasn&amp;#8217;t necessarily transformed me into a C++ guru, it has certainly made it very clear to me HOW I will program when I reach C++ nirvana. I learned a lot from the book and I am sure when I consistently and constantly apply all that knowledge I will truly be, a C++ master :P.&lt;br /&gt;
Another semi-milestone of my week is that I believe I am nearing the completion of my personal &amp;#8220;alpha&amp;#8221; testing (if thats the correct word for it.) At present I am more and more feeling like I have depleted my store of &amp;#8220;nastiness&amp;#8221; to throw at my ruleset to try and break it/bend the rules. Since private testing is a very&amp;#8230;private matter, I&amp;#8217;ll try and outline the what and how of my testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial Testing: Treat the game &amp;#8220;normally&amp;#8221; and ensure that Orders/game works in the simplest flavor. This stage more or less ensured that the game &amp;#8220;worked&amp;#8221; in its most basic playable form. This testing occurred mostly during development, in my case (even though I did play a simple game or two upon completing the &amp;#8220;basic&amp;#8221; game).
    &lt;/li&gt;
&lt;li&gt;Full game testing: This stage of testing saw me playing a few complete games of Risk, both in &amp;#8220;random planet assignment&amp;#8221; mode and &amp;#8220;bidding mode&amp;#8221;. I didn&amp;#8217;t strive to push the orders particularly hard; I merely played some games to completion.
    &lt;/li&gt;
&lt;li&gt;Abusive testing: This stage of testing saw me &amp;#8220;beating the crap&amp;#8221; out of orders using the white-box approach; I knew how my orders worked, particularly their weak/less-thought-out points, and I utilized those to either abuse or break the game. This stage helped me to eliminate a few potential &amp;#8220;cheating&amp;#8221; locations, where users could create new units, etc. Particular attention was payed to the Colonize and Move orders, as they represented the most complex and fragile orders.
    &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; At present I believe I have rounded out the frailty of my complex orders, and am confident that all orders work correctly when used in (almost) any combination. From guessing, and an email to my mentor, Tyler, the next logic step appears to be peer/player-testing. I&amp;#8217;m now tasked with having other people play my game in an attempt to locate further inadequacies/deficiencies. The most obvious candidate for this is Tyler, but seeing as he is under a fairly heavy load at the moment testing with him may have to wait. There is the possibly infinitely more discriminate candidate known as &amp;#8220;a wife.&amp;#8221; I believe my &amp;#8220;wife&amp;#8221; will be able to really do some damage to my game, both aesthetically and mechanically; I will enlist her aid this week to let loose on my ruleset. As for my time between peer testing, I plan on furthering my C++ knowledge further, and going over old code to clean things up. I may begin THINKING about XML parsing for map imports, but I am going to go out on a whim and restrict myself from coding that until after midterms (which is quite soon anyways.)&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2627#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Wed, 02 Jul 2008 22:50:46 +0200</pubDate>
 <dc:creator>jphr</dc:creator>
 <guid isPermaLink="false">2627 at http://planet-soc.com</guid>
</item>
<item>
 <title>canada day</title>
 <link>http://planet-soc.com/node/2629</link>
 <description>&lt;p&gt;You may have been wondering where I disappeared to the last two days. The combination of a slow Monday and family visiting on Tuesday made for little to write about, and consequently I forgot to write, about anything! Rest assured I have been working. The start of my week has been occupied largely by reading, and I can gladly announce that I finished reading (for the first time :P) Effective C++ by Scott Meyers. &lt;/p&gt;

&lt;p&gt;As Tyler told me when he recommended the book, &amp;#8220;it will transform a novice/intermediate C++ programmer into an advanced one,&amp;#8221; something I can now retrospectively agree with. While a single read through hasn&amp;#8217;t necessarily transformed me into a C++ guru, it has certainly made it very clear to me HOW I will program when I reach C++ nirvana. I learned a lot from the book and I am sure when I consistently and constantly apply all that knowledge I will truly be, a C++ master :P.&lt;br /&gt;
Another semi-milestone of my week is that I believe I am nearing the completion of my personal &amp;#8220;alpha&amp;#8221; testing (if thats the correct word for it.) At present I am more and more feeling like I have depleted my store of &amp;#8220;nastiness&amp;#8221; to throw at my ruleset to try and break it/bend the rules. Since private testing is a very&amp;#8230;private matter, I&amp;#8217;ll try and outline the what and how of my testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial Testing: Treat the game &amp;#8220;normally&amp;#8221; and ensure that Orders/game works in the simplest flavor. This stage more or less ensured that the game &amp;#8220;worked&amp;#8221; in its most basic playable form. This testing occurred mostly during development, in my case (even though I did play a simple game or two upon completing the &amp;#8220;basic&amp;#8221; game).
    &lt;/li&gt;
&lt;li&gt;Full game testing: This stage of testing saw me playing a few complete games of Risk, both in &amp;#8220;random planet assignment&amp;#8221; mode and &amp;#8220;bidding mode&amp;#8221;. I didn&amp;#8217;t strive to push the orders particularly hard; I merely played some games to completion.
    &lt;/li&gt;
&lt;li&gt;Abusive testing: This stage of testing saw me &amp;#8220;beating the crap&amp;#8221; out of orders using the white-box approach; I knew how my orders worked, particularly their weak/less-thought-out points, and I utilized those to either abuse or break the game. This stage helped me to eliminate a few potential &amp;#8220;cheating&amp;#8221; locations, where users could create new units, etc. Particular attention was payed to the Colonize and Move orders, as they represented the most complex and fragile orders.
    &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; At present I believe I have rounded out the frailty of my complex orders, and am confident that all orders work correctly when used in (almost) any combination. From guessing, and an email to my mentor, Tyler, the next logic step appears to be peer/player-testing. I&amp;#8217;m now tasked with having other people play my game in an attempt to locate further inadequacies/deficiencies. The most obvious candidate for this is Tyler, but seeing as he is under a fairly heavy load at the moment testing with him may have to wait. There is the possibly infinitely more discriminate candidate known as &amp;#8220;a wife.&amp;#8221; I believe my &amp;#8220;wife&amp;#8221; will be able to really do some damage to my game, both aesthetically and mechanically; I will enlist her aid this week to let loose on my ruleset. As for my time between peer testing, I plan on furthering my C++ knowledge further, and going over old code to clean things up. I may begin THINKING about XML parsing for map imports, but I am going to go out on a whim and restrict myself from coding that until after midterms (which is quite soon anyways.)&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2629#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Wed, 02 Jul 2008 16:50:46 +0200</pubDate>
 <dc:creator>jphr</dc:creator>
 <guid isPermaLink="false">2629 at http://planet-soc.com</guid>
</item>
<item>
 <title>== July 1 == Problems, Solutions &amp; Starting the fun part</title>
 <link>http://planet-soc.com/node/2609</link>
 <description>&lt;p&gt;Ahoy. I wanted to post this report on Friday, as usual, but due to some extraneous circumstances (coupled with a 3-day wilderness trip Saturday-Monday) I was only able to get one out today.&lt;/p&gt;

&lt;p&gt;In the past week of coding I have encountered several problems. First of all, there are a couple of issues related to the ruleset, which are still standing. First of all, there is the issue of mapping numeric-to-actual ship-types. I was hoping that it would be hard coded (e.g. scout is always 1, Mk.1 destroyer is always 3, etc) , but nash suggested that it might be determined by the server at runtime. I&amp;#8217;m still waiting for the final word from xdotx on that.&lt;/p&gt;

&lt;p&gt;Another issue with the ruleset I encountered, was the complete inability to produce anything on newly colonized planets, since any amount of colonists magically disappears from the surface, and no resource-points are being generated thereafter (although I still apparently own the planet). This observation was made on tpclient-pywx, and confirmed by my own client. I&amp;#8217;m still waiting for word from xdotx for what this might be. (Smells like a bug, but perhaps I&amp;#8217;m missing something?)&lt;/p&gt;

&lt;p&gt;Finally, there was an issue with sending orders, that was related to the proto-library, which jezuch quickly remedied, and now I&amp;#8217;m able to successfully pass orders to my assets in the game-world. I proved this by implementing the &amp;#8220;fleet-move&amp;#8221; order, and successfully moved my fleet around the universe.&lt;/p&gt;

&lt;p&gt;So, what is still missing in terms of client functionality (out of the stuff that I really need, that is), is production, fleet merge, fleet split orders, and numeric-to-actual ship mapping. What I want to concentrate now on, is the actual logic and overall architecture of the bot. I already introduced some convenient algorithms into my representation of the universe map (get n-closest star systems, get contents of star system, get distance). I will be adding to these as I go along developing the robot logic, and hopefully by the end of the week I&amp;#8217;ll have a good skeleton to build on, and some concrete algorithms to control the behavior of the bot.&lt;/p&gt;

&lt;p&gt;Later,&lt;br /&gt;Victor.&lt;/p&gt;

&lt;p&gt;____________________&lt;/p&gt;

&lt;p&gt;Victor Ivri (vi1985)&lt;br /&gt;Blog address: &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=gencon-rfts-ai.git;a=summary&quot;&gt;BLOG&lt;/a&gt;&lt;br /&gt;You can find the project in the git repo here: &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=gencon-rfts-ai.git;a=summary&quot;&gt;REPO&lt;/a&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2609#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Wed, 02 Jul 2008 04:31:00 +0200</pubDate>
 <dc:creator>vi1985</dc:creator>
 <guid isPermaLink="false">2609 at http://planet-soc.com</guid>
</item>
<item>
 <title>Very Clever Mistakes</title>
 <link>http://planet-soc.com/node/2594</link>
 <description>&lt;p&gt;Well, tpadmin-cpp almost works properly now.&lt;/p&gt;

&lt;p&gt;The connection problem was due to the console input loop monopolizing the single-threaded event loop, so that the sockets never got checked for data. On Lee&amp;#8217;s suggestion, this was fixed by &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpadmin-cpp.git;a=commit;h=82e90b58f04ed2631300a2bb8e3a33a37cc5a183&quot;&gt;making the console a TPSocket&lt;/a&gt; that would be scheduled by the event loop.&lt;/p&gt;

&lt;p&gt;Another pair of problems in libtpproto-cpp were giving me trouble. The first was an &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=libtpproto-cpp.git;a=commit;h=d6077924ca0b8b05f5a6b1177b9f6003b0cfd4f7&quot;&gt;incorrect delete statement&lt;/a&gt; that was causing segfaults, the other an &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=libtpproto-cpp.git;a=commit;h=64a0a3b2fcfb55212708b5cf14dc1c5def4b08d7&quot;&gt;incorrect packInt call&lt;/a&gt; before packing a string command parameter (I have no idea why I put that in there originally).&lt;/p&gt;

&lt;p&gt;Now I just need to figure out why I get a SIGILL every time I try to use the same server command twice&amp;#8230;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/2594#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Tue, 01 Jul 2008 16:16:32 +0200</pubDate>
 <dc:creator>ezod</dc:creator>
 <guid isPermaLink="false">2594 at http://planet-soc.com</guid>
</item>
<item>
 <title>Weekly Report June 22 - June 28</title>
 <link>http://planet-soc.com/node/2550</link>
 <description>&lt;p&gt;I learned a lot about Python and tpserver-py this week. Mostly about shelves and some of the inner workings of the SQL system in tpserver-py.&lt;/p&gt;

&lt;ul id=&quot;ormu0&quot;&gt;
&lt;li id=&quot;ormu1&quot;&gt;     &lt;a href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-py.git;a=commit;h=c12163268196a1a6183801f9bdd6549dca4fa76b&quot; id=&quot;ormu2&quot;&gt;Basic Research&lt;/a&gt; implementation is up!   &lt;/li&gt;
&lt;ul id=&quot;ormu3&quot;&gt;
&lt;li id=&quot;ormu4&quot;&gt;       It was fun. Most of what needs to be done now should be simple to implement.     &lt;/li&gt;
&lt;li id=&quot;ormu4&quot;&gt;I have to refactor it out of using shelve and into tpserver-py&amp;#8217;s normal database.&lt;/li&gt;
&lt;li id=&quot;ormu4&quot;&gt;Shelve helped me get the basic design pattern of the research done which was essential to figuring out how I wanted to implement it. It should make next week simpler as I can concentrate on learning the SQL part of tpserver-py.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;li id=&quot;ormu4&quot;&gt;Each player now uses their &lt;a title=&quot;own Drone list&quot; href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-py.git;a=commit;h=bbd671bf3a3e48788b7dd68ac370542da12567e0&quot; id=&quot;t2li&quot;&gt;own Drone list&lt;/a&gt; when producing drones&lt;/li&gt;
&lt;li id=&quot;ormu4&quot;&gt;Players can now &lt;a title=&quot;research new drones&quot; href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-py.git;a=commit;h=0d95d5b9b76dbc503376b82bce49f629d7dc233a&quot; id=&quot;mpdp&quot;&gt;research new drones&lt;/a&gt; 
 &lt;/li&gt;
&lt;li id=&quot;ormu5&quot;&gt;     Found a bug with &lt;a title=&quot;Order Packets&quot; href=&quot;http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-py.git;a=commit;h=eb39ca8e86f9bad7a50cdec97cab26a75eab2a64&quot; id=&quot;td4d&quot;&gt;Order Packets&lt;/a&gt; and fixed it.&lt;/li&gt;&lt;/p&gt;

&lt;ul id=&quot;ccx_&quot;&gt;
&lt;li id=&quot;ormu5&quot;&gt;This was technically my first real (and I&amp;#8217;d say impacting) fix to tpserver-py. It allows protected attribute functions for orders to access their object ids.  Fixing this will allow me to know which player is the one researching or building drones so I can provide them with their own list of options.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/ul&gt;&lt;/p&gt;

&lt;p&gt;
 I wasn&amp;#8217;t able to look into Time Frames much since I decided to focus more on research as it is the last major milestone I&amp;#8217;ve set to achieve before the mid-term evaluations.&lt;/p&gt;

&lt;p&gt; Next Week:&lt;/p&gt;

&lt;ul id=&quot;ppwr2&quot;&gt;
&lt;li id=&quot;ppwr3&quot;&gt;Going to refactor Research into the tpserver-py&amp;#8217;s database using the SQLType.&lt;/li&gt;
&lt;li id=&quot;ppwr3&quot;&gt;Going to add some more Research options and types&lt;/li&gt;
&lt;li id=&quot;ppwr3&quot;&gt;Implement those types into the actual game so they have an impact&lt;/li&gt;
&lt;li id=&quot;ppwr3&quot;&gt;If time permits, I&amp;#8217;ll try to look into the Time Remaining Frames.
   &lt;/li&gt;
&lt;/ul&gt;
</description>
 <comments>http://planet-soc.com/node/2550#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <category domain="http://planet-soc.com/taxonomy/term/160">Thousand Parsec</category>
 <pubDate>Sat, 28 Jun 2008 19:59:00 +0200</pubDate>
 <dc:creator>JLafont</dc:creator>
 <guid isPermaLink="false">2550 at http://planet-soc.com</guid>
</item>
</channel>
</rss>
