Archive for June, 2009

GSoC/TP Weekly Report (June 23, 2009 – Jun 29)

Monday, June 29th, 2009
Share

This Week:

The design windows are mostly working due to some Requirement Function tweaks this week.  I am having one problem which is I cannot require a hull to be present for a Tube if the num-hulls property is not set already.  Lee mentioned that I may be able to use a property value to fix this issue and we will discuss this further.  I’ve added a new category for the weaponry that will be used in the ruleset (Missiles and Torpedoes).  Today I also created a MTSec WIKI page on the Thousand Parsec Wiki.  This week I had a rather great conversation in #tp about my GSoC project which can be read here.  This conversation helped me greatly with the planning of my ruleset.  Also, we have decided to push back Combat until my last deadline because it is one of the hardest parts of the design.  Instead, for my July 10th deadline I will be making sure that Torpedoes and Missiles can be carried around in the system.  Also, there will be a basic economy in this iteration.  I have about 1.5 weeks to complete this and I think that I am on the right track.

One thing that will have to be decided is missile/torpedo speed.  I have made missiles ridiculously fast, but so far I have capped the torpedoes at a speed of 50.  Of course, these values are in an XML file so they will be easy to edit throughout the design of this ruleset.

Next Week:

My July 10th deadline is approaching rapidly and I must work on the ruleset at a fast pace this week.  I will be working on building torpedoes and missiles this week.  This will likely involve the creation of some orders in my ruleset.  This week I am aiming mostly to have the missiles and torpedoes working and then move to working on the economy from there.  For the combat, mithro has stated that he has some ideas that we can implement once I get to that point (last iteration).

GSoC/TP Weekly Report (June 15, 2009 – Jun 22)

Tuesday, June 23rd, 2009
Share

This Week:

This week I’ve been messing around with the client.  First, I found a unicode error with the tpcl functions that mithro handled for me.  After this was fixed, I was receiving KeyErrors when adding various components in the tpclient-pywx design window.  Not knowing python, I couldn’t do much here.  Over the weekend I studied some python code to figure out what was happening.  With the help of ezod I was able to add some print statements (printing capabilities are amazing in python) and find out exactly where my problem was.  Basically, I was missing a property that the client was trying to call.  When you don’t match on a property it returns an index of 0, which is a huge problem when the client tries to use it.

I spent most of my week starting the work on my next milestone, which will commence on the 24th of this month.  I created some of the missing components and properties for MTSec.  In particular, I believe that I have an issue with how I implemented missile/torpedoe racks.  While I am starting to get a grasp on how scheme works, I still have a long way to go here.  I don’t think the racks are implemented properly.

Also, I have to look into why I am getting errors when adding tubes and the proper way to add them.

I will have another blog post tomorrow with more information on the work I’ve done and a use-case to show that it’s implemented properly.

Next Week:

The work will continue.  I think for my next milestone to be successful, I need the design window to work properly.  This will add a lot of fun to my ruleset, who wants to pick from pre-existing ships?  Not me.  I will need to get into missile/torpedoe design and have that working by July 10th.  This is going to be a tough one, but it shouldn’t be too much of a problem.   This iteration will also require me to work on the AVACombat class.

This is probably the most important part of the MTSec GSoC period for me, so I will be most likely be putting in the most time here.

GSoC/TP Weekly Report (June 8, 2009 – June 15)

Monday, June 15th, 2009
Share

This Week:

As planned, the first thing that I did this week was fix the issue that I was having with tpserver-cpp crashing on client join.  This error was completely my fault.  When moving the component creation to XML format, I used various Regular Expressions to convert the C++ component code to XML format.  After some research I realized that my XML spec did not include an entry for the Category ID of each component, which is vital information.  The way that the ruleset had been created we have been using static numbers for the category IDs.  Instead of this method I used some methods that are available to use a string that makes more sense instead.  The new line in the XML is as follows:

<ComponentIDName>Ships</ComponentIDName>

When I get around to moving the Properties to an XML file this will become more vital.  Also, with the creation of more categories in the future this will be more important.

As I mentioned in the quick post that I made yesterday, I am working to meet my June 23rd deadline sooner.  From my proposal:

May 24 – June 23, Milestone #1:

  • Deliver a working implementation of the MTSec framework.
  • Finish all of the remaining components.
    • While browsing the code I have not found any references yet to the varioius components that make up the ship, this includes:
    • Launch Tube
    • Missile Rack
    • Torpedo Rack
    • Armor
    • Colonisation Module
  • At this stage all ship configurations using the components should be feasible
  • Next Week:

    Next week will mark my busiest under the GSoC period, and it will continue at a steady pace until the completion of the SoC period — and most likely beyond that period.  Getting down to design ideas of this game is very interesting and it seems that the MTSec ruleset will be the most advanced ruleset to date.  I would like to find a workaround for the “compMax” variable in the mtsec.cpp file so that it is easier to add and remove components without a problem.  Once all of the components are thoroughly tested (I am worried about the scheme) I will move onto the actual missile and torpedo design.  As per llnz’s suggestions there will be a second design category for weaponry, and a component that can be used in a ship.  Once this is done I can work this into orders and combat.  I was originally worried that the ship designs would not be possible in any client but according to llnz there is a design dialog in tpclient-pywx, which is the client that I test with.  This will allow advanced ship designs and will make the game enjoyable.

    Progress: Sun 14 Jun

    Sunday, June 14th, 2009
    Share

    My progress has been slowed by influenza.  Regardless of this, I am going to go on a coding frenzy over the next couple days.  I hope to finish my Jun 23rd milestone (#1) early in order to leave more time for the second milestone which is scheduled for July 10th.  I’ve fixed the issue that I have been having with the importation of Components from the XML file.  This specific issue actually had nothing to do with the code that I wrote to import the components.  Rather, it was a bad regular expression that I used to actually create the XML document from the old MTSec source code.  This is not a weekly report, only a quick update.

    GSoC/TP Weekly Report (June 1, 2009 – June 8)

    Tuesday, June 9th, 2009
    Share

    This Week:

    My goal for this week was to clean up the mtsec.cpp file and integrate tinyxml.  After some initial troubles with tinyxml, I finally got an (albeit rough) version working to import component information from an XML file.  Unfortunately, I seem to have run into some troubles.  When joining a game with the pywx client, an immediate crash occurs while dealing with pyguile.cpp.  It happens in TpGuile::calculateDesignPropertyValues( Design* d).  I have been working today to track down the issue, but so far I have been unsuccessful.  I have commited my current code, which builds but has the issue mentioned above.

    Next Week:

    My immediate goal (aiming for Wednesday night) is to fix the issue I am having with tpserver-cpp crashing on client join.  Obviously, this is a deal breaker and has to be dealt with immediately.  Once this task is completed I will be finishing the components of the ship.  I will look into using tinyxml further in MTSec as well. I believe that I am still online to meet (and hopefully exceed) my initial goal tenatively slated for June 23rd.

    I also plan to speak with Epyon regarding an issue I found with command line options vs. configuration file.  Currently, the command line flags are parsed only if loaded after the configuration file.  Both Aaron and I find this unexpected, but Lee mentioned that Epyon may be already working on changed to this code.

    GSoC/TP Weekly Report (May 25, 2009 – June 1)

    Monday, June 1st, 2009
    Share

    Last Week:

    Due to the move I previously mentioned, this past week was not a productive one for Google Summer of Code.  My computer spent much of the week boxed up, but I am now moved in and ready to devote myself to Thousand Parsec.  Before I left I mentioned my plan to clean up the mtsec.cpp file and it was mentioned that moving the components to XML would be a good strategy here.  I’ve created the following XML schema, shown with an example component of MTSec:

    <?xml version="1.0" ?>
    <Components>
        <comp>
            <name>AntiparticleExplosives</name>
            <description>An extremely expensive but hugely explosive particle and anit-particle explosive</description>
            <tpclRequirementsFunction>"(lambda (design) "
                "(if (= (designType.num-ammo design) 1) "
                "(cons #t \"\") "
                "(cons #f \"This is a complete component, nothing else can be included\")))"
            </tpclRequirementsFunction>
            <propertyList>
                <Speed>(lambda (design) 0)</Speed>
                <BuildTime>(lambda (design) 1)</BuildTime>
                <Colonise>(lambda (design) 0)</Colonise>
                <Armor>(lambda (design) 0)</Armor>
                <AmmoSize>(lambda (design) 0.8)</AmmoSize>
                <AmmoExplosiveness>(lambda (design) 16)</AmmoExplosiveness>
                <AmmoCose>(lambda (design) 64)</AmmoCost>
                <StartingHitPoints> (lambda (design) 0)</StartingHitPoints>
                <num-ammo>(lambda (design) 1)</num-ammo>
            </propertyList>
        </comp>

    llnz mentioned that he saw no problem with this design so it is the one that I am planning to use for the Components.  Moving the Props may also be a good idea.  I will be using tinyxml to input the components from the XML file.

    Next Week:

    My goal for this week is to continue what I briefly started in this past week.  This will include cleaning up the mtsec.cpp file and integrating tinyxml.   Once this has been completed I also plan to implement the various components of a ship that are currently not included.

    This weeks work will build toward my first milestone: the creation of ships that include all of the components outlined in the specification.