Sorry for the vague title, not sure what to call this :/
So, I have been thinking about this for the past week. When you host a minecraft server, the player's client sends and receives packets of information. It receives information about block updates, player positions, etc. It sends information about inventory items, position, blocks placed etc. Could it be possible to make a server/client (or possible just server side) that doesn't take packets from the client about blocks. Minecraft is a resource intensive game as it uses memory to receive and send when and where blocks are being placed. But, on a lot of servers, this feature is not used as these servers have hubs, spawns, minigames, etc. So, is it crazy to think about a server/client that doesn't take block packet updates? It would reduce a lot of memory needed because the server wouldn't have to worry about taking packets from the player about the blocks they are playing. Another idea, is to maybe create a client that would download the map from the server, and play on it. It is like playing a first person shooter, you have the map downloaded on your computer/console, but all you need from the server is the packets about the players around you. You wouldn't have to worry about keeping chunks loaded, because you have the map downloaded from the server. The server can then opt to delete the world files off of your computer, or to keep them on the clients computer in some encrypted format the next time the player joins.
These thoughts might sound crazy, or they might already have been thought of. I am not a pro Java developer, so something like this I couldn't make. Thanks for reading, and please leave some input!
The problem is the server can't trust anything the client sends it. You may say 'Well, have it togglable' but the problem with this is it is WAY too easy to cheat. Oh yes, server. I am in creative mode and just manually broke every single block within a 100 block radius. Trust me.
Even if it's with clients you trust, it's too easy for bugs to break things. Also why would you call it an API?
If it was that simple, why hasn't it been done already.
In summary, please don't post technical things under the wrong premise and on things you know little about
So, I have been thinking about this for the past week. When you host a minecraft server, the player's client sends and receives packets of information. It receives information about block updates, player positions, etc. It sends information about inventory items, position, blocks placed etc. Could it be possible to make a server/client (or possible just server side) that doesn't take packets from the client about blocks. Minecraft is a resource intensive game as it uses memory to receive and send when and where blocks are being placed. But, on a lot of servers, this feature is not used as these servers have hubs, spawns, minigames, etc. So, is it crazy to think about a server/client that doesn't take block packet updates? It would reduce a lot of memory needed because the server wouldn't have to worry about taking packets from the player about the blocks they are playing. Another idea, is to maybe create a client that would download the map from the server, and play on it. It is like playing a first person shooter, you have the map downloaded on your computer/console, but all you need from the server is the packets about the players around you. You wouldn't have to worry about keeping chunks loaded, because you have the map downloaded from the server. The server can then opt to delete the world files off of your computer, or to keep them on the clients computer in some encrypted format the next time the player joins.
These thoughts might sound crazy, or they might already have been thought of. I am not a pro Java developer, so something like this I couldn't make. Thanks for reading, and please leave some input!
I have a new account called "Mushroomsock" now, so please do not send me PMs.
Even if it's with clients you trust, it's too easy for bugs to break things. Also why would you call it an API?
If it was that simple, why hasn't it been done already.
In summary, please don't post technical things under the wrong premise and on things you know little about