No minigame engine/API exists just yet, that's why I thought of creating one to create minigames with ease. This would make it much easier to create minigames, instead of writing them from scratch. How would this work? I thought it would be cool for devs to register their own games, and register callback functions for each event such as for player's joining and quitting. Each game would have it's own defined configuration with lobby/game position, min/max players, etc etc. The minigame engine would handle the rest, like tasks, teleporation handling, player storing and such Let me know what you think, I want to create this to make the process of creating minigames much easier for devs.
https://github.com/Ad5001/GameManager https://github.com/NawafCraft/MiniGames-API they are outdated ik but they are exists
some apis are very limited which is a huge deterrent to even use it some are not flexible enough also i dont think callbacks are good idea also how would i make a minigame? do i make a plugin then register as minigame? or put a file in /minigame plugin folder and how are configurations handled? what if author want to load config by file? or by hand? or NOT by yml?
gameapi by thebigsmilexd is very specific in use case. it is not useful when it comes to the compatibility between multiple games on the same server, etc. GameManager still forces games to be level-specific. As for MiniGames-API... wtf. It is just a library that is worse than gameapi. BTW, here is a minigame management plugin along with implementations embedded. It just needs a few lines of changes to allow adding games from other plugins. However, it is still a somewhat context-specific plugin. (It's mixed with some random stuff like auth, because it was a core plugin, but I'm just referring to the API part) https://github.com/LegionPE/LegionPE-Eta/tree/master/LegionPE-Core
Oopsy daisy With my way, it'd be possible anyhow, by plugin or file loading, and for the config it doesn't matter, since it could be a class with properties, getters, and setters, and config parsing functions so it's all good. Everyone has to understand that there's always someone who's going to make improvements in something. It's not about reinventing the wheel, it's about making it better.
The question is in that we want a minigame API where you write the plugin once and it can be applied to everywhere. Whatever model the server owner likes -- for example, if an admin teleports into a game world to ban a hacker, does it mean the admin is a member of that game too? And for example, how does the gamemode work? Does every game have to end in a few minutes (instead of permanently, like a factions world)? Does every game have to be in its own world -- may one world have more than one game, and may one game have more than one world? Or even across multiple servers? All of the minigame APIs I have seen above are just trying to make people recreate another version of an existing server, without considering the specific needs of server management
I have nothing against reinventing the wheel, but i have to make sure it IS better and try to guide it to be as best as i could have think of re: admins to into game: it can be a spectator, OR forcefully converted to member if chosen to, or forcefully not registered(since admin overwrites perms) re: gametypes: what if my gamemode runs indefinitely?? like a CTF of getting other backs or kitpvp or what if i want multiple games happening in the same world? based off regions or what if i want a static arena + tons of matches happening in it??(see duels without mindlessly cloning world or arenas) and players can spectate one/all matches if they use a command or what if i want to make a soccer game in lobby where anyone can join or leave at will(by entering/leaving region) that's placed at lobby other interesting ideas to consider what if i want to store some tokens to disk, and some on memory? will you provide an API? like token as credit, and score as temporary that restart per match what if i want to store powerups purchased/owned etc? what if i want to store matches and generate a donut chart? and chart for time spent? and chart everything?(tho can be exculuded as another plugin, if it fires off enough events to do stats)
Every game would not require it's own world, and no, joining games would not be handled by entities changing level. I guess for games to run infinite you could set the time to -1. That would be possible, but it would be set in the game configuration. Not sure about that, I guess I could find a way to do that. I guess I could provide an API for that kind of stuff.
We need some definition. What is a minigame API/engine? Is it simply a library that lets you create games easily (in units of teams, matches, etc.), or is it something that aims to maintain the compatibility between multiple games?
basically assisting developer so the dont have to rewrite code or copy code everywhere creating an unmaintainable pile of code like a utility for every minigame plugin, and make creations of minigame easier (no worry of compatibility abilities to run multiple concurrent matches etc, the lib will handle routing events etc) it's like saying rockets arent possible when it havent been invented or created
I tried to say, that there are certain things of the minigame API that you might want to be changed, for example, to make your server more exclusive.
so just suggest it and boom there you go the api must be as flexible as any dev could think of or else it isnt worthy enough to be good
i mean even if you write your own because you are that good, an ideal flexible api would still be able to implement what you have in matters of days or at least how long it took you to... and i dont see how an api can "stand out" as player only see games, i doubt they have care of how unique your minigame api is, do you think the will care that your minigame api have a pause play feature that only the owner can use? or how your minigame api can run concurrent matches? they only see the minigame you created, and to be unique, fun and able to play it as it's intended is what the player really care..
In fact, the answer to the question is up to every server owner. But like I said, I would prefer to not use a minigame API to start coding from scratch a new plugin, and when I come to something that's not implemented, I know that I don't have to take the hassle of suggesting it to the minigame API author. That is the explanation to my desicion. So Neh...
It's not up to the server owner, it's up to developers that would like to code minigames. Having a proper API for minigames doesn't have to limit what you can do and what you can't do at all. Using APIs makes development faster and often higher quality. You're against minigame APIs? You rather code a fresh new minigame? So you'd rather develop a complete new server software as well, because APIs suck anyway and coding a fresh one is always better? A proper API makes the time to code something with it so much shorter, which is awesome. The minigame API does of course have to be versatile and usable for (almost) any minigame. Beast has quite some experience with minigame plugins though, so I'm 100% sure he's capable of doing exactly so.