servers.minetest.net statistics 10 days (12th May 2019 -- 19th May 2019) only server list fetches were counted General stats ------------- total: 2580180 IPv4 -> 2215251 85.86% IPv6 -> 364929 14.14% Browser -> 95001 03.68% Game -> 2485179 96.32% Game stats ---------- total: 1755069 unique (by IP): 698603 Minetest (or identifies as such): 5.1 (dev) -> 6530 00.37% 5.0 -> 1520493 86.63% 0.4.17 -> 12867 00.73% 0.4.16 -> 43587 02.48% 0.4.15 -> 4895 00.28% 0.4.14 -> 411 00.02% 0.4.13 -> 30241 01.72% 0.4.12 -> 269 00.02% gUnknown -> 6 00.00% 0.4.11 -> 3350 00.19% 0.4.10 -> 133 00.01% 0.4.9 -> 81 00.00% 0.4.8 -> 1 00.00% Third party (only those with >1000 total): MultiCraft 1.2.0 -> 155 00.01% based on ? MultiCraft 1.1.10 -> 74960 04.27% based on 0.4.17 MultiCraft 1.1.8 -> 27337 01.56% based on 0.4.16 MultiCraft 1.1.4 -> 3626 00.21% based on 0.4.14 MobilCraft -> 5215 00.30% based on 0.4.14 FreeCraft -> 1515 00.09% based on 0.4.15 other/unknown -> 2238 00.13% Market share of select forks: Minetest -> 1623185 92.49% Freeminer -> 6 00.00% MultiCraft -> 106185 06.05% MobilCraft -> 5215 00.30% Note about gUnknown: This "version" exists since 0.4.11 for Android: https://github.com/minetest/minetest/commit/d38f6eb That means all "gUnknown" clients are on Android and run 0.4.11 or newer. Note about other/unknown: Technically some of these could be Minetest 0.4.7 or older, but I doubt that. This section is mostly curl/wget/no user agent and the rest of irrelevant Android forks (about 60). Third party store links: MultiCraft -- https://play.google.com/store/apps/details?id=mobi.MultiCraft MobilCraft -- https://play.google.com/store/apps/details?id=com.MobileCraft FreeCraft -- https://play.google.com/store/apps/details?id=com.freecraft.exploration Freeminer -- no longer(?) listed in Play Store Effective version distribution ------------------------------ based on prev. section 5.1.0 -> 6530 00.37% 5.0.0 -> 1520493 86.63% 0.4.17 -> 87827 05.00% 0.4.16 -> 70924 04.04% 0.4.15 -> 6410 00.37% 0.4.14 -> 9252 00.53% 0.4.13 -> 30241 01.72% 0.4.12 or older -> 3840 00.22% unknown -> 19552 01.11% series 5.x -> 1527023 87.01% series 0.4.x -> 208494 11.88% Platform stats -------------- total: 1738041 x86 -> 6698 00.39% x86_64 -> 58127 03.34% armv6/7l -> 1056293 60.77% aarch64 -> 616907 35.49% ??? -> 16 00.00% Desktop -> 64841 03.73% Mobile -> 1673200 96.27% (all ARM devices were counted as mobile) Linux -> 1655518 95.25% Windows -> 29067 01.67% Darwin -> 53339 03.07% *BSD -> 109 00.01% ??? -> 8 00.00% Windows stats ------------- total: 29067 Windows 10 -> 16056 55.24% Windows 8(.1) -> 5173 17.80% Windows 7 -> 7348 25.28% Windows Vista -> 49 00.17% Windows XP -> 440 01.51% older -> 1 00.00% Mobile stats ------------ total: 1673200 Android -> 1620719 96.86% iOS -> 52481 03.14% iOS stats --------- total: 52481 iPad -> 31683 60.37% iPhone -> 20503 39.07% iPod -> 295 00.56% +======================+ | big pile of commands | +======================+ tail -n 3160000 /usr/local/nginx/logs/serverlist.log | grep "GET /list" > serverlist_10days.log wc -l serverlist_10days.log cat serverlist_10days.log | awk '{ if($1 !~ ":") print $0 }' | wc -l cat serverlist_10days.log | awk '{ if($1 ~ ":") print $0 }' | wc -l ## cat serverlist_10days.log | egrep "(Mozilla|Opera)" | wc -l cat serverlist_10days.log | egrep -v "(Mozilla|Opera)" | wc -l cat serverlist_10days.log | egrep -v "(Mozilla|Opera)" | ./wwwuniq.py game.log ## cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/5\.1" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/5\.0" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.17" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.16" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.15" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.14" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.13" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.12" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/gUnknown" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.11" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest/0\.4\.10" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest[/ ]0\.4\.9" | wc -l cat game.log | cut -d '"' -f 6-7 | egrep "^Minetest 0\.4\.8" | wc -l # cat game.log | cut -d '"' -f 6-7 | egrep "^MultiCraft/" | cut -d " " -f 1 | \ cut -d "-" -f 1 | sort | uniq -c | sort -n cat game.log | cut -d '"' -f 6-7 | egrep -v "^(Minetest|MultiCraft)" | \ cut -d "/" -f 1 | sort | uniq -c | sort -n python3 -c 'import sys;print(sum(int(l.strip().split(" ")[0])for l in sys.stdin))' # cat game.log | cut -d '"' -f 6-7 | sed -r 's|^([^ /"]+).*"|\1|g' | \ sort | uniq -c | sort -n calc.exe ## calc.exe cat game.log | cut -d '"' -f 6-7 | egrep "\(\S+ \S+\)\"" > newer.log cat newer.log | cut -d '(' -f 2 | cut -d ')' -f 1 | sed -re 's/i(Phone([6-9]|1[01]),[0-9]+|Pad([4-9]|1[01]),[0-9]+|Pod7,1)/aarch64/' | sed -re 's/i(Phone|Pad|Pod)[0-9],[0-9]/armv7l/' > archs.log wc -l newer.log # cat archs.log | egrep "(x86|i[3-6]86)$" | wc -l cat archs.log | egrep "(x86_64|amd64)$" | wc -l cat archs.log | egrep "armv[67]l?$" | wc -l cat archs.log | egrep "(aarch64|armv8l)$" | wc -l cat archs.log | egrep -v "(x86|i[3-6]86|x86_64|amd64|armv[67]l?|aarch64|armv8l)$" | wc -l ## calc.exe ## cat newer.log | cut '-d(' -f2 | cut '-d/' -f1 | sort | uniq -c | sort -n calc.exe cat newer.log | cut '-d(' -f2 | grep "Windows" | cut -d '/' -f2 | cut -d ' ' -f1 > winvers.log wc -l winvers.log # cat winvers.log | grep "^10\.0" | wc -l cat winvers.log | grep "^6\.[23]" | wc -l cat winvers.log | grep "^6\.1" | wc -l cat winvers.log | grep "^6\.0" | wc -l cat winvers.log | grep "^5\.[12]" | wc -l cat winvers.log | egrep -v "^(5\.[12]|6\.[0-3]|10\.0)" | wc -l cat newer.log | cut -d '(' -f 2 | cut -d ')' -f 1 | \ sed -re 's/i(Phone([6-9]|1[01]),[0-9]+|Pad([4-9]|1[01]),[0-9]+|Pod7,1)/aarch64_apple/' | \ sed -re 's/i(Phone|Pad|Pod)[0-9],[0-9]/armv7l_apple/' | \ egrep "(armv[67]l?|aarch64|armv8l)" > mobile.log wc -l mobile.log # cat mobile.log | grep -v "_apple" | wc -l cat mobile.log | grep "_apple" | wc -l cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | grep iPhone | wc -l cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | grep iPad | wc -l cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | grep iPod | wc -l