servers.minetest.net statistics 10 days (24th Feb 2018 -- 6th Mar 2018) only server list fetches were counted General stats ------------- total: 2559610 IPv4 -> 2251112 87.95% IPv6 -> 308498 12.05% Browser -> 223504 08.73% Game -> 2336106 91.27% Game stats ---------- total: 1270751 unique (by IP): 575717 (Identifies as) Minetest: 0.4.16 -> 104486 08.22% 0.4.15 -> 14257 01.12% 0.4.14 -> 3906 00.31% 0.4.13 -> 171573 13.50% 0.4.12 -> 900 00.07% gUnknown -> 69 00.01% 0.4.11 -> 16591 01.31% 0.4.10 -> 927 00.07% 0.4.9 -> 608 00.05% 0.4.8 -> 3 00.00% Third party (only those with >1000 total): MultiCraft 1.1.8 -> 461222 36.30% based on 0.4.16 MultiCraft 1.1.7 -> 154 00.01% based on 0.4.15 (?) MultiCraft 1.1.4 -> 38992 03.07% based on 0.4.14 MultiCraft 1.1.2 -> 687 00.05% MultiCraft 1.1.0 -> 3 00.00% both based on 0.4.13 MultiCraft 1.0.1 -> 203 00.02% based on 0.4.12 FreeCraft -> 428888 33.75% based on 0.4.15 livelycraftma... -> 2711 00.21% craftingbuild... -> 1779 00.14% other/unknown -> 18179 01.43% Market share of select forks: Minetest -> 317933 25.02% Freeminer -> 142 00.01% MultiCraft -> 501261 39.45% FreeCraft -> 428888 33.75% 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: In theory this could be Minetest 0.4.7 or older, but I doubt that. This section is mostly curl/python-requests/no user agent and the rest of irrelevant Android ports (about 100). Third party store links: MultiCraft -- https://play.google.com/store/apps/details?id=mobi.MultiCraft FreeCraft -- https://play.google.com/store/apps/details?id=com.freecraft.exploration livelycraftmaster -- https://play.google.com/store/apps/details?id=com.LivelyCraft.BlockWorld.Roblox.Minecraft.Story.Mode.Exploraton.Lite craftingbuildingandsurvival -- https://play.google.com/store/apps/details?id=com.ryuko2bull.crafting_building_and_survival Freeminer -- no longer(?) listed in Play Store Effective version distribution ------------------------------ based on prev. section 0.4.16 -> 565708 44.52% 0.4.15 -> 443299 34.88% 0.4.14 -> 42898 03.38% 0.4.13 -> 172262 13.56% 0.4.12 -> 1103 00.09% 0.4.11 or older -> 18198 01.43% unknown -> 27283 02.15% Note on unknown: These are most likely anywhere between 0.4.12 and 0.4.14. Platform stats -------------- total: 1256990 x86 -> 24253 01.93% x86_64 -> 86598 06.89% armv6/7l -> 810905 64.51% aarch64 -> 335201 26.67% ??? -> 33 00.00% Desktop -> 110884 08.82% Mobile -> 1146106 91.18% (all ARM devices were counted as mobile) Linux -> 1015454 80.78% Windows -> 49597 03.95% Darwin -> 191820 15.26% *BSD -> 115 00.01% ??? -> 4 00.00% Windows stats ------------- total: 49597 Windows 8(.1)/10 -> 31243 62.99% Windows 7 -> 15682 31.62% Windows Vista -> 373 00.75% Windows XP -> 2294 04.63% older -> 5 00.01% Mobile stats ------------ total: 1146106 Android -> 956067 83.42% iOS -> 190039 16.58% iOS stats --------- total: 190039 iPad -> 91033 47.90% iPhone -> 97181 51.14% iPod -> 1825 00.96% +======================+ | big pile of commands | +======================+ tail -n 3290000 /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/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 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]|10),[0-9]+|Pad[4-6],[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 # cat winvers.log | egrep "^(6\.[23]|10\.0)" | 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]|10),[0-9]+|Pad[4-6],[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 | egrep "i(Phone|Pad|Pod)" | grep iPhone | wc -l cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | egrep "i(Phone|Pad|Pod)" | grep iPad | wc -l cat newer.log | cut '-d(' -f2 | cut '-d)' -f1 | egrep "i(Phone|Pad|Pod)" | grep iPod | wc -l