Sea Mapping Release

"This is amazing. How sailing should be." - @Vadimuses

"Awesome. It's a really cool script, definitely something that will make sailing a lot less tedious." - @Xer

"Oh my friggin' god ... this takes the headache out of sailing." - @Nizaris

---------------------------------------

MAP-BUILDING

This script will build and append the sea map to an interactive Mudlet mapper window on-the-fly. All you need to do is sail. The map looks like this when you start (the red regions are water, where your ship can go):

image

As you sail to new places, your map will grow:

image

As was mentioned in this thread: forums.achaea.com/discussion/884/meropis-sea-map-via-mudlet-mapper, there are some challenges related to accurately tracking the movement of a ship. The map builder will try to match the new sea map to your existing mudlet map on each movement to account for silent drifting and to detect where you moved on a non-cardinal non-ordinal direction (NNE, for example).

For the utilitarians among us, there is an option to remove the printing of chops and land such that only the red (water) rooms appear. This speeds up processing.

PATH-FINDING
The map that is built is fully interactive. You can double-click on any connected water room and your ship will sail there.

image

The path profile is calculated using the A* pathfinding algorithm and tries to avoid turning and going too close to chops. Advanced users who want to change the shape of their path can read below for details on how to customize pathfinding and ship turning.

WHAT YOU NEED
  • Mudlet 2.1
  • GMCP turned on
  • Download the script (see below)

BASIC USER INSTRUCTIONS

  • Download the script.
  • Click on Package Manager, then click on Install. Select the entire .zip file you downloaded.
  • Get on a ship.
  • Type "ymap on".
  • Start sailing. You can start auto-sailing when the map appears.

BASIC USER ALIASES

ymap <on|off>: this either turns on the sea mapper or returns Mudlet mapper control back to your regular maps. The normal Mudlet mapper will be inaccessible while the sea mapper is on.
ystop: this stops auto-sailing (you'll still need to "all stop").
clearmap: this deletes your current sea map and allows you to start over.
yconfig shiptype <cutter|strider>: this gives the system an estimate of what your ship turning speed is.
yconfig print <on|off>: this allows you to choose whether or not to print the non-water rooms.

DOWNLOAD: https://sourceforge.net/projects/achaeaseamappin/files/?source=navbar


Shout out to @Vadimuses for a great deal of idea-bouncing and Mudlet help.


Happy sailing!



«1

Comments

  • ADVANCED USERS: PATH-FINDING

    The pathfinding function calculates the "best" path using the A* search algorithm with a Euclidean distance heuristic and a cost function weighted against closeness to chops (walls) and severity/frequency of turns. The path-cost function is as follows:

    path-cost = (wallweight coefficient) * (distance to walls) + (turnweight coefficient) * (severity/frequency of turns) + (distance coefficient) * (distance to goal)

    You can modify the shape of your path by changing the wallweight coefficient, the turnweight coefficient, and the distance coefficient, using the following alias:

    yconfig <wallweight|turnweight|distanceweight> <#>: sets the selected coefficient to a new value.

    Default setting is wallweight = 1, turnweight = 5, distanceweight = 1. This is a path with these values:

    image

    This is an example path with wallweight = 1, turnweight = 10, distanceweight = 1:

    image

    This is an example path with wallweight = 5, turnweight = 5, distanceweight = 1:

    image


    ADVANCED USERS: SHIP TURNING


    The script has some primitive methods for "ancitipating" a turn in advance. This is really only useful for seastriders. You can change the turning speed coefficient for your ship using this alias:

    yconfig turnspeed <#>: changes the turning speed coefficient for your ship.

    The higher this number, the faster your turning speed. The faster your turning speed, the less your ship will anticipate. So if you set your turning speed very low, your ship will start turning a room or two before it needs to move in that direction.

    Default windcutter setting never turns in advance. Default seastrider turn speed is 4.6875. This number is basically arbitrary, but turn speed scales linearly with the number you input.
  • edited March 2013
    Damn, this is amazing.

    Hmm, hold that thought. Mudlet's crashed twice three times now since I started sailing.

    Did clearmap and sailed to find a coast, seems to have fixed it for now.

  • Tirac, I adore you.
  • NizarisNizaris The Holy City of Mhaldor
    edited March 2013
    Silas said:
    Damn, this is amazing.

    Hmm, hold that thought. Mudlet's crashed twice three times now since I started sailing.

    Did clearmap and sailed to find a coast, seems to have fixed it for now.
    @Silas, and everyone really: something I've noticed.

    It's a bad idea to use the auto-sailing when sailing toward rooms that have not already been mapped.

    What ends up happening:
    • The auto-sailor slows down mapping.
    • The ship moves, generating yet more rooms to map, on top of the batch it's still mapping.
    • The auto-sailor ends up off course due to lag generated by mapping, and has to draw a new path.
    • Mapping slows down even more.
    • Downward spiral; mudlet explodes; dogs and cats living together.
    image
  • Hmm, are the room creation, exit creation, and map matching times getting high? Or pathfinding?

    What you described used to happen when I was running much slower functions (that have since been sped up) and mapping a very long distance. It's possible that this could happen again with a slower processor. For the time being, use "yconfig print off" to speed up the processing a bit.
  • The performance of this script can be improved.
    1. highlighting rooms is a slow operation 
    2. rendering ASCII characters on rooms is a very slow operation
    Instead, you can use multiple room colors (fast operation) and only use room highlights to show the path.




  • We need an OMG, That's flaming awesome button!

    Elaina x

  • NizarisNizaris The Holy City of Mhaldor
    @Tirac: So, I've tested your suggestion about turning YCONFIG PRINT OFF. It seems to help some, but I still have Mudlet crash from time to time now. I even see it crashing on the very first line from initiating a turn (though I think that this is unrelated).

    Here's the info on my hardware:

    processor       : 0
    vendor_id       : AuthenticAMD
    cpu family      : 17
    model           : 3
    model name      : AMD Turion(tm) X2 Dual-Core Mobile RM-72
    stepping        : 1
    microcode       : 0x2000032
    cpu MHz         : 2100.000
    cache size      : 512 KB
    physical id     : 0
    siblings        : 2
    core id         : 1
    cpu cores       : 2
    apicid          : 1
    initial apicid  : 1
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 1
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch osvw skinit lbrv svm_lock nrip_save
    bogomips        : 4189.84
    TLB size        : 1024 4K pages
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 40 bits physical, 48 bits virtual
    power management: ts ttp tm stc 100mhzsteps hwpstate

    (Processor 1 is identical to processor 0)

    4GB RAM (DDR2)

    kris@frodo:~$ uname -a
    Linux frodo 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

    Running mudlet 2.1.
    image
  • No script should crash Mudlet, so you might want to report this to Mudlet forums, and obtain a backtrace for the crash if possible (Ubuntu's crash dialog gives you one).
  • I'm having issues with this script crashing on me now. Does anyone know where I could find a crash log in Win 7? It doesn't appear to be in any of the event viewers. 
  • Same Tekk.  I had it crash (and by crash I mean hose it up so hard windows has to baleet it) quite a few times recently.  I uninstalled it.
    -----------------------------
    @DontarionDrakor for twitter boredom.


  • as awesome as this is....I feel that by not using it I will be at an advantage.

    People will use this as a crutch, and lose the true art of sailing when it comes time for shipraces.

    image

  • Batang I cannot read your post.  I am too transfixed by that kitten.  Sorry.
    -----------------------------
    @DontarionDrakor for twitter boredom.


  • Yeah, by crash I mean it crashes the application while the port is still open. Windows does not like that at all. Still can't find anything on what's causing it. 
  • edited May 2013
    wrong thread
  • edited May 2013
    Since at least one in five people who use this script have experienced some sort of fatal mudlet crash, I'd like to get some more data.

    If you have experienced crashes, please answer the following questions:

    1) How big was the sea map when you crashed, and were you printing non-water rooms? If you know the # of rooms, give me that, otherwise tell me where you sailed to and from since the last time you cleared the map.
    2) How high were the room creation, pathfinding, and map matching times (echoed after every ship movement)? As an aside, if these are regularly more than 0.75 seconds, your computer should not be running this script.
    3) What were you doing when it crashed? Were you in the middle of autowalking, did you try to clear the map?
    4) What was the error message for the crash? Did windows just grey out the mudlet window?
    5) What is your CPU and its rating?
    6) What kind of ship were you sailing?

    Ingame OOC message preferable.
  • So, is it just me or is the sourceforge project for this completely lacking in any files to download? I keep getting an error when I click on the "Looking for the newest version?" link and there seems to be no files listed in the project.
    --- --- ---
    (The Fool's Court): Carmain says, "I have subbed ~ to *orgasm* use it at your peril."
  • The project's been updated.
  • edited July 2013
    The script is back up, under this folder:

    https://sourceforge.net/projects/achaeaseamappin/files/beta/

    Thanks to Vadi for a lot of help making it run faster. Anyone who is currently able to run this should consider updating.

    As for the crashing issue, I think I've addressed all crashes with anyone who contacted me individually.
  • Using it now...this is such a great script, thanks a lot Tirac!
  • @Tirac Just trying the script now, it's working quite well, except it seems to have cleared the map on it's own mid sailing
  • NizarisNizaris The Holy City of Mhaldor
    Noticed that latest release seems to have difficulty matching rooms. Map in mapper window will often be off by five or so rooms from the actual ship position, or position on map will not match actual position at all (not even as close as five rooms).
    image
  • I can't wait to try this.  Wow.
  • I don't even sail, and I'm impressed! Well done , looks great!

  • Wow man. All I got here.


    FUUUUUUUUUCK this is nice.


  • How did I miss this existence...
  • TarausTaraus The Gypsy Wind
    gd cheaters!

  • i used it two times, crashed the second time so i had to drop it.  Looks like it freaked out when I started sailing and it couldn't figure out where I was when I started moving.
  • Tirac said:
    Since at least one in five people who use this script have experienced some sort of fatal mudlet crash, I'd like to get some more data.

    If you have experienced crashes, please answer the following questions:

    1) How big was the sea map when you crashed, and were you printing non-water rooms? If you know the # of rooms, give me that, otherwise tell me where you sailed to and from since the last time you cleared the map.
    2) How high were the room creation, pathfinding, and map matching times (echoed after every ship movement)? As an aside, if these are regularly more than 0.75 seconds, your computer should not be running this script.
    3) What were you doing when it crashed? Were you in the middle of autowalking, did you try to clear the map?
    4) What was the error message for the crash? Did windows just grey out the mudlet window?
    5) What is your CPU and its rating?
    6) What kind of ship were you sailing?

    Ingame OOC message preferable.
    I'll answer in-game as well (nothing terrible, it did crash a couple of times over a fairly long period, and I do have the non-sailing areas not printing).  But I have a question - so I understand you can clear the map, but how much does it save?  For instance, it definitely doesn't try to re-update itself when I climb down the mast, unless I've actually got new rooms on the overhead, which is pretty neat, but say, if I sail down to Meropis, and then up to Lothos, is it saving all of that somewhere unless I clear it?  I was thinking maybe it is just dynamic for what's visible on my overhead and that the clear is a sort of failsafe, but is that not the case?
  • KresslackKresslack Florida, United States
    edited November 2013
    This is pretty awesome, just installed it to try it out. I keep getting messages like these displaying with each move though, and am not sure if it's normal or can toggle those off:

    []: No cardinal/ordinal movement detected. []: Map matching took 0 seconds.
    Room creation took 0 seconds.
    Exits took 0 seconds.

    []: Off track. Ship movement two northeast detected.
    []: No match found, building map based on movement. []: Map matching took 0 seconds.
    Room creation took 0 seconds.
    Exits took 0 seconds.

    edit: also does it when stationary and doing 'Look'.


Sign In or Register to comment.