Anyone interested in working on a Minecraft Pocket Edition Server?

Hi there,

Anyone interested in working on a hobby project to build a Minecraft PE server? I am relatively new to Elixir, but from what I understand about its core functions, I think it would be well suited to working as a server for Minecraft PE.

I figure a project like this might help me understand the game (my kids can’t get enough of) a little better as well as improve my Elixir skills. If you have experience with sending and receiving UDP packets with Elixir even better…

I did some quick tests last night with receiving the broadcast from clients that are looking for servers and that got me excitited… This is a hobby project with no time constraints in mind and no dedicated time for it, just something to tinker on…

I couldn’t find any other pocket edition servers written in elixir, I did find some vague references to some written in erlang,

Here is a link to the best reference for the Pocket Minecraft Protocol I could find - there might be others.

Pocket Minecraft Protocol - wiki.vg]

Cheers…

6 Likes

Hi,

I would really love to join, but I am afraid that you’re probably searching for more experienced Elixir programmers.

Best,
Tomaz

1 Like

Hey Tomaz…

I am probably searching for more experience elixir programmers purely based on my entry level status in the world of elixir :slight_smile:

I have only recently started learning elixir and its more of a learning exercise rather (for now) rather than having an specific expectations…

Do you have any network programming experience? As this is an area I don’t know much about… but I’m sure I can figure out.

1 Like

I actually built a Minecraft (original, the pocket edition one really badly needs to die off) server in Erlang years ago. It ran really well, though I needed to slave out my terrain generation functions to C++ for speed reasons, plus having every ‘entity’ be a process was so nice. ^.^

It was not Minecraft-complete, like the mobs acted entirely differently and such, but you could do all the basic Minecraft things. It was just a simple project that I built up over a free day for fun, but it is entirely doable and I’d say go for it (even if it is the crappy PE edition). ^.^

(I wrote my server before even the nether existed, but I implemented ‘world changing’ by swapping chunks as the player did stuff, it was quite an awesome method that I wish MC used ^.^)

2 Likes

Hey,

That sounds very cool…

About the Pocket Edition dying off, I’m not sure thats going to happen considering its the most popular platform for the game… If you haven’t played it for years, most of the features from minecraft are now available in pocket edition.

A few questions if you don’t mind…

Which library did you use for network communication? Did you write your own terrain generation? If so, were there any particular algorithms that got you started on that?

1 Like

My issues with it are a few fold:

  1. Dang near unmoddable without using the internal and remarkable slow command blocks or so, so you cannot do anything truly impressive.
  2. Did not run on Linux (last I checked at least) and as I run on linux that is a non-starter pretty immediately.
  3. The general MC community has become amazingly hostile the last few years, which is why I have left it since (I was… pretty big in the MC community up to about 2 years ago).

I still play MC, though it’s mostly the GT6 mod (which is not possible to even implement it in PE last I checked) and ones that complement it, with a few friends and my wife. Though lately we’ve been playing far more Factorio. >.>

Ask away, this was a long time ago but I remember it pretty clearly. I might have it on bitbucket or it might be on my old SVN server if I can find it in my box of hard drives again… ^.^;

Standard TCP stack built into the OTP. It was perfectly sufficient for it. I had a processor via {active, once} to receive information and dispatch it to the appropriate actors to handle specific things like chunk information updating or player state and validation or so. And to send data, well that was rather haphazardly scattered around to be honest… ^.^;

Yep. I’ve made a number of games that use noise algorithms in the past so I was quite comfortable with it by that point.

Standard noise. I used part of libnoise on the C++ side along with a lot of SSE calls to speed it up as much as I could (it got pretty dang fast) though I started by writing a noise generator in Erlang itself, that was… slow… And I optimized it as much as I could along with help on the erlang mailing list. ^.^;

If you have questions about generating good terrain with noise, feel free to ask about details. I did not do it the MC way, which has a LOT of post-processing after the initial noise generation, but rather I tried to bake it all into the noise generation directly so I did not have to store unchanged chunks (a DETS file per ‘region’, though regions did not exist at the time in normal MC).

1 Like

Interesting … thanks. I’ll keep you posted.

2 Likes

I look forward, I’m curious in how yours will develop. :slight_smile:

2 Likes

I’m in. Message me

1 Like

Looks pretty interesting!

I’m not an expert with Elixir but I know a bit about game servers ^^, this is my attempt to create a Dofus server with Elixir a few months ago (I just begin with the language at this time so don’t expect something well implemented hahaha) https://github.com/WolfDan/Dofux

Looks like a really interesting project, just send me a message I would like to help :smiley:

2 Likes

Update on this…

Between juggling the day job, family and renovating our house, I am going to get limited time on this. I will play with it when I can, but it will be very slow going. If anyone else wants to take the lead on this who has more spare time - feel free…

Judging by the people who replied via PM who have more low-level programming knowledge than me - which from all accounts sounds like it will be required - and those that have already written their own game servers, I am probably not even the best lead for this idea…

I am the party pooper.

1 Like

I noticed this thread flagged in my profile, how wrong I was about pocket edition!!

I have now hung up the boots and becomeI have now become server admin for my son’s Java minecraft server that we run at home :slight_smile: