Match Dates are a datapoint which serve a few purposes on NightLight. The most obvious is to provide a way to view the impact patches, play styles, and other factors have over time through filters. There’s also a couple of less obvious effects they have, and I want to talk about those and how exactly match dates are obtained.
From filenames! Most screenshot tools (including the one built into Steam) will save the current time & date in the filename when you take a screenshot. This is rather handy as you’ll be taking one at the end of the game so it’s a pretty representative of when the match took place.
When you upload a screenshot, NightLight will try and parse the date & time from the filename by working through a list of known formats. If it fails to recognise one, you’ll be shown a warning and the current/upload time will be used instead (side note: this is currently always the case for API uploads with tools like ShareX).
These are the currently recognised date formats; they should be recognised anywhere in the filename. If your tool uses something that’s not on this list, feel free to reach out as I might be able to add it.
20220620143458 (Steam's default) 2022-06-20 14:34:58 2022-06-20 14-34-58 20220620_143458 2022-06-20 143458 2022-06-20 14.34.58 2022.06.20 - 14.34.58 2022-06-20_14-34-58 2022. 06. 20. 14_34_58 06_20_2022 2_34_58 PM
(How many ways can we come up to write the same thing?!)
It’s currently not possible to edit match dates, mainly due to their use in the features listed below. I’m considering it though and will probably end up adding a way to at some point.
I could try to use file creation dates but there’s people jumping through enough hoops to make Rube Goldberg proud in order to get screenshots from their platform to the upload page. These hoops tend to have the unfortunate side effect of overwriting the “true” screenshot time. At that point it just seems saner and importantly, predictable to rely on filenames.
In addition to their statistical use, match dates play a key role in the following features/functions:
When you upload a match, the system will try to check for the same scoreboard within a certain duration of the match date (currently around 10 minutes either side). If any of those matches look to be from the same game, it will reject the current upload as a duplicate.
If the current match appears to be more complete (i.e., the game has ended in this one and not the other, or more was recognised), it will instead mark the existing one as a duplicate (hiding and eventually deleting it).
The duplicate detection isn’t perfect and needs improving but the relevant takeaway here is that it relies on the match date and consequently can’t/doesn’t work without one.
Match dates also play a key role in not bankrupting me and ensuring I can keep the site fast and available to everyone. By default, everyone can view their uploaded matches from the last 60 days (based on match dates) and Supporters can view an effectively unlimited period (currently 2 years but I’ll likely increase that further when NightLight nears its second anniversary).
Matches which fall outside the history period aren’t currently deleted but are instead eligible to be archived (in a cheaper format) until such time as the history period were to increase (i.e. by becoming a Supporter) or they’re needed to populate new Community stats.