So I'm writing a Minecraft Server in C#, and the current status is... Kinda mostly functional.

Let me share some screenshots! 🧵

At first there was a LOT of this.

(Leaving a note here: Yes, they're all in folders in my Downloads folder, it's because I'm doing the development remotely but running locally. I should switch to git, but I'm not yet.)

Eventually though, I got there - Two accounts! Of course, they couldn't see or interact with each other in anyway, and in fact at this stage, it was touchy as hell.
The very first time I saw another account. Uh... At this point I was still spawning deep underground, I had to dig stairs to the surface - I had some math wrong in my world gen.
At this point I noted to a friend that it's actually incredibly lightweight - To be fair, it's not actually doing that much yet. But still! If I get 2 accounts flying in opposite directions, the memory usage caps out at like, 100MB.
Finally! Breaking Blocks Syncronizes! Up until this point they didn't, at all! Getting block breaking and placing to work properly on the client that is doing the actions is actually way more of a pain than doing it for other players, somehow.
At this point I realized that I'd done nothing to synchronize time across clients. They ran on their own clocks!
I'll be the first to admit that this is incredibly wasteful... But it's also ridiculously easy. (It wastes 3kb per chunk on a modern storage device)
@krutonium You sure about that 3kb number? IIRC, block sizes vary, but I think they default to 4kb.
@rallias 929 bytes is about 1kb of 4kb leaving 3kb of slack