Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite significant portions of the backend #52

Closed
16 tasks done
BomBardyGamer opened this issue Aug 22, 2021 · 1 comment
Closed
16 tasks done

Rewrite significant portions of the backend #52

BomBardyGamer opened this issue Aug 22, 2021 · 1 comment
Assignees
Labels
area: all documentation Improvements or additions to documentation enhancement New feature or request priority: high

Comments

@BomBardyGamer
Copy link
Member

BomBardyGamer commented Aug 22, 2021

Description

At the current stage in this project, Krypton is huge. It's not really huge, but it's a very large code base, or, well, I believe it is. In the around 6 months I have worked on this project, there has been a lot of messy code and hackery, things implemented without much knowledge of how they work, little consistency, and a fairly significant portion of the code base is taken from either vanilla Minecraft, Sponge, Velocity, or Bukkit.

To get to the point of this though, I am not pleased with the amount of code in this project that is not original, and while I do understand that not all code bases have to be fully original (and I'd say around 80-90% of them aren't, at least), I would at least like most of this code to be original. In addition, the originality of the code base will help with maintaining consistency across the project, which is something I also feel this project lacks.

So, without further or do, the following is a list of all of the issues I have and possible changes that I would like to make:

  • Split the authentication mechanism in to a separate project Determined to be unnecessary.
  • Redesign the command argument serialization system and rewrite many vanilla derived argument classes
  • Possibly redesign the entity metadata system
  • Redesign entity creation and loading, trying to make entity classes immutable Limits reusability and makes having default values impossible.
  • Possibly repurpose or remove the translation system, or make its usage more consistent
  • Rewrite (or temporarily remove) the data pack loading system (a few good looks at it reveals it's mostly just a vanilla copy)
  • Remove the RegistryHolder loading system that came with the data pack update
  • Possibly split the networking No longer within the scope of this issue, see Add a packet API #53
  • Rewrite the tag loading system (goes with data pack system)
  • Rewrite or remove the crash reporting and profiling systems
  • Possibly rewrite all of the data fixes from the data fixer upper, or find another solution, such as porting the DataConverter
  • Remove everything that was copied from vanilla and could be considered redistribution of proprietary licensed code Covered by Replace all occurrences of proprietary derived code #41
  • Clean up all of the styling to keep it consistent throughout the entire project
  • Vastly improve documentation of the project
  • Check all licensing and ensure appropriate attribution is given
  • Ensure that everything is where it should actually be, and move everything that isn't

Some of you may be wondering why I am choosing to do this, and especially on this large of a scale. Well, the truth is, this project takes up all of my time and effort, and has for a while, and I have noticed that I am getting much more lazy and not even bothering anymore to really try and think up something original, so I have mostly created this to try and force myself to make this project as good as I want it to be.

In addition, when this project is finally declared "stable", meaning it reaches release 1.0, I would like to be releasing something that I am actually proud of, and think is worthy of actually releasing. I have put just about everything I have in to this project, and I really want it to turn out the best I can possibly make it for everyone that has shown their love and support to it over all of the time I have worked on it.

If you'd rather not read that paragraph, the tl;dr is that I think the project is a sloppy mess and want to fix it up.

@BomBardyGamer BomBardyGamer added documentation Improvements or additions to documentation enhancement New feature or request priority: high area: all labels Aug 22, 2021
@BomBardyGamer BomBardyGamer added this to the Stable release milestone Aug 22, 2021
@BomBardyGamer BomBardyGamer self-assigned this Aug 22, 2021
@BomBardyGamer
Copy link
Member Author

I'm going to count this as done now, as the point about removing vanilla derived code is covered by #41 , and the documentation is in the process of being done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: all documentation Improvements or additions to documentation enhancement New feature or request priority: high
Projects
None yet
Development

No branches or pull requests

1 participant