Skip to content
This repository has been archived by the owner on Apr 30, 2024. It is now read-only.

10K+ downloads, release cycles and state of V3 #164

Closed
JimiIT92 opened this issue Feb 28, 2021 · 2 comments
Closed

10K+ downloads, release cycles and state of V3 #164

JimiIT92 opened this issue Feb 28, 2021 · 2 comments
Labels
Planned for version 3.0 Mark issues that will be resolved with version 3.0 (they probably won't be fixed in 2.x)

Comments

@JimiIT92
Copy link
Owner

Hello, fellow minecrafters! How you doin? I've never done one of these "blog posts" where I write something that happened or that will happen sooner or later, and honestly I'm kinda scared to do it since I can miss something or do something wrong, so please don't be too cruel if there's something wrong 😂 That being said, I'm writing these words to let you know what's going on with the plugin and what the future will mostly look like.

Over 10.000 downloads on Ore! That's insane! 🤯

Yep, that's right! UniverseGuard has been downloaded over 10.000 times on Sponge Ore! It may not seem like a big number, but for me it really is! It means that a lot of people appreciate what I'm doing, although is certainly far from perfect... 😅And the best part is that the number of downloads is growing every day (we are actually at almost 11.000, you guys are ustoppable!).
Plus, we are almost in the top 10 Sponge downloaded plugins! (12th at the moment) Is not a competition, and there are fantastic plugins in that list, both above and beyond us, but generally speaking is good to see how far this project went. From a small plugin made by someone who had 0 knowledge about Sponge to help a friend running a server, to this.
So, from the deep of my heart, i want to THANK YOU, everyone who downloaded the plugin or just gave it a try, even who discarded it for some reason but at least tried or looked intereset in it, everyone, thank you. And especially thank you to the ones who donated some of their savings to this stupid weird italian boy which want to write a long post in english but clearly has still some improvements to do with the english language 😂
Again, thank you so much for your support. I really hope you stick with UniverseGuard for long.

Will it ever be a proper release cycle?

One of the issues of the plugin, aside from the spaghetti mess that the code now is (no jokes on the fact that I'm italian, I dare you!), is the fact that releases are not consistent. There might be two releases in the same week or one release after 3 months, and that's not just depending on the amount or severity of open issues. Unfortunately, running a project that has become so widespread all alone is not an easy task when you work all day 5 days a week. Trust me, when you job is coding all the day, the last thing you want to do when you're done is sit back and code again. Of course, you can do it, but mentally you won't be at 100% of your capacity, so you might end up doing something that you have to fix the day after release, and I think we can all agree that's something none of us want. But, in recent months, you have probably seen something changed. With the "recent events that's happening in the world" I got plenty of spare time during the weekend, since most of the day I'm at home, and that helped to set a kind of a release schedule, where on saturday I see if there are open issues and on sunday, if I have a significant amount of fixes, a new version is published. What does it mean "significant amount of fixes"? It means if all open issues has been solved or at least there are some critical issues that needs to be fixed as soon as possible. Does this mean that you might expect a new release every sunday? Well, yes and no. New release will be out on sunday, most of the time, unless there is something catastrophic that needs to be addressed in 24 hours or the world will end. But that depends on the amount of issues: if there are no open issues there's no need for a new release. So yeah, if you see there are some open issues, you can expect a release that week's sunday, but note that this doesn't mean that there WILL be a new release on sunday. It might happen on saturday or monday or not happening at all until next week. Sure, as I said I got plenty more time now, but unexpected events can happen every day, so it might happen that I don't have the time to check the issues on the weekend or just simply can't fix the issue in time for sunday. I promise I'm trying to do all the best to keep time between issues and releases short, but I hope you can understand why sometimes it takes long even to reply to an issue. I do apologize for this, but I also thank you for all the reports, as it helps to improve this plugin each release.
And now, for the fun part...

WHERE THE HECK IS V3?

V3 was announced over a year ago, so you clearly want to know where is it. Well, is not in a bad state right now, many features of the current UniverseGuard has been ported to V3 and of course improved, but is not in a good state also, where I can say "ok, I can release this version and complete this part in another release". Some core mechanics are still missing, like region flags, to name one. And here's why is it: V3 is being built upon extendibility. I want V3 to be the "definitive" version of the plugin, something that can be easily maintained and that can't become a big mess with each new release. But that's not all: V3 must be highly customizable and, most importantly, expandable. So V3 will have a set of API that other plugins can use to expand the core plugin functionality. And that's where the problems begins: building a plugin that can be expanded is not easy. Building one that can be expanded with whatever a user might want to do is not easy AT ALL. What I want to achieve is the ability for users to create their own flags, commands, permissions, etc... to be used inside of UniverseGuard regions. For example, you can create a plugin that listen to the event of player entering a region and apply a potion effect to that player while is inside the region. That's just a simple idea, but you can imagine the potential for this. Also, you read that, right? I said event. That's because almost every action from the plugin will spawn an event, that the plugin itself or the addons can listen to make their own things. For example, when a region is renamed there is an event that is launched. Unless the event is cancelled the region is renamed. So you can see how an addon can, for example, add a list of banned word and when a region is renamed, if it has a banned word in the name, it can cancel the event and prevent the region from being renamed. Again, very basic example, but enough to show how powerful a set of events can be. And this is just ONE of the aspects that V3 will bring. This is the list of objectives that V3 is built upon:

  • Stability & performance: each event, command and flag handling must have almost no impact on the server's memory and performance. This will be possibile using some proper programming paradigms and the Java8 features, such as streams, which for some cases are way more performant than traditional code
  • Customization & Expandability: as I said before, V3 must be highly configurable and, most importantly, expandable using other plugins (or addons) through a set of APIs. I think I've said enough what the final goal for this will be, so let's move to the next point
  • Polygon regions: this is probably one of the first requests that has been made, back when there wasn't event a V2 available (the original issue was opened back in 2019!). Right now UniverseGuard define a local region inside a rectangular space, and for many that is fine. However, giving the ability to precisily define the borders of a region is something really challenging and a thing that can help UniverseGuard outstand other plugins (again, is not a competition, but can be an inspiration to improvement). Some progress has already been made on this, but I won't spoil you anything because I'm a bad person 😉 And also because I want to make some weekly or monthly update progress posts from now on, but mostly because I really am a bad person 😏
  • Permissions: like the polygons, this has been requested so many times I can't event count it anymore. So let's give a short answer: permissions will be implemented in v3 in a way so you can set multiple permissions for almost everything in the plugin. For example, you can make it so only moderators with the fly permission can fly, but the other moderators without that permission can't, which right now you can't do it. Or only players with the place permission can place blocks, while other, while still members of a region, can't. Like with the APIs and events, the combinations you will be able to do it with this are endless. And like the polygons, I can't spoil you anything right now, but I can promise you'll get more details soon so I can hear your feedback about it
  • Storage: the only place where UniverseGuard keeps all of its data is on the server's disk. Precisely in the plugin's configuration folder. With V3 you will be able to use a different location to keep all your regions, namely a database. Which one? You decide! I aim to provide implementations for SQL and Redis, which are two of the most popular, but I will also make so addons for other types of databases or storage locations (like Amazon S3, for example) can be made
  • Wiki: V3 will also come with a dedicated Wiki, where every feature will be presented and explained in a clear way, even with videos if needed
  • Versioning: versioning will also follow the standard software versioning scheme of Major.Minor.Patch. In this case you can expect releases in the form of 3.x.y. Every time a brand new feature is added to the plugin or a critical bug is fixed, the x value will be increased, while for small fixes and tweaks the y value will be. This will also prevent the curious bug there is right now where there can't be versions that ends with 0, so there won't be situations like "v2.31 is available but where is v2.30?"
  • Community: last but not least, let's talk about the community. As I said in the beginning of this wall of text, the plugin as grown much since its first release. But beside that, one thing that is missing right now and that is becoming mandatory to all big projects is a proper place where all the people interested in the project or that just want to hang around can go. I'm talking, you guessed, about a Discord server! Discord is almost mandatory right now to get support really fast and also to get it from other community members. What I'm saying is that an official discord server will be available when V3 will be released, or maybe even before that if I can find the time to set it up. But right now the primary objective is to have V3 released, so we'll see how and when this Discord thing can fire up.

In conclusion

As you can read, there is A LOT going on behind the scenes, especially with V3. From now on I do want to keep you informed on the state of V3, so you can see by yourself the state of it and that can also remind me to move fast! For now that's everything, I hope you find all of this interesting, despite the thousands of mistakes I surely made in the lines above, and will spread the project for a long time still!
Peace! 😁

@JimiIT92 JimiIT92 pinned this issue Feb 28, 2021
@JimiIT92 JimiIT92 added the Planned for version 3.0 Mark issues that will be resolved with version 3.0 (they probably won't be fixed in 2.x) label Feb 28, 2021
@Vulant
Copy link

Vulant commented Mar 7, 2021

If we have any addons for this plugin currently with V2, will we need to update our plugins to be compatible with V3 or do you think it will be okay? For instance, rentable regions.

@JimiIT92
Copy link
Owner Author

I don't think they will work, since the whole system will be using events, which are currently completely missing from V2 😕

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Planned for version 3.0 Mark issues that will be resolved with version 3.0 (they probably won't be fixed in 2.x)
Projects
None yet
Development

No branches or pull requests

2 participants