I was just wondering, how much data does Minecraft use to play?
Note: This section can be speculated, but these are examples on Vanilla Minecraft.
Logging in requires sending a credential query to a server, which checks it against Mojang's session servers, which require about 20kB along with loading the world:
Depending on the world, a fully generated world (ie. one you can just create by clicking 'New Game') with a range of 10 chunks can take about 300-800kB (or less for empty ie. Skyblock worlds or more for worlds with lots of tile entities and mobs) for the initial world download, while new chunks that are loaded take roughly 30-100kB each (depending on the contents).
After Connecting; maintaining it
It really depends on what server you're playing on. Usually, a typical Minecraft server (presuming you're not using mods or custom plugins (with Spigot/Bukkit/Sponge servers) will usually require about 30-50kB/s download and 20kB/s upload.
Servers that update everything in real-time however (ie. have custom mechanics that are managed server-side), such as the Mineplex multiplayer servers have a increased bandwidth requirements, which is around 80-200kB/s download (inefficient update code) and about 50kB/s upload (validation and stuffs).
In the lobbies, Mineplex has an Enderdragon that has its name constantly changing, health fluctuating, a scrolling scoreboad display made by changing player/objective names every so often and items that has its names/metadata constantly change, which takes up more bandwidth as more things needs to be updated, and more update data needs to be sent to the client.
By 'often', I meant at least twice a second, if the packets make it in time.
Is there a difference between Single and Multi player?
Not to be a troll.. But it's as simple as:
- Single-player means the game is locally hosted on a client-server; a server that is on your own machine, but only you can connect to it, unless the "Open to LAN" option is used, then it becomes a multi-player server.
- Multi-player means the game is hosted on another machine and information about the current game state is constantly sent to clients from the server, usually over the internet.
Is there anything that might affect this? Like launchers or custom skins?
Presuming 'this' is the bandwidth needed, then yes.
- Updates - If something happens, the server needs to tell the client something has happened.
If a million things has happened, then it sends all of that million things to the client, which requires lots of bandwidth (download speed) to process and recieve, which is the case for Mineplex.
- Mods and External Protocols - When you're playing on a modded server, there are several things Forge does before a client can connect. For instance, giving the IDs of the blocks used from the mods, or verifing that the client has the correct mods for the corresponding server.
As for skins and clients... That depends. Usually modded clients have no effect on the bandwidth required as they do not affect anything but the launching of the game, while skins are just simply 64x64 .png files, or larger with various mods that support HD skinning.
So theoretically, having a million players on a server would make a difference as to having only one or two instead as your game does not have to download all one million skins.
A note about single-player LAN servers:
When playing single player, no authentication is done (even through LAN).
The only thing that the Internet is needed for are the skins...
And this only applies if you're playing purely on LAN with a Internet connection. Of course, everything above applies (minus authentication) if you're connecting to a LAN server externally (having it port-forwarded or through VPNs like Hamachi), alongside any non-Minecraft protocols.