Minestom - a minecraft server creator library

Discussion in 'Programming' started by TheMode911, Apr 20, 2020.

  1. Thanks I appreciate it :)

    Well as for being more efficient than the Mojang implementation, it is not as simple. Firstly because it is impossible for us to implement all vanilla features (see the Glowstone project, sounds nice but much harder than Minestom to do)

    So targeting a vanilla experience, no it won't. However, if you mean having your own mini-game server (or RPG/Pvpbox) using the latest features from 1.16 and further yeah it is entirely possible.

    I am currently working on a way to separate threads in "chunks group", meaning that all linked chunks (all chunks that have neighbors are added into a group). So having a player in -5000;1000 and another in 1000;1000 would result in 2 chunk group, both being entirely separated on the CPU. Scale it to a server like 2b2t (again, forget about features parity) where everyone can be pretty far from each other and you get a pretty nice performance difference
     
    • Like Like x 2
  2. WIP command auto-completion:

    A lot of vanilla arguments are already implemented, we miss the target selector, item and nbt stuffs

    The goal, in the long run, is to give the ability to developer to create rich-commands with more than just raw string parsing (which is what is used with the bukkit API)

    Here is how the game mode command is done: https://github.com/Minestom/Minesto...fr/themode/demo/commands/GamemodeCommand.java
     
    • Like Like x 2
  3. This is very exciting, hoping to be able to consider this for production use at some point!
     
    • Friendly Friendly x 1
  4. Looks very interesting. A (good) built-in or first party addon anticheat would really make this project stand out. Detecting suspicious behavior at core level could be much more effective than a plugin.
     
  5. I did think about integrating a proper anti-cheat but in the end, I am not sure of the advantages compared to an event/packet-listener based one on spigot/bukkit.
    I guess that at least it can be better integrated in the sense that we could have "official" anti-cheat events and a proper API
     
  6. - Bungee now works with minestom
    - World time API (allow for custom time rate, can also be stopped)
    - ItemMeta API, support for map & potion
    - A new efficient pathfinding API
     
  7. Showcasing our new efficient pathfinding API
     
    • Like Like x 1
  8. Start of the map API, which will allow you to play games or show menus
    (Here is an example with Graphics2D)


    Support for OpenGL + notification API: https://imgur.com/a/oxF8Cq7


    The full advancement API is on the way and will allow custom advancements tab
     
    • Like Like x 1
    • Like Like x 2
    • Winner Winner x 2
  9. Haha, that is not only hilarious but also very impressive!
     
    • Agree Agree x 1
  10. True I'm in love with this.

    Just a bit sad that the protocol only supports raw color array instead of some others like h264/HEVC
     
  11. this is an amazing project I love it
     
    • Friendly Friendly x 2
    • Agree Agree x 1
  12. Strahan

    Benefactor

    Haha that's awesome. Makes me think of all the possibilities; building an arcade in the game, building an actually functional movie theater, all sorts of cool things you could do :)

    Whoa, a Re:Zero fan that actually prefers Ram to Rem? Here I thought I was the only one, lol
     
  13. Yeah, I did think about the possibility of making a "video game server". The issue will probably be bandwidth and rendering performance (having 20 OpenGL contexts rendering at 60 fps + colors converting is not really efficient), I think that it would require engineering a custom graphics API made to work with the way maps are updated (by rows/columns)
     
  14. #55 TheMode911, Aug 16, 2020
    Last edited: Aug 16, 2020
    • Like Like x 1
  15. Small features related to the custom block-breaking delay we have implemented


    Support for multi-player digging the same block to speed up the process (can obviously be disabled)


    Support for dynamic breaking stage, in this example it becomes faster the more you approach the end
     
    • Like Like x 6
  16. Lot of cleanup done, made more thing customisable (custom data serializer, player object provider) and some new features
    - Support for "plugins" called extensions (Warning: this is not bukkit API support, it's just being able to load an external jar within minestom with entry points)
    - Mixin support (see https://docs.spongepowered.org/stable/en/contributing/implementation/mixins.html)

    Btw Minestom is now in 1.16.3 (well nothing new server-side, its only a protocol number and name update)
     
    • Like Like x 2
  17. New icon & banner for the project! https://github.com/Minestom/Minestom done by one of our members

    As for the code-base, still mostly reliability and performance improvements.
    Most of the updates are based on feedback from our discord server
     
    • Like Like x 1
  18. New random update post. (scrolling through all the commits take some time)
    * Allow for entirely custom Instance (world) implementation
    * Improved the auto chunk load
    * Chunk can store custom data (and still be serialized with the same algorithm)
    * Allow for custom JSON message API
    * Global listeners for brigadier-like commands
    * Allow for custom Chunk implementation (where you can choose how you want to store and serialize chunks, or use a specific chunk type for only a section of your instance)
    * Optimizations (which is the major part)
    * There is never enough comments (the Javadoc can be generated, we will soon start to host it)

    Basically, we try to make every of our implementation optional because this isn't necessarily the one you need

    Hope that 1.17 will provide some new possibilities (have high hope for the blocks model in resource packs)
     
    • Like Like x 1