4 ms·
Minecase – A distributed Minecraft server in .NET Core
- lennoff 9y agoHow exactly is this distributed? The readme isn't really useful...
- diggan 9y agoI'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/ 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.
- lwansbrough 9y agoI 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.
- zamalek 9y agoThink Akka if you're familiar with Java. It's not a port, but both are actor frameworks.
- JasonWang1027 9y agoThe readme doesn't show these. It needs to be improved.
- iMarv 9y agoLooking into the issues: "Add multiplayer support" The only reason I see running a minecraft server is to play multiplayer, so I guess there still is a lot of work to do.
- derimagia 9y ago"World Persistence" too. Although to me it's pretty useless without mod support which would be very difficult to do since Forge/Mods are all java obviously. But a neat side project. Wish them luck.
- jasenmh 9y agoSince it's distributed, maybe mods can be handled as microservices. Then it wouldn't matter the source language.
- ganzuul 9y agoHow distributed are we talking? Could it be distributed over fast internet connections or does it take a data center?
- JasonWang1027 9y agoIt needs quite fast network between distributed servers in clusters. A distributed database, MongoDB, is used to store Minecraft terrain and entities.
- Cyberdog 9y agoSo what is the benefit for distributing this data? I haven't played multiplayer MC in quite a while, but from what I can remember, lag could be a bummer, so I could see how being able to connect to a low-lag "local" server and yet still play alongside players from around the world with their own low-lag connections would be nice. Yet if someone places a block on the ground and it still takes a couple seconds for that block placement to be distributed to my local server's Mongo instance and sent to me, I don't know how much the user experience is really improved for anyone.
- JasonWang1027 9y agoThe placed block isn't synchronized to MongoDB immediately. Chunks data is stored in memory, while some players nearby.
- breakingcups 9y agoFor an incomplete list of open (and closed) source alternative Minecraft servers, see: http://wiki.vg/Server_List http://wiki.vg/Server_List