sota-stuff.com - Tracker for Linux (and other OS)

Discussion in 'Player Created Resources' started by Tom Timebomb, Jan 27, 2017.

?

Is there a demand for a Linux map navigator/tracker?

  1. hell yeah!

    50.0%
  2. yes

    10.0%
  3. no

    0 vote(s)
    0.0%
  4. no, I'm happy with the other navigators available

    40.0%
Thread Status:
Not open for further replies.
  1. Tom Timebomb

    Tom Timebomb Avatar

    Messages:
    8
    Likes Received:
    9
    Trophy Points:
    3
    Location:
    Switzerland
    Is there a demand for a linux map navigator/tracker?

    I'm a linux player and I created some apps that run are JVM (Java) based and therefore run on any operating system. The code is open source and hosted on gitlab.com. So, if you're paranoic you can review the code and compile it on your own if you don't like to download binaries.

    My stuff consists out of different applications:

    The Surveyor:

    This is the application that collects map data. I don't have the time to draw my own maps. So I take the information from the CurrentPlayerData.xml and store it in a database. Maps get created from that data. Of corse, these maps look quite ugly and can't be compared to maps of https://www.sotamap.com. My maps will become better and better (but still ugly) as more people join me in collecting data! If you want to contribute and know how to run a Java program please contact me!

    The Tracker:

    The tracker runs on your machine and reads your current location from CurrentPlayerData.xml. The tracker provides a web interface that you can access on your local machine. Your location is shown live on the maps. Any scene a surveyor has visited will be available in the tracker, towns, dungeons... everything

    The Web:

    Maps will be available online as well, but without tracking of course.


    A preview of the online version is located at http://sota-stuff.com

    [​IMG]


    Let me know if you're interested in my stuff and if I should continue with it and I'll publish all my work. Also let me know if you want to help collecting map data!

    Cheers,
    Tom Timebomb
     
    Last edited: Jan 27, 2017
  2. stephenrd

    stephenrd Avatar

    Messages:
    31
    Likes Received:
    20
    Trophy Points:
    8
    I'm a Linux user, too. So I haven't been able to try out SotaNavigator. Although they just integrated it into the game, it's still not available for Linux users.

    I made a program similar to yours, though you've been at it much longer than me. I made a program for this last week. It's also a Java program, but instead of taking the client/server approach, I just use a JFrame to display stuff locally. I parse data from the CurrentPlayerData.xml using XPath expressions and stuff the data into a pretty simple bean, put these beans into lists, and store these lists into hash maps by map name. I save the maps off to a text file every so often, as well as provide a keybinding to save them on demand. I have a bunch of other keybindings for changing the zoom level (also use the mouse wheel for this), changing the "pixel" sizes, toggling the POIs, and one to enable moving the window around. Points are written to a JPanel using primitive stuff like fillRect, fillArc, and fillPolygon (for POI). I'm naively reading the file repeatedly to get the data, but I might change this to use a watch key or something so that I'm only reading it after it actually changes.

    Currently, I save off all the data from the CurrentPlayerData.xml, except for the orientation, as that's only useful for my app when I'm in that area and need to display the data, so I use the current player info to get the orientation, rather than getting it from any of the points from the list. I suppose this will become a problem if I allow viewing a map other than the one that I happen to be on. I'm also not filtering the data terribly much before storing it, for example, I only consider a point to be a duplicate if it's the *exact* same XYZ as one already in the map.

    Would you be interested in this map data? How would you like it? I could package it up however you want, or even push it to your server if you have an API for that.

    In yours, what do the colors signify? In mine, I just use grayscale, but I've mapped the highest and lowest elevation to 0.0 and 1.0 and then this is used as the basis for the color. So when I've run around an area a lot, it ends up looking like snow-capped mountains. It's a neat effect as the scale ends up sliding as the distance between the high and low points increases.

    Here's a screenshot of Novia (normally I have the window really small, but I resized it for a larger screenshot and to show more of novia):
    [​IMG]
    Ignore the black edges, the window is actually shaped, but the screen cap doesn't show that.
    The tiny green circle outline shows where my character is standing (it's always in the center). In this screenshot, I'm standing next to where the serpent spine foothills entrance used to be.

    And to show the horrible clutter, I toggled POI back on at the same zoom level:
    [​IMG]

    If you'd like any of my data, it's yours. And if there's somewhere I can tap into what you've collected, that would be cool, too.

    Eventually I'll probably post it to github, but with SotaNavigator being available any day now, I don't know that anyone would actually want something like this.
     
  3. Tom Timebomb

    Tom Timebomb Avatar

    Messages:
    8
    Likes Received:
    9
    Trophy Points:
    3
    Location:
    Switzerland
    Hi

    Yeah, I think my tracker will become obsolete as soon the sota navigator gets included into the game and is running on linux as well.

    I stored my data on Amazon AWS. For collecting the data I read the CurrentPlayerData.xml file then I send it to amazon. I round the coordinate values to reduce the number of locations to store. I render the maps nightly in a cron job. I added some more colors but I also started with grayscale. Thought it looks a bit nicer with colors. Scenes and town positions are extracted automatically from the data. All this is fully automatically as I don't have much time right now :) And developers are lazy anyways :)

    So I think I won't investigate a lot of time anymore. If you want a data dump I can provide you one.

    You can access the map files if you like. A list of all maps is at https://sota-stuff.com/api/maps.json
    Then choose the attribute 'file' to get the name of the png: e.g. https://sota-stuff.com/api/maps/Novia.png
    Markers are at https://sota-stuff.com/api/scene-markers.json

    Well, if somebody still thinks this might be useful we can still collect position data and create our own maps....

    Cheers
     
  4. stephenrd

    stephenrd Avatar

    Messages:
    31
    Likes Received:
    20
    Trophy Points:
    8
    Oh, duh. Of course... After reading this, I added this to mine, too.

    Mine just hit 1MB, and I haven't traveled that far. What precision did you pick for rounding yours?

    In mine, I use the grayscale to represent height. Do the colors in yours have any special significance? How did you pick them?

    Yes, please. Don't worry about putting it into any particular format, I'll convert whatever you can give me to what I need.

    At the very least, I'm going to create a service to aggregate the points so I can see my party mates on my map. They may not care to use my GUI, but I find myself checking my map to find party mates whenever they move out of sight... though if SotaNavigator already does this, then I'll probably use that when it's finally available.
     
  5. Tom Timebomb

    Tom Timebomb Avatar

    Messages:
    8
    Likes Received:
    9
    Trophy Points:
    3
    Location:
    Switzerland
  6. stephenrd

    stephenrd Avatar

    Messages:
    31
    Likes Received:
    20
    Trophy Points:
    8
    Downloaded, converted, and loaded up.
    Thanks.
     
Thread Status:
Not open for further replies.