Under normal circumstances DiNGiES does not collect any data. Player progress and settings are stored locally on the device. DiNGiES also does not perform any kind of tracking, analytics or collection of usage metrics.
In case of an error or crash happening, DiNGiES will automatically send an error report to sentry.io. This allows me to figure out where something went wrong and fix the issue, so that one day DiNGiES will hopefully be error free. These error reports are anonymous and do not contain any personally identifiable data. Your IP address is technically processed, but not provided to me. Reports contain information about where in the program code the issue was detected or the crash happened and what kind of hardware and software the game was running on, like for example iOS or Android and which brand and model, the graphics processor, CPU and the battery level. This is because some issues only happen on some specific devices or OS versions - and there are many different ones - or under special circumstances, like when for example the battery level is very low and the hardware automatically switched to a low power processing mode.
An important aspect of DiNGiES as an art project is the synchronization
of all minds connected to it, through music. A window to a dancefloor in a dimension
next to ours. Every single being hears the exact same notes, with no delays, like for example with radio or
streaming, which are limited by the speed of light. Unfortunately it turned out, that we as humans seem to not
even be able to agree on what time it is right now reliably across vendors of different devices. For that
reason, DiNGiES will occasionally connect to public time-servers
to get the current universal time
(UTC), using the standard Network Time
Protocol
(NTP). You can imagine it like this:
A
tiny bunny is sent from your device towards a time-server on the internet. With it, it carries a small note, its
digital home address, so that it can find its way back to you later. This address is called your IP address, and
it's like a bunch of numbers. After taking a few hops, it will arrive at the server, where it asks
"What time is it?" in computer language. Mmmmbieprrrrchhhhsssrrrrrhhhtt. The
answer is of course always "Adventure Time!" in some form or another. The
bunny takes note and also writes down how long the break at the server took, then, using your IP address, goes
on its way back to you. During all this time, a stopwatch was measuring how long it will take for the bunny to
travel all the way from its home and back again. On arrival, the bunny adds half of the duration on the
stopwatch minus the break time to the time of the server, written on the bunny's note. This calculation accounts
for the estimated time that passed on its way back. The calculated real time is then given to
DiNGiES. With it, DiNGiES now knows where to look in
its infinite, non-repeating shuffled playlist and skips exactly there. Bunnies brought everything in sync. :)
It is necessary to do this every now and then, because all clocks drift
a bit. That means they run slower or faster and differ from each other over time, so they need to be
synchronized again. No personal or user data other than your IP is transmitted, which is a requirement because
of the way the internet works. Without it, the bunny would not find its way home. Servers
might store the IP address for logging and security reasons for a short amount of
time. Time-servers being asked are:
- time.apple.com
- time.aws.com
- time.cloudflare.com
- time.facebook.com
- time.google.com
- time.windows.com
These are time-servers also used by billions of other devices and provide proper scaling in cases of more or less usage. Since they are third party services, I have no insight and can not provide a way for asking to delete your IP in case it is recorded. I would love if I wouldn't need to sync time manually and be able to just rely on the operating system time, but for that all vendors would need to agree on how that time is defined, acquired and delivered. Some vendors are already very precise syncing their own hardware, but they still differ from other vendors currently, sometimes by multiple seconds. Maybe some day at least the current universal time is something we can all agree on and then the manual sync can be removed from DiNGiES.
More info on NTP best practices applied by DiNGiES can be found here.
(Sidenote: If you are managing time-servers yourself, maybe think about using time smearing for handling leap seconds, because it seems like a reasonable idea to handle a problem at the root and not rely on millions of connected devices to inconsistently apply arbitrarily well implemented measures to correct for it. Or in the worst case not even know about this requirement. Smearing reduces the overall complexity and with it causes of errors and it's backwards compatible. If smeared over a reasonable timeframe, the second will become almost immeasurable, especially within the precision of NTP. It is also more accurate to the actual physical process our time is originally derived of, because the earth doesn't stop rotating for one second on leap events. And maybe consider supporting the voluntary open NTP Pool Project.) ♥️
Lastly, to connect to time-servers, DiNGiES needs to find out their IP address given their human-readable domain names (eg: time.cloudflare.com). This is done using the standard domain name system protocol (DNS) by connecting to the public, privacy first, anonymous DNS service at the IP address1.1.1.1, which is managed by Cloudflare, and asking to translate the given domain names into a IP addresses. 1.1.1.1 does not store or log your IP address.
