Messy, yeah. Outdated? Sure. But the original Plus base is pretty okayish organised and documented and a lot of people around here have at some point played around with Plus, butterfly or anything on the same base.
You're referring to parts of the original code base that is still due to be refactored. It would've been faster if more people helped out but alas. Environment and Program are one of the least complex classes out there. (They still need to be cleaned up once Dependency Injection has been fully realized throughout). Have you had a look at
You must be registered to see links
?
Maybe, if someone writes them. But it makes it easy to replace parts of the emulator through plugins as they can just re-implement that specific part of the interface if needed.
Personally not really a fan of sealing everything by default. Plus++ is meant to be open for modification through extensions (plugins). Locking things down by default and only opening them up once requested seems unfair to plugin developers.
Yes thats part of the refactoring. We don't want to blanket apply whatever suggestions resharper is throwing at it.
We want to keep it simple for new developers to join, a simple code base that doesnt require too much specific library knowledge would make it more attractive to write plugins. Making it modular sure, making it distributable eh, when was the last time you saw a server hit 10k online? Maybe 10 years ago and since then C# / .NET has come a long way with performance optimalisations.
If you had a look at the library references you would see Dapper is slowly being introduced:
You must be registered to see links
Again, dapper is more noob friendly and with EF you're still going to have to manually deal with async state changes and its a bit more trickier to debug imo when the majority of actively used data lives in memory.
Sure, feel free to make PRs or join the development boards discussions.
Hello The General, I have followed your work closely all these years, and it is a pleasure to be able to speak with you.
I agree with you. I started in this scene thanks to open source emulators, and, in fact, today I dedicate myself to software development for those years when I played Habbo, and I wanted to understand why and how this game that I liked so much worked.
But just because it's well documented, or has been played around a lot, doesn't mean it's good code, or readable code, by any means.
Regarding the interfaces, it reminds me a lot of the meme (without taking it the wrong way, I'm kidding):
Yes, I see and understand the effort of wanting to continue maintaining projects of this style, even like you, who are developing a server from scratch. Years ago I dedicated myself to publishing certain elements that were used as the basis for software that prevails today (such as the SQL Furni generator / text generator), or some Java server base that I published for people to learn, and me too, based on comments from those who were developers at the time. I have thought several times about trying to get back to it, but that flash has died makes me back down.
Correct, as you say, it is open to extension (not to modification) as SOLID principles say, thanks to plugins, which allow adding functionality without having to modify existing classes, hence sealing all classes by default, except those that are known to spread.
I don't use resharper, they are things that I have been able to see with the naked eye, sorry if it bothered you, it was not my intention.
Indeed, you have to take advantage of the fact that C# has come a long way, but not everything is development "to play with", but you have to take advantage and learn everything you can the hard way.
I think that, having a development structure, such as different "Infrastructure" projects with transversal elements, "Dependencies" with the container configurations, Managers.Interfaces, ManagersImplentations, etc... could result in a more understandable project, as you can see you this case?
It would be great to see dapper implemented in the project
!
As I said, I don't have time to do PR or development, but I am very happy to see that this world, in which I started at the age of 12, is still alive.