Track Map Display (Extended)

Track Map Display (Extended) 4.7.1

Login or Register an account to download this content
  • implement replacement for function missing in csp versions before 0.1.80-p346

This might fix the bugs reported by @Juppek-S and @Shane Pitkin
Sorry for the inconvenience, I didn't test the 4.7 with older CSP versions for compatibility.
  • implement MapDisplay Progress widget (similar to RaceLab's FlatMap)
  • detect cars in pit lane and allow to hide them or scale them relatively to the marker size (new default is 75% scale)
  • make position marker image configurable
    • pin (default)
    • circle
    • flat circle (no gradient background, similar to circles in v2.X and v3.X)
  • Fix: make position marker size independent from car rotation (driving up- or downwards was previously making the markers smaller)
  • Fix: change draw order of cars to have leading cars on top
  • Fix: exclude inactive (disconnected) cars from the position calculation

1695292163891.png

Preview of the Progress widget. Thin lines mark sectors, the start/end indicators will get colored based on the flag status (yellow/blue). It also shows the circle marker image for drivers.
  • implement workaround for missing online properties (best laps) to calculate positions in time based sessions correctly
  • will only use laps started and completed while being connected

Thanks for reporting to @FinnishFish, @MaxFrames and @Meatfraiche
  • fix "Remove" buttons for CSP non-preview version (0.1.78/0.1.79) to show text buttons (instead of unsupported icon buttons)
  • add Drivers config to make it possible to hide certain drivers (driver name based)
  • make stopped cars threshold configurable
  • replaced all Remove buttons with icons
  • clicking on Update in Map Generation will now always generate a new image, even if none of the parameters changed (useful if e.g. the ai file changed)
1685999268770.png
  • add workarounds to correct driver lap counts and race positions (especially in online races)
  • add additional session reset detection, to correctly reset data
Thanks to @MeshPolyX and @Jonah Hax for reporting and helping with the investigation!
  • added Map Generation shape optimizations, to better use the available space while keeping them rotatable
  • implement settings to be able to customize Full Map margins
  • workaround for tryParse not using default parameter to handle settings errors correctly (thanks to @mostcallmeliz)

Example for the shape optimizations
full_circle_fit_comparison.jpg

  • Yellow lines are the app boundaries
  • Blue is the rotation area of the map (biggest circle fitting into the app window)
  • Red are the map image boundaries
With the shape optimizations, generated maps are now scaled to fill the blue circle optimally rather than the red square. So for a lot of tracks the space is now per default used better than before (having less margin), as long as you use generated maps.
This is configurable. You can also now disable the rotation margin completely and let the map fill the whole square again, if you do not use rotations anyways (see Settings > Map Generation > Shape Optimization, as well as the newly introduced Full Map > Enable Rotation Margin)
  • hide positions if they are incorrect (e.g. in some replays)
  • support UTF-8 with BOM for car tag json
  • catch errors when parsing class tags, to not hide the map completely
Thanks @Marc magnela for the detailed error report!
With the current CSP version it's not possible to right click the app title on a pinned app, as long as the app has no default text content. And since everything visible in the app uses custom render functions, this seems to cause the issue.
I've implemented a workaround (render an empty text) so that the pinned map apps are accessible again.

1683631761345.png


Sorry for the inconvenience!
It has taken me some time and CSP a few updates, but here it finally is: MapDisplay (Extended) was fully re-build in Lua.

The whole app Overview page was updated. Please check the content as well.

I hope you like the changes and the better commentary on the tutorial video this time (from an AI).


For everyone updating: you will have to delete the old python version manually if you want to get rid of it, as Content Manager does not detect that.
After the previous update, I have now implemented the Mini Map, so I thought it's time to do some performance tests again that might be interesting for users of that widget.

performance_update.png


We can see the rendering times for both widgets are around 25% of the old app or to make it more of a marketing phrase: Its performance increased to 400%!

I made tests with 5 - 43 vehicles and it always scaled similarly, the more vehicles you have the better it scales. So the performance increase is more significant with more cars.

Feature wise there will be very few changes, though the configuration will be all in game and from my point of view way easier. More details at the given time.
One feature that I dropped completely is recording maps. I think using the AI line generation is easier and better looking, and I doubt that someone really still used it, even for tracks without an AI line.

I'm now implementing the last missing features and preparing the release, including all the updated documentation.
Here's a performance teaser on a re-implementation that I'm currently working on:

Map Display v3.7
render.png

update.png


Map Display v4.0 (LUA re-implementation)
LUA.png


In my case, I gain roughly 10 fps in races with 20 drivers with the new app.

Still a lot to be done, so a release might still require a few more weeks.
Long time for a small update.
  • Display a short message (on load only) about the recommended CSP version in the minimap if the installed version is too low
  • Fixed an issue with the map generation (create_png.exe updated) that would cause the generation to fail if comments were used in the Sector or DRS files
Maps
  • fix focused car not being displayed in front of others in replays
  • fix generated map not being correctly selected on newly opened tracks (happened only occasionally)
Legends
  • hide legend app background even when focused to allow better configuration of custom background in settings
  • implement color legends as separate Lua apps (with included configurations). See Overview section Legend Widgets
legend_widgets.png
  • fix always re-generating images, even though they were correctly available
There was a duplicated check of whether a map image has to be re-generated (due to version or parameter updates) or not. This check was not in sync and thus the versions never matched even if just generated. The process was now implemented differently to get rid of the manual sync so that this should not happen again. (There will be more create_png.exe executions that immediately stop, as (only) in there the check is done now, instead of in the map_display.py)

Noticed only after the release that the create_png.exe was still generating maps in version 3.3 while the app code checked for 3.4 :(
  • improve the memory usage of create_png.exe by drawing maps in separate tiles, one after another to have less in memory in parallel
Memory usage is reduced by a factor of up to 16. So image generations that might have used 16GB in the past are now down to around 1GB.
This only affects images rendered with a size of more than 1024x1024px.
So this mainly affects images for tracks like the Nordschleife or it could affect you if you've increased the image generation sizes in the configuration.
  • add batch image generation scripts to generate images prior to starting the game
    • the scripts can be found in apps/python/map_display/generate_full_maps.bat (for the "default" track maps used in the overview widget) and apps/python/map_display/generate_mini_maps.bat (for the "mini map" widget)
    • the scripts use the same config as the in game generation would and will only generate images for tracks which were not generated before (or on config changes)
    • optionally you can add names for tracks that the images should be generated for, to not generate images for all tracks
  • use pit lane for map generation boundary calculation (fix cut off pit lanes if on the outside of the track)
  • add UI info for app version info in Content Manager
  • Added a PDF explaining in detail how to set up classes for the Color Mode Class Based
  • add class position number mode (see gif)
  • position map for camera perspective rather than selected driver (see gif)
  • allow disabling map generation
  • cache generated map image only on success and regenerate on next start on failure
  • fix switching to auto generated maps
  • correctly hide status texts after startup
  • move generated track configs into other file (track_config.ini)
ezgif-5-a85abf5cd9.gif

Latest News

Shifting method

  • I use whatever the car has in real life*

  • I always use paddleshift

  • I always use sequential

  • I always use H-shifter

  • Something else, please explain


Results are only viewable after voting.
Back
Top