Skip to content

Release 12

Latest
Compare
Choose a tag to compare
@drakewill-CRL drakewill-CRL released this 12 May 01:53
· 12 commits to master since this release

The focus for Release 12 has been offline data and Godot support via PraxisGodotComponents. Part of the unusual lull between releases has been the focus on the client-side of things, and partly because of the time it took to process global data into offline form for testing and development of that. But its in a pretty stable spot, so now's a good time to release the changes.

Server/Core:

  • arts&culture style has been expanded to 18 different entries, 1 for each of the elements that was in the original. This will help descriptiveness of games that use them dramatically, by saying you're at a library or a viewpoint instead of "arts&culture place". Applied to mapTiles, suggestedGameplay, and suggestedmini style.
  • Offline data formats changes. Its still JSON, but in 2 different schemas now, depending on if its 'minimized' or 'drawable'. Larry can make these for a server with with -makeOfflineFiles or -makeMinimizedFiles. The Offline plugin can generate them on-demand at /Offline/V2/{plusCode}/{styles} or /Offline/V2Min/{plusCode}/{styles}
    • Each JSON file will have the 6-digit OpenLocationCode, a nametable holding unique Place names, and a list of entries
    • For full drawable offline data, entries is a dictionary, with a key of the styleSet used to make the data, and a list of data points each containing nid (Name table ID), tid (type ID, the matchOrder value in the style set used), gt (Geometry type, to indicate if its a Point/Line/Polygon), and p (Points, local-coordinate positions in pixel values. Default settings use Cell12s as pixels, which makes this coordinate grid 6,400x10,000)
    • For minimized estimated offline data, the entries contain a nid (Name table ID), tid (type ID, the matchOrder value in the style set used), c (Center of the circle, as a local-coordinate pixel position), and r (radius of the circle, in local coordinate pixels). These files use Cell10s as pixels, making a 400x400 grid.
  • Updating PlaceData shortcut values (called Retag right now, despite not actually editing tags) is now resumable and works correctly again.
  • Added warnings to PerfData if users login with the username and password in the URL instead of body.
  • MapTileController endpoints that take a location can now read the inputs from the body instead of the URL to keep locations out of logging.
  • Added a new GameTool, GeometryBuilder. Takes a list of PlusCodes as points, and can create a simple polygon from them. Does not attempt to re-adjust points in the list except to make a closed shape at the end. Still in process, incomplete.
  • Added Server/Logout, so you can immediately revoke login credentials instead of waiting for them to expire automatically.
  • Fixed some duplicate MatchOrder values in mapTiles styleSet
  • Added a new styleSet for processing purposes: importAll matches on all tagged entries. This is intended to be used for loading everything initially from a PBF file. This is probably ideal if you would prefer to edit a style from a database with elements to see them appear live.
  • PbfReader can now handle mulitple style sets at once, so you can load mapTiles and adminBounds in a single pass, instead of doing 2 loads of a source file or using importAll.
  • Loading data from PMD files now respects server bounds, so loading entries after DB creation will skip items that are outside the server's limits
  • The Place table now stores the name for each place in the main row, instead of parsing tags on each loaded item. This change, when loading items by matched style using PlaceData entries, generally means tags will not be needed by a game after the initial load.

Larry:

  • Larry can now make V2 offline files. Unlike the plugin, Larry runs them in parallel and can save them to files or the database.
  • OfflineV2 data sets can be merged together by Larry. Use -mergeOfflineSets and point at a folder with sub-folders containing the offlinedata by styleset. EX: Use this to merge a mapTiles and an adminBounds set of data into one set containing both.

Plugins:

  • Offline Data Plugin now has a V2 that dramatically increases usability.
    • /Offline/V2/{plusCode}/{styleSet} compresses all data in the given Area matching the requested StyleSet, and sends over reduced Geometry along with a nametable of each unique name in the area requested. A client can use the Geometry data to draw the maptile locally, if the client has rules for the matching styleSet. This text data is approximately an order of magnitude smaller than the data on the server for the same area.
    • /Offline/Style/{styleSet} will convert the styleSet on the server into a client-usable format to draw with later.