Hacker News new | ask | show | jobs
by lennoff 3134 days ago
How exactly is this distributed? The readme isn't really useful...
2 comments

I'm not a .Net developer but:

> MineCase is a cross-platform, distributed Minecraft server application developed using .NET Core that uses the Orleans framework.

Orleans seems to be what makes this distributed I think, following the trail leads me to: https://dotnet.github.io/orleans/

> Orleans is a framework that provides a straightforward approach to building distributed high-scale computing applications, without the need to learn and apply complex concurrency or other scaling patterns. It was created by Microsoft Research and designed for use in the cloud.

I can elaborate a little further having extensive experience with Orleans:

- Various parts of this Minecraft server have been built as Grains

- Grains are basically class instances which are activated (instantiated) somewhere in a network

- Orleans has a very clean interface which allows one to use a class instance in regular code as though the instance were stored in local memory. In reality, the class instance may be instantiated on a different machine in the cluster.

- Orleans clusters are generally controlled/private, though I suppose there's nothing stopping someone from building an open network of Orleans silos. That means the distributed aspect of this project is in regards to how the code behaves within a datacenter, in most cases.

This seems to be an exploration of how to build game infrastructure using Orleans. Microsoft has done this with the Halo franchise in their most recent games (Halo 4 + Halo 5.) Seems to work pretty well. On a fast network you can operate on distributed instances of just about anything and have sub-millisecond response times. Mind you, that'll depend greatly on what work is being done.

Think Akka if you're familiar with Java. It's not a port, but both are actor frameworks.
The readme doesn't show these. It needs to be improved.