SubStanding (Extended)

SubStanding (Extended) 2.16

Login or Register an account to download this content
  • prevent multiple resets on all standing cars in a row (will reduce CPU load while cars are on the grid)
  • reduce lag spikes by distributing row data updates over update interval (See attached gif, configurable using "Flatten Updates")

Flatten Updates
Parts of the calculations and data updates are now done in smaller batches, rather than all at once to reduce maximum single frame times. So data will update in a wave from top to bottom. This should not affect the average calculation time overall, but flatten the CPU consumption more. So sudden spikes/lags should be reduced. That will not be completely prevented though.
updates.gif

Example of the "flattened updates". You can disable this setting to have all fields updated in the same frame again.

Performance Comparison
(local session with 50 AI cars)
performance.png

This will not be fully accurate, as these times fluctuate quite a lot, but it's an estimated average value in the screenshot.
The actual (avg) did and should not really change, so ignore that.
  • fix state reset in weekend mode to reset best laps/sectors
  • fix the initial classes calculation for users using classes.ini (thanks to @TP LxxA for providing a detailed report)
With the MapDisplay (Extended) v4, the class configuration has become a lot easier, which even helps SubStanding users. You can easily set up all classes in game and export the results to SubStanding.

1684618286345.png


You don't have to have MapDisplay active all the time, you could also only use it to set up your SubStanding classes if you like (but the update has also greatly inceased performance, so it's worth a look). No more fiddling around with HEX Color Codes and searching for class tags as you can easily pick tags and select related colors in game.

There is also this demo video showing the SubStanding export (check the video chapter for "Classes" as well, for the initial configuration).

(There is currently no re-implementation for SubStanding planned, see this post)
  • Like
Reactions: M1GHTY M4VS
  • add sector times (can be deactivated as for most elements)
  • add distance and time color configurations
  • extend mode change detection to fix potential overlapping of mode dependent elements (especially for weekend mode / online)
standing_items.png
  • implement additional Name modes (3 character abbreviation, short versions with dots)
  • implement Font Weight to be able to switch to bold (only in standings widgets)
  • patch start/finish position flickering to be fixed in even more cases
  • fix clicks for spectating interfering with bottom anchor positioning (and positioning the window incorrectly)
    • the window size will not update while the respective mouse buttons are pressed
    • the spectated driver changes on "mouse up" rather than on "mouse down"
1661365716230.png

(Bold font, Short names with dot)
  • improve position flickering passing the start/finish line (mostly happening online)
    • not completely fixed, missed one bit, will be patched in 2.13
  • performance improvements for data calculations (single frame time reduced by ~40%)
    • will not improve the render times, but the calculation happening on the refresh interval and thus smaller infrequent stutters
    • Meaning: it does not (noticeably) improve your average FPS, but your minimal FPS
  • update bottom anchor implementation to store updated bottom anchor only after dragging the window (using left, right or middle mouse button)
Perfectly captured "before & after" app calculation times:
before_after_40drivers.png

Measured with refresh rate 0ms (update all car info every frame) and 40 cars on track. With usual refresh rates it's much lower since it's an average over multiple frames. But still one single frame takes that long and then frames in between will take 0ms as re-calculation is skipped.
  • add possibility to show nation flags (drivers with no nationality will just have an empty space, there is no replacement symbol, like in the AC leaderboard with the AC logo)
  • split settings pages, to get the windows smaller again
  • lighten purple lap time color a bit, to increase readability
  • re-implement element positioning (might slightly change window sizes)
1660407079922.png
Includes the fix for the title text not correctly hiding (introduced in the previous V2.10 update).
  • make it possible to add signs (+/-) to the delta (modes: disabled, enabled, inverted)
  • add Badge + Livery mode to show both in parallel
  • scale standings titles with the font size (position widgets unaffected)
1659884223958.png


(I still have the Name mode additions on the list, regarding e.g. "Jr" exclusions and additional "." and so on, but I didn't yet get to implementing it)
  • Added a PDF explaining in detail how to set up classes for the Class Standing as well as the Class Indicators (colored bars)
    • see documentation/sub_standing_class_config.pdf
  • fix gap to focused car calculation
  • fix different name max lengths
  • multi badge mode option (disabled, badge, livery, mini skin)
  • possiblity to switch gap modes(leader, focused car)
    • not in relative because the relative intervals are the same as the gap to the focused car
  • implement different name modes (full name, first name only, last name only, first shortened, last shortened, initials)
livery_mode.png
  • implement click to spectate with modes: disabled, full row, position
  • top drivers displayed also for relative(with same values as global, no relative values to spectated car)
    • intended for users only having the relative window open but still want to see some references for the top drivers. Otherwise using the other widgets is preferred
  • fix initial config loading of "Show Gap to first" in relative config
  • color best laps (personal green, session best purple)
  • make all special driver colors configurable (own, leader, teammate, rival)
standing_items.png
  • split delta into interval to driver in front and gap to first (configurable per mode)
  • highlight interval/gap area (configurable)
  • make best and last lap displays configurable per mode
  • fix settings encoding issue for specific system languages (e.g. Simplified Chinese)
1657815793113.png
  • show class/same car position instead of global position per default (configurable)
  • add best lap time to all standings (configurable)
  • fix for invalid sector times used for deltas after porting to pits
  • implement custom class colors (for class tags only, configurable)
  • allow to filter out special characters from class tags for widget titles
  • add last lap time to relative (configurable)
  • update mini skin image preset (bigger vehicles, might be partially cropped for big/long vehicles)
  • implement mini skins (configurable to use mini skins instead of badges, generated via Content Manager preset) (thanks to @Please Stop This for the original implementation and the hints)
  • allow dynamic classes based on tags(enable useClassTags and add classTags to the list in the config)
    • active per default, you can deactivate it, to use the old classes.ini
  • disable mini sectors on maps without track length (fixes background errors)
  • added another class color, so 5 classes + unknown vehicles can exist without mixed class colors
mini_skins.png
  • Allow ignoring drivers by name using the drivers.ini (hidden from all standings)
  • Refactor standings row rendering
    • CSP is now required to run SubStanding
  • adjust configuration and allow to configure it in Content Manager (resets custom config on install once)
    • multi page in game configuration widget, allows separate configurations for standing widgets
  • row background for every other row to better separate them (configurable)
    • additional lighter row background for selected driver
  • background for the position, adjusted font and alignment
  • new class indicator as colored bar (configurable)
    • colors for classes are given "randomly" from a fixed set of 4 colors, grey for cars without a class assigned
  • always display selected driver instead of carId 0 (connected driver), to allow spectating
    • delta times might not be as accurate, when spectating others (and not having driven laps yourself)
Back
Top