1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Registered users won't see ads. Log in or Sign Up and become a member!

Improving PocketMine

Comments in 'PocketMine-MP Help' started by iKiddoDubstepp, Aug 31, 2013.

  1. iKiddoDubstepp


    Now that Minecraft PE has external server use, it is more helpful to connect to servers.
    Like Mojang promised to PocketMine will soon be available to all. Now PocketMine should,
    Improve PocketMine by fixing bugs.

    PocketMine servers are good! But the lag it creates is quite bad, can your team try fixing mostly everything?
    Such as not able to move Animals, arrows not shooting, inventory clearing from people. I know there's many more bugs out there, but atleast try? One question I have is why use .php and not Java like CraftBukkit does? Would it help?
  2. ArcaneKnight97

    ArcaneKnight97 Plugin Developer

    The software is still in alpha and every new PE update could bring changes.
  3. shoghicp

    shoghicp Staff Member PocketMine Team

    We are constantly fixing bugs and adding non-implemented features, but we can't fix some of them due to being a client-side bug (like the hotbar clearing). We will be happy to receive bugs on the Github tracker ;)
  4. Darunia18

    Darunia18 Staff Member Sectional Moderator

    Craftbukkit is coded in Java because PC edition of Minecraft is coded in Java and it just makes things run smoother and its easier to update Craftbukkit stuff when its all coded in the same language. MCPE is coded in C++ for Android and Objective-C for iOS. They code in php probably because it is easy to use it to be able to communicate to both Android and iOS clients. If PocketMine was coded in Java, it wold make things too complex. Plus, I've heard that Java itself isn't a language you would want to use if you had a choice of another language.
  5. shoghicp

    shoghicp Staff Member PocketMine Team

    Neither PHP ;)

    Comparing PHP against Java, it has a smaller memory footprint, but no real async/Thread operations exist. It is easier to learn, too.

    I've bypassed that limit using PHP "ticks" and an experimental Threading extension for PHP. We got those things after the start of PocketMine-MP, so we didn't got them implemented as complete as we want. We are rewriting several things for the 1.4:

    • A new library for network. MCPE uses the RakNet library to handle data transmission over UDP. That enables them to get a Reliable stream over UDP. In the origins of PocketMine-MP we had to reverse-engineer it part by part, and implementing everything in different parts in the code itself. Now that we know how to handle all the packets, split big ones, send more stuff, we are going to create an "external" library that PocketMine-MP will use. We are calling it RakLib, and includes multiple threading (to improve faster I/O), packet recovery is handled in the library itself (PocketMine-MP did that on the Player class), will support advanced features like networks of servers (like BungeeCord for Bukkit) and the network usage will be limited to the amount the client can handle (something that PocketMine-MP didn't had).
    • A new event system. PocketMine-MP's current event system is not really efficient, and doesn't have all the options I wanted. We will be rewriting it to a object-based event system. We will be copying the Bukkit system (so we will need some help from plugin developers there to tell us what do they want in PocketMine-MP). This will allow easier plugin developing, and more complex things could be done faster.
    • Faster scheduled block updates. We have a messy way to do it now. That will be fixed ;)
    • Multiple threaded systems, like world loading. We would extend the usage of threads, so powerful servers would be used completly.
    • New physics. Current PocketMine-MP physics only allow for an unreliable Y-only physics calculation. We will rewrite everything, also how entities are handled. That will allow to implement mob AI, or fix all the issues with invisible items, arrows, snowballs, and player flying.

    Also, bugfixes, but we do that anytime ;)
  6. raul


    this guy is awesome :eek:
  7. unerds

    unerds Redditor


    shoghi, shut up and take my money!
    PotatoMan9374 likes this.
  8. iamadpond

    iamadpond Staff Member Global Moderator

    Kill the non-php believer! He is a devil sent by the Java!
    PEMapModder, Darunia18 and Blubbll like this.
  9. InusualZ

    InusualZ Plugin Developer

  10. PEMapModder

    PEMapModder Banned

    Will the multiple threaded system work with world editing too, either in the source or in the plugin?
  11. iamadpond

    iamadpond Staff Member Global Moderator

    Putting everything into java not always works, it's like thinking ice cream will help you get better from a cold.

Share This Page