Open source minigame network server platform

Hey guys,

I am developing open source minigame server network platform.

The project is located here: GitHub - dobrakmato/PexelCore: API and Core implementation of Minecraft minigame network platform for Bukkit/Spigot, Sponge. Check successor: https://github.com/dobrakmato/pexel-platform

Example minigame: Example minigame build on top of PexelCore · GitHub

Currently it is in one project, but over the time I am going to split it to 2/3 parts.

  • Core = the main part of network, will run on bungee / proxy server / standalone. And it will take care of turning slave servers on and off, matchmaking, chat, ranks, permissions and all core stuff. Will comunicate with database and slave servers.

  • Slave = plugin running on slave server, bridge between minigames and core, contains logic needed for running minigames and comunicates with core. Provides API and design for minigames, lot of utilities to make programming minigames easier (teams, team manager, block rollbacker, kits, countdown, timers, voting, particle animations, cinematics, etc…)

  • Minigame = plugin / module that contains minigame logic, uses API from slave, and uses slave to comunicate with database / core (for ranking up, achievements, etc…).

Also I am going to make it sponge compactibile as soon as sponge API gets released!

I would like to hear your opinions about the project, and better about the code, what should I improve, edit, add or remove.

If anybody wants to add something just make pull request.

I’m sorry for my english if It’s bad.

1 Like

If you’d like your users to have one database-config for all their plugins, you can use my little API… you don’t have to use it, but I’d feel honored.

If you need any other help, message. I’ll lurk around the GitHub repo.

1 Like

I find it funny that you decided to call it ‘slave’ servers rather than something like ‘mediators’, ‘executors’ (that can also sound wrong) or other. I’m no programmer or developer, but just saying.
Again, I just find it funny, not criticizing.

That is typical terminology reminiscent of say, ‘master-slave’ replication. I see nothing wrong with it. In fact, go check the Wikipedia article.

In fact @dobrakmato should go all the way and rename Core to Master as with the terminology. Of course, it is a bit harsh, I would use something like ‘hub’ and ‘spoke’(or even ‘lobby’), which is more in line with what most Minecraft servers call these systems. If you find the discussion on nomenclature interesting(I certainly don’t), go see this django PR.

Overall, I think this is an interesting project. I need to take a close look at the code, but it does certainly seem very useful.

1 Like

Ah, thanks. That’s a bit of technical technological information I wasn’t aware of.

Edit: Said thanks twice, welp.

@MrMysteri0us
My idea is to create all features that minigames will need in in Slave part. The configs should be only on Master part. Server owner will then select in web interface / java desktop interface which minigames and maps should be on that server and core-slave will take care or that (transfer maps and plugins to slaves).
Going to look If your repo can help me with that :smile:.

@Manuelschi, @gratimax
I don’t like ‘hub’ name, because of that it does not provide anyting that lobby or hub should provide. Maybe I will then split it to Master, Slave-Gameserver, and Slave-Lobby. Well, terminology is one of the hardest things for me, but I think it’s important.

I realy like the idea, working on a similar project for myself too ;D
Just looked through your code an saw that cinematic packet. Is there a place to test that or how do I test it on a test server? It looks realy cool

Acutally I imported ‘cinematics’ part from my older project. Now there is no server for testing that. You can try clone the git, create V3CameraClip, V3Player and try to play it. But, since it was coded on older version, It will work only with v1_7_R3 bukkit (NMS code). I’m sorry that some comments are not in english, but in my native language. Maybe I will update It soon, or remove from project.

I’ll try to figure out what you have done there. Google Translator will help me translate slovak to english or german :smiley:
If I have questions I will pm you