Mars Simulation Project 3.07 Development Status

2014-08-05
2014-08-05
  • Scott Davis
    Scott Davis
    2014-08-05

    Fellow mars-simmers,

    I wanted to post an update on the current development of version 3.07.

    As previously posted, the project website bug tracker and wiki have
    been moved over to the new SourceForge.net Allura system, which was
    required because the old hosted apps we were using are no longer
    supported.

    I started the new bug tracker fresh as a lot of the older bugs are
    either vague or no longer applicable. The new bug tracker currently
    has three outstanding bugs listed on it if anyone wants to work on
    them.

    I migrated the old wiki pages over to the new wiki. It has a more
    narrow page format, so we may need to clean up some of the images to
    fit it better. It would be nice to go through the wiki and update
    pages as needed and clean out any out-of-date material.

    I've finished the new activity spots feature in the simulation. This
    involved configuring X,Y locations within each building and vehicle
    that are preferred locations for performing various activities related
    to that building/vehicle. People will prefer to go to unoccupied
    activity locations when performing relevant tasks rather than just
    going to a random location within the building/vehicle as was
    previously the case. You can look at the settlement map tool and get
    a good idea what each person is doing based on where they are located.

    I'm currently working on improving simulation CPU performance - both
    the number of milliseconds it takes to perform each simulation turn
    and the CPU load running the simulation.

    I tracked the lion's share of simulation CPU time to a couple of
    methods in the Inventory class: getAmountResourceCapacity and
    getAmountResourceStored. I added another layer of caching to these
    methods and this seems to have improved performance considerably: from
    about 10.8 to 16.8 tics per second with default simulation
    configuration on my development laptop. The CPU usage seems to be
    down quite a bit after this as well.

    Another bit of code that takes quite a bit of time is the
    TaskManager.getNewTask method. This uses reflection to call the
    static getProbability methods on (currently 43) task classes, then
    uses reflection to construct an instance of the chosen task class.
    Reflection is pretty heavy weight, so I'm trying to refactor the code
    to instead use meta classes to check probability and create instances
    of tasks. I'm about halfway finished with this and I will have to
    check if it actually improves simulation performance once I'm done.
    If it doesn't improve performance, I'll probably just not check it in
    as it adds a lot of code.

    Beyond that, I'm planning on adding the concept of underground
    buildings and connecting tunnels to the simulation. We also have a
    lot of code that has string values that should be replaced with
    enumerations and internationalized values so that they can be easily
    translated to different languages (which st.pa and Lars have been
    working on).

    As I mentioned earlier, we have a few bugs on our bug tracker that
    will need to be fixed for the 3.07 release.

    Manny Kung has been actively working on redesigning our project
    website with a modern HTML CSS design. He has it demo'd on his
    Sourceforge.net user site and it's looking quite good so far.

    Please let me know if there's anything that you want to work on for
    the 3.07 release, or any other feedback.

    Take care,

    Scott Davis
    Mars Simulation Project
    http://mars-sim.sf.net