servers.minetest.net statistics 10 days (1st May 2020 -- 10th May 2020) Only server list fetches were counted. General stats ------------- total: 4007372 IPv4 -> 3273574 81.69% IPv6 -> 733798 18.31% Browser -> 161866 04.04% Game -> 3845506 95.96% Game stats ---------- total: 2753281 unique (by IP): 1053455 Minetest (or identifies as such): 5.3 (dev) -> 5081 00.18% 5.2 -> 102614 03.73% 5.1 -> 36649 01.33% 5.0 -> 2332930 84.73% 0.4.17 -> 14399 00.52% 0.4.16 -> 22520 00.82% 0.4.15 -> 5319 00.19% 0.4.14 -> 328 00.01% 0.4.13 -> 112318 04.08% 0.4.12 -> 41 00.00% gUnknown -> 41 00.00% 0.4.11 -> 1871 00.07% 0.4.10 -> 102 00.00% 0.4.9 -> 100 00.00% 0.4.8 -> 0 00.00% Third party (only those with >1000 total): MultiCraft 1.3 -> 18177 00.66% based on 0.4.17 MultiCraft 1.1.10 -> 36525 01.33% based on 0.4.17 MultiCraft 1.1.8 -> 4889 00.18% based on 0.4.16 MultiCraft 1.1.4 -> 14926 00.54% based on 0.4.14 MobilCraft -> 7285 00.26% based on 0.4.14 FreeCraft -> 1636 00.06% based on 0.4.15 Shpere -> 1421 00.05% based on ? other/unknown -> 31637 01.15% Market share of select forks: Minetest -> 2636244 95.75% Freeminer -> 2 00.00% MultiCraft -> 75058 02.73% MobilCraft -> 7285 00.26% Note about 0.4.13: There seems to be a popular (new?) iOS app that is based on 0.4.13... Breakdown: 102770 iOS (91%), 7265 Android (6%), 2283 Desktop (2%) 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 MultiCraft: Since version 1.2.1 (May 2019) MultiCraft has its own server list. Since 1.5.0 (Sept 2019), it no longer fetches Minetest's list and always uses its own. 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://apps.apple.com/app/multicraft-build-and-mine/id1174039276 MobilCraft -- https://play.google.com/store/apps/details?id=com.MobileCraft FreeCraft -- no longer listed in Play Store(?) Freeminer -- no longer listed in Play Store (since a long time) Effective version distribution ------------------------------ based on prev. section 5.3 -> 5081 00.18% 5.2 -> 102614 03.73% 5.1 -> 36649 01.33% 5.0 -> 2332930 84.73% 0.4.17 -> 69101 02.51% 0.4.16 -> 27409 01.00% 0.4.15 -> 6955 00.25% 0.4.14 -> 22539 00.82% 0.4.13 -> 112318 04.08% 0.4.12 or older -> 2155 00.08% unknown -> 35530 01.29% series 5.x -> 2477274 89.98% series 0.4.x -> 240477 08.73% Protocol versions ----------------- total: 2723674 By maximum version: v39 -> 105624 03.88% v38 -> 37477 01.38% v37 -> 45985 01.69% v36 -> 2289570 84.06% v35 -> 43 00.00% v34 -> 5 00.00% v33 -> 1669 00.06% v32 -> 113483 04.17% v31 -> 1 00.00% v30 -> 3668 00.13% v29 -> 0 00.00% v28 -> 4068 00.15% v27 -> 117526 04.31% v26 -> 2413 00.09% v25 -> 216 00.01% v24 -> 1912 00.07% By supported range: v39 -> 105638 03.88% v38 -> 143115 05.25% v37 -> 189100 06.94% v36 -> 2289794 84.07% v35 -> 267 00.01% v34 -> 272 00.01% v33 -> 1941 00.07% v32 -> 115424 04.24% v31 -> 115425 04.24% v30 -> 119093 04.37% v29 -> 119093 04.37% v28 -> 123161 04.52% v27 -> 240687 08.84% v26 -> 243100 08.93% v25 -> 243316 08.93% v24 -> 124163 04.56% Note on the versions: The maximum of 0.4.17 is v32, the minimum of 5.0 is v37. Versions 33 until 36 were never released (dev builds only). Platform stats -------------- total: 2723279 x86 -> 14606 00.54% x86_64 -> 185479 06.81% armv6/7l -> 1084202 39.81% aarch64 -> 1438957 52.84% ??? -> 16 00.00% Desktop -> 200199 07.35% Mobile -> 2523080 92.65% Linux -> 2528675 92.85% Windows -> 71381 02.62% Darwin -> 122844 04.51% *BSD -> 355 00.01% ??? -> 24 00.00% Note about Desktop vs. Mobile: All ARM devices are counted as mobile *unless* their Linux kernel version can be reliably identified as a desktop distribution. Windows stats ------------- total: 71381 Windows 10 -> 52243 73.19% Windows 8(.1) -> 6602 09.25% Windows 7 -> 11092 15.54% Windows Vista -> 517 00.72% Windows XP -> 927 01.30% older -> 0 00.00% Mobile stats ------------ total: 2523080 Android -> 2405548 95.34% iOS -> 117532 04.66% iOS stats --------- total: 117532 iPad -> 55040 46.83% iPhone -> 62248 52.96% iPod -> 244 00.21% +======================+ | big pile of commands | +======================+ tail -n 5160000 /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 -c "Mozilla|Opera" cat serverlist_10days.log | egrep -c -v "Mozilla|Opera" cat serverlist_10days.log | egrep -v "Mozilla|Opera" | ./wwwuniq.py game.log ## cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/5\.3" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/5\.2" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/5\.1" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/5\.0" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/0\.4\.17" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/0\.4\.16" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/0\.4\.15" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/0\.4\.14" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/0\.4\.13" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/0\.4\.12" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/gUnknown" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/0\.4\.11" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest/0\.4\.10" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest[/ ]0\.4\.9" cat game.log | cut -d '"' -f 6-7 | egrep -c "^Minetest 0\.4\.8" ## 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 | sed -rn 's|.*\?proto_version_min=([0-9]+)&proto_version_max=([0-9]+).*|\1 \2|gp' > proto.log wc -l proto.log ## for i in $(seq 39 -1 24); do printf "v$i -> %-7d\n" $(grep -c " $i\$" proto.log) done ## for i in $(seq 39 -1 24); do printf "v$i -> %-7d\n" $(awk "{ if($i >= \$1 && $i <= \$2) print $0 }" proto.log | wc -l) done 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[012])|Pad([4-9]|1[01])|Pod[79]),[0-9]+/aarch64/' | \ sed -re 's/i(Phone|Pad|Pod)[0-9],[0-9]/armv7l/' > archs.log wc -l newer.log ## cat archs.log | egrep -c "(x86|i[3-6]86)$" cat archs.log | egrep -c "(x86_64|amd64)$" cat archs.log | egrep -c "armv[67]l?$" cat archs.log | egrep -c "(aarch64|armv8l?)$" cat archs.log | egrep -c "(x86|i[3-6]86|x86_64|amd64|armv[678]l?|aarch64)$" | wc -l ## cat archs.log | egrep "(armv[678]l?|aarch64)$" | \ egrep -v "^Linux/.*(-ARCH|-MANJARO|-raspi2?|-rockchip64)" | 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 -c "^10\.0" cat winvers.log | grep -c "^6\.[23]" cat winvers.log | grep -c "^6\.1" cat winvers.log | grep -c "^6\.0" cat winvers.log | grep -c "^5\.[12]" 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[012])|Pad([4-9]|1[01])|Pod[79]),[0-9]+/aarch64_apple/' | \ sed -re 's/i(Phone|Pad|Pod)[0-9],[0-9]/armv7l_apple/' | \ egrep "armv[678]l?|aarch64" | \ egrep -v "^Linux/.*(-ARCH|-MANJARO|-raspi2?|-rockchip64)" > mobile.log wc -l mobile.log ## cat mobile.log | grep -c -v "_apple" cat mobile.log | grep -c "_apple" cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | grep -c iPhone cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | grep -c iPad cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | grep -c iPod