natewallis

natewallis

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.

http://wiki.vg/Pocket_Minecraft_Protocol]

Cheers..

Showing Posts 1 to 10

tomazbracic

tomazbracic

Hi,

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

Best,
Tomaz

natewallis

natewallis OP

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.

OvermindDL1

OvermindDL1

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 ^.^)

natewallis

natewallis OP

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?

OvermindDL1

OvermindDL1

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).

natewallis

natewallis OP

Interesting … thanks. I’ll keep you posted.

OvermindDL1

OvermindDL1

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

lrosa007

lrosa007

I’m in. Message me

WolfDan

WolfDan

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:

natewallis

natewallis OP

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.

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 94592 917
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
Quite interesting article Google brought me. Didn’t find any mentions about it here. What do you think in general? Would you use togethe...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
AstonJ
Since we have deprecated our Erlang sections (as we have dedicated Erlang Forums now) let’s add this thread for those who’d like to post ...
New
maennchen
:warning: Security advisory: Decimal DoS vulnerability A vulnerability has been published for decimal where very large exponents can cau...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews